51单片机定时器中断程序
答案:1 悬赏:0 手机版
解决时间 2021-01-04 10:14
- 提问者网友:佞臣
- 2021-01-03 10:43
51单片机定时器中断程序
最佳答案
- 五星知识达人网友:空山清雨
- 2021-01-03 11:08
我来帮你写一个,程序太简单了,下面是我帮你写的程序我测试过能满足你的要求,希望我的回答对你有帮助!
#include REG52.H
sbit LED_A= P1^0;
sbit LED_B= P1^1;
sbit LED_C= P1^2;
unsigned char TIME_BASE;
unsigned char MACT_ENDB;
unsigned char Rece_Errp;
void SystemInit(void)
{
TMOD = 0x01;
TH0 = (65536 - 45872) / 256; // 定时50ms //晶振:11.0592MHZ
TL0 = (65536 - 45872) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
}
int main(void)
{
SystemInit();
while(1)
{
if(Rece_Errp == 0)
{
LED_A = 0;// A亮5秒
LED_B = 1;// B是灭
LED_C = 1;// C是灭
}
else if(Rece_Errp ==1)
{
LED_A = 1; // A是灭
LED_B = 0; // B亮5秒
LED_C = 1; // C是灭
}
else if(Rece_Errp == 2)
{
LED_A = 1;// A是灭
LED_B = 1;// B是灭
LED_C = 0;// C亮5秒
}
else
{
LED_A = 1; // A是灭
LED_B = 1; // B是灭
LED_C = 1; // C是灭
while(1); // 程序运行到这里停止
}
}
}
void Timer0_IRQ(void) interrupt 1
{
TH0 = (655365 - 45872) / 256;
TL0 = (655365 - 45872) % 256;
TIME_BASE++;
if(TIME_BASE == 20) //20ms * 50ms = 刚好等于1000ms 也就是1秒
{
TIME_BASE = 0;
MACT_ENDB++;// 一秒加一次
if(MACT_ENDB == 5) // 等于刚好5秒时间到
{
MACT_ENDB = 0;
Rece_Errp++......余下全文>>
#include REG52.H
sbit LED_A= P1^0;
sbit LED_B= P1^1;
sbit LED_C= P1^2;
unsigned char TIME_BASE;
unsigned char MACT_ENDB;
unsigned char Rece_Errp;
void SystemInit(void)
{
TMOD = 0x01;
TH0 = (65536 - 45872) / 256; // 定时50ms //晶振:11.0592MHZ
TL0 = (65536 - 45872) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
}
int main(void)
{
SystemInit();
while(1)
{
if(Rece_Errp == 0)
{
LED_A = 0;// A亮5秒
LED_B = 1;// B是灭
LED_C = 1;// C是灭
}
else if(Rece_Errp ==1)
{
LED_A = 1; // A是灭
LED_B = 0; // B亮5秒
LED_C = 1; // C是灭
}
else if(Rece_Errp == 2)
{
LED_A = 1;// A是灭
LED_B = 1;// B是灭
LED_C = 0;// C亮5秒
}
else
{
LED_A = 1; // A是灭
LED_B = 1; // B是灭
LED_C = 1; // C是灭
while(1); // 程序运行到这里停止
}
}
}
void Timer0_IRQ(void) interrupt 1
{
TH0 = (655365 - 45872) / 256;
TL0 = (655365 - 45872) % 256;
TIME_BASE++;
if(TIME_BASE == 20) //20ms * 50ms = 刚好等于1000ms 也就是1秒
{
TIME_BASE = 0;
MACT_ENDB++;// 一秒加一次
if(MACT_ENDB == 5) // 等于刚好5秒时间到
{
MACT_ENDB = 0;
Rece_Errp++......余下全文>>
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