2017-01-18 11:38:40 | 人围观 | 评论:
本制作采用单片机C语言编程,主要能完成单灯闪烁的任务,通过AT89S51单片机控制一个LED的亮与灭,实现闪烁现象。同时应具有上电复位和手动复位,并且使用单片机片内程序存储器存放用户程序。
二、原理图
三、工作原理
1、硬件电路分析
对51系列单片机来说,单片机要正常工作,必须具有五个基本电路,也称五个工作条件:1、电源电路,2、时钟电路,3、复位电路,4、程序存储器选择电路,5、外围电路。为了下载程序方便,增加一个ISP下载电路。因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路、ISP下载电路等,如下图所示:
单片机的主要控制功能是通过单片机的I/O口按不同时序输出不同的高低电平控制外部的电路实现特定的功能。
I/O口,是英文IN/OUT的缩写,就是输入/输出的意思。AT89S51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。这四个口的电路结构不完全相同,所以使用也有区别。
外围电路的设计主要依据项目要实现的功能,本项目要实现的功能是用单片机控制一个LED闪烁。
现在只需要通过指令控制单片机的第1个引脚输出高电平,就可以控制LED的不亮。或通过指令控制单片机的第1个引脚输出低电平,就能控制LED的发光。
2、程序设计
依据上面设计的硬件电路,设计源程序如下:
#include<reg52.h> //52系列单片机头文件
sbit LED1=P1^0; //声明单片机P1口的第一个引脚
void delay unsigned char k //延时子函数
{
unsigned char i,j;
for(i=0;i<k;i++)
for(j=0;j<200;j++);
}
Main() //主函数
{
while(1) //实现永久循环
{
LED1=0; //点亮LED1
delay(200); //延时
LED1=1; //熄灭LED1
delay(200); //延时
}
}
全站搜索