【Proteus仿真】51单片机软件定时器多任务并发

【Proteus仿真】51单片机软件定时器多任务并发


  • 📌相关篇《【Proteus仿真】51单片机定时器使用
  • 🔖Proteus仿真实验-51单片机软件定时器多任务并发
  • 🌿Proteus8.12平台
  • 🌿本实验代码基于VSM Studio,采用SDCC编译器。
  • 🎬仿真演示:
    在这里插入图片描述

📝main主程序代码

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
/\* Main.c file generated by New Project wizard
\*
\* Created: 2023-5-24
\* Processor: 80C52
\* Compiler: SDCC for 8051
\*/

#include "main.h"

#define ST\_1S (1000)
#define ST\_500MS (500)
#define ST\_250MS (250)

void main(void)
{
soft\_timer\_init(0, ST_1S);//任务一
soft\_timer\_init(1, ST_500MS);//任务二
soft\_timer\_init(2, ST_250MS);//任务三
timer0\_init(TIMER0_VALUE);
EA = 1;

// Write your code here
while (1)
{
if (soft\_timer\_is\_overflow(0))
{
soft\_timer\_init(0, ST_1S);
LED0 = !LED0;
}
if (soft\_timer\_is\_overflow(1))
{
soft\_timer\_init(1, ST_500MS);
LED1 = !LED1;
}
if (soft\_timer\_is\_overflow(2))
{
soft\_timer\_init(2, ST_500MS);
LED2 = !LED2;
}
}
}


📚基于VSM Studio仿真资源

1
2
3
4

链接: https://pan.baidu.com/s/1T8cMg7AWeJpHkbVKWbqe9A
提取码: 2taq

📚基于Keil创建的工程

1
2
3
4
链接: https://pan.baidu.com/s/13V5f15WBJePdXbzrTeJQIQ
提取码: 5dk2