针对网络上大部分例程序只有倒计时秒 , 无法一眼看出还剩多少时间,因此做考试计时器不具备实用性。
因此,编写一个 分钟,秒钟分离的版本,方便考生的时间控制。
/*==================================================================
编写时间: 2022.04.21
设计目标:
四位共阴极数码管, 前两位为分钟后两位为秒钟。
设定时间为90分钟,开机后开始倒计时。
硬件电路设计:
数码管使用4个NPN三极管驱动,基极通过1K电阻连接STC89C51的
P1.0-P1.4 口。发射极共地,集电极接数码管阴极。
数码管数据位分别通过电阻限流后同STC89C51的P0口连接。
单片机晶振11.0592Mhz。
软件逻辑设计:
1.利用T0中断函数,计数到200次,发送1秒标志Flage,
2.数码管驱动函数(LedDriver)在接收到 Flage后,进行倒计时计算,并将数据传递给显示函数(LedShow)。
3.显示函数(LedShow)在收到时间数据后,进行数据分离,并写入数码管缓存。
4.数码管刷新函数(LedScan)利用数码管缓存的数据进行刷新动态显示。
Others You Need To Know:
为保证准确性, 取能被机器周期除尽的最小数值5ms
得出TMOD 16位寄存器初始值:60928 设定值:0xEE00;
================================================================*/
#include<reg52.h> //对寄存器配置的头文件。
sbit LEDS1 = P1 ^ 0;
sbit LEDS2 = P1 ^ 1;
sbit LEDS3 = P1 ^ 2;
sbit LEDS4 = P1 ^ 3;
unsigned int Tcount = 5400; //时间计数 设定90分钟 5400秒
bit Flage = 0;
unsigned char code LedChar[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d

本文档介绍了一个专为考试设计的倒计时计时器的实现,采用四位共阴极数码管显示分钟和秒钟,通过单片机STC89C51驱动。程序逻辑包括T0中断函数计时、数码管驱动、数据显示和刷新。计时器设定为90分钟,从开机即开始倒计时,提高了考试时间管理的便利性。
最低0.47元/天 解锁文章
1151





