找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6676|回复: 10
打印 上一主题 下一主题
收起左侧

[求助] 简单的C延时程序

[复制链接]
跳转到指定楼层
楼主
ID:19693 发表于 2009-12-8 08:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

刚刚入门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--);//这里不知道写对没有?
 }

 

 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:20158 发表于 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--);//这里不知道写对没有? } 这个我修改了一下,编译是没有错了,不知道硬件会不会有问题
回复

使用道具 举报

板凳
ID:20158 发表于 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--);//这里不知道写对没有?
}
回复

使用道具 举报

地板
ID:21503 发表于 2010-2-4 14:33 | 只看该作者
用实验板试试不就行了!
回复

使用道具 举报

5#
ID:23217 发表于 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
  }
 }

回复

使用道具 举报

6#
ID:23217 发表于 2010-4-20 17:04 | 只看该作者

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

回复

使用道具 举报

7#
ID:24511 发表于 2010-6-16 02:02 | 只看该作者
实验!!!!!
回复

使用道具 举报

8#
ID:24712 发表于 2010-6-25 16:01 | 只看该作者

无需定义全局变量a,b

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

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

 

其它没什么问题

 

 

 

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

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

使用道具 举报

9#
ID:23004 发表于 2010-6-27 11:24 | 只看该作者
P0口是IO口,这里应该是连接着LED灯,给P0口一个值就是控制LED灯的亮灭
回复

使用道具 举报

10#
ID:24818 发表于 2010-6-30 22:33 | 只看该作者

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

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

使用道具 举报

11#
ID:34415 发表于 2012-3-31 17:13 | 只看该作者

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

                                {}

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表