⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 湿度传感器.c.100831140740

📁 avr基础程序大全
💻 100831140740
字号:
#include <iom16v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int

#define clk 7
#define set_clk PORTC |= BIT(clk)	  
#define clr_clk PORTC &= ~BIT(clk)   

#define sid 6
#define clr_sid PORTC &= ~BIT(sid)  
#define set_sid PORTC |= BIT(sid)     

void delay()
{
	NOP();
	NOP();
}
void delay_us(uint i)
{
	while(i--)
	 {;}
}
void delay_ms(uint i)
{
	uint a;
	for(;i;i--)
		{
		for(a=0;a<672;a++);
		}
}
void wr_bit(uchar n,uchar data)
{
	for(;n;n--)	  		  	   		//写入位数
		{
		if(data&0x80)				 
			{set_sid;}
		else
			{clr_sid;}
		data=data<<1;	  			 
		delay();
		set_clk;				 
		delay();
		clr_clk;
		}
}
void write_shuju(uchar a,uchar b)
{
	clr_clk;

	wr_bit(5,0xFF);			  		 

	wr_bit(1,0x00);	 				 
	
	if(a==0)	 					 
		wr_bit(1,0x00);				 
	else
		wr_bit(1,0x80);				 

	wr_bit(1,0x00);	 				//写入一个0
	
	wr_bit(4,b);					//写入数据的高4位
	
	wr_bit(4,0x00);					//写入4个0
	
	wr_bit(4,(b<<4));				//写入数据的低4位
	
	wr_bit(4,0x00);					//写入4个0

	set_sid;					  
}
void lcd12864_init()
{
	write_shuju(0,0x30);			//设置数据方式:8位
	delay_us(200);
	write_shuju(0,0x30);			//设置数据方式:8位
	delay_us(80);
	write_shuju(0,0x0C);			//开显示
	delay_us(80);
	write_shuju(0,0x40);			//开显示
	delay_us(200);
	write_shuju(0,0x01);			//清屏
	delay_ms(100);

}
void write_hz(char *s)
   {
	while(*s)
	    {
		write_shuju(1,*s);
		s++;
		}
}
void locate(uchar x,uchar y)
{
	switch(x)
		{
		case 1:write_shuju(0,(0x80+y-1)); break;
		case 2:write_shuju(0,(0x90+y-1));break;
		case 3:write_shuju(0,(0x88+y-1));break;	
		case 4:write_shuju(0,(0x98+y-1));break;
		default:break;		 
		}
}
void cls()
{
	delay_us(200);
	write_shuju(0,0x01);			//清屏
	delay_ms(20);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -