微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 小弟最近使用STC15W201S的芯片 遇到点问题 求大神啊

小弟最近使用STC15W201S的芯片 遇到点问题 求大神啊

时间:10-02 整理:3721RD 点击:
我在P3口接了共阳的LED  用串口中断来控制亮灭   中断程序如图  每次我发送0x02 LED闪一下就灭了  不加后面的灭灯程序就正常  我觉得程序是进入了后面的灭灯程序 但是我不知道是怎么进去的 并没有使dat[2]=0x00啊 好多方法试过了 求大神 好纠结

程序图


我又试了一下  貌似是进入中断后就一直在中断程序里  跳回不到主程序了

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开灯是有效的 好奇怪

大兄弟 我解决了  原来是我的TXD和RXD是P3口的  然后我对P3进行总线操作就出问题了 我位操作就正常了 哎 低级错误  大家互相分享学习吧

大神,这款单片机的时钟频率怎么设置啊

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

网站地图

Top