2019-07-15 16:37发布
dengxc 发表于 2015-7-13 18:18 STC15W系列单片机的中断系统好象有问题,for语句在中断服务函数中执行不了,忘记了还存在其它什么问题,不知道是什么原因。 你没有必要在中断服务函数中执行太多语句,LED的控制在其它函数中进行。为你提供一个可供参考的程序思路。 main()
最多设置5个标签!
STC15W系列单片机的中断系统好象有问题,for语句在中断服务函数中执行不了,忘记了还存在其它什么问题,不知道是什么原因。
你没有必要在中断服务函数中执行太多语句,LED的控制在其它函数中进行。为你提供一个可供参考的程序思路。
main()
{
初始化;
for(;;)
{
flag=1;
while(flag);
LED();
}
}
void LED()
{
if(dat1==0x02)
{
P3=0;
}
if(dat1==0)
{
P3=0xff;
}
}
void Uart(void) interrupt 4 using 1
{
if(RI==1)
{
dat1=SBUF;
RI=0;
flag=0;
}
if(TI==1)
{
TI=0;
}
}
但是如果哟啊接收一组数据的话 在中断函数当中是要用到for循环来接受这组数据啊 哎 好烦恼
我又尝试了一下 灯还是亮一下就灭了 我感觉就像是自动把dat1清零了 而且我第二次发送数据感觉单片机就不能接收了一样 我用了你发的程序 把关灯的条件改成dat1==0x01 发送0x01居然无效 而发送0x02开灯是有效的 好奇怪
一周热门 更多>