LED原理及流水灯的实现
原理
Library中
ACTIVE:可视化的,可以看清LED的活动
LED_BIBY的意思是:两种极性的LED颜色:B-blue,Y-yellow
LED是蓝色的,发光后颜色为黄色。
像LED_BIGY ,LED_BIRG,LED_BIRY都是类似的意思
选中
电流方向P极–》N极
流水灯的实现
流水灯通常是由八个LED组成的轮流、滚动显示的效果。
LED发光二极管是单向导电的一种元器件,它分共阳极和共阴极两个极。
构成流水灯的元器件
AT89C51
电阻(RES)
LED*8(LED-BIBY)
加入89C51,然后排列8个led
演示共阳极接法:
连上所有LED
添加电源,用单片机的p2口控制流水灯
引出线,由于单片机IO口可以承受的电流是有限的,如果直接接线会烧掉单片机的IO口,所以我们需要加入电阻进行限流,电阻大于250
共阴极连接:
代码
sbit是定义特殊功能寄存器的位变量。
bit和sbit都是C51扩展的变量类型。
典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。
bit和int char之类的差不多,只不过char=8位, bit=1位而已。
都是变量,编译器在编译过程中分配地址。
#include "reg51.h"
//sbit是定义特殊功能寄存器的位变量
//这里我们操作D1亮灭,对应单片机P2.0
sbit LED0=P2^0;
void delay(unsigned int n)
{
//给变量一个初始值,防止变量初始化的时候是一个随机数
//可能造成程序的误动作
unsigned int i=0,j=0;
for(i=0;i { for(j=0;j<120;j++); } } void main() { while(1) { //亮 LED0=0; //延时函数,亮和灭之间切换太快,延时5毫秒 delay(5); //灭 LED0=1; delay(5); } } 为单片机导入hex文件 双击单片机 然后点击运行 目前实现了单个led效果,接下来实现流水灯效果 #include "reg51.h" //sbit是定义特殊功能寄存器的位变量 //这里我们操作D1亮灭,对应单片机P2.0 sbit LED0=P2^0; void delay(unsigned int n) { //给变量一个初始值,防止变量初始化的时候是一个随机数 //可能造成程序的误动作 unsigned int i=0,j=0; for(i=0;i { for(j=0;j<120;j++); } } void led() { int i=0; for(i=0;i<8;i++) { //共阳 //P2=~(0x01< 0000 0010 --> 0000 0100 //共阴 P1=0x01<
delay(50); } } void main() { while(1) { led(); } } 重新双击单片机,引入hex文件,然后运行程序