打印

51单片机读管脚输入的问题

[复制链接]
2276|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zteclx|  楼主 | 2010-9-8 12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个PWM波形接到51的P1_6,通过读管脚来判断PWM波形的高、低电平。P1_6开了内部上拉。使用unsigned char a=P1_6。据说这样读会出现问题,需要先置p_1.6。使用
P_1.6=1;
a=P1_6。
这样的语句可以吗?

相关帖子

沙发
chengfei21| | 2010-9-13 23:05 | 只看该作者
可以的,51单片机的IO口读取前,需要将其置1,

使用特权

评论回复
板凳
lelee007| | 2010-9-14 16:31 | 只看该作者
P_1.6=1;
a=P1_6。

P1_6应该是sbit类型吧,跟unsigned char的类型不匹配哦

哈哈,好长时间不搞,记不太清了,以前搞的时候,也没这样搞过

使用特权

评论回复
地板
lbx_00| | 2010-9-19 14:21 | 只看该作者
unsigned char是无符号字符型(8位),类型不匹配,应该

sbit Bpwm =P1^6;

然后,你去读Bpwm就可以了。

不用初始化为高,因为51的口复位状态就是高,当然,非要在程序里写一下也无妨。

使用特权

评论回复
5
醉入花丛| | 2010-9-27 18:47 | 只看该作者
sbit du=P1^6;
     du=1;
     a=du;

使用特权

评论回复
6
5880527| | 2010-9-28 10:17 | 只看该作者
国内的教材真叫烂,2楼显然中了教材的毒

使用特权

评论回复
7
zteclx|  楼主 | 2010-9-28 19:08 | 只看该作者
如果是PIC单片机,如何读RB5,RB4,RB3,RB2的值?

使用特权

评论回复
8
zzmwfs| | 2010-10-6 11:55 | 只看该作者
这样也行?

使用特权

评论回复
9
yuyetufu| | 2010-12-8 09:56 | 只看该作者
如果P1.6的端口锁存器一直是1的话,可以不用再置1。如果你中途需要修改P1.6的锁存器,那么建议先置1,再读取引脚值。

使用特权

评论回复
10
yzm8900| | 2011-2-17 15:13 | 只看该作者
学习

使用特权

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

本版积分规则

153

主题

647

帖子

0

粉丝