代码如下:
- #include<reg51.h>
- #include"LCD1602.h"
- void mian()
- {
- LCD1602init();
- while(1)
- {
- LCD1602write('T');
- LCD1602write('T');
- LCD1602write('T');
- LCD1602write('T');
- //LCD1602write('T');//老紫真特么醉了,5个T可以显示为毛4个T显示不出来!
- while(1);
- }
- }
复制代码连续显示5个T完全正常,但是要它只显示4个,屏幕什么都不显示,3个、2个、1个T都不行。但是5个以上的T就可以显示。求大神解答,实在感激不尽!
使用的头文件如下:
*.h文件:
- #include<reg51.h>
- #ifndef __LCD1602_h_
- #define __LCD1602_h_
- sbit RW=P2^5;
- sbit RS=P2^6;
- sbit LCDE=P2^7;
- void LCD1602com(unsigned char com); //头文件中声明函数 如果有形参,则形参不能省略
- void LCD1602write(unsigned char Byte);
- void LCD1602init(); //初始设置
- void delay1ms(); //延时
- #endif
复制代码*.c文件:
#include"LCD1602.h"
void delay1ms()
{
unsigned char a,b;
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void LCD1602com(unsigned char com)
{
RS=0;
RW=0;
P0=com;
delay1ms();
LCDE=1;
delay1ms();
LCDE=0;
}
void LCD1602write(unsigned char Byte)
{
RS=1;
RW=0;
P0=Byte;
delay1ms();
LCDE=1;
delay1ms();
LCDE=0;
}
void LCD1602init()
{
LCD1602com(0x38);
LCD1602com(0x0c);
LCD1602com(0x06);
LCD1602com(0x80);
LCD1602com(0x01);
delay1ms();
}
一周热门 更多>