【Proteus仿真】51单片机利用定时器倒计数(99-0)

【Proteus仿真】51单片机利用定时器倒计数(99-0)


电路搭建说明

  • 采用8位共阴数码管

其实采用2位共阴数码管也是足够的,可以自行扩展位数来使用,这只是示例用于演示。

  • 采用74HC245八路缓冲器
  • 74HC138译码器
  • 相关代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "hardware.h"
#include "software.h"
//共阴数码管段码
uchar code block[] = { //定义无符号字符型类型数组来储存段码
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F //"9"
};
void SEGDisplay() //数码管扫描函数
{
uchar i; //定义i变量
for(i=0;i<2;i++)
{
switch(i)
{
case(0): //位选,第一个数码管
LSA=0;
LSB=1;
LSC=1;
P0 = block[num2/10]; //十位数拆分
break;
case(1): //位选,第一个数码管
LSA=1;
LSB=1;
LSC=1;
P0 = block[num2%10]; //个位数拆分
break;
}
delayms(5); //延时一会(视觉残留)
P0=0x00; //消影
}
}

程序源码和仿真资源

1
2
3
链接:https://pan.baidu.com/s/1dGh0\_2z7Hb\_hj\_ibTt-yFw 
提取码:0xbu