Proteus_keil仿真单片机二
Proteus_keil仿真单片机二
LED灯的使用及流水灯的实现
LED灯的介绍
发光二极管(LED):在电路及仪器中作为指示灯,或者组成文字或数字显示。
单向导通性,导致发光二极管要又PN断点之分,所以就会产生共阴极和共阳极区别(在后面讨论)
控制电流从P端口流向N端口。
许多的广告牌,是由很多个LED灯不断的闪烁,导致一片区域的灯亮起来,然后形成文字的移动等,led灯的使用有很多地方,LED灯几乎是电器必带的一个,总会显示电器的开关或运行。但LED又是最简单的元器件,许多的单片机或开发板,总会以先控制LED来尝试第一个历程。这里我们先不长篇大论的讨论真实的单片机是如何的,但我觉得有必要先讲解不同,为暂时没资金但未来会买单片机的同学有所提示。
单片机和仿真软件的不同
1、真实的单片机是已经将电路固定好了,难以改变,我们只能通过外部拓展来来进行我们想要拓展的元器件。但仿真软件的电路是不固定的,可以根据所学的电路分析的知识,来进行电器的连接。这样子我们可以灵活多变的设计电路,这里设计到自己设计PCB板,建议仿真入手,提高理解。
2.单片机的部分引脚拓展了许多的功能,一个引脚便控制多个器件,这样子大大减少了IO口的使用。仿真软件可以灵活的改变引脚。
3.单片机的0端,许多会拓展时钟等,但仿真单片机里面已经自带好了时钟。(这里使用时钟什么的都一样使用。)
未来还会有区别我们在讨论。
创建流水灯项目
在keil中创建项目,并创建xx.c
文件,并设置好输出hex文件的初始设置。
流水灯的设计
Proteus设计电路
这里使用AT89C51芯片、led(灯)、res(电阻)。
选好元器件后,进行摆放。分为共阴极和共阳极(如下)
共阳极
右上角的三角符号是这个软件的高电位,即电源。所有的流水灯的阳极都是连接在LED灯的P端口,这样子就是共阳极。
然后在看左边,电阻是300欧姆,为什么加电阻呢?
原因很简单,单片机端口是无法承受过大的电流和电压的,电阻是防止过大,导致烧坏芯片;但倘若电阻过大,led灯也可能会不亮。
然后在向左边,这个东西很简单,就是一个端口,两个同名的端口提高命名的方法连接(连接方式在附录),这样子电气图便可以按区块分布。这里我使用了0端口的0~7来控制。当LED灯两端呈现一正一负便可以发光。
共阴极
所有的流水灯的阴极都是连接在LED灯的N端口,这样子就是共阴极,与上面的恰恰相反(这里忘了加电阻,不过仿真电路问题不大,我们等等看看会不会出现问题,买的单片机开发板基本上不用考虑电路设计。)
总的电路如下所示:(记得保存)
Keil
流水灯程序实现
1 | //最基本的程序框架 |
实例
点亮一个LED灯
1 |
|
在Proteus左下角有个播放键
若你也是这样子的错误,不要慌。这是因为自己的用户名是英文,使用导致出错。这里建议添加一个英文用户。(若不会的话可以在评论区交流,很简单的)
流水灯特殊实现
1 |
|
P0=~(0X01<<i); 共阳的
P1= 0X01<<i; 共阴的
流水灯一般实现
1 | #include "reg51.h" |
附录
一、端口的连接
首先选好要连接的端口,连接一条线出来,出来一点点的地方双击左键,使得生成节点(在这里属于端口)如下图
但这个端口不完整,仅仅是无对应端的端口,然后我们放大线条出现红色虚线,右键选择“放置网络标号”,填写一个唯一的标号,然后再在对应芯片的对应端也做如上方法。