液晶1602(1602液晶模块介绍)
最近有个小伙伴在后台留言告诉我,老师给他们留了一个设计作业,用单片机驱动LCD1602显示任意字符 。我在业余时间做了一个小实验,希望能帮他做个参考,也希望你看完能有所收获 。
51单片机驱动LCD1602液晶显示系统的PROTEUS仿真及源代码设计
不要胡说八道 。先上实体图吧 。
LCD1602+51单片机最小系统的制作及应用仿真
好了,我们正式进入制作流程:
第一步:模拟
画出原理图 。仿真时,单片机最小系统只需要一个单片机,但实际电路需要配备电源模块和复位模块 。如下图:
请在附件中找到原理图文件 。
原理图画好之后,写代码,生成十六进制文件 。参考代码如下:
/* * * * * * * * * * * * * * * * * *功能* * * * * * * * * * * * * * * *
/*使用外部中断输入来改变LED状态,并用1602显示其状态*/
#包括
#包括
#定义uint无符号整数
#定义uchar无符号字符
uchar码表[]= "你好1602 ";
uchar code table0[]="1602测试";
uchar代码table1[]= "结果:";//空写入LCD,即空也是内容 。
uchar码表2[]="OK!";
uchar code table3[]= "梁";
uchar码表4[]= " mie ";
uchar编号;
sbit led=p1^7;
sbit lcden=p2^0;//LCD使能端子
sbit lcdrs=p2^2;//液晶数据命令选择端选择是写数据还是写命令 。
Void delay(uint z) //延迟函数
{
uint i,j;
for(I = z;I > 0;我-)
for(j = 110;j > 0;j-);
}
Void write_com(uchar com) //写入
{
LCD RS = 0;//LCD选择输入命令
P0 = com//向端口P0输入命令 。端口39-32
延迟(5);//延迟
LC den = 1;//打开LCD使能
延迟(5);//高电平脉冲
LC den = 0;//关闭LCD使能
}
void write_data(uchar日期)
{
LCD RS = 1;//设置为输入数据
P0 =日期;//将数据分配给端口P0
延迟(5);//延迟
LC den = 1;//设为高电平
延迟(5);//高脉冲
LC den = 0;//设为低电平以完成高电平脉冲
}
Voiinit ()//LED初始化
{
LC den = 0;
write _ com(0x 38);//设置16x2显示5x7点阵和8位数据接口 。
write _ com(0x0c);//设置不显示光标的开始显示(指令4)
【1602液晶模块介绍 液晶1602】write _ com(0x 06);//写完一个字符后地址指针加1(指令3)
write _ com(0x 01);//清除显示数据指针(指令1)
}
Void display(unsigned char *p)//根据指针地址写入数据
{
while(*p!='[66]')
{
write _ data(* p);//写入数据
p++;
延迟(1);
}
}
void main()
{
TCON = 0x 01;//将中断设置为INTO
IE = 0x81
led = 0;
init();
write _ com(0x 80);//将数据指向第一行的第一个单词,
显示(表格);//通过调用函数写入数据
延迟(800);
write _ com(0x 80);//将数据指向第一行的第一个单词,
显示(表0);//通过调用函数写入数据
write _ com(0x 80+0x 40);//定义指针位置,将数据指向第二行的第一个单词 。
for(num=0;num
推荐阅读
- 油漆怎么洗掉
- 吃长毛的紫薯对身体有什么危害
- u盘格式化什么意思
- 如何做丝瓜鸡蛋汤好喝
- 孕睫术做完眼睛会肿吗
- 南京小食品批发市场 南京批发市场
- 什么样的紫薯是转基因
- 投资100每天收益3.24元 余额宝存1000一天多少钱
- 如何引导孩子正确饮食