微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 一个单片机中断问题

一个单片机中断问题

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
void time0(void)
#define LED P1^1
{
TMOD |=0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
main()
{
time0();
while(1);
}
void time0_isr(void) interrupt 1 using 1
{
TH0=0x00;
TL0=0x00;
LED=~LED;
}
我是个新手,刚刚在书上看了一个中断程序,但那个程序只有中间主函数部分,前面的#iinclude<reg52.h>那些都是我自己加的  编译始终会出现错误,求大神帮我改改啊

第二行和time0();这两行删掉

#include<reg52.h>#define LED P1^1
void time0(void);//声明
void time0(void)
{
TMOD |=0x01;
TH0=0x00;//初值要重新写!
TL0=0x00;//初值要重新写!
EA=1;
ET0=1;
TR0=1;
}
main()
{
time0();
while(1);
}
void time0_isr(void) interrupt 1 using 1
{
TH0=0x00;//初值要重新写!
TL0=0x00;//初值要重新写!
LED=~LED; //要是中断时间短,你看不出来亮灭变化的
}

#include<reg52.h>
sbit LED = P1^1;
void time0(void)
{
TMOD |=0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
main()
{
time0();
while(1);
}
void time0_isr(void) interrupt 1 using 1
{
TH0=0x00;
TL0=0x00;
LED=~LED;
}
这样就可以了,你试试

小编的P1^1是特殊功能寄存器,声明时要用相应的语句,这里用到的是sbit

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top