单片机原理课程设计秒表设计Word文档格式.docx
《单片机原理课程设计秒表设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理课程设计秒表设计Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
秒表设计
摘要单片机控制秒表是集单片机技术、模拟电子技术、数字技术与一体的机电一体化高科技产品,具有功耗低、安全性高、使用方便等优点。
本次设计以AT89C51单片机为核心的秒表,它采用键盘输入、单片机控制。
设计内容以硬件设计、软件设计为主。
利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED数码管以及按键来设计计时器。
将软、硬件有机的结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生活中应用广泛。
关键词:
秒表;
89C51;
定时器;
计数器
1绪论
最早的计时工具为水漏和沙漏,时间以时辰计,虽然中国早在唐代最早发明了机械时钟,但是并没有产生更精确的计时量度。
秒表的发明是西方科技进步的结果更是里程碑的意义。
由于有了秒表,才有了瞬时速度的概念,才能够诞生物理学。
由于要求的提高,能精确定时对于AT89C51在实际应用有着重要的意义。
但是传统的软件定时方式由于时钟周期考虑不全容易引起累计误差,而采用定时器中断方式定时中断响应周期不确定性而产生的误差更具有非固定性的特点。
文中从合理考虑各种指令周期、巧妙设置技术器初值、巧妙利用计数器溢出值、适时开关中断的角度出发给出了4种纠正各种误差方法。
单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能做到电路更简单、功能更齐全的良好效果。
若把经典的电子系统当做一个僵死的电子系统,那么智能化的现在电子系统则是一个具有生命的电子系统。
而随着技术的进步,单片机与串口通信的结合更多的应用到各个电子系统中已成为一种趋势。
本设计就集于单片机来设计秒表。
通过串口通信动态传输数据,是秒表有了更多更完善的功能。
单片机系统的硬件结构给予了秒表“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在秒表面前具有了电路简单、成本低、运行可靠等特点。
所以这次的毕业设计对我们来说应该是很好的锻炼机会,这一课题让我们对秒表的制作过程有了更深的了解。
在硬件或软件方面更加熟悉其中的步骤和捷径,并且开发了自己动手能力和对软件组织的思维方式。
2设计方案论证
2.1设计要求
1)秒表最大计时值为99秒
2)六位数码管显示,分辨率为0.0001秒
3)通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统拥有正确的计时、暂停、清零功能。
4)操作控制键三个。
2.2方案论证
方案1:
可以用分立元件来做,成本高、反而来的更复杂些。
方案2:
可以用单片机来做,只要有一块芯片编写程序就可以。
综上所述,方案2简单。
为了实现LED显示器的数字功能,可以采用静态显示法和动态显示法了。
由于静态显示法需要数据锁存器等硬件,借口复杂一些。
显示只有6位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现LED的显示。
单片机用AT89C51系列。
硬件系统的总体构成框架如图2-1所示。
2-1硬件系统的总体设计框架
3系统硬件电路设计
3.1系统硬件电路设计
秒表的硬件电路如图3.1所示,采用AT89C51单片机,最小化应用设计;
采用共阴七段LED显示器,PO口输出段码数据,P2.0-P2.5口作列扫描输出,P1.1;
P1.2口接三个按钮开关,用以功能设置。
为了提供共阴LED数码管的驱动电压,用74HC541作电源驱动输出。
采用12MHZ晶振,有利于提高秒表计时的准确性。
3-1硬件显示电路
图3-2硬件控制电路
3.1.1晶振电路
单片机工作的时间基准是有是中锋电路提供的。
在单片机的XTAL1和XTAL2两个管教,接一个晶振及两只电容就构成了单片机的时钟电路。
电路中,电容器C1和C2对振荡器震荡频率有微调作用,通常取(30+(-)10)pF。
石英晶体选择6MHz或12MHz都可以。
如图3-3.
图3-3
电路中的晶振即石英晶体振荡器。
由于石英晶体振荡器具有非常好的频率稳定性和抗外界干扰能力,所以,石英晶体振荡器是用来产生基准频率的。
通过基准频率来控制电路中的频率的稳定性。
3.1.2复位电路
复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经过一定的时间延迟才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
如图3-4所示。
图3-4
3.1.3核心控制元件的确定与介绍
以89C51为CPU的设计方案,设计这样一个简单的应用系统,可选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
ATMEL公司生产的AT89C系列单片机。
采用MSC-51系列的单片机相比有两大优势:
(1)片内程序存储器采用闪存存储器,使程序的写入方便,还有任意的擦写1000次使之更为方便。
(2)提供了更小的芯片,使整个硬件电路的体积更小。
它的体积较小、良好的性价比更倍受电子爱好者的青睐。
本设计采用了MSC-5189C51单片机,具有程序加密功能且物美价廉,经济适用。
如图3-5
图3-5
AT89C51是一种带4k字节可编写可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
是一种单片机可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了灵活性高且价廉的方案。
3.1.4数码管简介
1)数码管结构
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0~9、字符A~F、H、L、P、R、U、Y等符号“—”以及小数点“.”。
数码管的外形结构如图3-2(a)所示。
数码管又分为共阴极和共阳极两种结构,分别如图3-2(b)和图3-2(c)所示。
图3-6数码管结构图
设计时,LED显示器的驱动是一个非常重要的问题,显示电路由LED显示器、段驱动电路和位驱动电路组成。
由于单片机的并行口驱动电流太小不能直接驱动LED显示器,所以必须通过PNP三极管,使之产生足够大的电流,来驱动LED达到足够的亮度,显示器才能正常工作。
如果驱动电路能力差,即驱动电流过小,数码管显示亮度不够,而且驱动电路驱动电流太大容易损坏数码管。
这个尺度是设计者要把握好的。
LED显示器显示控制方式有两种:
静态和动态。
本设计方案选择的是动态控制方式。
由于一位数据的显示是由段码和位码信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
3.1.5键盘输入部分
(1)键盘设置
KEY1是开始按键,按下,数码管运行数字
KEY2是停止按键,按下,数码管停止数字
KEY3是清零按钮,按下,数码管全部初始化
还有个复位按钮当数码管运行数字的时候,不能直接清零按钮,只能停止按钮才能停止,在清零按钮全部显示初始化0.
2)键盘输入分析
键盘输入部分由三个按键直接接单片机I/O接口,哪个键按下,对应的I/O口由高电平变为低电平,经单片机读键处理后,由对应的执行I/O口输出信号来控制整个系统的工作。
3.1.6芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储器字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,知道下一个硬件复位为止。
4系统程序的设计
4.1主程序
本设计中,计时采用定时器TO中断完成,其余状态循环条用显示子程序,当端口开关按下时,转入响应功能程序。
其主程序执行流程见图4-1。
在“键按下?
”中先去抖动查有没有键按下,有的话是哪个键?
再根据不同的键进入不同的功能程序。
图4-1主程序执行流程图
4.2显示子程序
从PO口输出,P2口将对应的数码管选中供电,就能显示地址单元的数据值。
1S定时有硬件定时和软件定时两种。
由于软件定时浪费CPU的资源,在很多的地方都不大用。
相比之下,硬件定时他不浪费CPU资源,且定时准确,使用方便,因此得到了广泛的使用。
加1子程序
MOVa,setu
adda,#91h
daa
anla,#0fh
movset0,a
addca,#90h
anla,#0fh
movset2,a
mova,set3
addca,#90h
anla,#0fh
movset3,a
mova,set4
addca,#90h
daa
movset4,a
mova,set5
Daa
movset5,a
Ret
4.3定时器TO中断服务程序
定时器TO用于时间及时。
定时溢出周期可分别设为0.1MS.中断进入后,先判断是时钟计时还是秒表计时,时钟计时累计中断1次时,对秒表计数单元进行加1操作,秒表计时没0.0001S进行加1操作。
最大计时值为99秒。
在计数单元在计数单元中采用十进制BCD码计数,满60进位,TO中断服务程序流程图如4-2
12M晶振:
因为12M晶振的一个机器周期定时为1US,而6M晶振的一个机器周期定时为2US.故而用12M晶振来的精确点。
工作方式0(十三位计数定时):
由THO的高八位和TLO的低五位构成。
在方式0下,若为技术工作,则计数值的范围为:
1~8192(2^13)
工作方式1(十六方式计数方式时):
由THI的高八位和THL的第八位构成。
在方式1下,若为计数工作,则计数值范围为1~66636(2^16)
两种方式比较起来方式1计数范围比较广
图4-2TO中断服务程序流程图
TO中断入口程序:
TOO:
PUSHACC
PUSHPSW
CLRTR1
lcallk1
MOVTH1,#0ffh
MOVTL1,#9Ch
SETRTR1
POPPSW
POPACC
RETI
4.4条形码的定义
由于系统LED显示器使用的是共阴极的显示器,而显示器不能直接识别十进制和别的进制,他这样根据给定的字行码进行显示,有了十进制的字行码,就能实现十进制通过编译然后再LED显示器上显示,准确无误。
字行码程序清单如下:
ORG,0030H
TAB:
DB,7Bh,41h,37h,67h,4Dh,6Eh,7Eh,43h,7Fh,6Fh
5调试
根据方案设计的要求,调试过程共分三大部分:
硬件调试、软件调试和硬件联调。
电路按模块调试,各模块逐个调试通过之后再联调。
单片机软件先在仿真器上调试,确保工作正常之后,再与硬件系统联调。
5.1硬件调试
在硬件调试时,先检查电路板及焊接的质量情况,在检查无误后,通电检查LED显示器的点亮状况。
亮度不理想,可调整P0口的额电阻大小,一般情况下取200欧姆电阻即可获得满意的亮度效果。
在实验室制作时,结合示波器测试品振及P1、P2端口的波形情况,进行综合硬件测试分析。
5.2软件测试
在软件调试时用编译软件进行程序的编写。
程序检查无误后,把程序烧到89C51芯片里。
弄到硬件上进行调试。
看有没有达到预期的设计要求,如果没有达到,进行进一步的修改。
有就最好不过了,证明软件方面已经成功。
5.3软硬件联调
软硬件连上后,用软件仿真来调试。
一个一个对89C51的端口输出电压后,看各口连的显示电路等的变化。
直到实验和题目要求的功能能完成。
遇到不同时分析软硬件,再一个一个的调试,结合后改好。
从发现问题到分析问题,最后得出解决方法,实现我们的目的。
6系统调试
测试返现电路不起振或振荡弱,可能有以下几点故障:
1,在CC两端并联一个7pF电容(注意:
电容不可过大,否则你会发现调制失效);
2,调震荡级偏置电阻;
3,改变C6容量一试,如果C6容量一试,如果上述方法不能解决,也有可能是原件布局不合理引起,可重新对电路板进行布线。
7课程设计总结
通过设计制作该系统,让我从中收获很多,对整个系统用89C51单片机实现过程,整体编程思想有了更深的理解并对软件的编写能力也有了提高。
在制作过程中遇到了很多难题,从而是我更有目的性和针对性的去找资料,然而本系统经过我们的努力还是做出来,使我在今后的学习工作的道路上对自己更有了信心。
参考文献
[1]付晓光.单片机原理与使用技术,北京:
清华大学出版社;
北方交通大学出版社,2004
[2]张俊谟.单片机中级控制教程原理与应用,北京:
航空航天大学出版社,2002
[3]付家才.单片机控制工程实践技术.北京:
化学工业出版社,2004
[4]赵家贵.电子电路设计.北京:
中国计量出版社2005
[5]余存锡曹国华单片机原理及接口技术陕西:
西安电子科技大学出版社.2000
附表A
序号
名称
型号、规格
数量
1
晶振
12MHz
2
数码显示管
共阴极
6
3
单片机
89c51
4
电阻
1K
5
磁片电容
33p
电解电容
50V220UF
7
驱动芯片
74HC541
8
排阻
4.7k
9
按钮
SW-JB
附录B原理图