文档详情

单片机键盘显示实验报告.doc

发布:2016-03-28约5.28千字共8页下载文档
文本预览下载声明
单片机的键盘和显示实验报告 ㈠ 实验目的 掌握单片机I/O的工作方式; 掌握单片机以串行口方式0工作的LED显示; 掌握键盘和LED显示的编程方法。 ㈡ 实验器材 G6W仿真器 一台 MCS—51实验板 一台 PC机 一台 电源 一台 ㈢ 实验内容及要求 实验硬件线路图见附图 从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。 编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。 注:①通过按键来选择加、减、乘、除四种运算方式。 ②输入两个数字均为一位十进制数,可预先放在内存中。 ㈣ 实验框图 (见下页) ㈤ 思考题 当键盘采用中断方式时,硬件电路应怎样连接? P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。 2.74LS164移位寄存器的移位速率是多少? 实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。其实这个问题确实不知道怎么回答。。。。。 LED显示用的段码与教科书所提供的不同,本实验采用如下段码: 显示数符 段码 显示数符 段码 0 BBH A DBH 1 09H B F1H 2 EAH C B2H 3 6BH D E9H 4 59H E F2H 5 73H F D2H 6 F3H — 40H 7 0BH . 04H 8 FBH ┗┛ A1H 9 7BH ┗┛ 1AH 灭 00H P DAH 实验代码: ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化 MOV 42H,#0BBH MOV 43H,#0BBH MOV 44H,#0BBH MOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式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 A KEY1:MOV A,P1 CPL A ANL A,#0FH ;判别按键释放 JNZ KEY1 ;按键未释放,等待 LCALL DELAY1 ;释放,延时去抖动 POP A JB ACC.0,ADD1 ;K1按下转去ADD1 JB ACC.1,SUB1 ;K1按下转去SUB1 JB ACC.2,MUL1 ;K1按下转去MUL1 JB ACC.3,DIV1 ;K1按下转去DIV1 LJMP KEY ADD1: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 ;结果的高位放入R6 LCALL L ;显示缓存区设置 LCALL DELAY2 ;延时一秒后
显示全部
相似文档