标题:
LCD1602静态显示
[打印本页]
作者:
九亿少女の梦
时间:
2017-11-28 12:50
标题:
LCD1602静态显示
0.png
(13.2 KB, 下载次数: 57)
下载附件
2017-11-28 21:26 上传
这是楼主自己做的一个基于51单片机的LCD静态液晶显示程序,硬件原理图和C语言文件楼主都放到了附件里,需要的同学可以下载看看。
单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0;
sbit rw=P2^1;
sbit ep=P2^2;
uchar code dis1[]={"51hei.com"}; //这里输入的字符在液晶第一行显示
uchar code dis2[]={"2017/11/28"}; //这里输入的字符在液晶第二行显示
void delay(uint ms)
{
uint i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
uchar Busy_Check(void)
{
uchar LCD_Status;
rs=0;
rw=1;
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_Status=P0&0x80;
ep=0;
return LCD_Status;
}
void lcd_wcmd(uchar cmd)
{
while(Busy_Check());
rs=0;
rw=0;
ep=0; //读状态
_nop_();
_nop_();
P0=cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
void lcd_pos(uchar pos)
{
lcd_wcmd(pos|0x80);
}
void lcd_wdat(uchar dat)
{
while(Busy_Check());
rs=1;
rw=0;
ep=0;
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
void LCD_disp(void)
{
uchar i;
lcd_pos(1);
i=0;
while(dis1[i]!='\0')
{
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(0x41);
i=0;
while(dis2[i]!='\0') //连续写入字符串数据,直到检测到结束符
{
lcd_wdat(dis2[i]); //先取dis指向的数据,然后dis自加1
i++;
}
}
void lcd_init(void)
{
lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据接口
delay(1);
lcd_wcmd(0x0c); //显示器开,光标关闭
delay(1);
lcd_wcmd(0x06); //文字不动,地址自动+1
delay(1);
lcd_wcmd(0x1c);
delay(1);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
lcd显示.zip
(49.66 KB, 下载次数: 18)
2017-11-28 12:47 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1