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

[复制链接]
 楼主| 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的口复位状态就是高,当然,非要在程序里写一下也无妨。
醉入花丛 发表于 2010-9-27 18:47 | 显示全部楼层
sbit du=P1^6;
     du=1;
     a=du;
5880527 发表于 2010-9-28 10:17 | 显示全部楼层
国内的教材真叫烂,2楼显然中了教材的毒
 楼主| zteclx 发表于 2010-9-28 19:08 | 显示全部楼层
如果是PIC单片机,如何读RB5,RB4,RB3,RB2的值?
zzmwfs 发表于 2010-10-6 11:55 | 显示全部楼层
这样也行?
yuyetufu 发表于 2010-12-8 09:56 | 显示全部楼层
如果P1.6的端口锁存器一直是1的话,可以不用再置1。如果你中途需要修改P1.6的锁存器,那么建议先置1,再读取引脚值。
yzm8900 发表于 2011-2-17 15:13 | 显示全部楼层
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

647

帖子

0

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