标题: 为什么改变不了单片机P0口输出高低电平? [打印本页]

作者: q784662037    时间: 2017-11-18 21:59
标题: 为什么改变不了单片机P0口输出高低电平?
89C52单片机,在开发板上烧写程序测量发现P0^0,P^1口可以正常安装程序的设定输出高低电平,但是移到自己焊的板子上再测量发现P0口全都呈现出高阻态, 是 什么原因????晶振问题?

1.png (71.74 KB, 下载次数: 108)

1.png

作者: ww3030    时间: 2017-11-18 22:13
开发板子上面的都是有上拉电阻的,这个你有没有注意到啊
作者: q784662037    时间: 2017-11-18 23:04
ww3030 发表于 2017-11-18 22:13
开发板子上面的都是有上拉电阻的,这个你有没有注意到啊

我也加了上拉电阻试了一下,程序设置输出0的时候端口还是呈现高阻态,上拉电阻接的VCC直接到IO口成高电平输出。
作者: q784662037    时间: 2017-11-18 23:04
求各位大神指教。!!
作者: sldx    时间: 2017-11-19 00:19
很有可能是晶振没起振,单片机没有正常工作
作者: KACHEN    时间: 2017-11-19 00:31
51单片机,一般只有P0口才需要外加上拉电阻,其它三个端口芯片内部已经设置有上拉功能,无需外接上拉电阻。P0口作为I/O口输出的时候时 输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态)。也就是说P0 口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(八个电阻一组引脚全部连在一起组成公共端连接到VCC,然后另一段的八个引脚分别连在p0口),由电源通过这个上拉电阻给负载提供电流。一般上拉电阻大小可以在3.3K-10K之间都可以,我大一时完51单片机就是这么做的,是可以的。
作者: q784662037    时间: 2017-11-19 08:43
KACHEN 发表于 2017-11-19 00:31
51单片机,一般只有P0口才需要外加上拉电阻,其它三个端口芯片内部已经设置有上拉功能,无需外接上拉电阻。 ...

但是我加了上拉电阻之后输出低电平并不是0V,我分别设置P0.0为低电平P0.1为高电平之后在用万用表分别测试两者的电压,并无差别
作者: cccc8888    时间: 2017-11-19 09:59
31 pin 有没有接到vcc
作者: cccc8888    时间: 2017-11-19 10:05
还有测量晶振波形和电压18 19 电压在二分之一电源电压左右。
作者: 883    时间: 2017-11-19 10:41
你拔掉芯片,用电阻档测量一下引脚,有没有到Ⅴcc短路
作者: q784662037    时间: 2017-11-19 11:00
cccc8888 发表于 2017-11-19 09:59
31 pin 有没有接到vcc

31管脚需要接到VCC的吗?
作者: q784662037    时间: 2017-11-19 11:02
cccc8888 发表于 2017-11-19 09:59
31 pin 有没有接到vcc

接了,31管脚也接了VCC,用电压表也测了31管脚为5V
作者: q784662037    时间: 2017-11-19 11:23
刚才又看了一下, 我把P2.7口置零也置不下去,它还是输出高电平。应该是单片机不工作,可是为什么不工作呢,电路都检查一遍了。
作者: KACHEN    时间: 2017-11-19 12:16
q784662037 发表于 2017-11-19 11:23
刚才又看了一下, 我把P2.7口置零也置不下去,它还是输出高电平。应该是单片机不工作,可是为什么不工作呢 ...

要不你重新焊接一个单片机最小系统,换个新的单片机试试,或者重新认真的检查一下电路若电路焊接没问题换个单片机试试。


作者: fly苏幕遮    时间: 2017-11-20 14:35
没看出毛病。。。。
作者: 漫步_xw    时间: 2017-11-20 15:30
不知道楼主的问题解决没有,按楼主的介绍程序应该是没什么问题,与我的电路不同的也就是31脚我是从来没接东西的照样用。这里我想确定下楼主的供电问题,供电是否稳定?
1、需要稳定的5V电源,希望你使用的尽量是线性稳压电源。
2、在电源输入的供电端添加0.1uF(瓷片电容)+100uF(电解电容)。
3、在单片机的40脚供电端接一个0.1uF的电容滤波,其次在AD芯片中也添加一个0.1uF(瓷片电容)+10uF(电解电容)
这样能增加电路的稳定性。
然后不要忘记了还是需要上拉电阻的1~10K都是可以的。
最后如果没有用的话希望楼主借用同学的单片机试用下,也可能是楼主的单片机坏了!
作者: 漫步经心    时间: 2017-11-20 16:37
拍个实物图看看
作者: yukun93    时间: 2017-11-20 17:10
P0应该要加上拉电阻的。
作者: ldm894167679    时间: 2017-11-20 17:43
上拉电阻都接上了啊

作者: nimimib    时间: 2017-11-20 21:19
需要加上拉电阻的
作者: q784662037    时间: 2017-12-2 10:32
谢谢各位大佬,问题已经解决,经过测试发现晶振已经起振,也能从18 19管脚输入,但是单片机缺未能正常工作,也就是30管脚ALE未能输出测出方波信号。在把单片机的外部晶振电路都换过之也没有效果之后我把晶振拔下直接接在18 19管脚之后就一切正常了。下面是两个PCB图供大家参考
作者: q784662037    时间: 2017-12-2 20:25
q784662037 发表于 2017-12-2 10:32
谢谢各位大佬,问题已经解决,经过测试发现晶振已经起振,也能从18 19管脚输入,但是单片机缺未能正常工作 ...

第一个是之前的,第二个是修改之后,不知道能不能传上图

1.png (8.59 KB, 下载次数: 109)

之前的

之前的

2.png (32.33 KB, 下载次数: 112)

修改之后

修改之后

作者: 张oa    时间: 2017-12-3 08:27
p0管脚是没有上拉电阻的,单片机初始电平为高电平,如果始终为高电平可能是单片机接触不良引起的。
作者: renqian4436    时间: 2017-12-14 09:31

51单片机,一般只有P0口才需要外加上拉电阻,其它三个端口芯片内部已经设置有上拉功能,无需外接上拉电阻。P0口作为I/O口输出的时候时 输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态)。也就是说P0 口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(八个电阻一组引脚全部连在一起组成公共端连接到VCC,然后另一段的八个引脚分别连在p0口),由电源通过这个上拉电阻给负载提供电流。一般上拉电阻大小可以在3.3K-10K之间都可以,我大一时完51单片机就是这么做的,是可以的。
作者: ptlantu    时间: 2018-11-26 13:21
KACHEN 发表于 2017-11-19 00:31
51单片机,一般只有P0口才需要外加上拉电阻,其它三个端口芯片内部已经设置有上拉功能,无需外接上拉电阻。 ...

marke````




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1