微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新手流水灯疑问 为什么要设置临时变量temp 作用呢?

新手流水灯疑问 为什么要设置临时变量temp 作用呢?

时间:10-02 整理:3721RD 点击:
#include<intrins.h>
#include<reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
void delay(uint a) ;
void main()
{
   
   uint temp=0xfe;
   P1=temp;
   
while(1)
{
temp=_crol_(temp,1);
P1=temp;
  delay(255);

}
}
void delay(uint a )
{
uint i,j;
for(i=a;i>0;i--)
  for(j=255;j>0;j--);
}
这是跑马灯程序没问题  我也明白 可是主函数为什么不能这么写
void main()
{
                  P1=0xfe;
             while(1)
          {
                      P1=_crol_(P1,1);
                      delay(255);
                     
           }
}
这样我在keil软件仿真的时候 单步观察 P1口的电平是可以循环左移的      但是为什么烧写进去流水灯智能执行一次不能反复循环呢

自己顶

人呢

不能直接对p1口操作吧  额

可以

程序设计中不能以px为操作数

讲解得好

让temp=0xfe,然后操作temp左移,应该是这样

逻辑上两个程序都没问题,改成P2,P0,P3口后两个程序运行都正常,用过STC和AT的单片机结果一样。另外小编uint temp好像应该改为uchar型,_crol_()函数传递的是字符型

却是应该改成uchar型节省资源但是uint是16位的比uchar大 应该也没事的

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

网站地图

Top