No.51028 作者:jnyl 邮件:jnyl@163.net ID:5647 登陆:9次 文章数:11篇 最后登陆IP:218.12.33.2 最后登陆:2006/11/1 21:36:50 注册:2001/8/16 21:58:00 财富:64 发帖时间:2004/3/21 14:06:01 发贴者IP:61.182.207.136 标题:jnyl:为何我的20*2字符液晶(HD44780)有时能显示有时只显示一行方块 摘要:No.51028为何我的20*2字符液晶(HD44780)有时能显示有时只显示一行方块 我使用CYGNAL C8051F005开发机,液晶为深圳TOPWAY20*2字符液晶(HD44780驱动控制), 有时能够显示,大多时候只显示一行方块,请指教,程序如下: #include <c8051f000.h> // SFR declarations #include <stdio.h> #include <intrins.h> //------------------------------------------------------------------------------ ------ // Global CONSTANTS //------------------------------------------------------------------------------ ------ #define DATABUS P0 sbit LCD_RS=P1^0; sbit LCD_RW=P1^1; sbit LCD_E=P1^2; sbit CS=P1^4; unsigned int *P_data; unsigned char code name[8]= {0x41,0x42,0x43,0x44,0x31,0x32,0x33,0x34};//display "ABCD1234" //-------------------------------------------------------- void delayxus(unsigned char aa) { unsigned char data h; for(h=0;h <=aa;h++) {_nop_();_nop_();} } //........................................ void delay1ms(void) { unsigned char data i; for(i=0;i <=250;i++) { _nop_();_nop_(); } } //....................................... void delay100ms(void) { unsigned char data i; for(i=0;i <=50;i++){delay1ms();} } //...................................... void wcode(unsigned char bb) //WRITE CODE TO LCD { LCD_RW=0; LCD_RS=0; DATABUS=bb; LCD_E=0; _nop_();_nop_();LCD_E=1;delayxus(20);LCD_E=0; delayxus(20); } //....................................... void wdata(unsigned char nn)//WRITE DATA TO LCD { LCD_RW=0; LCD_RS=1; DATABUS=nn; LCD_E=0; _nop_();_nop_();LCD_E=1;delayxus(20);LCD_E=0; delayxus(20); } //------------------------------------------------------------------------------ ------ // MAIN ......
>>返回讨论的主题
|