【Proteus仿真】简易数码管定时器时钟

【Proteus仿真】简易数码管定时器时钟


  • Proteus仿真
    在这里插入图片描述

主程序代码

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

实验名称:计时器(数码管显示)
接线说明:
实验现象:下载程序后,按下K1键开始计时,再次按下K1键停止计时,按下K2键清零
注意事项:
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
#include "public.h"
#include "key.h"
#include "beep.h"
#include "smg.h"
#include "time.h"

/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
\* 函 数 名 : main
\* 函数功能 : 主函数
\* 输 入 : 无
\* 输 出 : 无
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
void main()
{
u8 key=0;
u8 time_buf[8];
u8 time_flag=0;

time0\_init();
while(1)
{
key=key\_scan(0);
if(key==KEY1_PRESS)//开始和停止计时
{
time_flag=!time_flag;
beep\_alarm(1000,25);//短暂提示音
}
else if(key==KEY2_PRESS)//清除计时
{
time0\_stop();
time_flag=0;
gmin=0;
gsec=0;
gmsec=0;
beep\_alarm(1000,25);//短暂提示音
}
if(time_flag)
time0\_start();//开始计时
else
time0\_stop();//停止计时

time_buf[0]=gsmg_code[gmin/10];
time_buf[1]=gsmg_code[gmin%10];//分
time_buf[2]=0x40;//-
time_buf[3]=gsmg_code[gsec/10];
time_buf[4]=gsmg_code[gsec%10];//秒
time_buf[5]=0x40;//-
time_buf[6]=gsmg_code[gmsec/10];
time_buf[7]=gsmg_code[gmsec%10];//毫秒
smg\_display(time_buf,1);//显示
}
}


程序源码和仿真资源

本实验基于Proteus8.12平台

1
2
3
链接:https://pan.baidu.com/s/1R9WzkThUx-z4CB-HVJFByQ 
提取码:ujzg


题西林壁 宋朝·苏轼
横看成岭侧成峰,远近高低各不同。
不识庐山真面目,只缘身在此山中。