《2022年按键控制液晶显示实验 .pdf》由会员分享,可在线阅读,更多相关《2022年按键控制液晶显示实验 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、贵州大学实验报告学院:电气工程学院专业:测控技术与仪器班级:测仪101 姓名学号实验组实验时间2013-12-10 指导教师成绩实验项目名称按键控制液晶显示实验实验目的通过本实验的学习,使学生熟悉和掌握利用按键来控制液晶的显示;实验要求选修实验原理及内容实验内容:采用按键和LCD1602 进行电路设计, 首先控制 LCD 显示一个小数, 通过相应按键选择数字位的状态,并控制该位增加和减少。实验原理:1 在实验三的基础上,首先在LCD1602 的屏幕中显示一个小数。增加四个按键,分别实现设置、增加、减少和确定的功能。实验参考电路图如图1所示。LCD1602 寄存器选择信号RS和AT89C51 的
2、P2.0 相连,高电平时选择数据寄存器,低电平时选择指令寄存器。读写信号 RW 和AT89C51 的P2.1 相连,使能端 E和AT89C51 的P2.2相连。四个按键分别接到AT89C51 的P3.4 P3.7 引脚,AT89C51 的P0作为数据和指令的输出口。1)设置键功能:当第一次按下设置键时,选中小数最高位 (左边第一位)并且该数字位闪烁。再次按下设置键时,选中位右移一位。当选中小数最低位(右边第一位)后,再次按下设置键时,返回,选中位返回小数最高位。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
3、 - - - - - 第 1 页,共 6 页 - - - - - - - - - 2)增加键,减少键功能:当设置键选中需要修改的数字位后,可通过增加或减少功能按键对数值进行相应的加1或减 1。当增加到 9时,返回 0;或者较少到 0时,返回 9。3)确定键功能按下确定功能按键,即返回正常显示。实验仪器PC 机、 Proteus软件、 Keil Vision2软件实验步骤1按照实验原理及接线图在Proteus中画出仿真电路图。2编写程序,进行仿真。实验程序 : #include #include #define uchar unsigned char #define uint unsigned
4、int uchar code table1=0.00; sbit lcdrs=P20; sbit lcdrw=P21; sbit lcde=P22; sbit shezhi=P34; sbit zengjia=P35; sbit jianshao=P36; sbit queding=P37; uint k; uchar num,num1,a,b,c; void delay(uint z) uint i,j; for(i=z;i0;i-) for(j=110;j0;j-); void write_com(uchar com) lcdrw=0; lcdrs=0; P0=com; 名师资料总结 -
5、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - delay(5); lcde=0; delay(5); lcde=1; void write_data(uchar date) lcdrs=1; lcdrw=0; P0=date; delay(5); lcde=0; delay(5); lcde=1; lcdrs=0; void in() lcde=0; write_com(0 x01); write_com(0 x38); write_com(0
6、 x0f); write_com(0 x06); void keyscan1() if(zengjia=0) delay(10); if(zengjia=0) if(k=1) a+;if(a=10)a=0; write_com(0 xc0);delay(5);write_data(0 x30+a); if(k=2) b+;if(b=10);b=0; write_com(0 xc2);delay(5);write_data(0 x30+b); if(k=3) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
7、 - - - - 第 3 页,共 6 页 - - - - - - - - - c+;if(c=10);c=0; write_com(0 xc3);delay(5);write_data(0 x30+c); while(!zengjia); if(jianshao=0) delay(10); if(jianshao=0) if(k=1) if(a=0)a=10;a-; write_com(0 xc0);delay(5);write_data(0 x30+a); if(k=2) if(b=0)b=10;b-; write_com(0 xc2);delay(5);write_data(0 x30+b
8、); if(k=3) if(c=0)c=10;c-; write_com(0 xc3);delay(5);write_data(0 x30+c); while(!jianshao); if(queding=0) delay(10); if(queding=0) write_com(0 xc4); while(!queding); void keyscan() if(shezhi=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - -
9、- delay(10); if(shezhi=0) k+; if(k=4) k=1; if(k=1) write_com(0 xc0); delay(500); if(k=2) write_com(0 xc2); delay(500); if(k=3) write_com(0 xc3); delay(500); void main() in(); write_com(0 xc0); for(num1=0;num14;num1+) write_data(table1num1); delay(5); do keyscan(); delay(5); keyscan1(); delay(5); whi
10、le(1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 实验数据及结果D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LVCCVCCVCCGNDGNDGNDGNDRV110234567891RP1RESPACK-8C11nFC21nFC31nFX1CRYSTALR110kXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039
11、P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52设置增加减少确定实验总结思考:如何用软件消除键盘的机械抖动?答: 用延时来消除键盘抖动,如:if(shezhi=0) delay(10); if(shezhi=0) 通过本实验,不仅让我更好的了解了所学知识,更多的还提高了我对测控系统一些相关东西的兴趣,通过实验与理论的集合,让我认识到,许多高科技的东西,它的原理原来是这么的有趣!指导教师意见签名:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -
限制150内