打印

调试AT89S52最小系统板札记

[复制链接]
4299|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
651927693|  楼主 | 2013-10-16 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近用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一个高电平单片机才可以正确工作。

    所以单片机正常工作的几个必要电路如下:

        晶振电路,我的电路中是两个30pF电容和一个12MHz晶振,以及一个短接到地的导线。
        复位电路,R、C、按钮即可。其中C和按钮并联,连接高电平和RST,R连接RST和地。
        电源电路,高电平,地,以及Vpp也要接高电平

    另外,如果和我这次一样是使用USBasp下载程序的话,还需要一个USBasp和单片机的连接电路,主要有Vcc、GND、MOSI、MISO,和RST。

    于是我的电路就正常了。可以正常烧写,只是在LInux下烧写速度太慢。于是我自然要想法子来提高它的速度。

    首先google,经历过一番摸索,知道这个博主做过相关的工作:http://rgwan.byethost10.com/archives/1328。但是跟他联系之后,我还是没有找到正确的方法来改进。因为根据他说的,我把他修改过的isp.c替换到USBasp的Project中无法成功编译。当然不知他一个人做过相关工作,我在下载AVR fighter 和 progisp时都会发现安装包里有现成的可以烧录AT89S系列的hex,在windows下工作的很好,但是它们却不能在Linux下工作,郁闷。

    这其中还有一个小插曲,中间有一段时间,我的电路突然不能正常工作了。当时我正在烧录,结果没有烧录成功,电路上出现了和最开始一样的情况,8个LED全部都微微发光。我转向windows,想用AVR fighter试试看,结果提示进入编程模式失败,额,这是我之前遇到过的情况,当时是电路有问题。于是我就疯狂的开始检查电路,按照我之前提到的几个部分一个个慢慢来,每个点都仔细检查过来(我以为我是这样)。结果无论如何都不行。我开始怀疑是单片机的问题,于是换了一个STC的单片机(当时手上只有这个),结果可以看出8个灯都灭了,这个是正常的!于是我就认为是单片机出了问题,因为想到同样的电路,一个单片机可以正常运行,但是另一个却是错误的结果(这真的是错误的结果吗?而且我没有意识到这两个单片机其实差别还是很大的,比如上电之后的初始状态。)我去市场上重新买了两个同样的芯片,发现还是有同样的结果。

    所以,应该还是电路的问题。我找到彭老师,他首先说了个题外话,说我串联在LED上的电阻太大了,导致LED亮度会很低。之后,他仔细检查了我电路上除了下载电路的其他部分,都没有检查出问题。我告诉它我的芯片里是有程序的,可以使P0.0上的LED不断亮灭。但是他说有可能芯片里面没有可以正常运行的程序,我自然不信服,依然**自己的判断。他就提出要重新烧录。但是我的电路是有问题的,无法烧录。他很有经验,问我,你这个电路下载时有没有什么需要注意的地方,比如哪知管脚要接Vcc或GND之类的,我说没有,随时都可以烧录,他笑了(我现在才意识到我当时的回答有多么愚蠢)。后来我提到USBasp的RST要接到单片机的RST上,然后他就用手一直按着复位按钮,然后竟然就可以读取芯片信息了,然后也可以烧录了!我很吃惊!为什么?为什么?脑袋中一阵电闪雷鸣之后我和他同时断定RST虚焊了。重新焊接之后果然正常了。

    现在说之前为什么同一个电路STC80C51和AT89S52却是不同的反应。因为STC的默认上电初始态(没有烧写程序)就是每个IO管脚都是高电平。而后者则不是,起码它的P0和P2不是,大概都是在3V左右,具体原因有待探索。

相关帖子

沙发
绝地反击| | 2013-10-17 20:07 | 只看该作者

使用特权

评论回复
板凳
一个初学者| | 2013-10-20 22:07 | 只看该作者
:)

使用特权

评论回复
地板
浪浪云| | 2013-10-21 19:54 | 只看该作者
:D不错

使用特权

评论回复
5
KuMo_2011| | 2013-10-21 21:22 | 只看该作者
不错,能自己找出问题。厉害

使用特权

评论回复
6
黄小俊| | 2013-10-22 13:30 | 只看该作者

使用特权

评论回复
7
autopccopy| | 2013-10-25 13:02 | 只看该作者
初学,要交学费的。:)
要细心和多看数据手册。

使用特权

评论回复
8
以技傍身| | 2013-10-25 13:21 | 只看该作者
好久没用MCU了
看了楼主的  有一种陌生的熟悉感  

使用特权

评论回复
9
ljxh401| | 2013-10-30 19:50 | 只看该作者
大学时候玩过89s51 忒容易烧坏了 烧钱阿

使用特权

评论回复
10
coolsingle| | 2013-10-31 14:29 | 只看该作者
编程好想学,只可惜学不来

使用特权

评论回复
11
icecut| | 2013-10-31 22:27 | 只看该作者
lz头像很熟悉.不过好像我放弃8051了

使用特权

评论回复
12
dong00520| | 2013-11-1 10:30 | 只看该作者
不错,新手可以试试!

使用特权

评论回复
13
651927693|  楼主 | 2013-11-1 13:29 | 只看该作者
icecut 发表于 2013-10-31 22:27
lz头像很熟悉.不过好像我放弃8051了

此话怎讲??

使用特权

评论回复
14
莞尔落| | 2013-11-1 17:13 | 只看该作者

使用特权

评论回复
15
winshing| | 2013-11-1 19:46 | 只看该作者
上两张图片看看

使用特权

评论回复
16
icecut| | 2013-11-2 12:41 | 只看该作者
651927693 发表于 2013-11-1 13:29
此话怎讲??

我去年做了100块8051 stc芯片的小学习板.最后还没考虑是不是要卖呢.
但是,概率很大是先不推出这玩意了.

8051就是一周学完就扔掉换arm吧.真的不值得学了

使用特权

评论回复
17
xuexidsp| | 2013-11-2 13:47 | 只看该作者
围观下

使用特权

评论回复
18
651927693|  楼主 | 2013-11-2 14:52 | 只看该作者
icecut 发表于 2013-11-2 12:41
我去年做了100块8051 stc芯片的小学习板.最后还没考虑是不是要卖呢.
但是,概率很大是先不推出这玩意了.

其实我想问,LZ头像 很熟悉,为什么?
对于51和arm,各有各的优势吧

使用特权

评论回复
19
icecut| | 2013-11-2 15:58 | 只看该作者
从学习上看,没什么优势.等你学会高档的.抵挡 的肯定会的....

头像,看起来有点熟悉而已

使用特权

评论回复
20
wuxingsheji| | 2013-11-2 17:17 | 只看该作者
这个不是太懂,过来学习学习把www.xiangzhangshujiage.com www.yyjjyl88.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

544

帖子

1

粉丝