最近用AT89S52做了一个最小系统板,其中P0口每个口串接了一个电阻和一个LED。同时,由于AT89S系列本身的优势,我使用USBasp直接对它烧录程序,更重要的是,这个单片机还可以通过USBasp直接在Linux下烧录,再也不用担心这个问题了(一开始是这么想的)。
当我把整个电路焊接完成之后,我首先按照这个博客http://www.linuxidc.com/Linux/2012-05/61086.htm的操作一步步来,结果果然可以烧录,只不过花了5分钟左右。
但是烧录完成后我发现P0.0并没有按照那个博客里的程序不断亮灭,而是八个灯全部都在微微发光。我很好奇,摆弄了半天,最后发现用手触及到背后的某些焊点时,电路可以正常工作。于是可以确定下来是焊接的问题了。经过最后排查,我发现只要我把31、32脚短路在一起,就可以正常运行。其中31为OE/Vpp,32为P0.7。我马上又测了一下P0.7的电压,在3V左右,这显然不是正常现象,这个之前也可以判断出来。我因为Vpp是一个比较特殊的管脚,所以我又想到是不是这个管脚本身就应该接一个高电平?事实为大,我短接了40和31脚,发现果然是这样。我之后又仔细查阅了一下资料,发现却是要给Vpp一个高电平单