记得在大学期间做了几个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的(因为两者的色环没有区别)结果检查了N次才知道怎么回事,嘻嘻,别嘲笑我菜鸟
4、如果没有晶体能不能下载还没有试过。
5、外部有大负载,比如电机驱动电路,即使不共电源,但是有时候也造成下载程序失败。
6.还有一个更加大意的东西,就是单片机没有插紧,呵呵,这个是最郁闷的问题了。
设计主要是采用单片机对气体质量浓度的测量系统。利用单片机控制技术和传感器技术,AD转换技术等,去收集粉尘浓度。把模拟量转换成数字量,经过单片机的处理计算后,在显示屏上显示出结果后,如果超出预设值就发生声光警。
7、电脑静电电压太高,导致单片机不工作,自然下载不了了,俺的电脑静电好猛,把俺电痛了
二、单片机可以下载程序,但是不能执行程序的原因
1.极有可能单片机的EA管脚没有接VCC,没有接是可以下载程序的,(并且ALE也会输出二分之一的晶体频率)——这是我写错了,估计是太累了,晕了,不好意思,下面有位大哥说了,一般情况下是六分之一的————为什么我总是粗心大意?!EA接VCC代表执行内部代码,不接执行外部ROM程序,我们现在很少用外部EEPROM,肯定要接EA到VCC的
三、单片机抗干扰设计
1.我们在用单片机定时器测一个方波的频率的时候,当单片机没有烧写程序的时候,方波很好,很标准,但是烧写程序之后,方波的形状就找不到了,多了很多噪声,很郁闷吧,建议你加个4.7K上拉排阻试试,并且注意前面的电源滤波旁路。要求不高的这两招都可以解决,要求高的那么就是这两个模块通过光电耦合器件隔离,使用独立的电源,不共同地就可以减小干扰了。对了P0口必须加上拉电阻。
2.驱动外部较大功率器件的时候一定要用光电耦合器件隔离,使用独立电源,否则单片机会死机。以前有个师兄参加广西电子设计竞赛做液位测量吧,不用光电耦合器件隔离,还使用同一个电源,结果,单片机不停的死机,数码管一亮一灭,结果没有出线。
不过菜鸟建议想搞单片机的朋友,最好先把最小系统搭建起来,同时写一个小程序,点亮led,如果成功恭喜您,你的单片机最小系统搭建起来了,如后才一个一个的添加自己的外围设计,循序渐进,一步一步来,这样出现问题也好查询。
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
很多初学者最初接触单片机时较为苦恼的就是如何入门,也就是从哪一部分,按照怎样的步骤进行学习。在摸索学习步骤的过程浪费时间的同时也会造成学习兴趣的降低。信盈达小编为了帮助大家解决这种情况。