8279键盘扫描输入实验
实验五 键盘显示接口芯片8279的应用-1 8279功能介绍

1.8279功能介绍图3.1 8279 引脚图 8279是可编程的键盘、显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279内部有键盘FIFO (先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。
该芯片能自动消抖并具有双键锁定保护功能。
显示RAM容量为16*8,即显示器最大配置可达16位LED 数码显示。
(1)数据线DB0→DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU 和8279之间的数据和命令。
(2)地址线/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故8279芯片占用2个端口地址。
(3)控制线CLK:8279的时钟输入线。
IRQ:中断请求输出线,高电平有效。
/RD、/WR:读、写输入控制线。
SL0---SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。
RL0---RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线。
SHIFT:来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态,该位状态控制键盘上/下档功能。
在传感器方式和选通方式中,该引脚无用。
CNTL/S:控制/选通输入线,高电平有效。
键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0---RL7的数据存入FIFO RAM 中。
OUTA0---OUTA3:通常作为显示信号的高4位输出线。
OUTB0---OUTB3:通常作为显示信号的低4位输出线。
/BD:显示熄灭输出线,低电平有效。
当/BD=0时将显示全熄灭。
2. 8279的工作方式8279有三种工作方式:键盘方式、显示方式和传感器方式。
(1) 键盘工作方式8279在键盘工作方式时,可设置为双键互锁方式和N 键循回方式。
实验八8279显示实验

实验八8279显示实验
一.实验要求
利用8279键盘显示接口电路,做成一个电子钟。
该钟使用T1作50ms的定时中断。
利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,其有显示稳定、程序简单、不会出现误动作等特点。
本实验利用8279实现显示扫描自动化。
8279操作命令字较多,根据需要来灵活使用,通过本实验可初步熟悉使用方法。
电子钟做成如下格式:
XX XX XX 由左向右分别为: 时、分、秒。
二.实验目的
1.掌握在8031系统中扩展8279键盘显示接口的方法。
2.掌握8279工作原理和编程方法。
3.进一步掌握中断处理程序的编程方法。
三.实验电路及连线
8279电路部分与实验机监控所用电路相同,地址已确定如下
8279状态口地址为0FF82H;
8279数据口地址为0FF80H;
K10的10个短路套置于8279方式端。
四.实验说明
8279通用接口芯片,根据应用需要可以在多种模式下工作,详见有关手册。
五.实验框图
程序框图:
P79T1.ASM主程序框图
INIT8279子程序框图INIT_T1中断子程序框图
DISLED子程序框图DISPLAY子程序框图。
对键盘显示器的自动扫描

利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,并具有显示稳定、程序简单、不会出现误动作等特点。
本实验系统中8279的状态/命令口地址位8701H;数据口地址位8700H。
示例程序运行将显示"8279 --",并等待按键输入,将键值显示在数码管上(只响应0-F按键)。
Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 10H ;右端输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 38H ;扫描速率LEDCLS EQU 0D1H ;清除LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址ORG 0000HAJMP STARTORG 0040HSTART:MOV SP,#60HLCALL INIT8279 ;初始化8279WAIT: MOV DPTR,#Z8279MOVX A,@DPTRANL A,#0FHJZ WAITMOV A,#40HMOVX @DPTR,AMOV DPTR,#D8279MOVX A,@DPTRANL A,#3FHMOV R4,#00HMOV R5,ALCALL DISLEDSJMP WAITINIT8279: ;8279初始化子程序 PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY ;延时MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式 MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率 MOVX @DPTR,AMOV A,#LEDCLS ;清除 LED 显示 MOVX @DPTR,ALCALL DELAY ;延时MOV DPTR,#Z8279MOV A,#90HMOV DPTR,#D8279MOV A,#40HMOVX @DPTR,AMOV A,#40HMOVX @DPTR,AMOV A,#0HMOVX @DPTR,AMOV A,#0HMOVX @DPTR,AMOV A,#0EFHMOVX @DPTR,AMOV A,#27HMOVX @DPTR,AMOV A,#5BHMOVX @DPTR,AMOV A,#7FHMOVX @DPTR,APOP ACC ;恢复现场POP DPLPOP DPHRET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX @DPTR,A ;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置 MOV A,R5MOVC A,@A+DPTR ;查表MOV DPTR,#D8279MOVX @DPTR,A ;显示数据POP ACC ;恢复现场POP DPLPOP DPHRETDELAY: ;延时子程序PUSH 0 ;保存现场PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场POP 0RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4, 5,6,7'DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C, D,E,F'DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I, O,P, 'END单片机系统中有两种 LED显示方式,即静态显示和动态显示,静态显示的优点是显示效果好,编程简单,但由于输出的每一位都需要锁存,使用的硬件较多;动态显示方式中,各位数码管的a–h端并连在一起,每一时刻只有一位数码管被点亮,各位依次轮流被点亮,硬件电路简单,但由于需要不停地进行刷新显示,降低了CPU的效率,而且编程的工作量很大。
单片机8279键盘显示实验

6.4 可编程键盘/显示器接口——Intel 8279Intel 8279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。
键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,接收输入信息,它能自动消除开关抖动并能对多键同时按下提供保护。
显示输出时,它有一个16×8位显示RAM,其内容通过自动扫描,可由8位或16位LED数码管显示。
1.8279的内部结构和工作原理8279的内部结构框图如图6.28所示。
下面分别介绍电路各部分的工作原理。
1) I/O控制及数据缓冲器数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU和8279之间的命令或数据,对应的引脚为数据总线D0~D7。
I/O控制线是CPU对8279进行控制的引线,对应的引脚为数据选择线A0、片选线、读/写信号线和。
2) 控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示工作方式控制字,同时还用来寄存其它操作方式控制字。
这些寄存器接收并锁存各种命令,再通过译码电路产生相应的信号,从而完成相应的控制功能。
与其对应的引脚为时钟输入端CLK及复位端RESET。
定时控制电路由N个基本计数器组成,其中,第一个计数器是一个可编程的N级计数器,N为2~31之间的数。
定时控制经软件编程,将外部时钟CLK分频,得到内部所需的100 kHz 时钟,为键盘提供适当的扫描频率和显示扫描时间。
与其相关的引脚是显示熄灭控制端。
3) 扫描计数器扫描计数器由键盘和显示器共用,为它们提供扫描信号。
扫描计数器有两种工作方式:编码方式和译码方式。
按编码方式工作时,计数器作二进制计数,4位计数状态从扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供扫描信号。
按译码方式工作时,扫描计数器的最低两位被译码后,从SL0~SL3输出,提供了4选1的扫描译码。
与其相关的引脚是扫描线SL0~SL3。
4) 回复缓冲器、键盘去抖及控制在键盘工作方式下,回复线作为行列式键盘的列输入线,相应的列输入信号称为回复信号,由回复缓冲器缓冲并锁存。
8279键盘扫描输入实验

