单片机引脚输入输出问题 和引脚属性
2个回答
展开全部
51
单片机,所有io口都可以作为输入和输出,但不是"同时"
作为输入时,要先向其端口写1
然后再读取
如程序中设定p0=0xf0,然后在外部将p0^7接地,也就是置为零,
此时读取p0的话,得到p0=0x70
即最高位确实是0
但p0口内部没有上拉电阻的,
如果io口外部不经电阻接电源的话,虽然你置1了,但你读取的外部的结果可不一定是1
即p0不一定等于0x70
p1-p3是内部是有上拉电阻的,所以若设p1=0xf0,然后再读取p1得到仍是p1=0xf0
若在外部将p1^7接地,则得到p1=0x70
所以多数增强型51单片机io口内部有推挽管,同时有上拉和下拉电阻,有io口配置寄存器,根据需要可配置成浮空
推挽
弱上拉等状态
单片机,所有io口都可以作为输入和输出,但不是"同时"
作为输入时,要先向其端口写1
然后再读取
如程序中设定p0=0xf0,然后在外部将p0^7接地,也就是置为零,
此时读取p0的话,得到p0=0x70
即最高位确实是0
但p0口内部没有上拉电阻的,
如果io口外部不经电阻接电源的话,虽然你置1了,但你读取的外部的结果可不一定是1
即p0不一定等于0x70
p1-p3是内部是有上拉电阻的,所以若设p1=0xf0,然后再读取p1得到仍是p1=0xf0
若在外部将p1^7接地,则得到p1=0x70
所以多数增强型51单片机io口内部有推挽管,同时有上拉和下拉电阻,有io口配置寄存器,根据需要可配置成浮空
推挽
弱上拉等状态
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询