微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > delay函数中变量类型不同延时为什么不一样啊

delay函数中变量类型不同延时为什么不一样啊

时间:10-02 整理:3721RD 点击:

请问程序中函数delay与delayms有什么区别?
在试验板上得到的结果是上面4个led灯亮的时间比下面4个led灯亮的时间长。
所用实验板为TX-1C。

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. void delay(uint z)
  5. {
  6.         uint x,y;
  7.         for(x=z;x>0;x--)
  8.         for(y=110;y>0;y--);
  9. }
  10. void delayms(uchar z)
  11. {
  12.         uchar x,y;
  13.         for(x=z;x>0;x--)
  14.         for(y=110;y>0;y--);
  15. }

  16. void main()
  17. {
  18.         while(1)
  19.         {
  20.                 P1=0xf0;//上面4个led灯亮 共阳极接法
  21.                 delay(200);
  22.                 delay(200);
  23.                 delay(200);
  24.                 P1=0x0f;//下面4个led亮
  25.                 delayms(200);
  26.                 delayms(200);
  27.                 delayms(200);
  28.         }
  29. }

复制代码




我觉得一个是真的数字吧,10进制的int
而uchar是字符,需要转换成10进制数

8位单片机处理16位数据当然要麻烦一点,语句多一点,你可以点开汇编来查看一下这两个子函数的具体语句差异

delay函数中变量类型不同延时为什么不一样,应该是机器自己的原因

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

网站地图

Top