单片机键盘显示实验报告_第1页
单片机键盘显示实验报告_第2页
单片机键盘显示实验报告_第3页
单片机键盘显示实验报告_第4页
单片机键盘显示实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机的键盘和显示实验报告 实验目的1. 掌握单片机I/O的工作方式;2. 掌握单片机以串行口方式0工作的LED显示;3. 掌握键盘和LED显示的编程方法。 实验器材1. G6W仿真器一台2. MCS51实验板一台3. PC机一台4. 电源 一台 实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。编写一个计算器程序,当某一键按下时可执行相应的加、减、乘

2、、除运算方式,在四个显示器上显示数学算式和最终计算结果。注:通过按键来选择加、减、乘、除四种运算方式。输入两个数字均为一位十进制数,可预先放在内存中。 实验框图 (见下页) 思考题1. 当键盘采用中断方式时,硬件电路应怎样连接? P1.4P1.7是键输出线,P1.0P1.3是扫描输入线。输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。 2.74LS164移位寄存器的移位速率是多少?实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。其实这个问题确实不知道怎么回答。否有否P1口置输入读P1口开 始显示“

3、0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算LED显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBHADBH109HBF1H2EAHCB2H36BHDE9H459HEF2H573HFD2H6F3H40H70BH04H8FBHA1H97BH1AH灭00HPDAH实验代码:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化 MOV 42H,#0BBH MOV 43H,#0BBH MOV 44H,#0BBH MOV SCON,#00H ;初始化串行口控制寄存器,设置

4、其为方式0 LCALL DISPLAY ;初始化显示KEY:MOV R3,#08H;用来存放两个数据 MOV R4,#02H MOV P1,#0FFH ;初始化P1口 MOV A,P1 ;读取按键状态 CPL A ;取正逻辑,高电平表示有键按下 JZ KEY ;A=0时无键按下,重新扫描键盘 LCALL DELAY1;消抖 MOV A,P1 ;再次读取按键状态 CPL A JZ KEY ;再次判别是否有键按下 PUSH AKEY1:MOV A,P1 CPL A ANL A,#0FH ;判别按键释放 JNZ KEY1 ;按键未释放,等待 LCALL DELAY1;释放,延时去抖动 POP A J

5、B ACC.0,ADD1 ;K1按下转去ADD1 JB ACC.1,SUB1 ;K1按下转去SUB1 JB ACC.2,MUL1 ;K1按下转去MUL1 JB ACC.3,DIV1 ;K1按下转去DIV1 LJMP KEYADD1:LCALL BUFFER ;显示加数和被加数 MOV 43H,#049H LCALL DISPLAY ;显示加号 MOV A,R3 ADD A,R4 DA A MOV R3,A ;相加结果放入R6 ANL A,#0FH MOV R4,A ;结果个位放入R7 MOV A,R3 SWAP A ;半字节交换,高四位放入低四位 ANL A,#0FH MOV R3,A ;结果

6、的高位放入R6 LCALL L;显示缓存区设置 LCALL DELAY2;延时一秒后显示 LCALL DISPLAY LJMP KEYSUB1:LCALL BUFFER ;显示减数和被减数 MOV 43H,#40H LCALL DISPLAY ;显示减号 MOV A,R3 CLR CY ;CY清零 SUBB A,R4 ;做减法 PUSH A RLC A ;带进位循环左移,最高位放入CY JC F ;判断最高位,若为1则跳转到负数ZHENG: POP A MOV R4,A MOV R3,#00H ;高位清零 SJMP OUTFU:POP A CPL A ;取绝对值 INC A MOV R4,A

7、MOV R3,#11H ;显示负号OUT: LCALL L ;显示缓存区设置 LCALL DELAY2 ;延时1s后显示 LCALL DISPLAY LJMP KEYMUL1:LCALL BUFFER ;显示两位乘数 MOV 43H,#99H LCALL DISPLAY ;显示乘号 MOV A,R3 MOV B,R4 MUL AB ;结果放入AB,A中是低8位,B中是高8位 MOV B,#0AH DIV AB ;十进制转换 MOV R4,B ;结果个位放入R7MOV R3,A ;结果的十位放入R6 LCALL L LCALL DELAY2 LCALL DISPLAY ;延时1s后显示 LJMP

8、 KEYDIV1:LCALL BUFFER ;显示除数和被除数 MOV 43H,#62H LCALL DISPLAY ;显示除号 MOV A,R3 MOV B,R4 DIV AB ;A除以B MOV R4,B ;余数放在R4中 MOV R3,A ;商放在R3中 MOV A,R4 MOVC A,A+DPTR ;调用段选号 MOV 41H,A ;显示余数 MOV A,R3 MOVC A,A+DPTR MOV 43H,A ;显示商 MOV 42H,#00H MOV 44H,#00H LCALL DELAY2 ;延时1S后显示 LCALL DISPLAY LJMP KEYBUFFER: MOV 41H

9、,#22H ;显示初始化,在做计算之前显示两个操作数,显示等号 MOV DPTR,#TABL MOV A,R4 MOVC A,A+DPTR MOV 42H,A MOV A,R3 MOVC A,A+DPTR MOV 44H,A RETDISPLAY:MOV R5,#04H;共四位需要显示 MOV R0,#41HDISPLAY1:MOV A,R0 MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2;是否传完了 CLR TI INC R0 DJNZ R5,DISPLAY1 RETL:MOV A,R4 MOVC A,A+DPTR MOV 41H,A ;R4对应的段码 MOV A,R3

10、 MOVC A,A+DPTR MOV 42H,A ;R3对应的段码 MOV 43H,#00H MOV 44H,#00H RETDELAY1: ;普通延时MOV R1,#20HDS1:MOV R2,#0FFHDS2:DJNZ R2,DS2 DJNZ R1,DS1 RETDELAY2:MOV R6,#14H ;定时1S MOV TMOD,#01HDS3:MOV TH0,#3CH MOV TL0,#0B0H ;50ms SETB TR0LOOP:JNB TF0,LOOP CLR TF0 CLR TR0 DJNZ R6,DS3 ;1s到,中断返回 RETTABL:DB 0BBH 09H 0EAH 6B

11、H ;段码表 DB 59H 73H 0F3H 0BH DB 0FBH 7BH 00H 0DBH DB 0F1H 0B2H 0E9H 0F2H DB 0D2H 40H实验结果及分析按键1:8+2= 结果:10按键2:8-2= 结果: 6按键3:8*2= 结果:16按键4:8/2= 结果:4从上面的结果可以看出,本次实验基本完成了实验要求。本次实验主要运用了键盘接口和LED显示方面的知识,掌握了如何读取键盘状态和消抖:MOV P1,#0FFH ;初始化P1口 MOV A,P1 ;读取按键状态 CPL A ;取正逻辑,高电平表示有键按下 JZ KEY ;A=0时无键按下,重新扫描键盘 LCALL DELAY1;消抖 MOV A,P1 ;再次读取按键状态 CPL A JZ KEY ;再次判别是否有键按下 PUSH AKEY1:MOV A,P1 CPL A ANL A,#0FH ;判别按键释放 JNZ KEY1 ;按键未释放,等待 LCALL DELAY1;释放,延时去抖动 POP A在计算过程的显示中复习了定时器的知识:DELAY2:MOV R6,#14H ;定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论