还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验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内部结构18279A内部具有时序控制逻辑,通过控制和时序寄存器存放键盘和显示器的工作方式和其他状态信息内部还包含有N分频器,分频系数为N,由2~31之间任一数可编程确定,对CLK上时钟进行N分频以产生基本的100KHZ的内部计数___扫描时间为
5.1ms,去抖动时间为
10.3ms28279A内部的扫描计数器有两种工作方式一是编码方式,计数器以二进制方式计数,4位计数器的状态直接从SL0~SL3上输出,由外部译码对SL0~SL3译码产生键盘和显示的扫描___,高电平有效;二是译码方式,对计数器的低二位译码后从SL0~SL3上输出,作为4×8键盘和4位显示器的扫描___,低电平有效38279A在键盘工作时,由输入缓冲区锁存RL0~RL7上的信息,以确定键入情况,其内部有去抖动电路10ms4FIFO/传感器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字符显示,左端输入*0116字符,左端输入108字符显示1116字符显示,右端输入带*表示复位以后设定为该种方式2扫描频率控制命令76543210001P4P3P2P1P0P4-P0设置值0-31,对外部时钟的分频系数,使fclk÷分频系数=100KHZ复位以后,P4~P0=31(fclk为外部接入时钟)3读FIFO前设置的读地址命令76543210010AIA2A1A0A2~A08×8位的FIFO的地址000~111AI:AI=1自动增1;AI=0不自动增14读显示RAM前设置的读地址命令76543210011AIA3A2A1A0A3~A016×8位的显示RAM的地址0000~1111AI:AI=1自动增1;AI=0不自动增15写显示RAM前设置的写地址命令76543210100AIA3A2A1A0A3~A016×8位的显示RAM的地址0000~1111AI:AI=1自动增1;AI=0不自动增16显示RAM写入禁止/消隐命令BCD码显示用76543210101IWAIWBBLABLBBLB=1,消隐BBLA=1,消隐AIWB=1,屏蔽BIWA=1,屏蔽A7清除FIFO状态字、显示RAM清除命令7654321011OCD2CD1CD0CFCACA:总清除CA=0,清除显示RAM;CA=1,清除显示RAM及FIFO状态字CF:=1清除FIFO中断输出线复位CD2~CD010×将显示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状态字76543210DUS/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的状态SL
2、SL
1、SL0为扫描线,RL7-RL0为回复在键盘工作方式中,键盘数据格式中的D
7、D6表示TL和SHIFT状态,D
5、D
4、D3表示扫描线SL
2、SL
1、SL0的8个译码状态,即SL
2、SL
1、SL0D
2、D
1、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的矩阵按键检测及数码管的键值显示a10b9c8d5e4f2g3dp7gp1gp6LED8a10b9c8d5e4f2g3dp7gp1gp6LED7a10b9c8d5e4f2g3dp7gp1gp6LED6a10b9c8d5e4f2g3dp7gp1gp6LED5a10b9c8d5e4f2g3dp7gp1gp6LED4a10b9c8d5e4f2g3dp7gp1gp6LED3a10b9c8d5e4f2g3dp7gp1gp6LED2a10b9c8d5e4f2g3dp7gp1gp6LED112345678BIT12345678DUabcdefghbit1bit2bit___it4bit5bit6bit7bit81A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y___1Y4122Y192Y272Y352Y431G12G19UB5274LS244A1B2C3E14E25E36Y015Y___Y213Y312Y411Y510Y69Y77UB5374LS138OUTA027OUTB031OUTA126OUTB130OUTA225OUTB229OUTA324OUTB328DB012BD23DB113DB214SL032DB315SL133DB416SL234DB517SL335DB618DB719RL038RL139IRQ4RL21RL32CS22RL45RD10RL56WR11RL67A021RL78CLK3SHIFT36RESET9TL/S37UB518279VCCGND/WR/RDD0D1D2D3D4D5D6D7A0abcdefgh12345678KH1A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y___1Y4122Y192Y272Y352Y431G12G19UB5474LS24412345678KLKY012345678DU8279CLKGNDGNDGND87654321BITEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P12___134P145P156P167P178P0039P0138P0237P0336P0435P0534P063___0732P2021P2122P222___2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10___C
5111.059230P30PGNDVCC123JR47uF/25V1KVCCGNDCPU系统D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U1074LS373A0A1A2A3A4A5A6A712345678JDGNDA1B2C3E14E25E36Y015Y___Y213Y312Y411Y510Y69Y77U3074LS138GNDY61MHZVCCGNDOE1OUT3VCC4GND2CY01MR4210KR4110KGNDVCC固定脉冲SK15SK14SK11SK16SK13SK12SK10SK9SK7SK6SK3SK8SK5SK4SK2SK1R
44.7KR
34.7KR
24.7KR
14.7KH4H3H2H112345678J1KH12345678J2KLL1L2L3L4VCC4X4键盘8位共阴数码管显示8279键盘显示接口8279CSD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D
73、基于仿真硬件电路原理图和程序,连接实验箱模块,下载程序并调试,实现按键的检测和键值数码管显示
(二)实验步骤
(1)、利用8279芯片实现按键检测和驱动数码管显示结合实验箱,在Proteus软件下绘制电路原理图,
(2)、在Keil软件下,建立工程,编写源文件,根据需要初始化芯片和调用键盘和显示函数
(3)、程序编译,生成Hex文件,嵌入到Proteus软件单片机里,晶体振荡器12M,运行软件仿真,观察仿真现象
(4)、用8芯排线将8279区DUa-h连接到数码管显示区的DUa-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];voiddelayunsignedchari1;voiddisp8279void;voidinit8279void;unsignedchargetkeyvoid;void___invoid{{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;delay10;while1{{unsignedchark;disp8279;fork=0;kunsignedcharij;unsignedcharcodetable
[24]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x710x730x3e0x400x6e0x760x380x000x80};whilei==0x80{{j=C8279;i=0x80j;}fori=0;iwhilei==0{{temp=C8279;i=temp0x07;}}temp=D8279;fori=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个数码管都亮了后,又回到第一个覆盖掉第一个的数字实验过程中,应注意引脚相互对应,导线是否有破损评分模板内容仅供参考。