ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:293.93KB ,
资源ID:11929454      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11929454.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(行列式键盘单片机课程设计报告要点.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

行列式键盘单片机课程设计报告要点.docx

1、行列式键盘单片机课程设计报告要点单片机课程设计报告课题名称行列式键盘学生姓名 xx所在班级 xx学生学号 xx指导教师 xx二一五年一月第一章 课程简介 .11.11.2行列式键盘实现的功能 .1技术指标 .1第二章 硬件设计 .22.1 最小系统简介 .22.1.1 主要管脚说明 .22.2 晶振 .32.3 行列式键盘的电路介绍 .42.4 共阳极数码管的介绍 .52.5 发光二极管的介绍 .6第三章 软件设计 .73.13.2设计流程图 .7程序流程图 .8第四章 调试 .94.1 硬件调试 .94.1.1 电路电源调试 .94.1.2 电路下载调试 .94.2软件调试 .9第五章 总结

2、 .105.1 课程设计总结 .10第六章 附录 .12附录 A附录 B附录 C原理总图 .12程序代码 .13实物图 .171.1第一章 课程简介行列式键盘实现的功能4*4 行列式键盘以 STC89C52 单片机为核心,主要由 4*4 行列式键盘电路、4 位 8 段数码管显示电路、LED 灯电路和数码管位驱动电路等组成,软件选用 C 语言编程,简洁易懂。单片机将检测到的按键信号转换成数字量,由数码管显 示 4*4 行列式键盘的行与列的数字信息。功能如下:按下 S1 键,数码管显示 11,LED 灯亮第一个,同时蜂鸣器发出响声; 按下 S2 键,数码管显示 12,LED 灯亮第二个,同时蜂鸣器

3、发出响声; 按下 S3 键,数码管显示 13,LED 灯亮第一个和第二个,同时蜂鸣器发出响声;以此类推,按下按键,数码管显示按键的行列坐标数值,LED 灯依照 8421 编码规则进行亮灭,亮代表 1,灭代表 0,表示 0-F 这 16 个数,同时伴随蜂鸣 器的响声;行列式键盘控制系统可以提高效率,是进行按键操作管理的有效方法,它 可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求。并能正 确、实时、高效地显示按键信息,以提高工作效率和资源利用率。行列式键盘是当今使用最为广泛的键盘模式,该系统以 N 个端口连接控制 N*N 个按键,并通过单片机,显示在 LED 数码管上。单片机控制键盘

4、显示系统, 可以对不同的按键进行实时显示,其核心是单片机、键盘矩阵电路和数码管显 示电路。该系统灵活性强,易于操作,可靠性高,应用广泛。1.2技术指标使用四位八段数码管中的两位,4 个 LED 发光二极管以及 16 个 4*4 的行列式键盘。整个电路使用+5V 的直流电源,也可以用充电宝和笔记本电脑进行供电。0第二章 硬件设计2.1最小系统简介S18JP6 JumperVCC+ C7C8 +R1410KVCCP10P11P12P13P14R12 MOSI P1510KMOSO P16SCK P17 RESETP30P31P32P33S19 P34P35P36P37X1X2AT1U1VCC VC

5、CJ16P00 EAP01P02 EAP03P04P05P06 X1 X2P07 Y3EAALEPSEN C9 C10P27P26P25P24P23P22P21P20图 2-1最小系统对 51 系列单片机来说,最小系统一般应该包括:单片机 STC89C52、晶振电 路、复位电路。STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具 有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做 了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有 灵巧的 8 位 CPU 和在系统可编程 Flash,使得

6、STC89C52 为众多嵌入式控制应 用系统提供高灵活、超有效的解决方案。2.1.1 主要管脚说明VCC(40 引脚):电源电压VSS(20 引脚):接地P0 端口(P0.0P0.7,3932 引脚):P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入“1” 时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0 口也可以提供 低 8 位地址和 8 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash1ROM 编程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。验证 时,要求外接上拉电阻。P1 端

7、口(P1.0P1.7,18 引脚):P1 口是一个带内部上拉电阻的 8 位 双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。 对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。 P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一 个电流。此外,P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入(P1.0/T2)和定时器/计数器 2 的触发输入(P1.1/T2EX),具体参见下表: 在对 Flash ROM 编程和程序校验时,P1 接收低 8 位地址。P2 端口(P2.0P2.7,2128 引

8、脚):P2 口是一个带内部上拉电阻的 8 位双向 I/O 端口。P2 的输出缓冲器可以驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作 输入口。P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低 的引脚会输出一个电流。在访问外部程序存储器和 16 位地址的外部数据存储器(如执行“MOVXDPTR”指令)时,P2 送出高 8 位地址。在访问 8 位地址的外部数据存储器(如执行“MOVX R1”指令)时,P2 口引脚上的内容(就是专用寄存器(SFR)区中的 P2 寄存器的内容),在整个访问期间不会改变。在对 Flash

9、 ROM 编程和程序校验期间,P2 也接收高位地址和一些控制信号。P3 端口(P3.0P3.7,1017 引脚):P3 是一个带内部上拉电阻的 8 位 双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。 对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输 入一个电流。在对 Flash ROM 编程或程序校验时,P3 还接收一些控制信号。P3 口除作为一般 I/O 口外,还有其他一些复用功能。2.2晶振X1 X2Y3C9 C102图2-2 晶振单片机系统里都有晶

10、振,在单片机系统里晶振作用非常大,全称叫晶体振 荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的 时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建 立在单片机晶振提供的时钟频率。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频 和射频使用不同的晶振,而通过电子调整频率的方法保持同步。STC89C52RC 使 用 12MHz 的晶体振荡器作为振荡源。2.3 行列式键盘的电路介绍S1 S2 S3 S4J4Jumper321S5 S6 S7 S8S9 S10 S11 S12S13 S14 S15 S16图 2-3行列式键盘P30P31P32P3

11、3P34P35P36P37STC89C52 单片机的并行口 P3 接 4*4 矩阵键盘,以 P3.0P3.3 作行输入 线,以 P3.4P3.7 作列输出线;P3 口输出按键信息,在数码管上显示每个按 键的行与列的序号。P3口的低4位控制行输入,高4位控制列输入当没有按键按下时,P3.0 P3.3与 P3.4P3.7之间开路。当有键闭合时,与闭合键相连的两条 I/O 口线之 间短路。判断有无按键按下的方法是:第一步,置行线 P3.0P3.3为输入状态,从列线 P3.4P3.7输出低电平, 读入行线数据,若某一行线为低电平,则该行线上有键闭合。第二步,列线轮流输出低电平,从行线 P3.0P3.3

12、读入数据,若有某一行 为低电平,则对应的列线上有键按下。当确定了是哪一个按键按下后,通过软件程序的设计,返回键盘扫描的键 值,由 PO 口输出给数码管显示。32.4共阳极数码管的介绍DS1P00P01P02P03P04P05P06P07117421538DS4VCCDS3J?DS2VCCDS1P20P21P22P23P24P25P2612345123U1ULN2003161514131211109VCCDS1DS2DS3DS4CON5JP2/relay VCCLS1Headerrelay K1321图 2-4共阳极数码管及位驱动这是一个四位八段的共阳极数码管,STC89C52 的 P0.0P0

13、.7 为段输出口,P2.0P2.3 为位输出口。使用 ULN2003 的 4 个输出口作为位驱动,用来驱动 8段数码管的 DS1DS4。该数码管内部有 8 个发光二极管,公共端由 8 个发光二 极管的阳极并接而成,正常显示时公共端接高电平(VCC),各发光二极管是否点 亮取决于 a-dp 各引脚上是否是低电平。LED 数码管的外部有 12 个引脚,其中 6,8,9,12 脚为公共端也称位选端,其余 8 个引脚称为段选端,当要使某一位数码管显示某一数字(0-9 中的一个) 必须在这个数码管的段选端加上与数字显示数字对应的 8 位段选码(也称字形码), 在位选端加上高电平即可。由于系统要显示的内容

14、比较简单,显示量不多,所以选用数码管既方便又 经济。42.5发光二极管的介绍J11KVCCJP1JumperLED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8图 2-5发光二极管发光二极管简称 LED 灯,是一种将电能转化为光能的特殊二极管。发光二 极管和普通的二极管一样,由一个 PN 结组成。具有单向导电性。当发光二极管 工作在正向偏置状态下,且有一定大小的电流通过发光二极管时。它就会发光。 光的颜色视发光二极管的材料而定。发光二极管正向工作电压为 1.5V 左右,正 向电流为 5-15mA.80C51 引脚输出低电平可直接驱动 LED。5第三章 软件设计3.1设

15、计流程图图 3-1设计流程图单片机将从程序中键盘按键初始化对应得到的值通过数码管显示行与列的 数值,通过 LED 灯显示 0-F 的值并伴随蜂鸣器的响声。63.2程序流程图开始有按键按下行列值正确图 3.2结束程序流程图本程序对系统按键进行了初始化,通过对按键的扫描结果进行判断是否有 按键按下,同时由数码管显示出当前按键行与列的数值,相应的 LED 灯作用; 没有按键按下就保持原来的状态。7第四章 调试4.1硬件调试4.1.1 电路电源调试在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损 坏。加电后检查各插件上引脚的电位,一般先检查 VCC 与 GND 之间电位,若在 5V4.

16、8V 之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有 时会使应用系统中的集成块发热损坏。电路电源主要通过 USB 外部供电,输入+5V 电压。提供单片机电源、数码 管电源和 ULN2003 电源。将数字电源通电后测试各个数字芯片的电源电压,即 可进行电路电源的调试。4.1.2 电路下载调试正确连接电路,通过 USB 串口下载相关程序,测试数码管是否能正确显示 数字,行列式键盘能否正确响应。4.2软件调试第一步要根据硬件连接图和各器件的特性选择本次课程所需的电路,然后根据电路进行软件编程,实现课程的相关要求。第二步将单片机插入 40P 的紧缩座,插上 12M 的晶振以及 USB 数

17、据线。第三步在电脑上根据相关资料提示找到 STC 的驱动程序,进行安装。第四步装下载软件加载程序,根据相关提示,选择单片机型号,找到软件 编程程序,对软件编程程序首先要用 KEIL 软件进行编译生成 hex 的格式,然后 进行下载。第五步在程序下载完成后,对开发板进行软件启动,程序就正式下载到单 片机中了。第六步测试载入程序后,单片机系统能不能完成本次课程所需的各 个要求。依次按下 44 行列式键盘,观察数码管的显示结果。结果数码管正确 显示出了各个按键的行与列的位置信息,验证程序完全正确,不需要修改。到 此,软件调试结束。8第五章 总结5.1 课程设计总结通过本次单片机课程设计,我不仅加深了

18、对单片机理论知识的理解,学会 了学以致用的重要性;而且还学会了如何去加强锻炼创新精神,同时也提高了 自身的动手能力,让我深刻的意识到理论与实际结合的重要性。本次单片机课程设计,主要分为硬件焊接和软件编写这两个部分。硬件焊 接主要看个人的焊接水平和细心程度。在焊接之前一定要了解各个元器件在整 个电路系统中所起到的作用,这样才能正确焊接元器件的位置,避免元器件的 错焊。由于固定思维的影响,很多同学以为排阻没有焊接焊接方向要求导致了 错焊,还好我仔细看了焊接说明书,这说明焊接前一定要认真了解相关内容, 否则可能会事倍功半。本次焊接较难的就是贴片的焊接,不仅要正确焊接贴片 管脚,不能使管脚相连,还要注

19、意不能使贴片受热时间过长,避免贴片被高温 烧坏,导致器件不能正常工作。焊接过程中,我最小的贴片 CH340 管脚焊接没 有问题,但是软件测试时不能正常烧写程序,我想可能就是焊接过程中温度过 高,将芯片给烧坏了,以后一定要注意。软件编写对我来说确实是个大问题,虽然本次课程设计的题目不是很难, 只要通过数码管显示按键行与列的位置。但是在实际操作过程当中遇到了不少 困难,首先是通过程序判别按键所在的行与列,这个需要一系列的计算,还好 书上有行列式键盘键值。之后是按键数值在 LED 数码管上的显示,确实是不会 编写,特别还是要用到位驱动。之后根据相关问题,我不断地去查找资料,参 考类似的程序和询问可能

20、会的同学,这个过程让我开动了自己的脑子,从而也 实现了自我的超越,让自己的知识能够得到不断地完善;同时更重要的是,在 这一设计过程当中,让我懂得了在学习的道路上会遇到很多的阻碍,但关键的 是能做到坚持不懈,不轻易放弃,最终达到自己想要的目标。单片机的学习对于我们专业来说非常的重要,通过本次设计也让我更加清 晰了对专业的了解,理论知识再丰富,没有实际的操作经验也是不行的;本次 设计也运用到了 protel 软件进行原理图的绘制,虽然不是单片机这门课需要掌 握的内容,但这个软件本学期已经在电子线路 CAD 这门课进行了系统的学习, 所以这让我意识到课与课之间是息息相关的,学好现如今的每一门课可能就

21、是 为下面的学习打好坚实的基础,掌握一些软件的开发与应用更是显得尤为重要。本次课程设计我发现自己在很多方面都有或多或少的不足,首先是硬件的 焊接,我感觉自己的焊接能力有待提高。焊接过程中,焊接速度不够娴熟,而 且焊点不够圆润美观,希望自己能在以后多多锻炼自己的动手焊接水平,不断 提高自己的焊接工艺水准,最好能达到眼到手到的境界。9软件编程确实是我的短板,一做到相关问题确实有点为难,幸好得到了同 学的帮助和老师的提示,这才将符合设计要求的程序编辑出来。希望我能在寒 假里能多花些时间学习单片机的软件编程,提高自己软件编程的能力。专业知 识一定要重视,切不可浑浑噩噩的过日子,要时刻铭记自己的目标,我

22、要学好 单片机,我要朝着自己的目标做出切实可行的行动,不做语言上的巨人。在本次设计过程中,我确实学习到了很多,也对本学期自己的学习状况有 了一次深刻而具体点了解和反思,希望我能在接下来的学习生活中改变自己不 好的状态,认真学习,不断提高和充实自己,让自己过一个充满意义的大学生 活。在设计过程中我也得到了不少同学们的帮助,要是没有同学不厌其烦的帮 助,我想我一个人也不可能在短时间内完成设计要求;所以在此我非常感谢在 设计中给予我帮助的指导老师和同学们。10第六章 附录附录 A原理总图S18JP6 JumperVCC+ C7C8 +R1410KVCCR1210KS19P10P11P12P13P14

23、MOSIP15MOSOP16SCK P17RESETP30P31P32P33P34P35P36P37X1X2AT1U1VCCP00P01P02P03P04P05P06P07EAALEPSENP27P26P25P24P23P22P21P20VCCJP1JumperJ11KLED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8P20P21P22P23P24P25P2612312123U1ULN2003161514131211109VCCVCCDS1DS2DS3DS4J5CON5JP2/relayJP3/speakVCCVCCLS1SPEAKERrelayK1321Heade

24、rP00P01P02P03P04P05P06P07117421538DS1DS4DS3DS2DS1S1 S2 S3 S4X1 X2Y3VCCS5 S6 S7 S8S9 S10 S11 S12P30P31C9 C10J16EAEAJ4Jumper321S13 S14 S15 S16P32P33P34P35P36P37图 6-1原理总图11附录 B程序代码/张凯/*功能描述:系统上电后,按下矩阵键盘的任意按键,蜂鸣器响,同时数码管 3、4 两位分别显示按键的行和列,led灯显示键值。 */#includereg52.h#include#define DUAN P0#define LED P1sbi

25、t LED1=P23;sbit LED2=P22;sbit LED3=P21;sbit LED4=P20;int num; /键值int x,y; /行和列sbit BUZZER=P25;/蜂鸣器引脚unsigned char code table = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa 1,0x86,0x8e;/共阳数码管显示 0F/*void sys_init()系统初始化 */ET0=1;TMOD=0X01;TH0=-10000/256;TL0=-10000%256;TR0=1;EA=1;12/*延时函数 500us */void delay_s() /500usunsigned char i;_nop_();i = 247;while (-i);/*延时函数 500ms */void delay() /500m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1