标题: 单片机处理while语句很慢吗? [打印本页]

作者: ch/moyan    时间: 2015-1-3 12:18
标题: 单片机处理while语句很慢吗?
编了个流水灯程序 代码如下  左移比右移频率快


#include <reg51.h>
void main()
{
        unsigned int i,j=0;
        P1 = 0x00;
        while (1)
        {                       

                                           P1 = 0x80>>++j;//依次右移0~7位
                                        for(i=0;i<20000;i++);
                                        
                                        if(j==7)
                                        {
                                                while(j!=0)
                                                {
                                                P1=0x80>>--j; //依次右移7~0位
                                                for(i=0;i<20000;i++);                       
                                                }
                                        }
        }
}


debug 后发现 就是第二次右移7~0位时比上面多了个 while(j!=0)导致的频率不一致  延时时间在50ms以上   

单片机处理 while语句就这么慢?

作者: admin    时间: 2015-1-5 22:11
建议 反汇编看一下汇编的代码




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1