当前位置:
文档之家› 单片机应用技术99.9秒码表设计
单片机应用技术99.9秒码表设计
实践】
图5.3 秒表显示模块与单片机的接口电路原理图
【项目实践】
【活动三】软件设计
1.算法设计
秒表设计需要采用比较精确的计时,可以利用MCS-51单片机内部的可 编程定时器/计数器来实现精确的计时。
① 程序实现方式 单片机的定时/计数可以采用查询方式或者中断方式来实现,本项目 采用中断方式。 ② 确定定时器工作方式 由于秒表的最小计数单位为0.1秒,而单片机的16位的定时器的最大 定时时间分别为(单片机系统的晶振为12MHz): 方式0:tmax=213*12/fosc=8192*12/(12*106)=8.192ms, 方式1:tmax=216*12/fosc=65536*12/(12*106)=65.536ms; 方式2:tmax=28*12/fosc=256*12/(12*106)=0.256ms; 可见,三种方式下的最大定时时间都不能达到秒表的最小计数单位 0.1秒,在这种状况下,为了减少中断或定时到的次数,避免响应误差或 中间重置误差,使定时更精确,选用定时时间最长的方式,即方式1。
器的33H单元; 数码管号数LEDSM定义为片内数据存储器的34H单元; DPTR为数码管字型码的基址寄存器。
《单片机应用技术》
99.9秒码表设计
《单片机应用技术》精品课程组 泸州职业技术学院机电工程系
本讲主要内容
1 教学目标 2 工作任务 3 项目实践 4 相关知识 5 能力拓展 6 项目考核
【教学目标】
1 制作一个利用单片机作为主控制器的电子秒表 2 理解定时/计数器的工作原理 3 掌握定时/计数器的工作方式及定时/计数初值的计算 4 熟悉定时/计数器的编程结构 5 掌握定时/计数器程序设计方法 6 了解定时/计数器的应用领域
【项目实践】
2.数据结构设计 P0用于数码管的字位口控制; P2.3用于显示秒十位计数单元值的数码管的字型口控制; P2.4用于显示秒个位计数单元值的数码管的字型口控制; P2.5用于显示0.1S计数单元值的数码管的字型口控制; 0.1S计数单元JS100MS定义为片内数据存储器的30H单元; 秒个位计数单元JSGW定义为片内数据存储器的31H单元; 秒十位计数单元JSSW定义为片内数据存储器的32H单元; 软计数器T0_100MS(用于产生0.1S)定义为片内数据存储
【工作任务】
利用定时器,产生秒计数器,使数码管 从00.0计时到99.9。
【项目实践】
【活动一】总体设计
本系统功能由硬件和软件两大部份协调完成,硬 件部分主要完成信息的显示;软件主要完成信号的处 理及控制功能等。 本系统的硬件采用模块化设计,以AT89S52单片机为核 心,与秒表显示接口电路组成控制系统。该系统硬件 主要包括以下几个模块:AT89S52主控模块、秒表显示 模块等。其中AT89S52主要完成外围硬件的控制以及一 些运算功能,秒表显示模块完成时间的显示功能。系 统组成方框图如图5.1所示。
数码管的公共使能端COM连接三极管C8550的集电极,三极管 C8550主要用于信号的放大,以驱动数码管工作。三极管8550的基极 通过限流电阻接到单片机P2口的P2.0,通过控制三极管C8550基极电 平来打开或关闭数码管的显示,起到“使能作用”。三极管C8550的 集电极接+5V电源。数码管显示模块与单片机的接口电路如图2.3所 示。
【项目实践】
AT89S52单片机的P0端口输出LED数码管的显示段码,数码管 的a、b、c、d、e、f、g、dp段分别与单片机P0口的P0.5、P0.3、 P0.1、P0.0、P0.4、P0.6、P0.7、P0.2相连,用来控制显示数字的 形状。
十位数码管的公共使能端COM连接到P2连接三极管C8550的集电 极,三极管C8550主要用于信号的放大,以驱动数码管工作。三极管 8550的基极通过限流电阻接到单片机P2口的端口的P2.3,个位数码 管的公共使能端连接到P2端口的P2.4,小数位数码管的公共使能端 连接到P2端口的P2.5,该模块与单片机的接口电路如图5.3所示。
【项目实践】
③ 确定基本定时时间 确定基本定时时间的原则:基本定时时间尽量长且必须与要求的定时 时间成整数倍关系。据此可选择定时器的基本定时时间为5ms,控制软计数 器的累计次数为20次,即可实现0.1s(5ms*20=100ms=0.1s)定时要求。 ④ 定时初值计算 定时器T0定时基本时间为5ms,单片机系统所用的石英晶体振荡频率为 11.0592MHz,因此,1个机器周期=1/石英频率*12,即为12/11.0592微秒, 定时器工作方式设置为方式1,计算初值如下: x=216-t*fosc/12=65536-5*10-3*11.0592*106/12=60928=EE00H 所以TH0=0EEH,TL0=00H ⑤ 系统工作原理 当从00.0计时到0.1s后,0.1S计数单元由0变为1,再计时到0.1s, 0.1S计数单元1变为2,依此类推…… 当0.1S计数单元变为9后,如果再计时到0.1s,则秒个位计数单元由0变为1; 再计时到1s,秒个位计数单元由1变为2,依此类推…… 当秒个位计数单元变为9后,如果再计时到1s,则秒十位计数单元由0 变为1;再计时到10s,十位由1变为2,依此类推……
【项目实践】
【活动二】硬件设计
1.主控模块设计 本项目采用ATMEL公司生产的AT89S52单片机,主控模块
的具体设计参见项目1。 2.秒表显示模块设计
秒表显示模块由3个共阳极数码管构成,分别用来显示 时间的十位、个位和小数位。由于LED的位数比较多,数码 管采用静态显示方式时,要占用大量的I/O口线,硬件电路 比较复杂,为了简化电路,降低成本。因此,本项目中数码 管采用动态显示方式。
【项目实践】
电源电路
时钟电路
单 片
秒表显示电路
机
复位电路
图5.1 电子秒表系统组成方框图
应用软件采用模块化设计方法。采用主程序调用子程 序的设计方法。该系统软件主要由主程序、定时器T0中断 服务子程序等模块组成,系统软件结构框图如图5.2所示。
【项目实践】
定时器T0中断服务子 程序
主程序
图5.2 秒表系统软件结构框图