搞不懂为什么直接开始流水灯了……………… 总之先从基础开始
LED
LED:半导体发光二极管,采用半导体材料制成,以直接将电能转换成光能,电信号转换成光信号的发光器件; 特点:功耗低,高亮度,色彩艳丽,抗振动,寿命长,冷光源
如何点亮LED
我用的单片机里的部分电路 (1)发光二极管电路工作原理 如图2(只关注led灯部分电路),P0口的8位输出分别连接了8个发光二极管L0~L7的阳极, P2.3经过一个反相器连接到8个发光二极管L0~L7的阴极(共阴极)。 根据二极管的单向导通性 (当阳极为高(对应P0口位为1)、阴极为低时,二极管导通,否则不导通) 若P2.3输出信号为低电平“0”,则二极管的阴极都为高电平,此时无论P0输出的是“1”还是“0”,二极管都不会导通,也就不会发光。 **因此想要发光二极管导通,必须先设置P2.3输出信号为“1”,再通过设置P0,点亮想要点亮的发光二极管。 **
推挽电路
推挽电路输入输出(push-pull)模式。推挽电路的输出端好像有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。对负载而言,好象是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。该电路模式的主要作用是增强驱动能力,为外部设备提供大电流,可以直接输出高电平电压。
头文件等
#include<STC15F2K60S2.H>
#define uchar unsigned char
#define uint unsigned int
sbit led_sel=P2^3;//P2^3----E3
uchar led;
实现推挽电路
void Init(){
P0M1=0x00;
P0M0=0xff;
P2M1=0x00;
P2M0=0x08;
led_sel=1; //设置P2\3为1
} 这段没搞懂……为什么要这么设置呢?
void main
{
Init();//初始化
led=0x01;//02 04 08 16 32 64 128
P0=led;//确定要点亮的led灯 00000001/00000010
}
实现了单个led灯点亮
|