HD7279键盘显示的应用设计_第1页
HD7279键盘显示的应用设计_第2页
HD7279键盘显示的应用设计_第3页
HD7279键盘显示的应用设计_第4页
HD7279键盘显示的应用设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、( HD7279键盘显示的应用设计 )课程设计说明书一、设计内容及要求利用HD7279键盘显示芯片实现8位数字显示,通过2个按键实现显示内容的加减,并能通过4个按键实现任意位的设置。二、设计原始资料单片机原理及应用教程 范立南 2006年 1月单片机原理及应用教程 刘瑞新 2003年07月三、设计完成后提交的文件和图表1计算说明书部分1)方案论证报告打印版或手写版2)程序流程图3)具体程序 2图纸部分:具体电路原理图打印版四、进程安排教学内容 学时 地点资料查阅与学习讨论 1天 单片机实验室分散设计 5天 单片机实验室编写报告 3天 单片机实验室成果验收 1天 单片机实验室 五、主要参考资料电

2、子设计自动化技术基础马建国、孟宪元编 清华大学出版 2004年4月 实用电子系统设计基础 姜威 2008年1月 单片机系统的PROTEUS设计与仿真 张靖武 2007年4月 指导老师成绩答辩小组成绩总成绩摘 要摘 要:编码键盘接口芯片74922与单片机 AT89C51 及相关译码器构成多键盘、多位数显示接口电路(以4 4 键盘 ,8位数显示接口) 。本电路克服了以往并行接口设计中占用较多 I/O口且键盘控制编程较繁的缺点 ,在构成多按键和多数字显示的较大规模单片机应用系统中有参考和实用价值。键盘、显示接口是单片机应用系统中最常用的基本接口电路。因单片机自身体积小 ,引脚少 ,在设计单片机系统时

3、 ,如系统所需的按键较多 ,需显示的十进制位数较多 ,单片机自身的引脚不够用 ,并且此时串行口又要用作它用时 ,在以往的设计中 ,往往以总线方式外接8255或8155芯片 ,以便扩展并行口。这种方法因使用的芯片的体积大 ,引脚多 ,而使硬件系统较为庞大。另一种方法是将键盘和显示接口直接与单片机的 I/O引脚相接 ,但这种方法将占用较多有限的 I/O口。为了使有限的 I/O口用于实现更多的系统功能 ,同时系统的硬件设计和软件设计尽可能简洁 ,我们在单片机多键盘、多位数显示接口的应用系统设计电路中 ,选用了片内有 4KB Flash 存储器的 AT89C51 单片机 ,接口采用非总线结构。在显示部

4、分通过译码器(7447集成电路译码器)控制段码和位线 ,尽量减少 I/O 口的使用。在键盘部分 ,键盘的扫描交给74922集成芯片来完成 ,使 CPU减轻用软件去扫描键盘的负担 ,提高 CPU 的利用率 ,较好地完成了设计任务。关键词: AT89C51单片机;编码键盘; 74922集成芯片, 7447集成电路译码器 目录第1章 概 述9第2章 系统总体方案设计92.1 74922 芯片内部结构、原理92.2 74922芯片(16键 IC)的引脚排列102.3 电路设计思想102.4 BCD七段译码器7447112.5 747中LT、RBI、与BI/RBO之控制角12第3章 硬件电路设计143.

5、1理论分析与计算14设计思想14程序设计流程153.2电路与程序设计15程序设计173.3结果分析20第四章总结(经验教训)22第1章 概 述随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。本文所涉及的是市场占有率最高的是MCS51系列,因为世界上很多知名的IC

6、生产厂家都生产51兼容的芯片。到目前为止,MCS51单片机已有数百个品种,还在不断推出功能更强的新产品。本设计是74922 芯片键盘显示设计方案,根据要求,给出了该单片机键盘显示的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。第2章 系统总体方案设计 采用一种是用以AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的键盘显示功能,还能添加任意数加减、闪烁功能。其原理如图1所示矩阵键盘置数控制74478位显示AT89C51单片机74922控制加键控制减键47

