给出51单片机定时器2控制led亮灭的代码
时间: 2024-06-04 19:10:28 浏览: 14
以下为51单片机定时器2控制led亮灭的代码:
#include <reg51.h> // 8051的reg51.h头文件
// 定义常数52
#define TIME_COUNT 52
/* 定义LED的控制端口 */
sbit LED = P0^0;
/* 定义变量toCount和ledState */
unsigned char toCount, ledState;
void main()
{
/* 固定时间,使LED每隔一段时间改变一次状态 */
TMOD = 0x10; // 设置为计数器方式,每秒产生50次中断
TH1 = 0xfd; // 定时器初值
TL1 = 0xfd;
ET1 = 1; // 开中断
EA = 1; // 开全局中断
TR1 = 1; // 启动定时器
/* LED的亮灭控制 */
ledState = 0;
while(1)
{
if(ledState == 0)
{
LED = 0; // 灭
}
else
{
LED = 1; // 亮
}
}
}
/* 定时器2的中断函数 */
void Timer1() interrupt 5 // 中断向量为0x2B,由TMOD的高四位决定
{
TH1 = 0xfd; // 定时器赋初值高位
TL1 = 0xfd; // 定时器赋初值低位
/* 使TO计数加1 */
toCount++;
if(toCount == TIME_COUNT) // 如果达到预设的X个计数(这里即52个计数)
{
ledState = !ledState; // 状态反转
toCount = 0; // TO计数清0
}
}
注意:以上代码仅供参考,请在实际使用时适当修改和完善。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)