这几天在自学1602液晶,感觉有点蒙逼,自己连了图,但是并不能显示,估计是我图连错了,跪求大神指点,给指正一下。以下是我连的图和程序:
#include <reg52.h>
typedef unsigned char uint8;
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit EN = P1^5 ;
sbit BUSY = P0^7;
/**
* 等待繁忙标志
*/
void wait(void)
{
P0 = 0xFF;
do
{
RS = 0;
RW = 1;
EN = 0;
EN = 1;
}while (BUSY == 1);
EN = 0;
}
/**
* 写数据
*/
void w_dat(uint8 dat)
{
wait();
EN = 0;
P0 = dat;
RS = 1;
RW = 0;
EN = 1;
EN = 0;
}
/**
* 写命令
*/
void w_cmd(uint8 cmd)
{
wait();
EN = 0;
P0 = cmd;
RS = 0;
RW = 0;
EN = 1;
EN = 0;
}
/**
* 初始化1602
*/
void Init_LCD1602(void)
{
w_cmd(0x38); // 16*2显示,5*7点阵,8位数据接口
w_cmd(0x0C); // 显示器开、光标开、光标允许闪烁
w_cmd(0x06); // 文字不动,光标自动右移
w_cmd(0x01); // 清屏
}
main()
{
Init_LCD1602();
w_cmd(0x80);
w_dat(2 + '0');
while (1);
}
非常感谢。
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit EN = P1^5 ;
程序中指向 P1 口,电路图中却连接到 P0 口。
一周热门 更多>