实验二 8279键盘扫描输入实验一、实验目的1.熟悉INTEL8279键盘、显示器接口与8031的连接方法;2.掌握8279键盘扫描输入程序的编写;二、实验要求编写一个键盘扫描输入程序,把读取到的键值依次存放在8031片内RAM的30H-43H 单元中,超过20个键值时,多余的健值存放在44单元中。
三、芯片应用特性8279是专用键盘、显示控制芯片,能对显示器自动扫描;能识别键盘上按下的键号,可充分提高CPU工作效率,8279与8031的接口方便,由它构成的标准键盘、显示接口在工业控制中得到广泛的应用。
1.关于INTEL 8279无编码器键盘常常采用软件方法,逐行逐列地检查键盘状态,当发现按下的键后,用计算或查表等方法来找到该键的键编码。
而INTEL 8279公司的键盘、显示接口芯片是一种扫描式键盘编码器芯片8279是一种通用可编程键盘显示接口芯片,它能完成键盘输入和显示控制两种功能。
键盘部分提供一种扫描方式,可与64个按键的矩阵键盘连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n 键同时按下实行保护。
显示部分分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可显示多达16个字符或数字。
2. 实验板8279键盘、显示电路介绍:8279采用外部译码操作方式,74LS138输出8位显示器的位控制信号和键盘的行扫描信号。
8279的8位输出线A0-A3和B0-B3与数码管的8个段相对应,经74LS240缓冲后,去驱动各数码管的8个段。
74LS138输出的8根线由74LS240反相后,再经大电流驱动器ULN2003A驱动,成为各数码管的位选择信号,当位选信号有效时(呈0电平),相应数码管被选通,而显示内容则取决于它的各个显示段的电平。
四、实验步骤1.线路连接及注意事项1)线路连接8279键盘键值可采用查询方式读取,也可以采用中断方式读取。
8279键盘显示实验

