键盘输入和七段数码管显示实验

上传人:re****.1 文档编号:501990654 上传时间:2023-01-22 格式:DOC 页数:7 大小:1.21MB
返回 下载 相关 举报
键盘输入和七段数码管显示实验_第1页
第1页 / 共7页
键盘输入和七段数码管显示实验_第2页
第2页 / 共7页
键盘输入和七段数码管显示实验_第3页
第3页 / 共7页
键盘输入和七段数码管显示实验_第4页
第4页 / 共7页
键盘输入和七段数码管显示实验_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《键盘输入和七段数码管显示实验》由会员分享,可在线阅读,更多相关《键盘输入和七段数码管显示实验(7页珍藏版)》请在金锄头文库上搜索。

1、 .wd.贵州大学实验报告学院:电气工程学院 专业:电子信息工程 班级:电信091姓名学号09080402实验组实验时间6.13指导教师教师成绩实验工程名称实验四: 键盘输入与七段数码管显示实验实验目的学会利用8255扩展I/O口;掌握行列式键盘、7段数码显示器接口的设计方法,验证7段数码管显示原理;通过软硬件结合,了解单片机应用中软硬件的相依性。实验要求1. 根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学2. 要求学生按本实验指导书后附的实验报告格式和要求的内容写出实验报告,实验报告应包括实验预习、实验记录和实验报告等三局部内容。实验原理1实验原理:实验电路原理图

2、如图41所示 图41 实验电路原理图实验软件参考框图如图42所示开 始8255初始化PA口输入,PB口输出,PC口输出读PA口译键判断口有键按下否YN10取段码取段码取段码取段码送PB口。 图42 软件参考框图 实验程序根据本实验内容由学生自行编制。注意:PA口地址为8000H,PB 口地址为8001H、PC 口地址为8002H,8255控制口地址为8003H。2实验方法:根据上面实验原理图,通过软硬件相结合,用扩展的8255的三个I/O口控制键盘的输入和对应键值符号的显示。实验手段:利用微型电子计算机和THGMW-1型单片机实验开发系统实验箱组成的实验系统进展实验。实验仪器1主要仪器设备微型

3、电子计算机 (型号:启天2710) 20台 . 单片机实验开发系统实验箱 (型号:THGMW-1) 20个实验步骤1按照实验指导教师的指导和本实验指导书附录二的内容正确连接实验系统;2在THGMW-1单片机实验开发系统实验箱内找到CPU模块F3区、8255 模块C6 区、8279 键盘与显示模块E7 区;3. 用8位数据线对应连接8255 模块的JD3C(PA 口)、JD4C(PB 口)、JD5C(PC 口)到8279模块的JD3E、JD2E、JD4E,用导线连接8255模块的片选端CS_8255到CPU模块中的8000H; 4. 将显示模块E7 区中U9E(74LS07)集成电路取下,用一根

4、导线将U9E(74LS07)集成电路插座上的第8脚与第7脚(“GND)连接使显示模块中右起第一个七段数码管共阴极接“地,这是为使本实验能按图41 所示的实验电路原理进展而做的必要改动;5向微机中输入实验程序;6. 编辑程序;7. 编译、连接、定位,载入程序;8单步或全速执行程序,观察键盘键值能否在七段数码显示器上正常显示;9. 结果符合本实验要求,本实验完成;否则,检查排除硬件问题重复步骤6、7、8;或检查排除软件问题重复步骤5、6、7、8;直到七段数码显示器上显示的数字与键盘上按下的键号一致。实验内容扩展一片8255芯片,A口接一个16位行列式键盘输入,B口输出控制一只LED七段数码管显示器

