单片机模拟开关灯实验,附程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.模拟开关灯
1.实验任务
如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2.电路原理图
图4.2.1
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.程序框图
图4.2.2
6.汇编源程序
ORG 00H
START: JB P3.0,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END
7.C语言源程序
#include <A T89X51.H>
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
while(1)
{
if(K1==0)
{
L1=0; //灯亮
}
else
{
L1=1; //灯灭
}
}
}。