标题: [求助] 简单的C延时程序 [打印本页]

作者: weipeng_apple    时间: 2009-12-8 08:47
标题: [求助] 简单的C延时程序

刚刚入门C51,大家帮帮看下下面这个相当菜的程序,指点下哪里有问题,拜谢了!

 

 #include<reg52.h>
 #define uchar unsigned char
 #define uint unsigned int
 uint a,b;
 void delay(uint,uint)//函数声明
 void main()
 {
  uchar temp;
  uint i,j,x,y;
  temp=0xfe;
  P0=temp;
  for(i=8;i>0;i--)
  {x=temp<<i;
  y=temp>>8-i;
  P0=x|y;
  delay(200,200);//将实参200,200赋值给下面子函数形参a,b
  }
 }
 void delay(uint a,b)
 {
  for(;a>0;a--)
   for(;b>0;b--);//这里不知道写对没有?
 }

 

 


作者: xiaoxiaoxiao    时间: 2009-12-20 13:52
#include #define uchar unsigned char #define uint unsigned int uint a,b; void delay(uint a,b);//函数声明 void main() { uchar temp; uint i,x,y; temp=0xfe; P0=temp; for(i=8;i>0;i--) {x=temp<>8-i; P0=x|y; delay(200,200);//将实参200,200赋值给下面子函数形参a,b } } void delay(uint a,b) { for(;a>0;a--) for(;b>0;b--);//这里不知道写对没有? } 这个我修改了一下,编译是没有错了,不知道硬件会不会有问题
作者: xiaoxiaoxiao    时间: 2009-12-20 14:16
 #include<reg52.h>
 #define uchar unsigned char
 #define uint unsigned int
 uint a,b;
 void delay(uint a,b);//函数声明
 void main()
 {
  uchar temp;
  uint i,x,y;
  temp=0xfe;
  P0=temp;
  for(i=8;i>0;i--)
  {x=temp<<i;
  y=temp>>8-i;
  P0=x|y;
  delay(200,200);//将实参200,200赋值给下面子函数形参a,b
  }
 }
 void delay(uint a,b)
{
  for(;a>0;a--)
   for(;b>0;b--);//这里不知道写对没有?
}
作者: jwj527    时间: 2010-2-4 14:33
用实验板试试不就行了!
作者: h10234    时间: 2010-4-20 17:01

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
 uint a,b;
void delay(uint a,uint b)
 {
  for(;a>0;a--)
   for(;b>0;b--);//这里不知道写对没有?
 }


 void main()
 {
  uchar temp;
  uint i,x,y;
  temp=0xfe;
  P0=temp;
  for(i=8;i>0;i--)
  {x=temp<<i;
  y=temp>>8-i;
  P0=x|y;
  delay(200,200);//将实参200,200赋值给下面子函数形参a,b
  }
 }


作者: h10234    时间: 2010-4-20 17:04

大哥,你好歹编译下试试,编译都没通过啊


作者: huhui5008    时间: 2010-6-16 02:02
实验!!!!!
作者: 数字媒体处理器    时间: 2010-6-25 16:01

无需定义全局变量a,b

函数声明那里要加个“;”

main函数里定义的j没用到,为多余变量

 

其它没什么问题

 

 

 

另外有一问题,把temp赋给P0作为初值,有什么作用?

[此贴子已经被作者于2010-6-25 16:11:21编辑过]

作者: brantyou    时间: 2010-6-27 11:24
P0口是IO口,这里应该是连接着LED灯,给P0口一个值就是控制LED灯的亮灭
作者: 示波器    时间: 2010-6-30 22:33

嗯,楼上的回答让我学到东西了,谢啦哈~

[此贴子已经被作者于2010-6-30 22:34:28编辑过]

作者: 天昊奇缘    时间: 2012-3-31 17:13

延时写的这么多啊!用for(i=0;i<某个数;i++)

                                {}

空操作不就可以了,还搞这么多啊!如果是要延时的准确性,那就用中断吧!我觉得那样比较好






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