4X4矩阵键盘控制数码管显示按键值

上传人:仙*** 文档编号:37541426 上传时间:2021-11-03 格式:DOC 页数:18 大小:986.82KB
返回 下载 相关 举报
4X4矩阵键盘控制数码管显示按键值_第1页
第1页 / 共18页
4X4矩阵键盘控制数码管显示按键值_第2页
第2页 / 共18页
4X4矩阵键盘控制数码管显示按键值_第3页
第3页 / 共18页
点击查看更多>>
资源描述
4X4矩阵键盘控制数码管显示按键值一、设计内容与要求用80C51单片机控制系统显示按键值0F。二、设计目的意义2.1 设计目的 1、了解单片机系统中实现LED动态显示的原理及方法;2、详细了解8051芯片的性能及编程方法;3、了解单片机系统基本原理,了解单片机控制原理;4、掌握AT89C51输入/输出接口电路设计方法;5、掌握AT89C51程序控制方法;6、掌握单片机汇编编程技术中的设计和分析方法;7、掌握使用PROTEUS软件进行仿真的方法。8、学会使用并熟练掌握电路绘制软件Protel99SE;9、掌握电路图绘制及PCB图布线技巧。 2.2 设计意义 1、在系统掌握单片机相应基础知识的前提下,熟悉单片机应用系统的设计方法及系统设计的基本步骤。2、完成所需单片机应用系统原理图设计绘制的基础上完成系统的电路图设计。3、完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。4、进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。5、用AT89C51设计出题目所要求的数码管动态循环显示,并针对实际设计过程中软、硬件设计方面出现的问题提出相应解决办法。6、通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。三、系统硬件电路图3.1 Proteus软件简介以及仿真电路图Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点: (1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。图3-1所示为使用proteus软件建立的模型,经仿真,程序实现了预定功能。 图3-13.2 Protel99SE简介以及所绘图形Protel99SE是应用于Windows9X/2000/NT/XP操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。 Protel99SE的系统组成 按照系统功能来划分,Protel99se主要包含以下两大部分和6个功能模块。 1、电路工程设计部分 (1) 电路原理设计部分(Advanced Schematic 99):电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。 (2)印刷电路板设计系统(Advanced PCB 99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。 (3)自动布线系统(Advanced Route 99):本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。 2、电路仿真与PLD部分 (1)电路模拟仿真系统(Advanced SIM 99):电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。 (2)可编程逻辑设计系统(Advanced PLD 99):可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。 (3)高级信号完整性分析系统(Advanced Integrity 99):信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。 Protel99SE的功能特性: (1)开放式集成化的设计管理体系 (2)超强功能的、修改与编辑功能 (3)强大的设计自动化功能鉴于Protel99SE有如此强大功能,因此在本最小系统设计中使用Protel99SE制图,所制电路原理图和PCB图如下所示。图3-2 电路原理图图3-3 单片机Protel图图3-4 复位电路图3-5 晶振电路图3-6 电源电路四、程序流程图及源程序 4-1程序流程图主控制芯片为AT89C52, 16个键盘读入数据,数码管动态显示。.软件流程图如下:主程序流程图:5.3 源程序cs8255 equ 0ffffh ;8255命令控制口outseg equ 0fffch ;字形控制口outbit equ 0fffdh ;字位/键扫控制口in_key equ 0fffeh ;键盘读入口ledbuf equ 7eh ;显示缓冲/回车前光标位置ledbufr equ 77h ;回车后光标位置blnpnt equ 50h ;闪动指针单元 org 0ledgd: mov sp,#60h mov dptr,#cs8255 mov a,#89h ;命令字:a,b输出、c输入 movx dptr,a ;8255初始化;清显示缓冲单元ldegd: mov blnpnt,#ledbuf mov a,#10h mov r0,#ledbufrlegs: mov r0,a inc r0 cjne r0,#ledbuf,legs inc a ;送待令符“p.” mov r0,aledt: call xeg2 ;调闪动显示、键扫消抖子程序 cjne a,#10h,leg0;比较键值leg0: jnc ldegd ;如果是功能键则返回闪动的“P.” acall xeg3 ;送当前led光标闪动单元 sjmp ledt ;完成送数操作返回显示键扫入口;刷新光标单元调正闪动指针xeg3: mov r4,a ;暂存键值 mov r0,#blnpnt ;光标单元 mov a,r0 mov r1,a mov a,r4 ;恢复键值 mov r1,a mov a,#ledbufr ;回车后光标位置 cjne a,01h,xg30 ;r1 dec r1 mov a,#ledbuf ;回车前光标位置 sjmp xg31xg30: dec r1 mov a,r1xg31: mov r0,a ret;闪动显示子程序xeg2: mov r6,#80hxge0: acall xgel ;显示、键扫消抖程序 jnb acc.5,xgx0 djnz r6,xge0 mov r0,#blnpnt mov a,r0 mov r0,a mov a,r0 mov r7,a mov a,#10h mov r0,a mov r6,#30hxge1: acall xgel jnb acc.5,xgex1 ;显示、键扫消抖程序 djnz r6,xge1 mov a,r7 mov r0,a sjmp xeg2xgex1: mov r6,a mov a,r7 mov r0,a mov a,r6xgx0: ret;显示、键扫消抖程序xgel: call disp ;显示 call getkey ;得到键盘扫描码 mov r4,a ;键消抖处理程序 mov r1,#48h mov a,r1 mov r2,a inc r1 mov a,r1 mov r3,a mov a,r4 xrl a,r3 mov r3,04h ;r4 mov r4,02h ;r2 jz xge10 mov r2,#88h mov r4,#88h ;键盘消抖延迟参数xge10: dec r4 mov a,r4 xrl a,#82h jz xge11 mov a,r4 xrl a,#0eh jz xge11 mov a,r4 jz xge12 mov r4,#20h dec r2 sjmp xge13xge12: mov r4,#0fhxge11: mov r2,04h ;r4 nop nop mov r4,03h ;r3xge13: mov r1,#48h mov a,r2 mov r1,a inc r1 mov a,r3 mov r1,a mov a,r4 jb acc.5,xg113 mov dptr,#keycode movc a,a+dptrxg113: ret;显示子程序disp: push dpl push dph setb rs1 mov r0,#ledbuf mov r2,#80h mov dptr,#ledmapdisp2: mov a,r0 movc a,a+dptr push dpl push dph mov dptr,#outseg movx dptr,a mov a,r2 mov dptr,#outbit movx dptr,a pop dph pop dpl mov r3,#0 djnz r3,$ ;闪动延迟 clr c rrc a ;右移显示 mov r2,a dec r0 jnz disp2 clr rs1 pop dph pop dpl ret;键扫子程序getkey: setb rs1 mov r2,#0feh mov r3,#08h mov r0,#00hlgep1: push dpl push dph mov dptr,#outbit mov a,r2 movx dptr,a rl a mov r2,a mov dptr,#in_key movx a,dptr pop dph pop dpl cpl a anl a,#0fh jnz lgep0 inc r0 djnz r3,lgep1xgep33: mov a,#20hxgep3: mov r2,a mov a,#0fh push dpl push dph mov dptr,#outbit movx dptr,a pop dph pop dpl mov a,r2 clr rs1 sjmp returnlgep0: cpl a jb acc.0,xgep0 mov a,#00h sjmp lgeppxgep0: jb acc.1,xgep1 mov a,#08h sjmp lgeppxgep1: jb acc.2,xgep2 mov a,#10h sjmp lgeppxgep2: jb acc.3,xgep33 mov a,#18hlgepp: add a,r0 sjmp xgep3return: ret;键值表keycode:db 07h,04h,08h,05h,09h,06h,0ah,0bh db 01h,00h,02h,0fh,03h,0eh,0ch,0dh db 10h,11h,12h,13h,14h,15h,16h,17h db 18h,19h,1ah,1bh,1ch,1dh,1eh,1fh;字形表ledmap: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh db 0ffh,0ch,89h,7fh,0bfh End五、系统说明与设计分析5.1 8051单片机介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。图5-1 AT89C51封装图 1、主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路其包含中央处理器(CPU)、存储器(程序存储器ROM和数据存储器RAM)、定时/计数器、并行I/O接口(P1、P2、P3、P0共4个8位口)、一个双工串行接口和5个中断源等几大单元及数据总线、地址总线和控制总线三大总线等结构组成。下图是MCS-51系列单片机的内部结构示意图。图5-2 MCS51结构框图MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:图5-3 AT89C51引脚图P0口:图5-4 P0口位结构原理图P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口: 图5-5 P1口位结构原理图P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:图5-6 P2口位结构原理图P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:图5-7 P3口位结构原理图P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:表5-1 P3口特殊功能表P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2、振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3、芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 4、编程与校验图5-8 89C51的闪速存储器编程和校验5.2 单片机系统设计步骤1、理解设计任务要求(通过阅读有关资料及调查研究);2、对总体方案进行分析、论证,验证其可行性;3、系统硬件电路的设计,使用Protel软件制作硬件电路图。根据PCB图制作系统硬件电路板并焊上相关元件,检测线路是否导通;4、系统控制软件的设计:1)以功能明确、相互界面能清晰分割的软件程序为基础,确定主程序流程框图;2)以主程序流程框图为基础,确定各模块程序算法及实现的功能,进一步确定各模块程序流程框图;3)根据软件流程框图,用汇编语言或C语言编写主程序和延时子程序;4)系统软件仿真、硬件制作、硬件的调试;5)编写课程设计说明书,答辩验收。 六、结论 由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。 这次实训提高了我们的设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所学的知识得到很大的提高与巩固.本次实验熟悉了单片机的使用和功能,了解了DS130经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计的功能,熟悉了Keil uVision3进行程序调试,利用 Proteus7.12进行硬件仿真 由于所学知识有限,硬件选择和程序编写有一定不合理性,有待改进。 在整个设计过程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了作品。达到了预期的目的,在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用。相互学习、相互讨论、研究。完了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同组员的讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都在有耐心。此次比赛中学到了很多很多东西,这是最重要的。总之,我们的能力得到了全方位的提高。18
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!