8279键盘显示实验一、实验目的与要求了解8279的内部结构、工作原理;了解8279与8088的接口逻辑;掌握对8279的编程方法,掌握使用8279扩展键盘、显示器的方法。
认真预习,做好实验前的准备工作,自行编写程序,填写实验报告二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:利用8279实现对F4区的键盘扫描,将键号显示于8位数码管上2、按图连线,运行程序,观察实验结果,能熟练运用8279扩展显示器和键盘。
四、实验原理图五、实验步骤1、连线说明:2、运行程序,观察实验结果(任意按下F4区4X4键盘几个键,它上面的8个LED显示器会将按键的编码从左至右依次显示出来),可依此验证对8279芯片操作的正确性。
六、演示程序.MODEL TINYCMD_8279 EQU 0BF01H ;8279命令字、状态字地址DATA_8279 EQU 0BF00H ;8279读写数据口的地址.STACK 100.DATAKEYCOUNT DB ?LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH.CODESTART: MOV AX,@DATAMOV DS,AXNOPCALL INIT8279 ;初始化子程序MOV KEYCOUNT,0START1: CALL SCAN_KEY ;键扫描JNC START1 ;没有按键XCHG AL,KEYCOUNTINC ALCMP AL,9JNZ START2MOV KEYCOUNT,0CALL INIT8279_1;8个数码块全有字符显示后,再按键,清除显示JMP START1START2: XCHG AL,KEYCOUNTCALL KEY_NUM ;键值转换为键号LEA BX,LED_TAB ;字型码表XLATCALL WRITE_DATAJMP START1START_EXIT: JMP $;8279初始化INIT8279 PROC NEARMOV DX,CMD_8279 ;CMD_8279为写命令地址、读状地址MOV AL,34H;可编程时钟设置,设置分频系数(20分频)OUT DX,ALMOV AL,0;8*8字符显示,左边输入,外部译码键扫描方式OUT DX,AL; MOV AL,0A0H; OUT DX,ALCALL INIT8279_1RETINIT8279 ENDPINIT8279_1 PROC NEARCALL CLEAR ;清显示MOV AL,90H ;从第一个数码管开始移位显示OUT DX,ALRETINIT8279_1 ENDPCLEAR PROC NEARMOV DX,CMD_8279MOV AL,0DEH ; 清除命令OUT DX,ALWAIT1: IN AL,DXTEST AL,80HJNZ WAIT1 ; 显示RAM清除完毕吗?RETCLEAR ENDPSCAN_KEY PROC NEARMOV DX,CMD_8279IN AL,DX ;读状态READ_FIFO: AND AL,7JZ NO_KEY ;是否有键按下READ: MOV AL,40HOUT DX,AL ;读FIFO RAMMOV DX,DATA_8279IN AL,DXSTC ;有键SCAN_KEY1: RETNO_KEY: CLC ;无键按下,清CYJMP SCAN_KEY1SCAN_KEY ENDPKEY_NUM PROC NEARAND AL,3FHRETKEY_NUM ENDPWRITE_DATA PROC NEARMOV DX,DATA_8279OUT DX,ALRETWRITE_DATA ENDPEND START七、实验扩展及思考重新编写软件实验二,自己编写键扫描、显示程序。
8279键盘

