按键控制液晶显示实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

贵州大学实验报告学院:电气工程学院专业:测控技术与仪器班级:测仪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.编写程序,进行仿真。实验程序:#includereg52.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintucharcodetable1[]=0.00;sbitlcdrs=P2^0;sbitlcdrw=P2^1;sbitlcde=P2^2;sbitshezhi=P3^4;sbitzengjia=P3^5;sbitjianshao=P3^6;sbitqueding=P3^7;uintk;ucharnum,num1,a,b,c;voiddelay(uintz){uinti,j;for(i=z;i0;i--)for(j=110;j0;j--);}voidwrite_com(ucharcom){lcdrw=0;lcdrs=0;P0=com;delay(5);lcde=0;delay(5);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;num14;num1++){write_data(table1[num1]);delay(5);}do{keyscan();delay(5);keyscan1();delay(5);}while(1);}实验数据及结果D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LVCCVCCVCCGNDGNDGNDGNDRV110234567891RP1RESPACK-8C11nFC21nFC31nFX1CRYSTALR110kXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.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)通过本实验,不仅让我更好的了解了所学知识,更多的还提高了我对测控系统一些相关东西的兴趣,通过实验与理论的集合,让我认识到,许多高科技的东西,它的原理原来是这么的有趣!指导教师意见签名:年月日

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功