qin552011373 发表于 2013-6-24 10:43 
很奇怪 你上传代码啊 我晚上回去验证下
#include<iom16v.h>
#define uchar unsigned char /*PA5=RS PA6=RS PA7=EN PC数据端*/
#define uint unsigned int
void lcd1602_init(void); //1602_init
void write_com(uchar com);
void write_dat(uchar dat);
void lcd_busy(void);
uchar table0[]={"0123456789"};
void main(void)
{
lcd1602_init();
while(1)
{
write_com(0x80);
write_dat(table[0]);
write_dat(table[1]);
write_dat(table[2]);
}
}
/*************1602相关程序********************/void lcd1602_init(void) //初始化
{
DDRC=0xff;
DDRA=0xe0;
PORTA&=~(1<<PA7);//E=0
write_com(0x3c);
delay_ms(10);
write_com(0x06);
delay_ms(10);
write_com(0x0c);
delay_ms(10);
write_com(0x01);
delay_ms(10);
}
void lcd_busy(void)
{
PORTA&=~(1<<PA5);
PORTA|=1<<PA6;
DDRC=0x00;
PORTA|=1<<PA7;
while(PINC&0x80);
PORTA&=~(1<<PA7);
DDRC=0xff;
}
void write_com(uchar com) //写命令
{
lcd_busy();
PORTA&=~(1<<PA6);//写
PORTA&=~(1<<PA5); //命令
PORTC=com;
delay_ms(10);
PORTA|=1<<PA7;
PORTA&=~(1<<PA7);
}
void write_dat(uchar dat) //写数据
{
lcd_busy();
PORTA&=~(1<<PA6);
PORTA|=1<<PA5;
PORTC=dat;
delay_ms(10);
PORTA|=1<<PA7;
PORTA&=~(1<<PA7);
}
|