如下的个显示程序,只能显示"hello!" 第二行怎么也不显示,没整了,上来求救. #include <reg51.h> #include <intrins.h> sbit rs=P2^0; sbit rw=P2^1; sbit ep=P2^2; typedef bit BOOL; typedef unsigned char BYTE;
BYTE code dis1[]={"hello!"}; BYTE code dis2[]={"who are you?"};
BOOL lcd_bz() { BOOL reslut; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); reslut=(BOOL)(P0 & 0x80); ep = 0; return reslut; } delay(BYTE ms) { BYTE i; while(ms--) { for(i=0;i<250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } } void lcd_wcommd(BYTE commd) { while(lcd_bz()); rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); P0 = commd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; }
void lcd_wdate(BYTE date) { while(lcd_bz()); rs = 1; rw = 0; ep = 0; P0 = date; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; } lcd_pos(BYTE pos) { lcd_wcommd(pos | 0X80); } lcd_init() { lcd_wcommd(0x38); delay(1); lcd_wcommd(0x0c); delay(1); lcd_wcommd(0x06); delay(1); lcd_wcommd(0x01); delay(1); }
main() { BYTE i; lcd_init(); delay(10); lcd_pos(0x05); i = 0; while(dis1 != '\0') { lcd_wdate(dis1); i++; } lcd_pos(0x40); i=0; while(dis2 != '\0'); { lcd_wdate(dis2); i++; } } 请帮忙看看,学习ing 谢谢!!!!! |