7、控制闪烁按键中断图1设计模块图 2.1 74922 芯片内部结构、原理74922芯片是专用编码键盘接口芯片 ,当按下某一按键时 ,该芯片能自动给出相应的编码信息 ,并可自动消除抖动 ,从而可使设计者免除一部分软件编程。74922芯片有16键 IC和20键 IC,图2所示为4 4(16键)扫描式编码键盘原理图。图2扫描式编码键盘这种键盘的按键排成矩阵形式 ,以减少按键联线。如图中有16个键 ,排列成4行 4 列 ,仅需 8 根引线。时钟发生器的输出送给4位计数器进行计数 ,计数器的低 2 位经译码后作为行扫描 ,高2位经译码后作为列扫描。若没有检出有键闭合 ,则计数器周而复始反复计数 ,即反复进

8、行扫描 ,一旦检出有键闭合 ,就发出一个脉冲使时钟振荡器停振 ,计数器随即停止计数。单片机通过读取计数器的计数值来获取闭合键所在的行列位置 ,然后从 ROM中查表得到按键读数。如果有两个键同时按下 ,则扫描到第一个闭合键时就停止扫描 ,把该键当作有效按键进行处理。2.2 74922芯片(16键 IC)的引脚排列如图2所示:X1X4:列线。Y1Y4:行线。OSC:接振荡电容0.1,以便扫描矩阵键盘KM:键盘消除抖动电路 ,并发出两 种信号(1)内部计数器停止计数。(2)若有键按下 ,使DA脚由未按键时的低电平变为高电平,若按键未放开则一直保持高电平,当按键放开时,才转为低电平。此引脚外接一个电容

9、是OSC所接电容的10倍。图274922(16键)引脚排列图DA:数据有效信号。若无键按下 ,保持低电平。若有键按下 ,变为高电平 ,直到键放开 ,才转为低电平。/OE:输出使能。DA:按键值输出 ,按BCD码输出。2.3 电路设计思想在设计单片机系统时 ,为了实现系统所需的多按键 ,多位十进制数显示的和节约 I/O口资源 ,简化硬件电路要求 ,在串行口被用于其它用途的情况下 ,我们选用了一种新型的键盘、显示接口电路。其设计思想为:在显示部分:用 7 根 I/O 线通过七段译码器(7447)和at89c51外接了 8 个LED数码管即可完成动态显示。其中 ,段码采用硬件译码 ,单片机读到的键盘

10、值送到 P0 口的低 4 位 ,经 7447 七段译码器译成段码送数码管。而位线由 P2 口的 P2.0P2.78位控制。在键盘部分:键盘扫描由74922芯片来完成。设计中用了5个 I/O线于74922芯片相接。其中4根 I/O线(P1.0P1.3)接 74922 的 A、B、C、D引脚 ,向单片机传送键值的BCD码。P1.4接74922的DA引脚 ,作为是否有键按下和按键是否放开的识别端。程序中只要检测 DA脚由低电平 高电平(有键按下) 、高电平 低电平 (键放开) ,就将 74922 的 D、C、B、A (键值的 BCD 码) 读入AT89C51。这个键值再由 P0 口的低 4 位送给七

11、段译码器7447 ,硬件译码后的段码送给数码管显示。使得键盘控制程序相当简单 ,减轻了 CPU 用软件去扫描键盘 ,读取键值的负担 ,从而提高了 CPU的利用率。2.4 BCD七段译码器74477447有4个 BCD码输入端 A、B、C和D,其中 D为最高有效位,A为最低有效位,它们分别与输出端口中的4位相连。7447的7个输出引脚 ag直接与 LED的相应引脚相连,每个段中都串接一个限流电阻,其阻值为100。当灭灯输入/动态灭灯输出(BI/RBO)开路或为高电平而试灯输入为低电平,则所有输出端都为1。BI/RBO是线与逻辑,作灭灯输入(BI)或动态灭灯(RBO)之用,或者兼为二者之用。图3图

12、3为7447集成电路译码器之引脚图与真值表如表1。在正常操作时,当输入DCBA=0010 则输出abcdefg=0010010。故使显示器显示2。当输入DCBA=0110 时,输出abcdeg=1100000,显示器显示6。2.5 747中LT、RBI、与BI/RBO之控制角在7447 中尚有LT、RBI 与BI/RBO 之控制脚,其功能分述如下:该电路是由与非门、输入缓冲器和7 个与或非门组成的BCD-7 段译码器/驱动器。通常是低电平有效,高的灌入电流的输出可直接驱动显示器。7 个与非门和一个驱动器成对连接,以产生可用的BCD 数据及其补码至7 个与或非译码门。剩下的与非门和3 个输入缓冲

