帮菜鸟看下简单c51程序!!!pxx得不到p32,为什么啊?

[复制链接]
2375|5
 楼主| nimanha 发表于 2008-12-26 17:36 | 显示全部楼层 |阅读模式
#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;reg52.h&quot;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;P32=P3^2;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;P33=P3^3;<br /><br />void&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;an(bit&nbsp;pxx);&nbsp;&nbsp;&nbsp;&nbsp;//声明函数<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//循环<br />&nbsp;&nbsp;&nbsp;&nbsp;an(P32);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调用函数<br />}<br /><br />void&nbsp;an(bit&nbsp;pxx)<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;P1=0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始,P1灯灭<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(;;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//等待,pxx键按下<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;if(pxx==0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt10;i++);//去抖动<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pxx==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(;;)&nbsp;&nbsp;&nbsp;&nbsp;//等待,如pxx键松开,P1灯亮<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pxx==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;P1=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}
 楼主| nimanha 发表于 2008-12-27 01:02 | 显示全部楼层

大家帮忙看下呀,弄了很久,不问题出在哪?

  
无锋 发表于 2008-12-27 19:46 | 显示全部楼层

声明函数不应该放在main里边

  
 楼主| nimanha 发表于 2008-12-29 11:04 | 显示全部楼层

3楼: 声明函数不应该放在main里边

我查了下书,声明函数可以在main里,也可以在函数外部。<br /><br />我好像有点知道错在哪了。是不是这样:在调用有参函数时,当在运行调用的函数时,这时实际参数发生变化是不会引起形式参数的变化的。
zhiganglet 发表于 2008-12-29 13:31 | 显示全部楼层

位寄存器可以用作参数吗?

位寄存器可以用来作函数参数吗?
catwill 发表于 2008-12-29 19:58 | 显示全部楼层

应该是传递调用这一时刻的p32的值……

&nbsp;&nbsp;an(P32);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调用函数<br />应该是传递调用这一时刻的p32的值……<br /><br />楼主把while(1)中的所有pxx都改为p32,并去掉参数就应该可以了。<br /><br />个人观点,仅供参考。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

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