任务实施

更新于 2026年10月10日 版权声明
任务实施

一、任务分析

本任务利用8位共阳数码管,完成时钟显示。为了节约硬件资源采用数码管动态显示和定时器中断形式。

1.定时器中断初始化分析

采用定时器T0、工作方式1,所以TMOD=0x01;

定时器中断1次假设为50 ms,中断20次为1 s,所以实际计数值为46 083。

定时器T0的计数初值为:

TH0=(65 536-46 083)/256;     //定时器T0高8位赋初值

TL0=(65 536-46 083)%256;    //定时器T0低8位赋初值

2.时钟逻辑分析

变量定义:中断计数n,秒s,分m,时h。

当n等于20次时,时间为1 s;

当s等于60 s时,时间为1 min;

当m等于60 min时,时间为1 h;

当h等于24 h,为1 d。

二、程序设计

程序设计流程图如图4-3-9所示。

图示

图4-3-9 程序流程图

参考程序:

#include <reg51.h>

#define uchar unsigned char(https://www.daowen.com)

#define uint unsigned int

图示

图示

三、电路仿真

1.绘制原理图

打开Proteus软件,创建“电子秒表制作与实现”文件,绘制电路图。元件清单见表4-3-4。绘制完成的电路图如图4-3-10所示。

表4-3-4 元件清单

图示

图示

图4-3-10 绘制电路图

2.编写程序

打开Keil 软件,新建“电子时钟”工程文件,新建“shizhong.c”文件,编写程序并生成hex文件。编写完成的程序如图4-3-11所示。

图示

图4-3-11 编写程序

3.电路仿真

加载“shizhong.hex”文件,单击“仿真”按钮,仿真结果如图4-3-12所示。

图示

图4-3-12 仿真结果

图示

仿真视频

仿真结果显示:在数码管上显示时钟,能正常计时。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)