LCD1602初探
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void lcd_initial(void); //LCD初始化函数
void check_busy(void); //检查是否忙碌函数
void write_command(uchar com); //写命令函数
void write_data(uchar dat); //写数据函数
void string(uchar ad,uchar *s); //显示字符串函数
void delay(uint); //延时函数
void main(void)
{
lcd_initial(); //调用初始化函数
while(1)
{
string(0x85,"mzf");
string(0xC2,"185*****5260");
delay(100);
write_command(0x01);
delay(100);
}
}
void delay(uint j) //1ms的延时
{
uchar i=250;
for(;j>0;j--)
{
while(--i);
i=249;
while(--i);
i=250;
}
}
void check_busy(void)
{
uchar dt;
do
{
dt=0xff; //dt为变量单元,初值为0xff
E=0;
RS=0; //RS等于0,E=1时,才能够进行读忙碌状态
RW=1;
E=1;
dt