基于单片机的数字时钟的设计与制作
2020-09-03杨传燕唐敏安莉莉
杨传燕 唐敏 安莉莉
本文主要针对职业院校的学生,设计与制作基于单片机的数字时钟,系统采用6位数码管进行时、分、秒的显示,采用24小时显示方式,具有时间调整及整点报时等功能。本文主要从硬件电路设计、电路板制作、软件设计、产品成型4个方面进行介绍,提高职业院校学生职业岗位能力的培养。
0引言
单片机因其具有集成度高、运算速度快,体积小、运行可靠、价格低等特点而在过程控制、数据采集、机电一体化产品、家用电器、智能化仪表和网络技术中得到大量使用,称为工厂自动化和各控制领域的支柱产业之一,对于电气自动化设备安装与维修专业的同学来说是必不可少的专业技能。而职业教学的社会功能是培养生产、服务和管理第一线的应用型职业人才,因此职业教育要适应社会发展,顺应社会发展规律,为满足设置需求造就合格的“职业人”。
数字时钟是实现对时、分、秒进行数字显示的计时装置,广泛用于车站、办公室等公共场所,成为人们日常生活中的必需品。钟表的数字化给人们的生产生活带来了极大的方便,数字时钟的精度,远远超过传统时钟,本文针对单片机教学中的不足,以数字时钟的设计与制作为载体,培养电子产品装配基本能力、电子线路检测与调试能力、单片机硬件电路设计与程序开发能力、单片机设计师综合开发与创新能力。
1、系统硬件设计
本系统控制器选用ATMEL公司生产的AT89C51单片机,它是一种新型的低功耗、高性能的8位CMOS微控制器,4个8位可编程并行I/O口,2个外部中断,2个可编程16位定时器。系统硬件电路由单片机的最小系统、按键输入电路和数码管显示电路三个部分组成。
数码管时钟电路图如下所示,其采用单片机最小化应用设计,LED显示用动态扫描方式实现,P0口输出段码数据,P2.0~P2.5口作扫描输出,P3.0~P3.3接按钮开关。在仿真电路中LED数码管可以直接和单片机管脚相接,但在实际电路中需要用三极管提供LED数码管的驱动电流,用三极管作电源驱动输出。为了提高秒计时的精确中。本设计中的计时采用定时器T0中断完成,其余状态循环调用显示子程序,当P3.0端口开关按下时,转入调时功能程序。
2、电路板制作
(1)列写元器件清单
根据电路原理图,分析并统计本系统要用到的元器件,并列出详细的元件明细表,以便到电子市场进行购买。
(2)元器件装配
在本次任务中就是要设计各个元件所在印制板上的位置,它直接关系到产品的外观是否美观,操作是否方便,产品在后期焊接过程中的难易程度,甚至可以直接导致产品设计成功与否。在装配中要求元器件位置要从大到小来进行,并且位置要占到印制板80%的面积较为合适;晶振和单片机的位置要尽量靠近;显示时间的数码管必须安置在显眼、易观察的位置,不宜放在角落;单片机在调试程序时可能要反复插拔,所以应留出方便插拔的空间;元件的安置要便于走线,走线越短,交叉越少越好。
(3)元件的插装
印制电路板上,元器件插装应遵循先小后大、先轻后重、先低后高、先里后外的原则;两引线左右弯折要对称,引出线要平行,其间的距离应与印制电路板两焊盘孔德距离相同,以便于插装;元器件引线成型后,其标志符号应在查看方便的位置;安装时元器件通常离板高度2-5MM。
(3)元件及导线的焊接
通过五步法焊接视頻学习焊接,要求焊点具有良好的导电性、焊料要适当、具有一定的机械强度、焊点表面应有良好光泽、焊点不应该有毛刺和空隙、焊点表面应清洁。
(4)电路板的检测
用万用表R*1K档测量集成电路各引出脚对地电阻值,并按照标准值可判断集成电路的好坏。
3、软件设计
程序设计是本次的难点,为了彻底消除同学们对编程的畏难情绪,将软件设计分成主程序、定时程序、显示程序、按键程序。
(1)主程序
主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125ms定时中断的到来。定时器的定义如下:
TMOD=0x01;//定时器0设置
TH0=(65535-50000)/256; //设定定时时间
TL0=(65535-50000)%256;
EA=1;//开启T0中断功能
ET0=1;
TR0=1;//定时器开始工作
(2)定时中断
TH0=(65535-50000)/256; //重新设定定时器0定时时间
TL0=(65535-50000)%256;
tt++;
if(tt==20)
{ tt=0; sec++;
if(sec==60)
{ sec=0; min++;
if(min==60)
{ min=0; hour++;
if(hour==24)
{ hour=0; } } } }
(3)数码管时分秒的显示
disp_buffer[0]=num[sec%10];
disp_buffer[1]=num[sec/10];
disp_buffer[2]=num[min%10];
disp_buffer[3]=num[min/10];
disp_buffer[4]=num[hour%10];
disp_buffer5]=num[hour/10];
(4)按键调时
设定键接外部中断P3.2,另外设置两个键用来对调整对象进行+和-操作。
4、产品调试
产品的调试分为单元部件调试和整机调试。
(1)单元部件调试的流程为:
外观检查--静态工作点测试和调整--波形、频率测试与调整--频率特性测试与调整--性能指标综合测试。
(2)整机调试的流程为:
整机外观检查--机械传动外观调整--整机功能测试--单元部件性能指标测试--整机技术指标测试--例行试验--整机复测
(3)将各部分子函数调试完成后,组合成完成程序并在仿真软件上进行仿真调试,成功后下载到单片机中测试产品功能与性能。
5、结束语
本文以AT89C51为核心,辅以数码管、按键等电路,设计了一款简易数字电子时钟,该设计较之集成时钟省去了很多复杂的线路,使得控制电路简单易懂,具有成本低、体积小、简单实用等优点,通过对数字时钟的硬件设计、装配,软件编程与调试,大大提高了职业院校学生学习单片机的兴趣,掌握了单片机产品的设计制作流程,为后期的就业奠定了坚实的基础。
参考文献:
[1] 楼然苗,王世来.单片机实践教学改革与应用型人才培养[J].中国大学教学.2006.
[2]周润景.PROTEUS在MCS-51&ARM7系统中的应用百例 [M]. 北京电子工业出版社.2006.
[3]王静霞.单片机基础与应用[M].高等教育出版社,2015.