| 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);
 }
 
 
 
 
 
 
 
 |