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

📄 12864串口.c.100830202520

📁 avr基础程序大全
💻 100830202520
字号:
#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<1141;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()
{
	delay_ms(50);
	delay_ms(100);
	delay_ms(200);
	
	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(200);
}
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);
}

uint mega16_adc()
{
     uint addata;
	 DDRA&=~BIT(0);
	 PORTA&=~BIT(0);
	 ADMUX=0x40;
	 ADCSR=0X80;
	 ADCSR|=BIT(6);
	 while(!(ADCSR&(BIT(4))));
     addata=ADCL;
	 addata=addata+ADCH*256;
	 return addata;
} 

void main()
{	 
	 DDRC|=BIT(5);
	 DDRC|=BIT(4);
	 PORTC&=~BIT(4);
	 PORTC|=BIT(5);
 	 lcd12864_init();
	 while(1)
	 {
	 locate(1,1);
	 wr_bit(0,"1");
	 delay_ms(2000);
	 }
	 
}

⌨️ 快捷键说明

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