单片机的经验之谈

2019-04-15 16:36发布

Topic:介绍一种很棒的单片机的经验之谈(作者:Baiduluckyboy)
//------------------------------------------------------------------------------------------------------------------------------ // Topic:介绍一种很棒的单片机的经验之谈(作者:Baiduluckyboy) // 作者:Baiduluckyboy(wangyuluyulu@126.com) // 论坛账号:Baiduluckyboy (经常在CSDN出没) // 版权:解放军电子工程学院Baiduluckyboy(wangyuluyulu@126.com) // 平台:AT89C51单片机 // 发布日期:2010-09-25 // 最后修改: // 注意事项:未经作者同意,商业网站不能转载,并且不得在转载的时候擅自修改、删除文章的任何部分 //------------------------------------------------------------------------------------------------------------------------------   记得在大学期间做了几个AT89S52单片机的东西,都是很基础的东西,呵呵,遇到一些很诡异的问题,今天刚好有点时间,想把一些经验和大家分享一下,希望能够为正在单片机一线战斗的战友们送去一点希望和帮助!   一、单片机不能下载程序的原因   1.硬件连接是否正确,电源,是否连接正常,在正确的基础上,板子是否有断线以及是否虚焊?注意P1.5,P1.6,P1.7,RST引脚和下载接口是否正确连接了,对了,如果P1.5,P1.6,P1.7用作其他用途也有可能下载不成功,俺就在P1.7上挂了个ds18b20,结果总是检测不到器件,并且在下载线插在板子上的时候,ds18b20无法测温,总是显示0000000.   2.电源波纹是否过大,过大别忘了加旁路电容,一个100uf的电解电容和一个104的磁片电容并联即可 有机会的话可以在电源输出的地方加一个电感。   3.单片机复位电路是否正确,是否能够保证复位电路在上电的时候能够复位一次单片机,如果复位电路是正确的,那么请检查一下复位电路的电阻阻值,这个千万不能忽视,因为我前几天就犯了这个错误,复位电阻不能小于1K因为,太小了电容放电太快,在单片机RST引脚上高电平持续的时间太短,造成单片机上电复位失败,从而导致无法下载程序,前几天我把120欧姆的电阻当成10K的(因为两者的 {MOD}环没有区别)结果检查了N次才知道怎么回事,嘻嘻,别嘲笑我菜鸟   4、如果没有晶体能不能下载还没有试过。   5、外部有大负载,比如电机驱动电路,即使不共电源,但是有时候也造成下载程序失败。 6.还有一个更加大意的东西,就是单片机没有插紧,呵呵,这个是最郁闷的问题了。 7、电脑静电电压太高,导致单片机不工作,自然下载不了了,俺的电脑静电好猛,把俺电痛了   二、单片机可以下载程序,但是不能执行程序的原因   1.极有可能单片机的EA管脚没有接VCC,没有接是可以下载程序的,(并且ALE也会输出二分之一的晶体频率)——这是我写错了,估计是太累了,晕了,不好意思,下面有位大哥说了,一般情况下是六分之一的————为什么我总是粗心大意?!EA接VCC代表执行内部代码,不接执行外部ROM程序,我们现在很少用外部EEPROM,肯定要接EA到VCC的   三、单片机抗干扰设计   1.我们在用单片机定时器测一个方波的频率的时候,当单片机没有烧写程序的时候,方波很好,很标准,但是烧写程序之后,方波的形状就找不到了,多了很多噪声,很郁闷吧,建议你加个4.7K上拉排阻试试,并且注意前面的电源滤波旁路。要求不高的这两招都可以解决,要求高的那么就是这两个模块通过光电耦合器件隔离,使用独立的电源,不共同地就可以减小干扰了。对了P0口必须加上拉电阻。   2.驱动外部较大功率器件的时候一定要用光电耦合器件隔离,使用独立电源,否则单片机会死机。以前有个师兄参加广西电子设计竞赛做液位测量吧,不用光电耦合器件隔离,还使用同一个电源,结果,单片机不停的死机,数码管一亮一灭,结果没有出线。 不过菜鸟建议想搞单片机的朋友,最好先把最小系统搭建起来,同时写一个小程序,点亮led,如果成功恭喜您,你的单片机最小系统搭建起来了,如后才一个一个的添加自己的外围设计,循序渐进,一步一步来,这样出现问题也好查询。 以上都是很菜鸟的经验,希望批评指正。