zteclx 发表于 2010-9-8 12:20

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

一个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

学习
页: [1]
查看完整版本: 51单片机读管脚输入的问题