📄 test.c
字号:
# include <reg51.h>
# define led P1
# define Ton 40 //基准脉宽0.04ms
# define true 1
code unsigned char stop[3] _at_ 0x3B; //Mon51用,绝对地址引用
unsigned char LEDflag = 0; //全局变量,最大255,保存T0中断次数
static unsigned char ledon[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void timer_init() //定时器初始化
{
TMOD = 0x02; //T0 方式2,8位自动载入
TH0 = 256 - Ton; //T0初始值
TL0 = 256 - Ton; //重载值
TR0 = true; //启动T0
ET0 = true; //开T0,T1中断
EA = true; //全局中断允许
}
void time0_int() interrupt 1 using 3 //T0中断函数,中断1,使用工作组3
{
LEDflag++; //修改LEDflag
}
led_show4()
{
unsigned char i = 0,j = 0; // i初始化
for(j = 0;j<=7;j++)
{
i = 0; // i初始化
while(i!=255) // 由暗变亮
{
if(LEDflag == 0) // 点亮
{
led = ledon[j];
}
if(LEDflag == i) // 熄灭
{
led = 0xff;
}
if(LEDflag == 255) //修改变量
{
i++;
}
}
}
for(j=7;j>=0;j--)
{
i = 0; // i初始化
while(i!=255) // 由亮变暗
{
if(LEDflag == 0) // 熄灭
{
led = 0xff;
}
if(LEDflag == i) // 点亮
{
led = ledon[j];
}
if(LEDflag == 255) //修改变量
{
i++;
}
}
}
}
void main()
{
timer_init();
while(1)
{
led_show4();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -