标题:
51单片机1602显示程序
[打印本页]
作者:
哇哈哈~呵
时间:
2018-4-8 20:58
标题:
51单片机1602显示程序
lcd显示程序
单片机源程序如下:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rs=P3^2; //1602的数据/指令选择控制线
sbit rw=P3^3; //1602的读写控制线
sbit en=P3^4;
uchar code table[]="zxcv";
uchar code table1[]="study up";
void delay(uint n) //延时函数
{ uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
void lcd_wcom(uchar com)
{ rs=0; //选择指令寄存器
rw=0; //选择写
P2=com; //把命令字送入P2
delay(5); //延时一小会儿,让1602准备接收数据
en=1; //使能线电平变化,命令送入1602的8位数据口
en=0;
}
void lcd_wdat(uchar dat) //1602写数据函数
{
rs=1; //选择数据寄存器
rw=0; //选择写
P2=dat; //把要显示的数据送入P2
delay(5); //延时一小会儿,让1602准备接收数据
en=1; //使能线电平变化,数据送入1602的8位数据口
en=0;
}
void lcd_init()
{
lcd_wcom(0x38); //8位数据,双列,5*7字形
lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁
lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位
lcd_wcom(0x01); //清屏
}
void main()
{
uchar n,m=0;
lcd_init(); //液晶初始化
lcd_wcom(0x80); //显示地址设为80H(即00H,)上排第一位
for(m=0;m<4;m++) //将table[]中的数据依次写入1602显示
{
lcd_wdat(table[m]);
delay(200);
}
lcd_wcom(0x80+0x44);
//重新设定显示地址为0xc4,即下排第5位
for(n=0;n<8;n++) //将table1[]中的数据依次写入1602显示
{
lcd_wdat(table1[n]);
delay(200);
}
while(1);
}
复制代码
所有资料51hei提供下载:
液晶.rar
(165 KB, 下载次数: 12)
2018-4-8 20:57 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1