多通道百分秒表报告.docx
《多通道百分秒表报告.docx》由会员分享,可在线阅读,更多相关《多通道百分秒表报告.docx(15页珍藏版)》请在冰豆网上搜索。
多通道百分秒表报告
《单片机原理及接口技术》
课程设计报告
课题名称
多通道百分秒表设计
学院
专业
班级
姓名
学号
万物皆有规律
时间
2015年6月
基于单片机的多通道百分秒表设计
摘要:
近年来随着科技的飞速发展,单片机的运用正在不断的走向深入,同时带动传统控制检测日新月异的更新。
本秒表设计采用8051单片机为中心器件,利用其定时/计数器定时、计数的原理,结合显示电路、按键控制电路等外围电路来完成。
将软、硬件有机的结合起来,使得系统能够实现4位LED显示,显示时间为00.00到99.99秒,每秒自动加一,可以用开关控制开始、停止、复位,并且能拥有多通道(两个或以上)分别计时功能。
其软件系统采用C语言编写程序,包括:
显示程序、中断初始化程序、中断服务程序、显示程序及开关控制程序。
通过KEIL4与PROTEUS进行联合调试,使得硬件与软件有机的结合起来,达到了预期目的。
关键词:
单片机,秒表,多通道
Abstract:
Inrecentyearsalongwiththerapiddevelopmentofscienceandtechnology,thesingle-chipmicrocomputerapplicationisconstantlydeepening,ledthetraditionalcontroltestatthesametimechangerapidlyupdate.Thestopwatchdesignusing8051singlechipasacoredevice,usingthetimer/countertiming,countingprinciples,combinedwithdisplaycircuit,controlcircuitandotherperipheralcircuittocomplete.Thesoft,hardwareoforganiccombination,sothatthesystemcanachieve4LEDdisplay,displaytimeis0to99.99seconds,plusasecondautomatic,canusetheswitchtocontrolstart,stop,reset,andcanhavemultiplechannels(twoormore)arefunctionsoftime.ThesystemsoftwareusingClanguageprogramming,including:
displayprogram,interruptinitialization,interruptserviceroutines,displayandswitchcontrolprocedures.ThroughtheKEIL4andPROTEUSjointdebugging,whichmakeshardwareandsoftwarecombinedwithorganic,toachievetheexpectedgoal.
Keywords:
SingleChipMicrocomputer;Stopwatch;MultiChannel
目录
一、内容提要3
1.设计任务3
2.主要功能3
3.设计提示3
二、步骤及方案3
三、硬件设计4
1.单片机的选择与外围电路4
2.单片机与显示模块电路5
3.开关电路6
4.显示LED电路6
5.外围小灯电路7
6.整体电路protuus仿真图8
四、软件设计8
1.系统主函数程序8
2.初始化函数程序9
3.显示函数程序9
4.开关函数程序10
5.中断函数程序11
五、调试12
六、课程设计体会13
七、参考文献13
附录:
14
源程序代码14
一、内容提要
1.设计任务
基于AT89C51设计一个5位LED数码作为“多通道百分秒表”。
2.主要功能
(1)、显示时间为00.00到99.99,每百分之一秒自动加一。
(2)、设计一个有五个按键的键盘。
K1:
开始,K2:
停止,K3:
复位,K4通道加1,K5:
通道减1。
(3)、◎设计LED提醒,即D1小灯按照当前通道隔一秒亮一次,可以通过开关关闭该功能。
(4)、☆其他功能:
D2、D3小灯按照01、02通道分别计时时间到10秒时熄灭。
(定时:
到某一时间有LED提醒功能)。
3.设计提示
(1)、用1个6位7段LED数码管作为显示设备,最高位显示通道号,低四位显示时间。
(2)、可采用定时器,定时时间为10MS。
(3)、可参考proteus仿真图
二、步骤及方案
根据系统的设计要求,选择AT89C51单片机作为系统的核心来完成定时、计数的功能,用74HC245来完成数据的锁存和对LED的刷新控制,用外围开关电路实现对单片机的外围输入,用小灯来实现对于计时等功能的提示。
该系统的设计总体思路如下:
开关K1把开始信号传输给AT89C51单片机,单片机开始计数,然后在P2口输出信号,通过74HC245后传输给LED数码管控制数码管位数是否启用,然后P0口传输相对应的信号控制启用的数码管位输出的具体信号。
同理,其余开关的信号分别控制了AT89C51的停止、复位和通到的加减。
外接的小灯接到P1.5、P1.6、P1.7口,分别作用于计时提示。
综上,可知7SEG-MPSX6-CC的最高2位用来显示通道,低四位用来显示时间(00.00到99.99秒),按照功能要求,确定由四个部分组成:
主控制器,开关控制、小灯显示、LED显示。
总体设计电路结构图如图所示:
三、硬件设计
1.单片机的选择与外围电路
AT89C51作为秒表计时系统的核心器件。
该器件是INTEL公司生产的MCS-51系列单片机的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS-51的CMOS产品。
不仅结合了HMOS的高速和高密度技术及HMOS的低功耗特征,而且继承和扩展了MCS-48单片机的体系结构和指令系统。
单片机小系统的电路图如图所示。
AT89C51单片机的主要特征:
(1)与MCS-51兼容,4K字节可编程闪烁存储器;
(2)灵活的在线系统编程,掉电标识和快速编程特性;
(3)寿命为1000次写/擦周期,数据保留时间可10年以上;
(4)全静态工作模式:
0HZ~33HZ;
(5)三级程序存储器锁定;
(6)128×8位内部RAM,32位可编I/O线;
(7)两个16位定时器/计数器,5个中断源,4个8位并行的I/O接口,1个全双工I/O接口。
2.单片机与显示模块电路
由74HC245芯片和电阻,导线构成,控制锁存单片机输出信号。
74HC245元件的封装:
(1)第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。
(2)第2~9脚“A”信号输入输出端,A1=B1、、、、、、A8=B8,A1与B1是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。
如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。
(3)第11~18脚“B”信号输入输出端,功能与“A”端一样,不在描述。
(4)第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。
(5)第10脚GND,电源地。
(6)第20脚VCC,电源正极。
74HC245真值表:
3.开关电路
由电源、导线、电阻、开关(K1、K2、K3、K4、K5五个开关)构成,K1连接P1.0口控制开始;K2连接P1.1口控制暂停;K3连接P1.2口控制复位清零;K4连接P1.3口控制通道减1;K5连接P1.4口控制通道加1。
如图:
图开关电路
4.显示LED电路
由7SEG-MPSX6-CC共阴LED8段位显示器构成:
结构图为:
其真值表为:
显示字符
共阴极接法八段状态
断码
(共阴)
sp
g
f
e
d
c
b
a
0
0
0
1
1
1
1
1
1
3FH
1
0
0
0
0
0
1
1
0
06H
2
0
1
0
1
1
0
1
1
5BH
3
0
1
0
0
1
1
1
1
4FH
4
0
1
1
0
0
1
1
0
66H
5
0
1
1
0
1
1
0
1
6DH
6
0
1
1
1
1
1
0
1
7DH
7
0
0
0
0
0
1
1
1
07H
8
0
1
1
1
1
1
1
1
7FH
9
0
1
1
0
1
1
1
1
6FH
.
1
0
0
0
0
0
0
0
80H
综上则可知:
显示
0
1
2
3
4
5
6
7
8
9
.
断码
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
80H
5.外围小灯电路
采用了3个LED小D1、D2、D3,当按钮按下后,3个LED小灯接入电路,接口为:
D1端接到P1.5口、D2端接到P1.6口、D3端接到P1.7口,其中D1小灯按照当前通道隔一秒亮一次,D2、D3小灯按照01、02通道分别计时时间到10秒时熄灭。
如图。
6.整体电路protuus仿真图
四、软件设计
系统程序包括:
主函数程序、显示函数程序、中断函数程序、开关函数程序、系统初始化函数程序,通道设置函数程序。
主程序结构:
1.系统主函数程序
主程序程序中调用了两个子函数程序,分别是中断初始化函数程序及显示函数程序。
2.初始化函数程序
初始化函数程序包括对定时器/计数器的工作方式设定、初值设定。
3.显示函数程序
显示函数程序通过识别两个通道的刷新标志位flag_1和flag_2来实现双通道显示转换。
4.开关函数程序
开关函数程序主要通过P1.0、P1.1、P1.2三个引脚来操作秒表的开始、停止、清零。
5.中断函数程序
中断函数程序通过P1.3和P1.4控制用户选择的通道数,然后根据开关函数来分别对两个通道的刷新标志位flag_1和flag_2赋值,进而实现通道的互相切换。
五、调试
把程序从KEIL中生成HEX文件,导入单片机中,测试是否实现题目要求的各个功能。
1.由于开始计算中断初始时间不准确,故重新设置初始化时间;
2.经过调试,延时时间设为1000效果最佳;
3.由于3通道数要求过于复杂,故采用双通道设计;
4.由于难以实现一个按键具备:
开始、停止及清零功能,所以只能采用三个按键分别控制。
经过耐心的调试,最终实现设计要求。
PROTEUS仿真图如图:
通道一
通道二
六、课程设计体会
通过两周的设计实训,让我们了解了设计电路的程序的基本步骤,以及多通道百分秒表的原理。
同时在软件设计编程上,我们了解到了很多编程方面的方法和技巧,并且使我们对单片机及其他芯片的各个引脚的功能有更深的了解,巩固了单片机的书面知识,发现了以往在学习中忽略的东西,明白了在实际的设计工作中只有书面知识是不够的,只有在自己的实践中才能发现问题并解决问题,从而不再犯眼高手低的错误。
在这次的课程设计过程中,我们运用了以前学过的专业知识,如Protues仿真、汇编语言、C语言、模拟和数字电路的知识等。
并且查阅大量的设计资料,每一步都有可能出现的问题,我们所做的就是迎接问题,改正错误,使自己的作品更加完善。
在学习过程中带着问题去学习我发现效率很高,这就是在这次课程设计中的又一个收获。
要做好一个课程设计,就必须做到在课程设计之前,对所用单片机的内部结构有一个系统的理解,知道该单片机有哪些资源:
要有一个清晰的思路和一个完整的软件电路图;在程序设计时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路,要养成注释程序的好习惯,这样为资料的保留和交流提供了方便。
总的来说,通过这次的课程设计更进一步地增强了实验的动手能力,提高了组成系统、编程、调试的动手能力。
在今后的学习生活中,要牢记在实验中的经验教训,争取获得更大的进步。
并且在这次在这次设计中,我们了解到了团队合作的重要性,对以后步入社会积累了很好的经验。
七、参考文献
梁立、解敏C程序设计实例教程清华大学出版社;
秦曾煌电工学(第六版)高等教育出版社;
吴亦锋、陈德为单片机原理与接口技术电子工业出版社;
边清远、王志强MCS-51单片机运用与开发使用子程序人民邮电出版社