微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助!P0口在开关直接地的情况下怎么才能读到1

求助!P0口在开关直接地的情况下怎么才能读到1

时间:10-02 整理:3721RD 点击:

初学者求助高能
15F2K60S2,实际电路是P0.3接开关再接到地,没有上拉电阻,怎么设置或者程序怎么写才能做到,开关闭合读到0,开关断开读到1的目的。必须要改硬件吗
我试过了设置p0m0,p0m1,0 ,0。不置1,只能读到1读不到0,置1什么都读不到,什么情况

STC15系列单片机其所有I/O口均可由软件配置成4种工作类型之一,其P0口复位后默认为准双向口,按小编所述用途既不需要设置工作类型也不需要加上拉电阻,读不到I/O口电平首先查单片机工作条件是否正常:电源、时钟、复位。再查接线是否正确和程序错误。

没有人回答吗

最好帖一下代码~

这是代码
ORG 00000H
AJMP START
ORG 30H
P0M1 EQU 093H
P0M0 EQU 094H
START:
MOV P4M0,#00H
MOV P4M1,#00H
MOV P0M0,#00H
MOV P0M1,#00H
MOV P0,#0FFH
JB P0.0,N1
CLR P2.0
AJMP START
N1:
JB P0.1,N1
CLR P2.1
AJMP START
N2:
JB P0.2,N3
CLR P2.2
AJMP N4
N3:
JB P0.3,N4
CLR P2.3
AJMP START
N4:
JB P0.4,START
CLR P2.4
LOOP:NOP
AJMP START
p1是点触开关
p2是语音模块

不添加上拉电阻是不行的~~~~改硬件吧!

我只学过avr单片机,avr中有启用内部上拉电阻的功能(方法是在DDRn中设为0时,在PORTn中设为1),不知道你用的单片机有没有这个功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top