内容正文:
任务5 简易数字秒表
1.了解秒表的工作过程。
2.掌握单片机控制LED数码管动态显示字符方法。
3.能够设计并制作简易数字秒表。
本任务利用软件延时计数法,通过四位一体数码管输出显示,实现简易秒表的计时功能,具体控制要求如下:
1.单片机的P0口控制四位一体LED共阴数码管的各码段端;
2.单片机的P2.0~P2.3引脚外接驱动电路控制数码管的四个位选端;
3.四位数码管分别用来显示一位分计时和两位秒计时,中间用“—”隔开。
动态显示是将所有数码管的8个段码端的同名端并联在一起,由一个8位的输出口控制,每位数码管的公共端(称位线)由各自独立的输出口线控制,如图所示。它解决了数码管静态显示时占用较多的I/O口资源的问题。
在轮流显示过程中,每位数码管的点亮时间一般要控制在1~2ms,这样由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,显示的效果和静态显示一样。但由于CPU需要不断扫描刷新数据,因此会占用CPU较多的时间。
采用动态显示方式时,为了保证数码管的亮度,一般需在数码管的段输出或位输出端加驱动电路。如使用三极管9012、74HC573或74LS07(74HC07)进行位信号驱动,码段上则可使用74LS245、 ULN2003或74LS373等来驱动。
在实际电路设计中,如果驱动数码管的位数不多,可选用市场上的高亮度数码管,这样就可以省去加驱动电路的麻烦。
74HC07逻辑图及其功能表如下:
输入 输出
L L
H H
一、设计并绘制简易数字秒表电路原理图
二、程序设计
[例] 46÷10 = 4……6 //商4,余6
在单片机控制的LED数码管显示电路中,对于多位数码管的显示,通常采用动态显示方式,即软件上采用循环扫描的方式。本任务中要让四位数据从左到右在数码管上依次显示出来,扫描过程如下图所示:
本任务中由于秒变量中存放的两位数都要送出去显示,因此在显示之前要先分离,对于任意一个两位数,可以先将其与10相除,然后利用取余和取商的方法,分别得到这两位数的个位和十位,如下所示:
四位数码管动态扫描显示过程
数码管动态显示时对扫描的频率有一定的要求,频率太低,数码管将出现闪烁现象;频率过高,由于数码管点亮时间太短,数码管显示将无法看清。因此编写延时程序时,一位数码管的扫描时间一般取1~2ms为宜。
简易数字秒表软件设计流程图
本任务是利用软件延时的方法来实现秒表的计时功能,对于精度自然也就达不到理想控制要求,这一问题将在课题五中利用定时器中断的方法解决。
根据上述设计思路编写的完整程序为:
三、程序输入与仿真运行
四、制作硬件电路并调试
步 骤 说 明 示 范 图 片
1.焊接前材料准备 参照元器件清单表
步 骤 说 明 示 范 图 片
2.硬件焊接 电路板元件布局图
步 骤 说 明 示 范 图 片
3.程序烧入、运行并调试 简易秒表运行图
单击此处返回目录
$