当前位置:文档之家› 键盘扫描显示实验原理及分析报告

键盘扫描显示实验原理及分析报告

键盘扫描显示实验原理及分析报告一、实验目的-------------------------------------------------------------1二、实验要求-------------------------------------------------------------1三、实验器材-------------------------------------------------------------1四、实验电路-------------------------------------------------------------2五、实验说明-------------------------------------------------------------2六、实验框图-------------------------------------------------------------2七、实验程序-------------------------------------------------------------3八、键盘及LED显示电路---------------------------------------------14九、心得体会------------------------------------------------------------- 15十、参考文献--------------------------------------------------------------15一、实验目的;1、掌握键盘和显示器的接口方法和编程方法。

2、掌握键盘扫描和LED八段数码管显示器的工作原理。

二、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。

实验程序可分成三个模块。

1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

2、显示模块:将显示单元的内容在显示器上动态显示。

3、主程序:调用键输入模块和显示模块。

三、实验器材:1、超想-3000TC综合实验仪 1 台2、KEIL仿真器 1 台3、计算机 1 台四、实验电路:五、实验说明:本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。

在判断有键按下后,要有一定的延时,防止键盘抖动。

列扫描码还可以分时用作LED 的位选通信号。

六、实验框图:列码(0e101H)行码(0e103H)七、实验程序:;键盘扫描实验OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口ORG 0000HLJMP STAR;==================================================================== KEY1: MOV 13H,#06HMOV 12H,#20HKEY2: MOV A,12HCPL AMOV R7,AMOV DPTR,#0E101HMOV A,R7MOVX @DPTR,AMOV A,12HCLR CRRC AMOV 12H,AMOV DPTR,#0E103HMOVX A,@DPTRMOV R7,AMOV A,R7CPL AMOV R7,AMOV A,R7ANL A,#0FHMOV 14H,ADEC 13HMOV R7,13HMOV A,R7JZ KEYDIS MOV A,14HJZ KEY2 KEYDIS: MOV A,14H JZ TESTKEY5 MOV A,13HADD A,ACCADD A,ACCMOV 13H,AMOV A,14HINC 13HSJMP TESTKEY2;;=================================================;键盘扫描TESTKEY: MOV A,14HJNB ACC.2,TESTKEY1 INC 13HINC 13HSJMP TESTKEY2 TESTKEY1: MOV A,14HJNB ACC.3,TESTKEY2 MOV A,#03HADD A,13HMOV 13H,A TESTKEY2: MOV DPTR,#0E101HCLR AMOVX @DPTR,A TESTKEY3: MOV R7,#0AH LCALL MLOOPLCALL MLOOP4MOV A,R7MOV R7,13HMOV A,R7MOV DPTR,#0134HMOVC A,@A+DPTRMOV R7,ARET;==================================================================== TESTKEY4: DB 22H ;";==================================================================== TESTKEY5: MOV R7,#0FFHRET;==================================================================== GETKEY: MOV 10H,#20HMOV 0EH,#00HGETKEY1: MOV A,0EHCLR CSUBB A,#06HJNC GOON2MOV DPTR,#0E101HCLR AMOVX @DPTR,AMOV R7,0EHMOV A,#08HADD A,R7MOV R0,AMOV A,@R0MOV R7,AMOV 11H,R7MOV 0FH,#00HGETKEY2: MOV A,0FHCLR CSUBB A,#08HJNC GOON1MOV A,11HJNB ACC.7,KLOOPMOV DPTR,#0E102HMOV A,#01HMOVX @DPTR,ASJMP KLOOP1;;========================================== KLOOP: MOV DPTR,#0E102HCLR AMOVX @DPTR,AKLOOP1: MOV DPTR,#0E102H MOVX A,@DPTRMOV R7,A MOV A,R7ORL A,#02H MOV R7,AMOV A,R7 MOVX @DPTR,A MOV DPTR,#0E102H MOVX A,@DPTRMOV R7,A MOV A,R7ANL A,#0FDH MOV R7,AMOV A,R7 MOVX @DPTR,AMOV A,11HADD A,ACC MOV 11H,A INC 0FH SJMP GETKEY2 GOON1: MOV DPTR,#0E101HMOVX @DPTR,AMOV R7,#01HLCALL MLOOPMOV A,10HCLR CRRC AMOV 10H,AINC 0EHSJMP GETKEY1GOON2: RET;==================================================================== WAIT: MOV DPTR,#0E100HMOV A,#03HMOVX @DPTR,AMOV 08H,#0FFHMOV 09H,#0FFHMOV 0AH,#0FFHMOV 0BH,#0FFHMOV 0CH,#00HMOV 0DH,#00HWAIT1: LCALL GETKEYMOV A,R7JZ WAIT1LCALL KEY1MOV R6,#00HMOV R6,#00HMOV A,R7ANL A,#0FHMOV R7,AMOV A,#24HADD A,R7MOV DPL,AMOV A,#01HADDC A,R6MOV DPH,ACLR AMOVC A,@A+DPTRMOV R7,AMOV 0DH,R7SJMP WAIT1RET;====================================================================TAB:Q0124: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H ;?.[Ofm}.Q012C: DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;•ow|9^yqQ0134: DB 00H, 01H, 04H, 07H, 0FH, 02H, 05H, 08H ;........Q013C: DB 0EH, 03H, 06H, 09H, 0DH, 0CH, 0BH, 0AH ;........Q0144: DB 10H, 11H, 12H, 13H, 14H, 15H, 16H ;.......;==================================================================== MLOOP: MOV 15H,R7MLOOP1: MOV R7,15HDEC 15HMOV A,R7JZ MLOOP3MOV 16H,#64HMLOOP2: MOV A,16HJZ MLOOP1DEC 16HSJMP MLOOP2SJMP MLOOP1MLOOP3: RET;==================================================================== MLOOP4: MOV DPTR,#0E101HCLR AMOVX @DPTR,AMOV DPTR,#0E103HMOVX A,@DPTRMOV R7,AMOV A,R7CPL AMOV R7,AMOV A,R7ANL A,#0FHMOV R7,ARET;==================================================================== ======STAR: MOV R0,#7FHCLR ASTAR1: MOV @R0,ADJNZ R0,STAR1MOV SP,#16HLJMP WAITEND八、键盘及LED显示电路九、心得体会由于时间有限和本身知识水平的限制,本课程设计还存在一些不够完善的地方。

相关主题