行列式键盘--单片机课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机课程设计报告课题名称行列式键盘学生姓名xx所在班级xx学生学号xx指导教师xx二○一五年一月目录第一章课程简介..........................................11.1行列式键盘实现的功能.......................................11.2技术指标...................................................1第二章硬件设计..........................................22.1最小系统简介...............................................22.1.1主要管脚说明...........................................22.2晶振.....................................................32.3行列式键盘的电路介绍........................................42.4共阳极数码管的介绍.........................................52.5发光二极管的介绍...........................................6第三章软件设计..........................................73.1设计流程图.................................................73.2程序流程图................................................8第四章调试..............................................94.1硬件调试...................................................94.1.1电路电源调试...........................................94.1.2电路下载调试...........................................94.2软件调试...................................................9第五章总结.............................................105.1课程设计总结...............................................10第六章附录.............................................12附录A原理总图................................................12附录B程序代码................................................13附录C实物图..................................................171第一章课程简介1.1行列式键盘实现的功能4*4行列式键盘以STC89C52单片机为核心,主要由4*4行列式键盘电路、4位8段数码管显示电路、LED灯电路和数码管位驱动电路等组成,软件选用C语言编程,简洁易懂。单片机将检测到的按键信号转换成数字量,由数码管显示4*4行列式键盘的行与列的数字信息。功能如下:按下S1键,数码管显示11,LED灯亮第一个,同时蜂鸣器发出响声;按下S2键,数码管显示12,LED灯亮第二个,同时蜂鸣器发出响声;按下S3键,数码管显示13,LED灯亮第一个和第二个,同时蜂鸣器发出响声;以此类推,按下按键,数码管显示按键的行列坐标数值,LED灯依照8421编码规则进行亮灭,亮代表1,灭代表0,表示0-F这16个数,同时伴随蜂鸣器的响声;行列式键盘控制系统可以提高效率,是进行按键操作管理的有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求。并能正确、实时、高效地显示按键信息,以提高工作效率和资源利用率。行列式键盘是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,并通过单片机,显示在LED数码管上。单片机控制键盘显示系统,可以对不同的按键进行实时显示,其核心是单片机、键盘矩阵电路和数码管显示电路。该系统灵活性强,易于操作,可靠性高,应用广泛。1.2技术指标使用四位八段数码管中的两位,4个LED发光二极管以及16个4*4的行列式键盘。整个电路使用+5V的直流电源,也可以用充电宝和笔记本电脑进行供电。2第二章硬件设计2.1最小系统简介12J16EA321JP6Jumper1P102P113P124P135P146MOSIP157MOSOP168SCKP179RESET10P3011P3112P3213P3314P3415P3516P3617P3718X119X22021P2022P2123P2224P2325P2426P2527P2628P2729PSEN30ALE31EA32P0733P0634P0535P0436P0337P0238P0139P0040AT1U1VCCVCCEAR1210KVCCS19+C8RESETVCC+C7S18R1410KC9C10Y3X1X2图2-1最小系统对51系列单片机来说,最小系统一般应该包括:单片机STC89C52、晶振电路、复位电路。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。2.1.1主要管脚说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在FlashROM编3程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:在对FlashROM编程和程序校验时,P1接收低8位地址。P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。在对FlashROM编程或程序校验时,P3还接收一些控制信号。P3口除作为一般I/O口外,还有其他一些复用功能。2.2晶振C9C10Y3X1X2图2-2晶振4单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。STC89C52RC使用12MHz的晶体振荡器作为振荡源。2.3行列式键盘的电路介绍S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16P30P31P32P33P34P35P36P37321J4Jumper图2-3行列式键盘STC89C52单片机的并行口P3接4*4矩阵键盘,以P3.0-P3.3作行输入线,以P3.4-P3.7作列输出线;P3口输出按键信息,在数码管上显示每个按键的行与列的序号。P3口的低4位控制行输入,高4位控制列输入当没有按键按下时,P3.0—P3.3与P3.4—P3.7之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:第一步,置行线P3.0—P3.3为输入状态,从列线P3.4—P3.7输出低电平,读入行线数据,若某一行线为低电平,则该行线上有键闭合。第二步,列线轮流输出低电平,从行线P3.0—P3.3读入数据,若有某一行为低电平,则对应的列线上有键按下。当确定了是哪一个按键按下后,通过软件程序的设计,返回键盘扫描的键值,由PO口输出给数码管显示。52.4共阳极数码管的介绍abfcgdeDPY11742153abcdefg8dpdpP00P01P02P03P04P05P06P07VCC12DS4DS1abfcgdeDPYabcdefgdpdpVCC9DS3abfcgdeDPYabcdefgdpdpVCC8DS2abfcgdeDPYabcdefgdpdpVCC6DS1in11in22in33in44in55in66in778899out710out611out512out413out314out215out116U1ULN2003123J6Header12345J?CON5JP2/relayJP3/speakLS1SPEAKERrelayK1VCCP20P21P22P23P24P25P26VCCDS1DS2DS3DS4VCCVCC图2-4共阳极数码管及位驱动这是一个四位八段的共阳极数码管,STC89C52的P0.0~P0.7为段输出口,P2.0~P2.3为位输出口。使用ULN2003的4个输出口作为位驱动,用来驱动8段数码管的DS1~DS4。该数码管内部有8个发光二极管,公共端由8个发光二极管的阳极并接而成,正常显示时公共端接高电平(VCC),各发光二极管是否点亮取决于a-dp各引脚上是否是低电平。LED数码管的外部有12个引脚,其中6,8,9,12脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上高电平即可。由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。62.5发光二极管的介绍LED1LED2LED3LED4LED5LED6LED7LED8123456789J11KVCCP10P11P12P13P14P15P16P17JP1J

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功