13、器作为试灯输入(LT)端、灭灯输入/动态灭灯输出(BI/RBO)端及动态灭灯输入(RBI )端。该电路接受4 位二进制编码十进制数(BCD)输入并借助于辅助输入端状态将输入数据译码后去驱动一个七段显示器。输出结构设计成能承受7 段显示所需要的相当高的电压。驱动显示器各段所需的高达24mA 的电流可以由其高性能的输出晶体管来直接提供。BCD 输入计数9 以上的显示图案是鉴定输入条件的唯一信号。该电路有自动前、后沿灭零控制(RBI和RBO)。试灯(LT)可在端处在高电平的任何时刻去进行,该电路还含有一个灭灯输入(BI),它用来控制灯的亮度或禁止输出。该电路在应用中可以驱动共阳极的发光二极管或直接驱

14、动白炽灯指示器。7447 之输出系为驱动器设计,其逻辑0 之吸入电流高达40mA,故在使用必须加入330 左右电阻加以限流,以免过大电流流经LED而烧毁显示器,如图5所示。图4 DM7447A 引脚功能图 图5 表1 1.要求015时,灭灯输入(BI)必须开路或保持高电平,如果不要灭十进制数零,则动态灭灯输入(RBI)必须开路或为高电平。 2.将一低电平直接输入BI端,则不管其他输入为何电平,所有的输出端均输出为低电平。 3.当动态灭灯输入(RBI)和A,B,C,D输入为低电平而试灯输入为高电平时,所有各段输出都为0,并且动态灭灯输出(RBO)为低电平(响应条件)。 4.当灭灯输入/动态灭灯输

15、出(BI/RBO)开路或为高电平而试灯输入为低电平,则所有输出端都为1。表中1=高电平,0=低电平。BI/RBO是线与逻辑,作灭灯输入(BI)或动态灭灯(RBO)之用,或者兼为二者之用。 第3章 硬件电路设计3.1理论分析与计算设计思想在设计单片机系统时 ,为了实现系统所需的多按键多位十进制数显示的和节约 I/O口资源 ,简化硬件电路要求 ,在串行口被用于其它用途的情况下 ,我们选用了一种新型的键盘、显示接口电路。其设计思想为:在显示部分:用 7 根 I/O 线通过七段译码器(7447)和3 - 8线译码器(74LS138)外接了 8 个LE数码管即可完成动态显示。其中 ,段码采用硬件译码 ,

16、单片机读到的键盘值送到 P0 口的低 4 位 ,经 7447 七段译码器译成段码送数码管。而位线由 P0 口的 P0.4P0.6三位经4LS138译码器控制。在键盘部分:键盘扫描由74922芯片来完成。设计中用了5个 I/O线于74922芯片相接。其中根 I/O线(P1.0P1.3)接 74922 的 A、B、C、D引脚 ,向单片机传送键值的BCD码。P1.4接74922的DA引脚 ,作为是否有键按下和按键是否放开的识别端。程序中只要检测 D脚由低电平 高电平(有键按下) 、高电平 低电平 (键放开) ,就将 74922 的 D、C、B、A (键值的 BCD 码) 读入T89C51。这个键值再

17、由 P0 口的低 4 位送给七段译码器7447 ,硬件译码后的段码送给数码管显示。使得键盘控制程序相当简单 ,减轻了 CPU 用软件去扫描键盘 ,读取键值的负担 ,从而提高了 CPU的利用率。3.1.2程序设计流程有开始芯片判断是否有按键按下芯片查表判断是否有按键按下闪烁显示显示判断是否有中断进行加减判断是否有按键按下有有否否结束3.2电路与程序设计.键盘、显示硬件电路如图6所示。图6键盘、显示接口电路本电路的特点是:不采用通常的总线接口方式 ,而是采用了非总线结构。其优点在于减少了扩展 I/O 口部分的芯片使用 ,用单片机的 I/O 线直接与外部芯片连接 ,使得硬件设计和软件编程相对简单。同

