打印

程序问题!路过的解释下!

[复制链接]
1882|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzj137|  楼主 | 2007-8-9 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<REGX51.H>
void delay (void)                                 /*延时程序*/
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
这个程序中开始的
void delay (void)                              
{
为什么这样定义可不可以这样简单的定义???
delay()
{
这是第一个问题!

第二个问题::

#include <REGX51.H>
void delay(void){            /*delay函数*/
  unsigned char i,j;
  for (i=0;i<255;i++)        /*这一个函数实现延迟*/
   for(j=0;j<255;j++);
}
void main(void)
{
unsigned char j=0XFE;        /*声明变量*/
while(1)                     /*无穷循环*/
{                            /*依次让LED 0,1,2,3,4,5,6,7,闪烁*/
  j=(j<<1) |0x01;
  if(j==0XFE) j=0XFE;
P1=j;                        /*将数值输出到PORT1,控制LED亮或灭*/
delay();                     /*调用delay函数*/
}
}
这个程序中!延迟程序这样定义
void delay(void){            
主函数必须是这样定义吗??
void main(void)

可以这样简单的定义不?
换成这样的
main()
{
两者之间有什么区别吗???

相关帖子

沙发
q223490115| | 2007-8-9 21:06 | 只看该作者

123321

MAIN()前的那个VOID表示函数没有返回值,后边那个表示函数没有自变量输入。     
前面的那个延时程序可以用:
#include "reg51.h"
void mDelay(unsigned int Delay)
{  unsigned int i;
  for(;Delay>0;Delay--)
   { for(i=0;i<124;i++)
    {;}
   }
}
void main()
   {........; 
      Delay(1000);//延时1000ms
    }

嘎嘎  我是刚毕业出来的,看到别人学单片机那么厉害也就学来玩一下,不知道楼主学了多久啦   呵呵

使用特权

评论回复
板凳
bagdmu| | 2007-8-9 21:59 | 只看该作者

if(j==0XFE) j=0XFE;


这个?????????

使用特权

评论回复
地板
dai_weis| | 2007-8-9 22:20 | 只看该作者

延时函数随便你自己

也可以用定时器,延时时间和代码生成以及MCU的频率都有关
主函数根据编译器要求,一般必须是void main(void),或者
unsigned char main(void)
{
....
  return (0);//或者其他返回值
}
不可以更改
如果延时要精确或者不受代码影响,则用定时器完成,这样仅仅和频率以及定时器的溢出设置有关

使用特权

评论回复
5
zzj137|  楼主 | 2007-8-10 13:51 | 只看该作者

谢谢!各位大虾!

我刚学C有一个星期了吧!
大一学过点!不过纯粹的基础,都忘了差不多了!哈哈!
听个位的解释又有点收获!

if(j==0XFE) j=0XFE;
这个有问题吗?我真的比初学者还....
大家有想法就说,小弟虚心学习!

使用特权

评论回复
6
guoqi| | 2007-8-10 15:33 | 只看该作者

ddd

if(j==0XFE) j=0XFE;
这个有问题吗?我真的比初学者还....
大家有想法就说,小弟虚心学习!


都判断相等了,你还赋值,有什么意思?!

使用特权

评论回复
7
孤独泪| | 2007-8-10 16:02 | 只看该作者

可能是延时的意思

if(j==0XFE) j=0XFE;
这句话写的好。

使用特权

评论回复
8
zzj137|  楼主 | 2007-8-10 16:10 | 只看该作者

嘿嘿!不好意思!打错了!

使用特权

评论回复
9
zzj137|  楼主 | 2007-8-10 16:11 | 只看该作者

应该是这样的

if(j==0XFF) j=0XFE;

使用特权

评论回复
10
taoest| | 2007-8-11 02:34 | 只看该作者

定义函数

定义函数一定要指定类型。前面肯定有一个类型关键字。main()也不例外。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

45

帖子

0

粉丝