新手在编译C51中遇到问题

[复制链接]
3009|3
 楼主| lijgxs 发表于 2008-12-24 10:18 | 显示全部楼层 |阅读模式
<br />各位老师:这是我第一个用C编写的程序:依次点亮接在P1口上的LED,并无限循环,程序是书中抄来的,我感觉也是正确的,但编译没通过,不知是什么原因?<br />#include&nbsp;&quot;reg51.h&quot;<br />&nbsp;&nbsp;void&nbsp;&nbsp;main()<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;&nbsp;unsigned&nbsp;&nbsp;char&nbsp;&nbsp;ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(;;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x01;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x02;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x04;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x08;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x10;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x20;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x40;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x80;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;void&nbsp;&nbsp;delay(x)<br />&nbsp;&nbsp;unsigned&nbsp;&nbsp;int&nbsp;&nbsp;x;<br />&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(x==0)&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(x!=0)&nbsp;&nbsp;x--;<br />}<br /><br />编译提示信息:<br />MYPOJECT.C(7):&nbsp;Warning&nbsp;C206:'delay':missing&nbsp;fuction-prototype<br />MYPOJECT.C(7):&nbsp;error&nbsp;C267:'delay':requires&nbsp;ANSI-style&nbsp;prototype<br />MYPOJECT.C(26):&nbsp;error&nbsp;C231:'-delay':redefinition
zhiganglet 发表于 2008-12-24 14:56 | 显示全部楼层

我也是新人,一起学习~~

#include&nbsp;&quot;reg51.h&quot;<br />void&nbsp;delay(unsigned&nbsp;int&nbsp;x);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//函数声明<br />void&nbsp;&nbsp;main()<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;&nbsp;unsigned&nbsp;&nbsp;char&nbsp;&nbsp;ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(;;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x01;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x02;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x04;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x08;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x10;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x20;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x40;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledbuff=0x80;P1=ledbuff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(1000);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />&nbsp;&nbsp;void&nbsp;&nbsp;delay(unsigned&nbsp;int&nbsp;x)&nbsp;//定义参数类型<br />&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(x==0)&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(x!=0)&nbsp;&nbsp;x--;<br />}<br /><br /><br /><br />linking...<br />Program&nbsp;Size:&nbsp;data=10.0&nbsp;xdata=0&nbsp;code=88<br />&quot;rttrf&quot;&nbsp;-&nbsp;0&nbsp;Error(s),&nbsp;0&nbsp;Warning(s).<br />
 楼主| lijgxs 发表于 2008-12-25 07:58 | 显示全部楼层

少了函数申明

感谢楼上的兄弟。鄙人是花了整整三天时间,一口气把C51的所有语法都看了一遍,还是没有找到原因,差一点失去用C编程的信心了,看了楼上兄弟的提示,终于知道是少了函数申明。关键是鄙人看不懂提示信息。<br />再次感谢楼上的兄弟。
djjyi 发表于 2008-12-25 11:57 | 显示全部楼层

re

实际上你也可以先写子函数&nbsp;然后再写主函数&nbsp;&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部