原创 51单片机硬件调试

2011-8-8 03:28 4586 8 10 分类: MCU/ 嵌入式

  说说自己的经历吧,虽然做的不是很多但是也见多了,很多时候对于51单片机来说一般上电程序跑不动主要是几部分出现问题,

1.  复位电路

2. 晶振和它旁边的电容

3. 51芯片已坏

我能想到的就这么多了,当然如果发现程序跑不起来首先就是那示波器看30号管脚是否输出2M的方波在晶振是12M的情况下。

下面的是从别人那里COPY过来的http://blog.21ic.com/user1/3407/archives/2007/34781.html

准备写一个单片机学习入门的系列。这方面的教材很多。不乏很多的专家写的文章。比如《平凡的单片机》。但是个人感觉单片机入门学习是一回事,如何调试一个单板又是另外一回事。大家刚入门的时候总会不免出现各种各样的错误。导致板子无法正常工作。由于是新手,电路板出了问题的时候不知道怎么分析。无法定位问题所在。

    所以,打算从最基本的调试说起。写一个系列,让单片机的调试不再成为入门的拦路虎。
    由于51单片机是大家学的最多,用的最多的,同时本人也是从51开始入门的,对51比较熟悉,所以,后文中提到的单片机一般都指51单片机。
   调试阶段之一准备说说《单片机的运行是否正常》。
   第一块电路板的成功运行难度对于单片机学习的兴趣有很大的帮助。有一些人用开发板用的很流畅,看书也基本都看懂了。可是等他自己做了第一块电路板来用的时候发现,咦,程序好像没有成功运行!怎么回事?我不是和书上的一模一样吗?
    根据本人的经验,51单片机的成功运行该从如下几个方面来分析。
   ▲1:当然是电源。电源没有成功供电。电源供电可以从如下几个方面来分析。你用的电源本身没有问题。比如你用的开关电源,开关电源如果空载的时候输出正常,那么接到你电路板上开关电源的影响可以忽略不计了。问题是你的电路板上有没有问题。
比如:
存在IC插反?51单片机本身插反?IC插反可能导致一些未知的问题。
 电容插反?一般来说电容插反不会导致单片机不运行但是可能导致其他的一些问题。但是电源部分的电解电容如果反了,也许不出问题,也许过了几分钟后,你可以看到一道白光,然后是啪的一声巨响,你的电容爆了,可以吓到一片人。(做模拟炸弹比较好)
供电接口松动,没有正常供电上电路板!
  △1:所以,一块电路板在上电以前,我一般要用万用表的阻抗档(有的是二极管档)测量VCC和GND之间的阻抗,如果短路,那电路板肯定有问题。如果不存在短路,则测量各个IC的电源引脚到VCC是否短路,各个地引脚到GND是否短路。然后再看关键电容,主要是电源部分的电解电容是否插反。
    一切OK后才给电路板上点。同时,强烈建议做一个电源指示灯。电源插头插上后如果电源指示灯亮,至少表明90%的可能性电源供电不出问题了。10%的问题处在电容接反不会出现提示。
    ▲2:然后是看晶振是否接对。对于51单片机,晶振的比较简单,只要一个晶体振荡器+2个小电容就可以了。但是现在很多公司用贴片电容,如果开发物料管理不是很好,很有可能焊接上去的不是30p附近的电容,比如焊接一个103或者104上去。程序照样不会跑。
    在有示波器的时候,很简单,直接用示波器观察以下51的晶振脚,如果有3V附近的正弦波出现,OK,晶振起振了。
    没有示波器怎么办?如果有仿真头,也行,很多仿真头有自带晶振。比如WAVE系列仿真头。WAVE仿真头连不上电路板其中一个原因就是选择了外部晶振,而你的外部晶振没有起振,那么仿真头连不上电路板的。
    没有示波器,也没有自带晶振的仿真头,万用表你总有吧。用万用表测量晶振脚的电压,如果在2V附近,那么恭喜你,晶振也起振了。
    △2:最佳的解决方案是用示波器观看。这种方法最直观最快。
              还有,匹配电容在你使用不同大小晶振的时候可能电容大小不同。需要查阅芯片手册寻找一个最佳的电容。对于51而言,偏差50%影响不大。
    ▲3:EA是否上拉到VCC。51单片机要烧片子运行。必需EA上拉到VCC,可以用4.7K-10K上拉,有的人甚至不用电阻,直接接VCC也可以用。不过不推荐直接接VCC的方案。
    △3:用万用表测量EA上电平,如果是5V则表明烧片子运行的硬件条件已经满足了。
    ▲4:复位电路。51的复位电路要求不是很严格,但是设计如果太草率也有可能出现问题。注意有的新手可能会出现复位电路的电容和电阻位置弄反的情况。另外一种错误就是复位时间不够。电阻电容常数不对。
    △4:解决方案查阅手册,看你使用的芯片对于复位电路的要求到底是什么?一般手册上都有说明。
    ▲5:以上四点都已经做到了,但是还是不运行。
    △5:可以尝试将电路板上所有的IC全部取下,然后通电看是否程序运行。然后一片一片的上IC。
     以上是一个最简单的51系统是否运行应该注意的几个方面。
     注意做电子开发的过程中。切记心平气和,万事小心行事,不急不燥。一个一个问题慢慢调试,不要一下子被它吓到了不知道从哪里下手。
    问题一个个排除后你会发现,原来一切就这么简单。
    下一步调试准备讲如何调试二极管,键盘等常用接口器件!

文章评论2条评论)

登录后参与讨论

578645627_583309889 2012-7-1 14:48

这个没玩过,不好意思

用户377235 2012-5-31 10:21

各位大侠好,我遇到一个难题:有一个Z80的工控单片机坏了,更换芯片后显示器出现乱码,不是正常画面的菜单。没有插25针通讯线。
相关推荐阅读
578645627_583309889 2013-05-24 23:06
64位WIN7系统可以使用的PL2303驱动程序
64位WIN7系统可以使用的PL2303驱动程序,折腾了好久,终于在网上找到了这个,嘿嘿,发出来一起共享一下,哈哈...
578645627_583309889 2013-05-22 13:44
http://www.cnblogs.com/tao560532/ 我博客园的地址
http://www.cnblogs.com/tao560532/     我博客园的地址 嘿嘿,博客园发帖子要快些。哈哈...
578645627_583309889 2013-03-10 22:43
嵌入式系统软件笔试题
1、130 150 186 移动段号写段代码。 2、inline机制。 3、函数参数机制。 4、中序遍历,前序遍历。 5、改错题 6、...
578645627_583309889 2012-12-18 23:03
常见协议
简单的SPI,IIC,UART,复杂些的pci,pcie,sgmii,smi...
578645627_583309889 2012-01-12 18:42
变量的命名规则
变量的命名规则 (1)    一般规则 1.1:命名应当直观且可以拼读,可望文知意,便于记忆和阅读。   1.2:命名的长度应当符合“min-length&a...
578645627_583309889 2011-10-16 13:49
C语言--位域
位域     位域是指信息存储时,并不需要占用一个完整的字节,而只需要占几个或是一个二进制位。     所谓“位域”或是“位段”是指把一个字节中的二进制位划分为几个不同的区域,并说明每个区域的位数...
我要评论
2
8
关闭 站长推荐上一条 /2 下一条