
项目四键盘接口设计1.docx
6页设计2 基于8255的键盘/显示器接口设计1、实验目的1、掌握8255接口芯片在数码显示中的应用;2、学习按键识别和动态数码显示字符方法;3、掌握按键识别和数码管字符显示的汇编语言编程方法实验仪器1、DJ-598KC开发系统1 台2、PC机1台、实验内容1、数码管字符显示系统组成及原理微处理器CPU8088★该系统采用8255芯片扩展连接“ 6位动态共阴数码管”模块★实验仪上包括6只数码管及相应驱动电路,见下图所示数码管字形口接8255的B 口,位扫口接 A口,74LS245和74LS240为显示驱动电路,确保正常显示见星LAI 3A3 5A5 774LS24SIIHE1〃总馥收发转)2口 VCC19 *” 配1T 团16 瞪15 B314 留V£C?4LS245宇海代码口 HED XL3240包的12 前“ B7PE0PB7PAOPA7ML S 24 5广人小广士/人In6 1 M5 l]Jd HS m UI 1 tr tj tr Tzr tzr tr 尸心[FA4[ p姓I f力f丸订 pauI2.键盘电路结构及原理★键盘结构:由24个键组成,排列为如上图所示的 4 >8阵列结构★识别原理:识别键盘上的闭合键,通过采用列扫描法。
列扫描法是使键盘上某一 列线为低电平,而其余列接高电平,然后读取行值;如果行值中有某位为低电平,则表明 行列交点处的键被按下;否则扫描下一列,直到扫完全部的列线为止本键盘由8255的PA口输出列扫线,由8255的PC口读取行值线3. 8255编程控制方法8255A的操作功能表cs Rb WR Al AO操作数据传送方式00100读A 口A 口数据一数据总线00101读B 口B 口数据一数据总线00110读C 口c 口数据r数据总战01000写A 口数据总线数据T A 口01001写B 口数据总线数据-B 口01010用C 口数据总线数据一 C 口01011写控制口数据总线数据一控制口设设置控制命令字一向控制口写控制命令字使A 口和B口为工作方式0输出,C 口为工作方式 0 输入下★向 B 口输出字型码, 向 A 口输出位选码及键盘列扫线值,由 C 口输入键盘的按键值★ 8255基地址为 0FF20H,则 A 口地址 0FF20H B 口地址 0FF21H,C 口地址 0FF22H 控制口地址0FF23H 4. 实验系统搭建与使用a.键盘显示器设置:JK开关置“系统”处b.通讯选择设置:KB6开关置“88”处,并将随机配送的串行通讯线,一端与实验仪的RS232D®插座CZ1相连,另一端与PC机COM或COM弹行口相连。
c. 接通实验仪电源 , +5V LED 指示灯正常发光,实验仪数码管显示闪动 P. ,说明实验仪初始化成功,处于待命状态 (否则应及时关闭电源,待修正常后使用)d. 打开 PC 机电源 ,执行DJ8086K 的集成调试软件,关于该软件的详细说明请参阅《DJ-8086K实验系统与PC机联机操作》5. 键值显示程序设计1) 、实验要求要求利用实验仪,触发按键,并显示键值2)实验分析根据扫描和显示原理,计算字型码,编制延时函数等3)实验参考程序清单CODE SEGMENTASSUMECS: CODEPCON EQU 0FF23H ; 控制口PAEQU 0FF20H;字位口PBEQU 0FF21H;字形口PCEQU 0FF22H;键入口ORG 1000HSTART: JMP START0BUF DB ?,?,?,?,?,?;定义6位LED显缓单元data1: DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hDB 88h,83h0,c6h,0a1h,86h,8eh,0ffh,0ch,89h,0dehDB 0c7h,8ch,0f3h,0bfh,8FH,0F1H;LED 字符代码表data 2: DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H,02H,0FHDB 03H,0EH,0CH,0DH; 键值表START0: MOV DX,PCON MOV AL,81HOUT DX,ALSTART1: CALL KEYCALLBUF1CALLDISPJMP START1KEY: MOV AL,0FFH ; 键盘扫描子程序MOV DX,PB OUT DX,AL MOV BL,00HMOV AH,0FEHMOV CX,08HKEY1: MOV AL,AHMOV DX,PA OUT DX,AL ROL AL,01H MOV AH,AL NOPNOPNOPNOPNOPNOPMOV DX,PC IN AL,DX NOT ALNOPNOPAND AL,0FHJNZ KEY2 INC BL LOOP KEY1 JMP NKEYKEY2: TEST AL,01HJE KEY3MOV AL,00HJMP KEY6KEY3: TEST AL,02HJE KEY4MOV AL,08HJMP KEY6KEY4: TEST AL,04HJE KEY5MOV AL,10HJMP KEY6KEY5: TEST AL,08HJE NKEYMOV AL,18HKEY6: ADD AL,BLCMP AL,10HJNC FKEYMOV BL,ALMOV BH,0HMOV SI,OFFSET data2MOV AL,[BX+SI]MOV BUF+5,ALRETNKEY: MOV AL,20HFKEY: RETDISP:MOV AL,0FFHMOV DX,PAOUT DX,AL ;关闭显示器MOV CL,0DFH ;初始位选码MOV BX,OFFSET BUFDIS1:MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET data1ADD BX,AXMOV AL,[BX] ; 取得字型码POP BXNEXT: MOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0H ; 延时LOOP $POP CXCMP CL,0FEH; 刷新一遍后,从头开始JZ LX1MOV AL,0FFHMOV DX,PA OUT DX,AL INC BXROR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,19HMOV BUF+1,11HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,10H RET四、实验报告要求根据“根据键值显示程序设计”内容,完善程序,实现一键多字符数码的显示功能。
要求报告上有程序代码、操作方法和结果 关闭显示器显示下一位;ROL CL,1显缓区数据初始化,” J”P”--不显示完善程序,实现一键多字符数码的显示功能。