18、时在外部芯片的选用中 ,采用硬件译码和硬件编码键盘控制芯片 ,实现了用尽可能少的 I/O线设计出尽可能大的键盘显示接口电路。电路中 ,在4 4键盘中每个按键的值是固定的 ,具体位置如图4所示 ,所以编程时只要建立一个 TABLE表 ,就可根据需要设计各种键盘。程序设计应用设显示器缓冲区为 40H47H 单元 ,起始时均已清零。每次按键后读取的键值 ,放在 40H单元 ,而原 40H单元的内容(即前一次按键得值)移到 47H单元 ,以此类推。显示子程序对 47H40H单元的内容进行动态显示。由此得出针对该硬件电路的键盘显示程序。START:JB P1.4 , KEY ;检测74922 的DA脚=

19、1 ?,DA=1 ,表示有键按下acall delay;调用显示子程序KEY:JB P1.4 , ;按键放开否?MOV A,P1 ;已放开,则读入74922 的按键值ANL A, # 0FH ;取低4 位(74922 的AD)MOV DPTR, # TABLE ;到 TABLE表中取码MOVC A, A+DPTRxch a,47h ;现按键值存入(47H)程序设计;*;主程序;*ORG 0000HAJMP MAINORG 0003HAJMP LOOP1ORG 0030HMAIN: MOV TCON,#00H MOV IE,#85H MOV P3,#0FFH JB P1.4,KEY AJMP M

20、AINKEY: JB P1.4$ MOV P2,#00H MOV A,P1 ANL A,#0FH MOV DPTR,#TABLE MOVC A,A+DPTR;*;显示子程序;*A0: CJNE A,#00H,A1 SETB P2.0 MOV P0,A JB P1.4,KEY JNB P0.4,AA0 CLR P2.0 ACALL D_1S SETB P2.0 ACALL D_1SAA0:SJMP A0A1:CJNE A,#01H,A2 SETB P2.1 MOV P0,A JB P1.4,KEY SJMP A1A2:CJNE A,#02H,A3 SETB P2.2 MOV P0,A JB P1

21、.4,KEY SJMP A2A3:CJNE A,#03H,A4 SETB P2.3 MOV P0,A JB P1.4,KEY SJMP A3 A4:CJNE A,#04H,A5 SETB P2.4 MOV P0,A JB P1.4,KEY SJMP A4 A5:CJNE A,#05H,A6 SETB P2.5 MOV P0,A JB P1.4,KEY SJMP A5 A6:CJNE A,#06H,A7 SETB P2.6 MOV P0,A JB P1.4,KEY SJMP A6 A7:CJNE A,#07H,A8 SETB P2.7 MOV P0,A JB P1.4,KEY SJMP A7TA

22、BLE: ;查表 DB 00H,01H,02H,03H DB 04H,05H,06H,07H DB 08H,09H;*;加法和减法中断子程序;*LOOP1: JNB P3.0,AAA JNB P3.1,BBB SJMP LOOP2BBB: DEC A MOV P0,A ACALL D_1SLOOP2: JB P1.4,NEG JNB P3.1,BBB SJMP LOOP1AAA:INC A A8:MOV P0,A ACALL D_1S JNB P3.0,AAA SJMP LOOP1 NEG:RETI;*;延时子程序;*D_1S:MOV R6,#100D10:CALL D10MS DJNZ R6

23、,D10 RETD10MS:MOV R5,#10 D1MS:MOV R4,#249 DL:NOP NOP DJNZ R4,DL DJNZ R5,D1MS RETEND*闪烁子程序;*第一位数字闪烁jb p1.4 ,key jnb p0.4,aa0 clr p2.0 acall D_1s setb p2.0 acall D_1s第二位数字闪烁jb p1.4, key jnb p0.4,aa1 clr p2.1 acall D_1s setb p2.1 acall D_1s第三位数字闪烁jb p1.4, key jnb p0.4,aa1 clr p2.2 acall D_1s setb p2.2 acall D_1s一直到第八位数字闪烁jb p1.4, key jnb p0.4,aa1 clr p2.7 acall D_1s setb p2.7 acall D_1s3.3结果分析4*4键盘控制数码管的显示,07可通过按键查表分别显示在数码管上,且数码管只能显示一位,即该系统只能实现1个按键按下时的显示。当有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论