一、实验目的1、掌握8279的工作原理。
2、熟悉8279与键盘接口的方法。
3、学习、了解键盘扩展方法。
二、实验内容将每次按键产生的键码显示在LED数码管。
三、实验原理介绍实验原理图见8279键盘显示电路。
四、实验步骤1、实验接线:将8279的RL0~RL7分别与键盘的RL10~RL17相连。
2、将8279的KA0~KA2分别与键盘的KA10~KA12相连。
3、用查询法编程4、全速运行程序,按动按键,观察显示键值的变化。
五、实验提示1、8279的I/O地址已连好,为490的偶地址,即:数据口为490H,状态口为492H。
2、8279外部输入时钟已连好,时钟频率为1MHZ。
3、8279所以,D5 D4 D3表示按下键所在的列号,D2 D1 D0表示按下的键所在的行号。
采用8279可以识别最大达8x8的矩阵键盘。
六、实验结果第一行键值从左至右依次为:C0—C5;第二行键值从左至右依次为:C6—CB;第三行键值从左至右依次为:CC—D1;第四行键值从左至右依次为:D2—D7;七、实验程序框图(实验程序名:T8279.asm)八、程序源代码清单con8279 equ 0492hdat8279 equ 0490hassume cs:codecode segment publicorg 100hstart: jmp start1segcod db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h start1: mov dx,con8279mov al,10hout dx,al ;编码扫描键盘,双键锁定mov al,2ah ;10分频得到100KHzout dx,alcall blackrkey: mov dx,con8279disla2: in ax,dx ;读入状态字and ax,07hjz disla2 ;没有按键则等待!mov dx,dat8279in ax,dx ;读入键值and ax,0ffhmov bx,axnop ;设断点观察键值call black ;总清显示RAMnopdisp:mov di,offset segcodmov ax,08h ;工作方式,16位,左入mov dx,con8279out dx,axmov ax,90hmov dx,con8279out dx,ax ;写显示RAM命令,地址自增 mov dx,dat8279push bxand bx,0f0hmov cl,4shr bx,cladd di,bxmov al,cs:[di]mov ah,0out dx,ax ;写RAM0nopnopmov di,offset segcodpop bxand bx,0fhadd di,bxmov al,cs:[di]mov ah,0out dx,ax ;写RAM1nopnoppush cxjmp rkeyblack: mov dx,con8279mov ax,0d1hout dx,ax ;显示RAM全部清零mov cx,80h ;循环次数clsb: nopnoploop clsbretcode endsend start。
单片机实验上机--实验二十一8279键盘显示实验

