按键控制液晶显示实验.docx
- 文档编号:17326907
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:8
- 大小:67.30KB
按键控制液晶显示实验.docx
《按键控制液晶显示实验.docx》由会员分享,可在线阅读,更多相关《按键控制液晶显示实验.docx(8页珍藏版)》请在冰点文库上搜索。
按键控制液晶显示实验
按键控制液晶显示实验
贵州大学实验报告
学院:
电气工程学院专业:
测控技术与仪器班级:
测仪101
姓名
学号
实验组
实验时间
2013-12-10
指导教师
成绩
实验项目名称
按键控制液晶显示实验
实验目的
通过本实验的学习,使学生熟悉和掌握利用按键来控制液晶的显示;
实验要求
选修
实验原理及内容
实验内容:
采用按键和LCD1602进行电路设计,首先控制LCD显示一个小数,通过相应按键选择数字位的状态,并控制该位增加和减少。
实验原理:
1.在实验三的基础上,首先在LCD1602的屏幕中显示一个小数。
增加四个按键,分别实现设置、增加、减少和确定的功能。
实验参考电路图如图1所示。
LCD1602寄存器选择信号RS和AT89C51的P2.0相连,高电平时选择数据寄存器,低电平时选择指令寄存器。
读写信号RW和AT89C51的P2.1相连,使能端E和AT89C51的P2.2相连。
四个按键分别接到AT89C51的P3.4~P3.7引脚,AT89C51的P0作为数据和指令的输出口。
1)设置键功能:
当第一次按下设置键时,选中小数最高位(左边第一位)并且该数字位闪烁。
再次按下设置键时,选中位右移一位。
当选中小数最低位(右边第一位)后,再次按下设置键时,返回,选中位返回小数最高位。
2)增加键,减少键功能:
当设置键选中需要修改的数字位后,可通过增加或减少功能按键对数值进行相应的加1或减1。
当增加到9时,返回0;或者较少到0时,返回9。
3)确定键功能
按下确定功能按键,即返回正常显示。
实验仪器
PC机、Proteus软件、KeilμVision2软件
实验步骤
1.按照实验原理及接线图在Proteus中画出仿真电路图。
2.编写程序,进行仿真。
实验程序:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable1[]="0.00";
sbitlcdrs=P2^0;
sbitlcdrw=P2^1;
lcde=1;
}
voidwrite_data(uchardate)
{
lcdrs=1;
lcdrw=0;
P0=date;
delay(5);
lcde=0;
delay(5);
lcde=1;
lcdrs=0;
}
voidin()
{
lcde=0;
write_com(0x01);
write_com(0x38);
write_com(0x0f);
write_com(0x06);
}
voidkeyscan1()
{
if(zengjia==0)
{
delay(10);
if(zengjia==0)
{
if(k==1)
{
a++;if(a==10)a=0;
write_com(0xc0);delay(5);write_data(0x30+a);
}
if(k==2)
{
b++;if(b==10);b=0;
write_com(0xc2);delay(5);write_data(0x30+b);
}
if(k==3)
{
c++;if(c==10);c=0;
write_com(0xc3);delay(5);write_data(0x30+c);
}
while(!
zengjia);
}
}
if(jianshao==0)
{
delay(10);
if(jianshao==0)
{
if(k==1)
{
if(a==0)a=10;a--;
write_com(0xc0);delay(5);write_data(0x30+a);
}
if(k==2)
{
if(b==0)b=10;b--;
write_com(0xc2);delay(5);write_data(0x30+b);
}
if(k==3)
{
if(c==0)c=10;c--;
write_com(0xc3);delay(5);write_data(0x30+c);
}
while(!
jianshao);
}
}
if(queding==0)
{
delay(10);
if(queding==0)
{
write_com(0xc4);
while(!
queding);
}
}
}
voidkeyscan()
{
if(shezhi==0)
{
delay(10);
if(shezhi==0)
{
k++;
if(k==4)
k=1;
if(k==1)
write_com(0xc0);
delay(500);
if(k==2)
write_com(0xc2);
delay(500);
if(k==3)
write_com(0xc3);
delay(500);
}
}
}
voidmain()
{
in();
write_com(0xc0);
for(num1=0;num1<4;num1++)
{
write_data(table1[num1]);
delay(5);
}
do
{
keyscan();
delay(5);
keyscan1();
delay(5);
}
while
(1);
}
实验数据
及
结果
实验总结
思考:
如何用软件消除键盘的机械抖动?
答:
用延时来消除键盘抖动,如:
if(shezhi==0)
{
delay(10);
if(shezhi==0)
通过本实验,不仅让我更好的了解了所学知识,更多的还提高了我对测控系统一些相关东西的兴趣,通过实验与理论的集合,让我认识到,许多高科技的东西,它的原理原来是这么的有趣!
指导教师意见
签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 按键 控制 液晶显示 实验