实验5键盘显示控制器8279应用实验.docx
- 文档编号:3389738
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:6
- 大小:19.39KB
实验5键盘显示控制器8279应用实验.docx
《实验5键盘显示控制器8279应用实验.docx》由会员分享,可在线阅读,更多相关《实验5键盘显示控制器8279应用实验.docx(6页珍藏版)》请在冰豆网上搜索。
实验5键盘显示控制器8279应用实验
实验5键盘显示控制器8279应用实验
实验五键盘显示控制器98279应用实验一、实验目的1、掌握51系统中,扩展8279键盘显示接口的方法。
2、掌握8279工作原理和编程方法。
二、预备知识8279A是一种通用的可编程键盘/显示器接口器件,可对64个开关矩阵组成的键盘进行自动扫描,接收键盘上的输入信息,存入内部的FIFO存放器,并在有键输入时,CPU请求中断。
8279A内部还有一个16×8的显示缓冲器,能对8位或16位LED自动扫描,使显示缓冲器的内容在LED上显示出来。
11、引脚功能DB0~DB7:
双向数据总线,以便和CPU之间传递命令、数据和状态。
CLK:
时钟输入线,以产生内部时钟。
RESET:
复位线,高电平有效。
复位后,8279A置为16位显示左边输入,编码扫描键盘,时钟系数为31。
/CS:
片选,低电平有效。
A0:
地址输入线,用以区分数据线传送的是数据还是命令。
A0=0传送的是数据;A0=1传送的是命令。
/RD:
读线,低有效,内部缓冲器信息送DB0~DB7。
/WR:
写线,低有效。
收数据总线上的信息写入内部缓冲区。
IRQ:
中断请求输出线,高有效。
当FIFORAM中有键输入数据时,IRQ升为高电平,向CPU请求中断。
CPU读出FIFORAM时,IRQ变为低电平,假设RAM中数据还有,IRQ又返回高电平,直至RAM中为空,IRQ才保持低电平。
SL0~SL3:
输出扫描线,用以对键盘/传感器矩阵和显示器进行扫描。
RL0~RL7:
键盘/传感器矩阵的行(列)数据输入线。
其内部有拉高电阻,使之保持高电平。
SHIFT:
换档输入线,内部有拉高电阻,使之保持高电平。
TL/STB:
控制/选通输入线,内部有拉高电阻,使之保持高电平。
OUTA0~OUTA3:
四位输出口。
OUTB0~OUTB3:
四位输出口。
这两个口是16×4显示器更新存放器的输出端,输出的数据和SL0~SL3上同步,用于多位显示器显示。
/BD:
显示消隐输出线,低电平有效。
V:
地。
22、A8279A内部结构
(1)8279A内部具有时序控制逻辑,通过控制和时序存放器存放键盘和显示器的工作方式和其他状态信息。
内部还包含有N分频器,分频系数为N,由2~31之间任一数可编程确定,对CLK上时钟进行N分频以产生根本的100KHZ的内部计数(扫描时间为5.1ms,去抖动时间为10.3ms)。
(2)8279A内部的扫描计数器有两种工作方式:
一是编码方式,计数器以二进制方式计数,4位计数器的状态直接从SL0~SL3上输出,由外部译码对SL0~SL3译码产生键盘和显示的扫描,高电平有效;二是译码方式,对计数器的低二位译码后从SL0~SL3上
输出,作为4×8键盘和4位显示器的扫描,低电平有效。
(3)8279A在键盘工作时,由输入缓冲区锁存RL0~RL7上的信息,以确定键入情况,其内部有去抖动电路(10ms)。
(4)FIFO/传感器RAM:
它是一个双功能8×8RAM,在键盘和选通输入方式中,它是一个先进先出的数据缓冲器。
当/CS=0,A0=1,/RD=0时,读出FIFO的内容,FIFO中有数据时,由控制电路发IRQ,在传感方式中,8×8RAM用作传感器RAM,当检测到某个传感器发生变化时,IRQ上升为高电平。
(5)显示地址存放器和显示RAM:
用于存放CPU当前正在读写的显示RAM单元地址,以及正在显示的两个4位半字节地址。
在选定了工作方式和地址后,CPU可直接读出显示RAM中的内容。
33、A8279A的控制命令
(1)键盘显示器方式设置命令76543210000DDKKK位2~0:
数据输入及扫描方式000:
编码扫描,键盘输入,2键无锁*001:
译码扫描,键盘输入,2键无锁010:
编码扫描,键盘输入,多键有效011:
译码扫描,键盘输入,多键有效100:
编码扫描,传感器陈列检测101:
译码扫描,传感器陈列检测110:
编码扫描,选通输入111:
译码扫描,选通输入带*表示复位以后的值位4~3:
显示方式00:
8字符显示,左端输入*01:
16字符,左端输入10:
8字符显示11:
16字符显示,右端输入带*表示复位以后设定为该种方式
(2)扫描频率控制命令76543210001P4P3P2P1P0P4-P0:
设置值0-31,对外部时钟的分频系数,使fclk÷分频系数=100KHZ复位以后,P4~P0=31(fclk为外部接入时钟)(3)读FIFO前设置的读地址命令76543210010AIA2A1A0A2~A0:
8×8位的FIFO的地址000~111
AI:
AI=1自动增1;AI=0不自动增1(4)读显示RAM前设置的读地址命令76543210011AIA3A2A1A0A3~A0:
16×8位的显示RAM的地址0000~1111AI:
AI=1自动增1;AI=0不自动增1(5)写显示RAM前设置的写地址命令76543210100AIA3A2A1A0A3~A0:
16×8位的显示RAM的地址0000~1111AI:
AI=1自动增1;AI=0不自动增1(6)显示RAM写入禁止/消隐命令(BCD码显示用)76543210101IWAIWBBLABLBBLB:
=1,消隐BBLA:
=1,消隐AIWB:
=1,屏蔽BIWA:
=1,屏蔽A(7)去除FIFO状态字、显示RAM去除命令7654321011OCD2CD1CD0CFCACA:
总去除CA=0,去除显示RAM;CA=1,去除显示RAM及FIFO状态字CF:
=1去除FIFO,中断输出线复位CD2~CD0:
10×将显示RAM各单元都清为00H;110将显示RAM各单元都清为20H;111将显示RAM各单元都清为FFH;0××不去除,但CA=1时,CD1CD0仍有效。
说明:
去除显示MRAM约需160us,此时FIOFO状态字最高位Du=1,表示显示无效,UCPU不能向显示MRAM写入数据。
(8)中断结束/出错方式设置命令76543210111EE=1为设置中断结束/出错方式,复位后E=04、FIFO状态字76543210
DUS/EOUFNNNNNN:
FIFO中的字符数000~111F:
=1FIFO满U:
=1FIFO取空出错O:
=1FIFO溢出出错S/E:
=1传感器进入传感器RAM,多键同时按下错误DU:
=1显示无效FIFO状态字由控制字口读入5、8259的数据输入输出(A0=0,是数据输入输出,即数据操作)对8279输入数据(如显示数据、键盘输入数据、传感器矩阵数据等)时,要选择数据输入输出口地址。
8279的数据输入输出口地址由A0=0确定。
D7D6D5D4D3D2D1D0TLSHIFTSL2SL1SL0RL7-RL0的状态SL2、SL1、SL0为扫描线,RL7-RL0为回复。
在键盘工作方式中,键盘数据格式中的D7、D6表示TL和SHIFT状态,D5、D4、D3表示扫描线SL2、SL1、SL0的8个译码状态,即SL2、SL1、SL0。
D2、D1、D0表示回复线RL7-RL0的8个状态。
三、实验内容实验原理图见图4-7-1,系统中8279A接口芯片及其相关电路完成键盘扫描和显示,本实验以查询方式获取键盘状态信息,读取键值。
键值转换成显示代码供显示。
根据原理图,得到键值和键名的对照表4-7-1,显示值和显示代码对照表4-7-2。
利用8279可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定、程序简单、不会出现误动作等优点。
本实验利用8279实现显示扫描自动化。
表表44--77--11键名0123456789A键值23H2BH33H3BH22H2AH32H3AH21H29H31H键名BCDEF键值39H20H28H30H38H表表44--77--22显示值01234567显示代码3FH06H5BH4FH66H6DH7DH07H显示值89ABCDEF显示代码7FH6FH77H7CH39H5EH79H71H四、实验原理图如图4-7-1所示:
图4-7-1五、实验内容及步骤
(一)实验内容1、利用Proteus软件绘制MCS-51单片机最小系统,8279键盘显示接口电路、矩阵键盘、数码管电路。
2、编写程序,实现基于8279的矩阵按键检测及数码管的键值显示。
a10b9c8d5e4f2g3dp7gp1gp6LED8a10b9c8d5e4f2g3dp7gp1gp6LED7a10b9c8d5e4f2g3dp7gp1gp6LED6a10b9c8d5e4f2g3dp7gp1gp6LED5a10b9c8d5e4f2g3dp7gp1gp6LED4a10b9c8d5e4f2g3dp7gp1gp6LED3a10b9c8d5e4f2g3dp7gp1gp6LED2a10b9c8d5e4f2g3dp7gp1gp6LED112345678BIT12345678DUabcdefghbit1bit2bitit4bit5bit6bit7bit81A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y1Y4122Y192Y272Y352Y431G12G19UB5274LS244A1B2C3E14E25E36Y015YY213Y312Y411Y510Y69Y77UB5374LS138OUTA027OUTB031OUTA126OUTB130OUTA225OUTB229OUTA324OUTB328DB012BD23DB113DB214SL032DB315SL133DB416SL234DB517SL335DB618DB719RL038RL139IRQ4RL21RL32CS22RL45RD10RL56WR11RL67A021RL78CLK3SHIFT36RESET9TL/S37UB518279VCCGND/WR/RDD0D1D2D3D4D5D6D7A0abcdefgh12345678KH1A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y1Y4122Y192Y272Y352Y431G12G19UB5474LS24412345678KLKY012345678DU8279CLKGNDGNDGND87654321BITEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P12134P145P156P167P178P0039P0138P0237P0336P0435P0534P0630732P202XP2122P2222324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10C5111.059230P30PGNDVCC123JR47uF/25V1KVCCGNDCPU系统D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U1074LS373A0A1A2A3A4A5A6A712345678JDGNDA1B2C3E14E25E36Y015YY213Y312Y411Y510Y69Y77U3074LS138GNDY61MHZVCCGNDOE1OUT3VCC4GND2CY01MR4210KR4110KGNDVCC固定脉冲SK15SK14SK11SK16SK13SK12SK10SK9SK7SK6SK3SK8SK5SK4SK2SK1R44.7KR34.7KR24.7KR14.7KH4H3H2H112345678J1KH12345678J2KLL1L2L3L4VCC4X4键盘8位共阴数码管显示8279键盘显示接口8279CSD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7
3、基于仿真硬件电路原理图和程序,连接实验箱模块,下载程序并调试,实现按键的检测和键值数码管显示。
(二)实验步骤
(1)、利用8279芯片实现按键检测和驱动数码管显示。
结合实验箱,在Proteus软件下绘制电路原理图,
(2)、在Keil软件下,建立工程,编写源文件,根据需要初始化芯片和调用键盘和显示函数。
(3)、程序编译,生成Hex文件,嵌入到Proteus软件单片机里,晶体振荡器12M,运行软件仿真,观察仿真现象。
(4)、用8芯排线将8279区DU(a-h)连接到数码管显示区的DU(a-h),8279区BIT连接到数码管显示区的BIT。
(5)、用4芯排线将8279区的KH连到键盘区的KH上,8279区的KL连到键盘区的KL上。
(6)、8279区8279CS连到系统译码的Y6上,8279CLK连接到固定脉冲的1MHz。
(7)、调试、运行程序工程中的hex文件。
数码管显示“8279-1按下数字键,数码管上显示相应的数字。
六、实验结果?
Keil?
#include?
#include?
#defineC8279XBYTE[0xE001]?
#defineD8279XBYTE[0xE000]?
unsignedcharbuffer[8];?
voiddelay(unsignedchari1);?
voiddisp8279(void);?
voidinit8279(void);?
unsignedchargetkey(void);?
voidin(void)?
{{?
init8279();?
buffer[0]=0x08;?
buffer[1]=0x02;
?
buffer[2]=0x07;?
buffer[3]=0x09;?
buffer[4]=0x12;?
buffer[5]=0x12;?
buffer[6]=0x12;?
buffer[7]=0x01;?
init8279();?
disp8279();?
delay(10);?
while
(1)?
{{?
unsignedchark;?
disp8279();?
for(k=0;k
?
unsignedchari,j;?
unsignedcharcodetable[24]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,?
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,?
0x73,0x3e,0x40,0x6e,0x76,0x38,0x00,0x80};?
while(i==0x80)?
{{?
j=C8279;?
i=0x80&j;?
}?
for(i=0;i
?
while(i==0)?
{{?
temp=C8279;?
i=temp&0x07;?
}}?
temp=D8279;?
for(i=0;i
?
实验箱
七、实验分析数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU和8279的命令。
I/O控制线是CPU对8279进行控制的引线。
CS是8279的片选,CS=0时,8279才被允许读出或写入信息。
WR、RD为CPU的控制。
通过实验,了解到8279A内部的两种扫描计数器的工作方式以及缓存,RL0~RL3的8根回复线的回复,由回复缓冲器缓冲并锁存。
在键盘工作方式中,回复线作为行列式键盘的行列输入线。
在逐行列输入时,在逐行列扫描时,回复线用来搜索每一行列中闭合的键。
当某一键闭合时,去抖电路被置位,延时等待10ms后,再检验该键是否继续闭和,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入8279内部FIFO(先进先出)存储器。
实验的两端口地址分别为0008H,0580H。
得到的实验结果为:
刚烧入程序后,系统上显示“8279---1”,继续在系统键盘上输入数字键,可以在系统显示器上显示相应的数字,当全部8个数码管都亮了后,又回到第一个覆盖掉第一个的数字。
实验过程中,应注意引脚相互对应,导线是否有破损。
评分:
模板,内容仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 键盘 显示 控制器 8279 应用