51单片机 定时器流水灯+Proteus仿真

51单片机 定时器流水灯+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
/\*
定时器流水灯
\*/

#include<reg51.h>
//宏定义
#define uchar unsigned char
#define LED P0

//全局变量
uchar Time;

void main(void)
{
uchar data1=0xfe;
TMOD = 0x01; //选择工作方式1
TH0 = 0x3C; //设置初始值,定时50MS
TL0 = 0xB0;
EA = 1; //打开总中断
ET0 = 1; //打开定时器0中断
TR0 = 1; //启动定时器0
while(1)
{
LED = data1;
if(Time >=10) //0.5s进入if内进行移位
{
Time = 0;
data1 = data1<<1|0x01;
if(data1==0xff)data1=0xfe;
}
}
}

void Timer0() interrupt 1
{
TH0 = 0x3C; //设置初始值
TL0 = 0xB0;
Time++;
}



仿真资源和程序源码

1
2
3
链接:https://pan.baidu.com/s/1MeuOOB-hDeprBAkKjVCzfA 
提取码:cjxv