51单片机:利用定时器实现1秒后LED灯的状态改变
程序员文章站
2022-06-08 20:56:35
...
51单片机:利用定时器实现1秒后LED灯的状态改变
作业要求:
用定时器/计数器的定时功能控制实验板右下侧流水灯区域的最右侧的LED灯,初始上电时,该LED灯处于熄灭状态,每来1s,该LED灯改变一次状态。要求画出对应的电路原理图。
原理图:
代码如下:
#include<reg51.h>
sbit D1 = P1^0;
void main()
{
TMOD &=0X0F;
TMOD |=0x01;
TH0 = (65536 - 50000)/256;//高四位初值
TL0 = (65536 - 50000)%256;//低四位初值,每隔50ms溢出
EA = 1; //开总中断
ET0 = 1; //T1开时定时器溢出
TR0 = 1; //开启定时器
while(1);
}
void ET0_ISR(void) interrupt 1 //定时中断
{
static unsigned int cnt = 0;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
cnt++;
if(cnt >= 20) //当为1秒时D1灯状态改变
{
cnt = 0;
D1 =~D1;
}
}
仿真结果:
(因为录频软件原因,仿真结果不是很理想,但是可以前几秒还是可以看出来的)
下一篇: 基于51单片机的温度采集系统