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

2019-07-15 20:49发布

本帖最后由 zy2014 于 2014-2-23 14:51 编辑
请问程序中函数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. }
复制代码




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
xjtuwm@
1楼-- · 2019-07-15 23:06
我觉得一个是真的数字吧,10进制的int
而uchar是字符,需要转换成10进制数
ntmusic
2楼-- · 2019-07-16 03:08
8位单片机处理16位数据当然要麻烦一点,语句多一点,你可以点开汇编来查看一下这两个子函数的具体语句差异
tangyuanjie
3楼-- · 2019-07-16 08:36
 精彩回答 2  元偷偷看……

一周热门 更多>