1、主要内容如下:1. 根据矩阵式键盘的特点,进行键盘控制系统的整体研究与设计。2. LED实时显示信息。3. 采用软件编程方法实现按键信息的提取和显示。二、 系统硬件设计方案1.芯片的选择 STC89C52RC单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带8K字节可编程FLASH存储器,拥有2K+字节的EEPROM作为程序存储器的拓展。由于STC89C52RC具有下图中的配置,因此具有结构简单、造价低廉、效率高的特点,省去了外部的RAM、ROM和接口器件,减少了硬件的开销,节省了成本,提高了系统的性价比。STC89C52RC的主机系统图:STC89C52RC的实物图:2.系
2、统原理图2.1时钟电路 时钟电路用来提供单片机片内各种位操作的时间基准。51单片机芯片内部有一个高增益反相放大器,用于构成时钟振荡电路,XTAL1为该放大器的输入端、XTAL2为该放大器的输出端。借助内部时钟方式或外部时钟方式形成时钟。如STC89C52RC的主机系统图所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反相放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。STC89C52RC的主机系统图中外接晶体以及电容C1和C2构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0529
3、MHz。22复位电路计算机在启动运行时都需要复位,是CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后不会影响内部RAM中的数据,仅将PC指向0000H,SP指向07H。复位操作形式有两种,即上电自动复位和按键手动复位。本系统采用上电自动复位方式。STC89C52RC的主机系统图中R1和C3组成上电复位电路,R取值为10K,C3为10uF。23矩阵式键盘电路 STC89C52RC单片机的并行口
4、接4*4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;P1口输出按键信息,在数码管上显示按键“0-F”序号。如STC89C52RC的主机系统图中所示。24译码显示电路 显示器是最常用的输出设备,与单片机应用系统接口的显示器主要是LED显示器和LCD显示器。本系统输出结果用一个LED显示。LED七段数码显示器由8个发光二极管组成显示字段,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,如下图所示。译码器显示电路:如STC89C52RC的主机系统图中所示,P3口连接的电路就是译码器显示电路。 当无按键闭合时,P1.0-P1.3与P1.4-P1.7之间开路。当有
5、按键闭合时,与闭合按键相连的两条I/0口线之间短路。判断有无按键按下的方法是:1. 置列线P1.4-P1.7为输入状态,从行线P1.0-P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合2. 行线轮流输出低电平,从列线P1.4-P1.7读入数据,若有列为低电平,则对应行线上有键按下。 综合1.2两步的结果,可确定按键编号。 但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按键一次键有可能会连续多次进行同样的键操作。本显示电路功能简单,为使编程简单,采用直接输出模式,即把P0.0-P0.7端口用8芯排线连接到数码显示模块区域中的a-h端口上
6、,要求:P0.0对应着a,以此类推。LED显示段码如下:三、 系统软件设计 系统采用汇编语言编程实现其功能。汇编语言克服使用机器语言编程的缺点,采用一些符号来代表地址或数据,简单明了。程序是在Windows 7环境下采用protues软件编写的,可实现电路的仿真。2.程序流程图开始开始根据当前状况识别按键读列线是否按下Y键盘初始化读列线是否有键按下延时去抖动显示键值N2.相关数据21相关变量: R3、A、R1、R5、Cy。22相关寄存器: 锁存器(特殊功能寄存器P0-P3)、累加器ACC、堆栈指针SP、数据指针DPTR、程序计数器PC23存储单元: 片内RAM的00H-FFH、片外RAM的00
7、00H-FFFFH、片内ROM的0000H-FFFFH、片外ROM的0000H-FFFFH2.系统程序设计ORG0000HLJMPMAINORG0030HMAIN:MOVP3,#00HL1:MOVR3,#0F7H ;键盘行扫描的初值MOV R1,#00H ;TABLE2的取码指针L2:MOV A,R3MOVP1,AMOVA,P1MOV R4,ASETBC;C=1MOV R5,#04H ;列扫描数L3:RLCAJNCKEYIN ;C=0表示有按键INCR1DJNZR5,L3 ;4列扫描完毕MOVA,R3 ;扫描下一行SETBCRRCA ;带进位的右移MOVR3,AJCL2 ;4个行扫描完毕JMP
8、L1KEYIN:MOV R7,#10 ;消除抖动10msD2:MOVR6,#248DJNZR6,$DJNZR7,D2D3:MOVA,P1 ;读入的键盘值是否与R4相等XRLA,R4JZD3 ;按键松开否MOVA,R1MOVDPTR,#TABLE2MOVCA,A+DPTRMOVP3,ATABLE2:DB4FH,5BH,06H,3FH,07H,7DH,6DH,66HDB7CH,77H,6FH,7FH,71H,79H,5EH,39HEND四、 效果演示1.仿真演示2.单片机演示 单片机无法演示仿真结果。3.测试结果与分析 程序与STC89C52RC单片机的内部结构不相符合。STC89C52RC的P3口是键盘输入端,P0口是连接LED数码管的输出端。而仿真中的设计是P1口为键盘输入端,P3口为输出端。故无法在单片机上实现。参考文献单片机课程设计44矩阵式键盘识别显示电路的设计(豆丁网)梁喜东组手写绘图板系统设计报告(上海理工大学)单片机原理及接口技术/胡健主编. 北京:机械工业出版社,2004.1015
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1