完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是我编写的一个只能显示一行的代码 #include "LCD1602.h" #include "Delay.h" /****it RS=P20; ***it RW=P21; ***it LE=P22; DATA-->P1 */ void lcd1602_busy() { RS=0; RW=1; P1=0xff; while(1) { LE=1; if(P1<0x80) break; //P^7!=0ʱ£¬ÖÕÖ¹ LE=0; } LE=0; } void Lcd1602_Init() { delay_ms(15); WR_cmd(0x38);//ÉèÖÃÏÔʾģʽ delay_ms(5); WR_cmd(0x38); delay_ms(5); WR_cmd(0x38); WR_cmd(0x38); lcd1602_busy();//¼ìæ WR_cmd(0x08); //¹ØÏÔʾ lcd1602_busy(); WR_cmd(0x01); //ÏÔʾÇåÆÁ lcd1602_busy(); WR_cmd(0x06); //ÏÔʾ¹â±êÒƶ¯ÉèÖà lcd1602_busy(); WR_cmd(0x0c); //ÏÔʾ¿ª¼°¹â±êÉèÖà } void WR_data(uchar dat) { RS=1; RW=0; P1=dat; // LE=0; LE=1; delay_ms(1); LE=0; delay_ms(1); return; } void WR_cmd(uchar cmd) { RS=0; RW=0; P1=cmd; // LE=0; LE=1; delay_ms(1); LE=0; delay_ms(1); return; } // void LCD_dis_char(uchar x,uchar y,uchar dat) // { // uchar address; // if(y==1) // address=0x80+x; // else // address=0xc0+x; // WR_cmd(address); // WR_data(dat); // } void LCD_dis_str(/*uchar x,*/uchar y,uchar *str)//xΪ×ø±ê£¬yΪÐкŠ{ uchar address; if(y==1) // address=0x80+x; address=0x80; else // address=0xc0+x; address=0xc0; WR_cmd(address); while( *str != ' |