基于单片机的多功能综合应用系统的设计毕业设计论文Word下载.docx
《基于单片机的多功能综合应用系统的设计毕业设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能综合应用系统的设计毕业设计论文Word下载.docx(51页珍藏版)》请在冰豆网上搜索。
3.2模块分析……………………………………………………16
3.3程序流程图……………………………………………………17
第四章系统测试
4.1软件调试……………………………………………………19
4.2硬件调试……………………………………………………19
第五章心得体会……………………………………………………20
第六章参考文献……………………………………………………21
附录………………………………………………………………21
第一章设计说明
1.1设计目的
单片机在许多领域使用十分广泛,如智能仪器仪表、实时工控、通讯设备、导航系统、家用电器等。
各科任老师们经常说“学好单片机,工作就不成问题了。
”可见学好单片意义之重大。
单片机作为一门基础学科,既是对前期学习C语言的综合运用,也是理论与实践相结合的一大体现。
本次课程设计通过基础部分,拓展功能以及整体电路的实现能很好地锻炼我们的动手及编程能力。
1.2设计内容及要求
内容:
1.设计并实现具有复位功能的单片机小系统。
2.利用单片机进行灯光的场景开关控制、循环点亮控制、花样变化控制及速度变化控制(如:
左右循环、扩散收缩式移动、流星雨、舞台灯光综合效果、名曲名句跟随显示等。
至少应做两项:
前两项选一并有速度变化控制功能,后三项选一或自创特色花样)。
3.炫彩音乐显示(依据3秒以上某名曲名句,模拟高、中、低音三分频,彩色LED随音频变化而起伏显示的效果,进一步地,LED亮度跟随音乐响度闪烁)。
4.利用单片机进行灯光的色彩连续变化效果控制。
5.利用单片机进行灯光的三色联动定时控制(以交通灯为例)。
(说明:
3、4中二选一,1、2、5必选)
6.配合2至5项中功能,实现液晶屏输出功能或状态信息。
7.以调节5或4项中的时间为例实现基于4X4键盘的输入功能。
(可用现有成品键盘,也可自己课外用按键开关焊接自己的键盘。
)
8.数字温度计的设计(要求:
实时显示温度、设置限值温度、超限报警等)
9.32x16点阵LED显示同组同学汉字名(利用取字模软件获取数据);
10.智能式直流电压表的设计。
要求:
(1)能启动、停止;
(2)能通过开关进行功能选择;
(3)基本功能部分要体现循环、组合和色彩变化的控制功能和效果,实现三色联动定时控制,控制变化规律的类型或功能不少于5种。
元件清单:
序号
名称、规格
单位
数量/组
组数
备注
1
AT89S51/2
片
22
AT89S51
2
连线
把
4
共用
分红、黑、蓝、绿等色
3
12MHz晶振
只
Crystal
47p电容
5
10u电容(电解)
Electrolyticcapacitor
6
0.1u电容
capacitor
7
电阻330Ω
10
resistor
8
电阻1k
9
可调电阻10k
电阻:
510Ω×
8排阻
11
红色LED小灯
LED
12
绿色LED小灯
13
蓝色LED小灯
14
按键式开关
Button
15
拨动式开关
switch
16
面包板
块
17
74LS04
可换用74LS07/06、74HC245
18
RT1602液晶显示屏
19
DS18B20温度传感器
20
8550三极管
PNP型
21
有源一体蜂鸣器5V
第二章硬件电路仿真实现
2.1硬件结构分析
1、单片机仿真硬件系统由复位电路、晶振电路、独立键盘输入、彩灯输出、矩阵键盘输入以及LCD显示模块构成。
根据课本上的内容,首先搭建好复位电路与晶振电路,P1口接8个发光二极管,P3口接键盘,P2.4、P2.5、P2.6和P0口接LCD显示,
单片机实物电路由复位电路、晶振电路、独立键盘输入、彩灯输出模块构成。
由P1口接入彩灯。
其中晶振连接需注意到,两端测试电压的差值在2V左右时才能正常起振工作。
复位电路在未工作时不能有电压。
2.2基本功能仿真电路图
复位电路
时钟
显示电路
键盘
具体仿真图及说明部分
开始为流水灯,或按S0为流水灯
按S1交通灯
按S2灯光的色彩连续变化三色联动
按S3就转变为流星雨
调节时间先按S14就开始调节时间,按S11调节小时和分钟,按S3为+1,按S7为-1.
按S15可以调节灯的速度,按按S3为+1,按S7为-1.(其中当调节为0时速度最快,随着数字增加速度逐渐减小)
2.3扩展功能仿真电路图
温度计部分:
当温度超过25~30°
C时,二极管亮,报警:
25°
C时
30°
32*16显示屏部分:
显示屏显示:
第四部分智能电压表部分:
按下BUTTON键,LED灯亮起,调节RV1的值,LED亮灭变化,代表不同的输出电压值
调节RV1,阻值最大
调节RV1,阻值越来越小:
RV1阻值一半:
RV1阻值最小:
2.4电路实物图
3.1软件程序内容
见附录P18
3.2模块分析
1.显示模块:
用1602液晶显示,设置其技术参数为:
拨复位开关总能回到初始状态,使用8位数据,显示两行,使用5*7的字型,显示器开,光标关,字符不闪烁,字符不动。
2.矩阵键盘模块:
当扫描到1号键盘,进入到流水灯模块;
扫描到2号键盘时,进入交通灯模块;
扫描到3号键盘时,进入扩展灯模块;
当扫描到4号键盘,进入到循环灯模块;
当扫描到5号键盘,进入到三色联动模块;
按下复位键后,回到初始状态。
3.三色联动模块:
通过设置各种灯在不同的时间段亮灭,并且各自亮的时间长不一致,形成人们视觉上的观察,看到的现象是灯由亮到暗的变化过程,由此可形成各种不同的混色。
4.交通灯模块:
由延迟控制时间变化,设置两路交通灯,红灯亮18S,绿灯亮17S,黄灯1S,A路交通灯的红灯亮的时间等于B路交通灯黄灯亮的时间加上绿灯亮的时间,由此形成联动状态。
5.流星雨模块:
通过控制每个灯的亮灭之间的时间来实现,从而给人视觉上的效果,形成流星雨。
⑤温度显示模块:
通过DS18B20温度传感器实时采集温度通过1602芯片显示当前温度。
3.3程序流程图
基本部分:
Led点阵:
Y
N
4.1软件调试
在编程过程中,遇到了很多难题。
流水灯和交通灯子程序都编的比较顺利,三色联动因为要涉及到调节占空比,刚开始的时候感到无从下手,后来又想到利用定时中断,通过产生不同占空比的方波信号来控制灯的亮暗程度。
但是这样仍然没有成功。
后来在同学的帮助下,利用随机函数调节占空比,调试成功,达到了预想的效果。
在编写键盘扫描程序的之前,我查看了很多资料,先弄清楚了矩阵键盘的工作原理,然后确定了一个简单有效的键盘扫描算法,调试成功,启动键盘扫描程序,能够准确判断出键值并进入相应的功能模块。
后来把全部功能整合到一个总程序中,就遇到了麻烦。
首先在调用子函数的时候,由于各场景由while
(1)控制,在子函数中不能及时跳出循环,后来在删除了while
(1)死循环之后,当检测到任一其它按键后就能立即跳出循环。
刚开始我们的交通灯子程序用到了定时中断,在写主函数的时候,当矩阵键盘按下后交通灯子程序不能执行,后来简化了交通灯程序,改用延时,交通灯功能模块就能正常运行了。
还有关于LCD显示的,之前是把对其初始化的调用放在子函数中,这样在每次调用时都初始化一次,使得不能很好地变化,后来把初始化放到了主函数里,则能正常跳变。
在此次课程设计中碰到了很多困难,经过老师和同学的帮助,还有自己在网上查资料都能够得以解决。
使我深深的体会到,只要坚持不懈,没有什么事情是不能解决的。
4.2硬件测试
在硬件电路搭建完毕后,我们开始进行测试,成功烧写52芯片后,发现灯的亮灭不受控制,而且1602液晶显示屏也是没有显示内容。
在我们反复的检查,另外有对应仿真结果逐一排查,发现我们的电路有一些问题,因为我们的刚开始的电路AT89C52的P0口接的是排阻,而且排阻的另一端接到了显示屏的端口,犯了很大的错误,检查发现后,我们立刻做了修正,在P1口接了10k的电阻,电阻的另一端接到+5V的电源,同时P1口接到显示屏的端口。
这样又进行测试,发现显示屏可以正常的显示,灯也可以正常的工作。
给老师检查中,发现我们的复位键不管用,之前没有太注意这个,幸好老师提醒我们,发现我们少接了一个电容。
之后我们又做了调整,终于电路正常工作。
同时,在调节滑动变阻器使显示屏显示的过程中也是很大的考验,需要有耐心,不断转滑动变阻器,最后才使得整个电路顺利进行。
在本次课程设计中,我们进一步了解了89C52各引脚的功能以及89C52的内部逻辑结构,深入掌握了89C52显示电路的基本功能及编程方法,同时深入了解了89C52等芯片以及键盘的工作方式和接口功能。
第5章心得体会
在本次单片机课程设计中,让我感触很深,从刚开始的简单的控制灯的程序开始,逐步地增加开关控制,再将这些连接起来,真的一步一步地发现单片机很有趣。
在课程设计课中的头两个星期我很困惑,因为我不懂怎么把很多个功能放在一起,为此我问了一些学的好的同学,他们认真的讲解让我有了一些启发,后来我又自己买了一块单片机自己试着编写一个程序达到自己的预期结果,尽管这个过程非常的枯燥,有时候编不出来或者想的跟试验结果不同时,又要重新检查语句,看每条语句的功能,又通过在网上查阅很多的资料来解决自己的问题。
对于我来说,我比较偏向于动手,在硬件的搭建中还算是比较顺利的。
还有在这两个多月里,我学到了很多的东西,看书本仅仅只是理论知识,而将所学的理论知识与实践结合的过程中,才发现自己学的理论知识远远不够。
尤其是在编程时往往能想到怎么做,却不知怎么编写,我感觉这是最难的,在心里真的是想要去认真的完成,可是却因为克服不了自己的恐惧,总觉得很难,就拖了好几天,不过庆幸的是我还是坚