tedeum 发表于 2011-4-6 01:50:16

面包板搭51最小系统,单片机发热

最近想玩51单片机,用multisim仿真了一个最小系统,在multisim中不能运行,电路图如下:
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628661FR8HV8.png
(原文件名:simple51Error.png)
后来我又修改了一下,可以进行仿真,p0.0端口的led灯会闪,电路图如下:
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628662SKEZND.png
(原文件名:simple51.png)
我的代码如下:
#include <REG52.H>
#include <stdio.h>         
void main (void) {
        unsigned       int a;
        while (1)
        {
                for(a=0;a<10000;a++);
                        P0 ^= 0x0f;
                for(a=0;a<10000;a++);
                        P0 = 0x00;
        }

}
我以为电路和代码都没问题了,于是就用面包板实际搭了个系统,结果led没反应(单独加电是会亮的),而且单片机还发热,图片如下:
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628663N02G1Z.png
(原文件名:面包板.png)

哪位大侠能指点一下,什么地方错了,谢谢。

tedeum 发表于 2011-4-6 01:52:34

菜鸟线很乱,稍微注释下:
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628664Q51ILA.png
(原文件名:面包板注释.png)

liuchengliaaa 发表于 2011-4-6 06:52:33

对于51内核的单片机,p0口的驱动能力是最大的,可是p0口是没有上拉电阻的,所以要接一个上拉电阻排
如用别的口驱动发光二极管,最好加驱动电路,用低电平去驱动,9015,8550都可以的

liuchengliaaa 发表于 2011-4-6 06:55:01

忘了一点发光二极管要加限流电阻的,5v的加1k3.3v的加470就可以了,还有复位电路也有问题哦
在rst上还得接一个电阻到地1k就。电容用10u的
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628669CU5I6L.jpg
(原文件名:023b5bb56e68acea36d3cac3.jpg)

tedeum 发表于 2011-4-6 09:22:48

谢谢楼上的,我现在还不太懂,所以不想弄得太复杂,我有几个地方不是很明白:
1、不加驱动电路是否可以呢?
2、上拉电阻是什么?我在仿真环境中led旁没加电阻,但是面包板中led旁边加了个电阻。是不是可以。
3、仿真的两个图有什么区别,为什么第一张图不能正确仿真。
4、接地和负极有什么区别,在面包板中我所有的接地都是接到电源负极的。这样对不对。

taotaoliu 发表于 2011-4-6 10:06:47

直接驱动尽量用P0口,最好是用灌电流(可到20mA),超过20mA必须用驱动电路
拉电流的时候上拉电阻必须接,灌电流的时候可以不接。上拉电阻是在单片机引脚上接一个电阻然后电阻接到VCC。
两个图都有问题。楼主对电路仿真不是很熟悉吧,第一个图接V1就错了。第二个图要加限流电阻
接电源负极就可以。

tedeum 发表于 2011-4-6 13:23:13

谢谢楼上,学到很多东西。
灌电流又是什么?
对仿真软件确实不熟,就是想当然的用了,第一个图V1有什么不妥?第二个图的限流电阻是串联吗?

liuchengliaaa 发表于 2011-4-6 19:15:41

单片机的P0口是双向口,你可以看看内部电路,一看就能明白的,灌电流是指输入到IO口的电流,是流入的
单片机基础一定要学好的

bg6ixm 发表于 2011-4-6 19:29:15

晶振线那么长不知道能起振不。

ljqdsj 发表于 2011-4-6 21:44:34

tedeum 发表于 2011-4-7 09:32:13

谢谢各位指点,看来有如下的问题:
1、晶振太远不一定起振,我调整一下
2、电源接反了,我是vcc接正极,gnd接负极不知道对不对。
3、led没限流电阻,我放了个1k的电阻串联(如下图),不知道对了没。
4、复位没有接地电阻,这个我补上。
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628886GXXV39.png
(原文件名:面包板注释2.png)

tedeum 发表于 2011-4-8 00:19:35

我的最小系统搭建成功了,谢谢各位。

ljqdsj 发表于 2011-4-8 19:17:01

pinhenxiaoche 发表于 2011-4-8 20:47:58

呵呵,,看上去还是那么回事了~~

tedeum 发表于 2011-4-8 21:53:01

就是按照你们教的,把晶振离单片机近点,复位电路加了接地电阻

youyouniao 发表于 2011-4-8 21:57:23

LED没有限流,这样会烧毁你的单片机的

ljqdsj 发表于 2011-4-8 22:05:12

aahui 发表于 2011-4-9 17:28:02

程序简单,应该没有问题. 检查电路吧

wolfox 发表于 2011-4-9 21:12:25

标记一下,我也想学习单片机 ,从最简单的学起,过两天我也搭这个电路看看,学习了,呵呵

donglaile 发表于 2011-4-10 10:08:12

程序中没必要加stdio.h头文件吧,

ljqdsj 发表于 2011-4-10 12:04:00

joshuahorn 发表于 2011-4-10 12:14:05

汗,楼主第一次试机没有烧LED或I/O口吗? 那可是5V的高电平啊!那个LED质量有够好的

linucos 发表于 2012-8-5 19:12:11

tedeum 发表于 2011-4-7 09:32 static/image/common/back.gif
谢谢各位指点,看来有如下的问题:
1、晶振太远不一定起振,我调整一下
2、电源接反了,我是vcc接正极,gnd ...

呵呵,学习!

leoyang 发表于 2012-8-5 19:45:00

比我的起步好多了,那时候还没有论坛可以提问(应该是不知道,家里面也没有网络)。
楼主继续加油,再接再厉。慢慢的吧其他的io和外设都搞起来。
页: [1]
查看完整版本: 面包板搭51最小系统,单片机发热