实验二十一8279键盘显示实验一、实验目的1.了解8279内部定时/计数器使用方法2.学习计数器各种工作方式的用法二、实验说明键盘和八段显示器可以直接使用单片机89C51的并行口,或者用74LS273和74LS244、并行接口芯片8255或多功能接口芯片8155与微型计算机接口。
用上述接口方法,对键盘和显示器的扫描是由软件实现的,不但程序比较复杂,更不利的是占用CPU很多时间。
若采用专用的可编程键盘/显示控制器8279与微型计算机接口,则由8279对键盘和显示器进行自动扫描,充分地提高CPU的工作效率。
Inetel8279芯片是一种通用的可编程键盘显示器接口器件,单个芯片就能完成键盘输入和八段显示器显示控制两种功能。
8279的内部结构如下图:DB0~DB7——数据总线,三态,双向CLK——时钟输入Ao——数据选择,输入RD、WR——读、写,输入,低电平有效IRQ——中断请求信号,输出,高电平有效SL0~SL3——扫描信号,输出RL0~RL7——回复信号,输入SHIFT——移位信号,输入,高电平有效CNTL/STB——控制/选通信号,输入,高电平有效OUTA3~OUTA0——A组显示信号,输出OUTB3~OUTB0——B组显示信号,输出BD——显示消隐信号,输出,低电平有效三、实验内容及步骤1、单片机最小应用系统1的 P0口接8279的DB0~DB7口,8279的Y0~Y7接动态扫描显示的SMG1~SMG6口, OUTB0~OUTA3口接动态扫描显示的段码口;单片机最小应用系统1的WR、RD、P2.0、P2.7、ALE、RESET、INT0分别接8279的WR、RD、A0、CS、CLK、RESET、IRQ。
2、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把87C52型仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
3、启动计算机,打开伟福仿真软件,进入仿真环境。
选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 8279键盘扫描输入实验一、实验目的1.熟悉INTEL8279键盘、显示器接口与8031的连接方法;2.掌握8279键盘扫描输入程序的编写;二、实验要求编写一个键盘扫描输入程序,把读取到的键值依次存放在8031片内RAM的30H-43H 单元中,超过20个键值时,多余的健值存放在44单元中。
三、芯片应用特性8279是专用键盘、显示控制芯片,能对显示器自动扫描;能识别键盘上按下的键号,可充分提高CPU工作效率,8279与8031的接口方便,由它构成的标准键盘、显示接口在工业控制中得到广泛的应用。
1.关于INTEL 8279无编码器键盘常常采用软件方法,逐行逐列地检查键盘状态,当发现按下的键后,用计算或查表等方法来找到该键的键编码。
而INTEL 8279公司的键盘、显示接口芯片是一种扫描式键盘编码器芯片8279是一种通用可编程键盘显示接口芯片,它能完成键盘输入和显示控制两种功能。
键盘部分提供一种扫描方式,可与64个按键的矩阵键盘连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n 键同时按下实行保护。
显示部分分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可显示多达16个字符或数字。
2. 实验板8279键盘、显示电路介绍:8279采用外部译码操作方式,74LS138输出8位显示器的位控制信号和键盘的行扫描信号。
8279的8位输出线A0-A3和B0-B3与数码管的8个段相对应,经74LS240缓冲后,去驱动各数码管的8个段。
74LS138输出的8根线由74LS240反相后,再经大电流驱动器ULN2003A驱动,成为各数码管的位选择信号,当位选信号有效时(呈0电平),相应数码管被选通,而显示内容则取决于它的各个显示段的电平。
四、实验步骤1.线路连接及注意事项1)线路连接8279键盘键值可采用查询方式读取,也可以采用中断方式读取。
查询方式须设等待键输入指令。
实验板上,8279的中断请求线(IRQ)经反相后与插座CN8相连。
做实验时,只须短接CN8上的KBIRQ、INT0。
2)注意事项因8279的RL0无法回扫键值。
实验板上,首行键盘与回扫线RL4相连,与原理图不同。
编程时请注意,首行键盘编码值为04H、0CH、14H、1CH、24H。
2.程序设计1)关于8279的端口实验板的硬件连接决定了8279的数据口为2FFEH,当对数据口执行读操作时,读取到的数据为键值编码,对数据口执行写操作时,数据写入显示RAM中,8279的命令、状态口为2FFFH,当对命令状态口执行读操作时,读取到的数据为FIFO状态字,对命令、状态口执行写操作时,写入的为命令字。
2)关于8279在键盘工作方式时键盘编码值:在键盘工作方式中,键盘数据格式中的D7、D6表示CNTL和SHIFT状态,D5、D4、D3表示SL2、SL1、SL0的8个译码状态,D2、D1、D0表示RL0-RL7的8个状态。
因为8279的CNTL和SHIFT接地,所以高两位为零。
对于8 x 8的键盘其键盘编码值为:3-8译码器Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7000 001 010 011 100 101 110 111RL0:000 00H 08H 10H 18H 20H 28H 30H 38HRL1:001 01H 09H 11H 19H 21H 29H 31H 39HRL2:010 02H 0AH 12H 1AH 22H 2AH 32H 3AHRL3:011 03H 0BH 13H 1BH 23H 2BH 33H 3BHRL4:100 04H 0CH 14H 1CH 24H 2CH 34H 3CHRL5:101 05H 0DH 15H 1DH 25H 2DH 35H 3DHRL6:110 06H 0EH 16H 1EH 26H 2EH 36H 3EHRL7:111 07H 0FH 17H 1FH 27H 2FH 37H 3FH本实验采用4 x 5(4行5列)的键盘,因RL0无法回扫键盘,首行键改为与RL4相连,因此键盘的键盘值编码实际为:3-8译码器Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7RL4:100 04H 0CH 14H 1CH 24H 2CH 34H 3CHRL1:001 01H 09H 11H 19H 21H 29H 31H 39HRL2:010 02H 0AH 12H 1AH 22H 2AH 32H 3AHRL3:011 03H 0BH 13H 1BH 23H 2BH 33H 3BH3)关于8279的初始化教材和参考书中对8279的初始化都是先执行总清零命令字,等待清除完显示RAM后,再设置分频命令字、键盘/显示工作方式字和其它初始化命令字。
如果按照书本上的初始化顺序,在总清零后,执行其它初始化命令字,该命令字有可能显示在LED上,无法达到清零显示器的目的。
解决的办法是先执行其它初始化命令,最后执行总清零命令。
另外,在键盘中断服务程序中,不必按照书本上先设置读FIFO RAM命令字,因为在键盘工作方式时,读出操作严格按照先进先出的顺序,如果要加上该命令字,跟其它初始化命令字一样,把它加到总清零命令之前。
3.程序调试1)程序编译无误后,下装到仿真机。
2)单步执行指令,完成分频系数设定、工作方式选择等初始化工作后,接着执行清零指令,此时LED全部灭掉,开中断,等待键按下。
按下第一行第一个键后。
程序将跳到INT0的入口地址,ORG 0003H处,继续执行后面的跳转指令,跳到中断服务程序中去。
在中断服务程序中,从数据口读取键值,并放在内部RAM 30H单元。
键值存放RAM地址加1,中断返回,等待下一次按键。
3)查看内部RAM 30H单元存放的键值,看是否为04H。
4)从左到右,从上到下每按一次键,执行一次中断服务程序,执行20次中断服务程序后,在30H-43H内存单元中存放键盘的20个键值。
5)检验这20个键盘键值的分布情况相符否?6)继续执行程序,以后获取的键值将存放在44H单元中。
4程序联调在键盘工作方式中,当FIFO RAM存有数据时,IRQ为高电平。
CPU每次从RAM中读取数据时,IRQ变为低电平。
8279的中断请求线IRQ经反相器与插座CN8 KBIRQ相连,因此用逻辑笔检查KBIRQ。
当有键按下时,其为低电平,向CPU申请中断,在中断服务程序中读取键值后,IRQ变为低电平,此时在用逻辑笔测KBIRQ则变为高电平。
注意:如果连续按了好几下键,则IRQ一直是高电平(KBIRQ则一直为低电平,向CPU 申请中断),除非把RAM中的所有键值读完后才再次恢复为低电平(KBIRQ则为高电平,停止向CPU申请中断)。
五、结果说明RL0无法回扫键盘、清零后分频命令字和工作方式命令字都显示在LED,产生这两个问题的原因可能是8279芯片的缺陷。
六、实验报告要求1. 实验目的、步骤,2. 观察实验现象,记录存放在片内RAM单元30H-43H中的键值,分析讨论实验结果是否正确。
3. 画出程序框图。
4. 附参考程序附程序清单ORG 0000HSJMP MAINORG 0003H ;外部中断0入口地址AJMP INT_0 ;转移到中断服务程序MAIN: MOV SP, # 60H ;初始化堆栈CLR EA ;关闭所有的中断MOV DPTR, # 2FFFH ;指向命令/状态口MOV A, #00H ;置键盘/显示器工作方式命令字MOVX @DPTR, A ;送入命令字MOV A, #2AH ;置分频命令字MOVX @DPTR, A ;送入命令字MOV A, #40H ;置读FIF0 RAM命令字MOVX @DPTR, A ;送入命令字MOV A, #0DFH ;置总清零命令字,将显示RAM所有单元置1MOVX @DPTR, A ;送入命令字WAIT: MOVX A, @DPTR ;读入状态字JB ACC.7, WAIT ;等待清除CLR F0 ;清零有键标志位CLR 76H ;清零键值存满标志位SETB IT0 ;下降沿触发SETB EA ;打开所有中断SETB EX0 ;开外部中断0MOV R0, #30H ;键值存放首地址为30HMOV R7, #14H ;存放20个键ATT: LCALL RDKEY ;调用读键子程序JB 76H , KEYOUT ;76H内为存完20个键值标志MOV @R0, A ;不到20个键,则保存该键值INC R0 ;键值存放地址加1DJNZ R7, A TT ;不到20个键,则继续读键值SETB 76H ;已经有20个键,置位键值存满标志KEYOUT: MOV 44H, A ;以后读取的键值放44HSJMP A TT ;返回继续读键INT_0: MOV DPTR, #2FFEH ;指向数据口MOVX A, @DPTR ;读入键值ANL A, #3FH ;屏蔽高两位SETB F0 ;置1有键标志RETI ;中断返回RDKEY: JB F0, K1 ;有键标志如为1,则说明已获取1个键值SETB EX0 ;还没有读入键值,开键盘中断SJMP RDKEY ;继续等待键盘中断K1: CLR F0 ;清零有键标志,为下一次读键准备CLR EX0 ;关键盘中断,返回处理键值RET。