键盘输入及七段数码管显示实验.doc
9页.大学实验报告学院:电气工程学院 专业:电子信息工程 班级:电信091学号09080402实验组实验时间6.13指导教师教师成绩实验工程名称实验四: 键盘输入与七段数码管显示实验实验目的①.学会利用8255扩展I/O口;②.掌握行列式键盘、7段数码显示器接口的设计方法,验证7段数码管显示原理;③.通过软硬件结合,了解单片机应用中软硬件的相依性实验要求1. 根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学2. 要求学生按本实验指导书后附的实验报告格式和要求的容写出实验报告,实验报告应包括实验预习、实验记录和实验报告等三局部容实验原理1.实验原理:①.实验电路原理图如图4-1所示图4-1 实验电路原理图②.实验软件参考框图如图4-2所示开 始8255初始化〔PA口输入,PB口输出,PC口输出〕读PA口译键判断A口有键按下否?YN...10取F段码取1段码取0段码取段码送PB口F32图4-2 软件参考框图③.实验程序根据本实验容由学生自行编制注意:PA口地址为8000H,PB 口地址为8001H、PC 口地址为8002H,8255控制口地址为8003H。
2.实验方法:根据上面实验原理图,通过软硬件相结合,用扩展的8255的三个I/O口控制键盘的输入和对应键值符号的显示3.实验手段:利用微型电子计算机和THGMW-1型单片机实验开发系统实验箱组成的实验系统进展实验实验仪器1.主要仪器设备①.微型电子计算机 (型号:启天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)集成电路取下,用一根导线将U9E(74LS07)集成电路插座上的第8脚与第7脚("GND〞)连接〔使显示模块中右起第一个七段数码管共阴极接"地〞,这是为使本实验能按图4-1 所示的实验电路原理进展而做的必要改动〕;5.向微机中输入实验程序;6. 编辑程序;7. 编译、连接、定位,载入程序;8.单步或全速执行程序,观察键盘键值能否在七段数码显示器上正常显示;9. 结果符合本实验要求,本实验完成;否那么,检查排除硬件问题重复步骤6、7、8;或检查排除软件问题重复步骤5、6、7、8;直到七段数码显示器上显示的数字与键盘上按下的键号一致。
实验容①.扩展一片8255芯片,A口接一个16位行列式键盘输入,B口输出控制一只LED七段数码管显示器;②.通过编程并全速运行,在按下相应按键时,七段数码管显示器上显示相应的符号〔定义16个字符,设定为:0-A〕实验数据实验程序: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 ;无键按下是返回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.0, LONE ;查第0行无键按下,转查第1行MOV A, #00H ;第0行有键按下,行首键码#00H送〔A〕AJMP LKP ;转求键码LONE: JB ACC.1, LTWO ;查第1行无键按下,转查第2行MOV A, #01H ;第1行有键按下,行首键码#01H送〔A〕AJMP LKP ;转求键码LTWO: JB ACC.2, LTHR ;查第2行无键按下,转查第3行MOV A, #02H ;第2行有键按下,行首键码#02H送〔A〕AJMP LKP ;转求键码LTHR: JB ACC.3, LFOU ;查第3行无键按下,转查第4行MOV A, #03H ;第3行有键按下,行首键码#03H送〔A〕AJMP LKP ;转求键码LFOU: JB ACC.4, LFIV ;查第4行无键按下,转查第5行MOV A, #04H ;第4行有键按下,行首键码#04H送〔A〕AJMP LKP ;转求键码LFIV: JB ACC.5, LSIX ;查第5行无键按下,转查第6行MOV A, #05H ;第5行有键按下,行首键码#05H送〔A〕AJMP LKP ;转求键码LSIX: JB ACC.6, LSEV ;查第6行无键按下,转查第7行MOV A, #06H ;第6行有键按下,行首键码#06H送〔A〕AJMP LKP ;转求键码LSEV: JB ACC.7, NEXT ;查第7行无键按下,转查下1列MOV A, #07H ;第7行有键按下,行首键码#07H送〔A〕LKP: ADD A, R4 ;求键码, 键码=行首键码+列号,在本程序中设第0;列的列号为"0”,第1列的列号为"8”PUSH ACC ;键码进栈保护LK3: ACALL KS1 ;等待键释放JNZ LK3 ;键未释放,继续等待POP ACC ;键释放,键码送〔A〕ACALL 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 ;全扫字送〔A〕MOVX DPTR, A ;全扫字送8255C口DEC DPTR ;DPTR指向8255A口DEC DPTRMOVX A, DPTR ;读入A口行状态CPL A ;变正逻辑,以高电平表示有键按下RET ;出口状态〔A〕不等于0时有键按下T12MS: MOV R7, #18H ;延时12MS子程序TM: MOV R6, #0FFHTM6: DJNZ R6, TM6DJNZ R7, TMRET 。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


