MAX7316是I2C/SMBus兼容的串行接口外围设备,可为微处理器提供8个附加的I/O端口、一个输出专用端口和一个输入专用端口。每个I/O端口...
2024-04-15 146 LED电路
用单片机控制LED亮灭,AT89S51 experiment
1.实验任务
如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2.电路原理图
3.系统板上硬件连线
(1). 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上;
(2). 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;
4.程序设计内容
(1).开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。
(2).输出控制
如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
5.程序框图
6.汇编源程序
ORG 00H
START: JB P3.0,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END
7.C语言源程序
#include
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
while(1)
{
if(K1==0)
{
L1=0; //灯亮
}
else
{
L1=1; //灯灭
}
}
}
相关文章
MAX7316是I2C/SMBus兼容的串行接口外围设备,可为微处理器提供8个附加的I/O端口、一个输出专用端口和一个输入专用端口。每个I/O端口...
2024-04-15 146 LED电路
MAX7306/MAX7307为I2C/SMBus兼容的串口外设、4端口电平转换CPIO和白光LED驱动器,具有四路电平转换I/O,采用1.62~...
2024-04-15 169 LED电路
MAX1516电荷泵可驱动多达8个自光LED,具有恒定电流调节功能,以实现统一的光强,能够以30mA的电流驱动每组LED,多用于背光照明。闪光灯组...
2024-04-15 193 LED电路
基于PIC16HV785的升压型LED驱动电路 如图所示为基于PIC16HV785的升压型LED驱动电路。该驱动电路利用了PIC16HV785的...
2024-04-15 302 LED电路
在不需要隔离的应用中,可以采用较为简单的降压拓扑结构,这种结构使用的电感比变压器小得多,而且只需要很少的元件即可实现这种解决方案。这种结构采用的...
2024-03-14 184 LED电路
NCP5603是针对移动电话相机与其他便携式电子设备中照明或闪光灯应用而设计的白光LED驱动器。它是电荷泵结构,采用外部两个陶瓷电容来提供电源转...
2024-03-14 209 LED电路
发表评论