proteus实现led灯从中间两盏灯点亮,依次向两方向持续点亮,到达两端顶点后,再依次从两端顶点向中间熄灭,如此反复。
1.实验原理:
由于LED灯是电流驱动型元器件,它的正极连的是电源的正极,它的负极连的是单片机,如果单片机输出一个低电平,就是跟GND一样的0V电压,当从正极到负极有电压差,并且电路是导通时,就会有电流通过,LED小灯因为有了电流通过,所以就可以让其发光了。
2.proteus仿真电路图:
(图中红点表示高电平+5v,蓝点表示低电平0v)
其电路图分为两个部分组成,
分别是单片机最小系统和功能电路部分
如下:
①单片机最小系统
(能使单片机正常工作的最小硬件单元电路,也称为单片机最小系统,
由三部分组成,分别是1.电源电路,2.时钟电路,3.复位电路)
②功能电路部分:
添加电阻的原因:LED灯是电流驱动型元器件,本身不符合欧姆定律,电阻值大小几乎可忽略不计,但在所在电路上又要分担一部分电压,图中的LED灯可分担其自身的额定电压+3v。剩下的2v电压就需要一个限流电阻来分担,通过计算此电阻的阻值设为100Ω较合适。
附件:LED使用手册
3## C51代码
#include<reg51.h> //定义头文件
sbit LED=P0^0; //定义引脚
void delay(unsigned char i) //延时函数 i=1时 延时10us
{
while(i--);
}
void main() //main代表主函数,程序执行的部分
{
while(1)
{
LED=0;
}
delay(100); //延时
}
4编程容易出错的地方:
<1>必须英文输入法
<2>标点符号不能漏(如;,等)
<3>大括号要成对写
<4>区分字母大小写
<5>0和o要分清