技术热线: 4007-888-234

如何使用8051单片机制作圣诞灯方案?-英锐恩科技-单片机开发公司

更新时间: 2020-07-20
阅读量:2252

单片机开发者来说,使用8051单片机制作圣诞灯并不陌生。英锐恩单片机开发工程师分享一个学习8051单片机入门案例:圣诞灯方案。与开始使用8051单片机类似,LED接口是单片机接口编程中的基本内容。每个单片机的体系结构都不相同,但是接口概念对于所有单片机几乎都是相同的,本文将为介绍与8051单片机连接的LED。

接口是一种在单片机和接口设备之间提供通信的方法。接口可以是输入设备或输出设备,也可以是存储设备或处理设备。

MicroController-Interfacing-Model.jpg

输入接口设备:按钮开关、键盘、红外传感器、温度传感器、气体传感器等。这些设备向单片机提供一些信息,这称为输入数据。
输出接口设备: LED、LCD、蜂鸣器、继电器驱动器、直流电动机驱动器、7段显示器等。
存储接口设备:  用于存储/保留数据,例如SD卡、EEPROM、DataFlash、实时时钟等。

一、LED与8051的接口

接口包括硬件(接口设备)和软件(进行通信的源代码,也称为驱动程序)。简单来说,要将LED用作输出设备,应将LED连接到单片机端口,并且必须在内部对MC进行编程,以使LED亮或灭或闪烁或变暗。该程序称为驱动程序,可以使用任何程序语言(例如汇编语言、C语言等)开发驱动程序软件。

二、8051单片机

8051单片机由英特尔于1980年代发明,基于哈佛架构的40引脚PDIP(塑料双列直插式封装)单片机。8051单片机有一个片上振荡器,但是它需要一个外部时钟来运行。比如MC的XTAL引脚之间连接了一个晶振,该晶振需要两个相同值的电容器(33pF)来生成所需频率的时钟信号。

Microcontroller-Crystal-COnnections.jpg

三、LED(发光二极管)

LED是用于许多电子设备中的半导体设备,主要用于信号传输/功率指示目的。它非常便宜且容易获得,具有各种形状、颜色和大小。LED还用于设计LED招牌和交通控制信号灯等。

如图下图所示,它有两个正极和负极端子。

LED-Polarity.jpg

知道极性的方法是用万用表进行测试或仔细观察LED内部。led内较大的一端是-ve(阴极),而较短的一端是+ve(阳极。识别极性的另一种方法是,连接导线时,LED长的针脚是正极,短的针脚是负极。

三、LED与8051的接口

我们可以通过两种方式将LED连接到8051单片机。但是连接和编程技术会有所不同,本文中,与圣诞灯方案有关的8051单片机包括:AT89C52/AT89C51单片机,以及LED闪烁代码的信息。

Interfacing-LED-to-8051-Methods.jpg

仔细观察接口LED2处于正向偏置状态,因为5v的输入电压已连接到LED的正极,因此此处的单片机引脚应处于LOW电平。反之亦然,与接口1连接。

该电阻在LED接口中很重要,它可以限制流动电流并避免损坏LED和MCU。

(1)仅当电流流向地面时,MC的PIN值为HIGH时,接口1才会发光。
(2)仅当MC的PIN值低时,接口2才会发光,因为电流由于其较低的电位而流向PIN。

电路图如下所示,一个LED连接到端口1的引脚0。

Proteus-Simulation-Circuit.jpg

本文的圣诞灯方案,连接了11.0592 MHz的晶振以生成时钟。我们知道8051单片机在12个CPU周期内执行一条指令,因此,该11.0592Mhz晶振使该8051以0.92 MIPS(每秒百万条指令)的速度运行。

在下面的代码中,LED定义为端口1的引脚0。在主要功能中,LED每半秒切换一次。每次执行时,“延迟”函数都会执行空语句。

当使用11.0592 MHz晶振时,值60000(使用Keil软件编译)将生成约1秒(延迟时间)的空语句执行时间。这样,使用下面给出的圣诞灯方案代码可使连接到P1.0引脚的LED闪烁。

#include<reg51.h>
sbit LED= P1^0; // 端口1,pin0被命名为LED
//函数声明
void cct_init(void);
void delay(int a);
int main(void)
{cct_init();
while(1)
{LED=0;
delay(60000);
LED=1;
delay(60000);
}}
void cct_init(void)
{P0= 0x00;
P1= 0x00;
P2= 0x00;
P3= 0x00;
}
void delay (int a)
{int i;
for( i=0; i<a; i++) //用来延迟时间
}

以上就是英锐恩单片机开发工程师分享的如何使用8051单片机制作圣诞灯方案的案例知识。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机、运放芯片和模拟开关。