51单片机读管脚输入的问题
一个PWM波形接到51的P1_6,通过读管脚来判断PWM波形的高、低电平。P1_6开了内部上拉。使用unsigned char a=P1_6。据说这样读会出现问题,需要先置p_1.6。使用P_1.6=1;
a=P1_6。
这样的语句可以吗? 可以的,51单片机的IO口读取前,需要将其置1, P_1.6=1;
a=P1_6。
P1_6应该是sbit类型吧,跟unsigned char的类型不匹配哦
哈哈,好长时间不搞,记不太清了,以前搞的时候,也没这样搞过 unsigned char是无符号字符型(8位),类型不匹配,应该
sbit Bpwm =P1^6;
然后,你去读Bpwm就可以了。
不用初始化为高,因为51的口复位状态就是高,当然,非要在程序里写一下也无妨。 sbit du=P1^6;
du=1;
a=du; 国内的教材真叫烂,2楼显然中了教材的毒 如果是PIC单片机,如何读RB5,RB4,RB3,RB2的值? 这样也行? 如果P1.6的端口锁存器一直是1的话,可以不用再置1。如果你中途需要修改P1.6的锁存器,那么建议先置1,再读取引脚值。 学习
页:
[1]