51基础——定时器实现LED间隔S闪烁

本文介绍了一段使用C语言编写的单片机程序,通过定时器T0实现了八个LED灯每隔一秒交替闪烁的效果。代码中设置了定时器工作方式,初始化了定时器,并在中断服务函数中控制LED状态翻转。程序适用于基础的嵌入式系统教学或实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
该代码为八个LED间隔一秒闪烁,
也可改为一个LED://sbit led=P1^0; led=~led;

*/

#include<reg52.h>
#define uchar unsigned char
uchar num;

void wu ()
{
TMOD=0x01;//定时器T0选择工作方式1
TH0=0x4C;//设置初始值,定时50ms晶振频率11.0592,定时时长50ms
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}

void main()

{
wu ();//调用定时器方法

P1=0xff;//先定义八个灯为不亮的状态

while(1);

}

void time()interrupt 1 //定时器T0,中断序号为1
{
TH0=0x4C;//设置初始值,定时50ms晶振频率11.0592,定时时长50ms
TL0=0x00;
num++;
if(num==20)//定时20次,20*50ms=1000ms=1s
{
num=0;//清零

	P1=~P1;//状态取反
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值