电子工程师技术服务社区
- 社区首页
- 下载
- LED灯闪烁protues仿真文件及源程序.zip
资料描述
第一项任务:驱动led灯闪烁 间隔时间自定
用到的知识点:
1.单片机io口
2.led灯的使用原理
3.最简单的程序led闪烁的实现
第一个知识点:单片机io口
单片机的输出电流非常小(内部有30k的上拉电阻),因此都是灌电流的方式来点亮led
p1 p2 p3口 高(对应1)为5v 低(对应0)为0v
p0口 高是高阻态非5v 低(对应0)为0v
如果使用p0口来驱动led灯的话需要,接上拉电阻,
原理如下图:
那上拉电阻的阻值是多少呢?
第二个知识点:led的使用原理假定led的压降电压为1.7v,正常工作的电流为3ma--20ma,那就可以很简单的算出r=(5v-1.7v)/(3ma--20ma)
第三个知识点:最简单的程序led闪烁的实现
程序如下:
#include //头文件
#define uint unsigned int
#define uchar unsigned char
sbit led1=p0^0; //位定义
void delay_ms(uint);//ms级带参数延时函数声明
void main()
{
while(1)
{
led1=0;
delay_ms(1000);
led1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延时子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
这个程序是可以指示灯以接近1秒的间隔来闪烁,简单吧,因为这是第一个程序,里面涉及到知识点对于新手来说理解起来也是有点困难
上面这个程序:包含的知识点有以下几个
头文件,宏定义,位定义,延时函数(带参数),while语句,for语句,程序的写法
第四个知识点头文件:头文件是一些变量和函数的定义,你要引用这些函数或变量,就必须告诉编译器这些函数或变量的所在的文件!常用的有reg51.h reg