努力,奋斗! ——周星星
1、驱动芯片
经典“点灯”,所谓点灯只是为了让你有感性的认识,知道这个IC最简单的功能,如果深入理性认识点灯,那就是GPIO的基础操作。
LED驱动可直接通过IO进行,也可以通过外接驱动IC,如74HC373/573等,主要看IO的灌电流和拉电流是否足以让LED点亮。一般LED的驱动电流到30mA就很亮了,常用5-20mA。这里使用74HC373进行驱动点灯。
OE(output enable)用于使能芯片,当=0,正常输出,=1,输出状态处于Z高组态;
LE(Latch Enable)用于锁存输出信号,当=1,Q=D;当=0,输出状态保持不变。
本实验使用P2.5引脚作为LED的锁存LE引脚,P1作为数据输入引脚。
#include <main.h>
void main(void)
{
LED.Init(); //LED初始化
while(1)
{
// LED.ALL_OFF(); //LED全灭
// Delay.ms(500); //延时500ms
// LED.ALL_ON(); //LED全亮
// Delay.ms(500); //延时500ms
// LED.Reverse(); //闪烁500ms
LED.Water(); //流水灯
}
}
51单片机中是没有定义端口的某一位的,例如:可直接操作P1=0xFF,输出8个引脚均为高电平1,而无法直接操作P1.0 =0或1,而需要使用sbit来定义,如sbit P10 = P1^0,再去使用P10=0或1就可以正常工作。
例程使用的是结构体编程方式,不仅可提高C基础,也为后续看代码和写代码打下扎实基础,这里不对结构体进行多余的说明,可参考C语言。如果不大适应结构体,可直接使用函数编程即可。
例程详情请见:C51 Proteus仿真板TB链接
https://item.taobao.com/item.htm?ft=t&id=659157293088
如需Proteus和Keil安装包,请关注公众号:
Proteus仿真店子