5、;通过编程并全速运行,在按下相应按键时,七段数码管显示器上显示相应的符号定义16个字符,设定为:0A。实验数据实验程序:ORG 0000HLJMP STARTORG 0100HSTART: MOV DPTR, #8003H ;指向8255控制口MOV A, #90H MOVX DPTR, A ;送90H控制字到8255控制口MOV DPTR, #8001H ;指向指向8255B口CLR A ; A累加器清0MOVX DPTR, A ;送B口,让7段数码管无显示KEY1: ACALL KS1 ;调用判断有无键按下子程序JNZ LK1 ;有键按下时,A不为0转消抖动延时AJMP KEY1 ;无键按

6、下是返回LK1: ACALL T12MS ;调12MS延时子程序ACALL KS1 ;再查有无键按下JNZ LK2 ;假设有,则A不为0,可确认有键按下,转逐列;扫描AJMP KEY1 ;否则A为0,不是真有键按下,则返回LK2: MOV R2, #0FEH ;初始列扫描字0列送入R2MOV R4, #00H ;初始列0列号送入R4LK4: MOV DPTR, #8002H ;指向8255控制C口MOV A, R2 MOVX DPTR, A ;列扫描字送8255控制C口DEC DPTR ;DPTR指向8255A口DEC DPTRMOVX A, DPTR ;从8255A口读入行状态JB ACC.

7、0, LONE ;查第0行无键按下,转查第1行MOV A, #00H ;第0行有键按下,行首键码#00H送AAJMP LKP ;转求键码LONE: JB ACC.1, LTWO ;查第1行无键按下,转查第2行MOV A, #01H ;第1行有键按下,行首键码#01H送AAJMP LKP ;转求键码LTWO: JB ACC.2, LTHR ;查第2行无键按下,转查第3行MOV A, #02H ;第2行有键按下,行首键码#02H送AAJMP LKP ;转求键码LTHR: JB ACC.3, LFOU ;查第3行无键按下,转查第4行MOV A, #03H ;第3行有键按下,行首键码#03H送AAJM

8、P LKP ;转求键码LFOU: JB ACC.4, LFIV ;查第4行无键按下,转查第5行MOV A, #04H ;第4行有键按下,行首键码#04H送AAJMP LKP ;转求键码LFIV: JB ACC.5, LSIX ;查第5行无键按下,转查第6行MOV A, #05H ;第5行有键按下,行首键码#05H送AAJMP LKP ;转求键码LSIX: JB ACC.6, LSEV ;查第6行无键按下,转查第7行MOV A, #06H ;第6行有键按下,行首键码#06H送AAJMP LKP ;转求键码LSEV: JB ACC.7, NEXT ;查第7行无键按下,转查下1列MOV A, #07

9、H ;第7行有键按下,行首键码#07H送ALKP: ADD A, R4 ;求键码, 键码=行首键码+列号,在本程序中设第0;列的列号为“0”,第1列的列号为“8”PUSH ACC ;键码进栈保护LK3: ACALL KS1 ;等待键释放JNZ LK3 ;键未释放,继续等待POP ACC ;键释放,键码送AACALL DISP ;调显示子程序输出键码到七段数码显示器AJMP KEY1 ;转继续查键NEXT: MOV A, R4 ;ADD A, #08H ;将第1列的列号改成“8”MOV R4, A ;第1列列号送入R4MOV A, R2 ;取扫描字JNB ACC.1, KEND ;判断2列扫描完否扫描完返回继续查键RL A ;未扫描完,扫描字左移1位,变为下一列扫描字MOV R2, A ;扫描字送R2AJMP LK4 ;转下1列扫描KEND: AJMP KEY1 ; ;查有无键按下子程序KS1: MOV DPTR, #8002H ;DPTR指向8255C口MOV A, #00H ;全扫字送AMOVX DPTR, A ;全扫字送8255C口DEC DPTR ;DPTR指向8255A口DEC DPTRMOVX A, DPTR ;读入A口行状态CPL A ;变正逻辑,以高电平表示有键按下RET ;出口状态A不等于0时有键按下T12MS: MOV R7, #18H ;延时12MS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号