单片机代做吧 关注:88贴子:624
  • 1回复贴,共1

单片机LED灯点亮

只看楼主收藏回复

我想实现 当输出为0大于1分钟后LED灯亮 当传感器输出为1时LED灯熄灭,这段程序可以实现吗
```c
#include "reg52.h" // 包含头文件,定义了51单片机的寄存器
sbit LED = P1^0; // 定义LED连接到P1.0引脚
unsigned int timer_count = 0; // 定义定时器计数变量
void Timer0_Init() // 定时器0初始化函数
{
TMOD = 0x01; // 设置定时器0为模式1(16位定时器)
TH0 = (65536 - 50000) / 256; // 设置定时器初值,产生50ms的定时
TL0 = (65536 - 50000) % 256;
EA = 1; // 开启总中断
ET0 = 1; // 开启定时器0中断
TR0 = 1; // 启动定时器0
}
void main()
{
Timer0_Init(); // 初始化定时器0
while(1)
{
if (timer_count >= 60000) // 检测定时器计数是否达到1分钟
{
LED = ~LED; // 翻转LED状态
timer_count = 0; // 重置定时器计数
}
}
}
void Timer0_ISR() interrupt 1 // 定时器0中断服务程序
{
TH0 = (65536 - 50000) / 256; // 重新设置定时器初值
TL0 = (65536 - 50000) % 256;
timer_count++; // 增加定时器计数
}
```


IP属地:广西来自iPhone客户端1楼2023-09-19 13:48回复
    没有检测传感器的输出信号,定时器的时间改为10000,或是改60000那个值


    IP属地:辽宁来自Android客户端2楼2023-09-19 17:09
    回复