51单片机实例34-模拟开关灯
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 程序设计内容
(1) .
- 31 -
AT89S51 单片机实验及实践教程
电性可知,这时发光二极管 L1 熄灭;当 P1.0 端口输出低电平,即 P1.0= 0 时, 发光二极管 L1 亮;我们可以使用 SETB P1.0 指令使 P1.0 端口输出高电平,使 用 CLR P1.0 指令使 P1.0 端口输出低电平。
AT89S51 单片机实验及实践教程
2.
1. 实验任务
模拟开关灯
如图 4.2.1 所示, 监视开关 K1 (接在 P3.0 端口上) , 用发光二极管 L1 (接在单片机 P1.0 端口上)显示开关状态,如果开关合上, L1 亮,开关打开,L1 熄灭。
2. 电路原理图
图 4.2.1
3. 系统板上硬件连线
//灯亮
//灯灭
- 32 -
5. 程序框图
开始
K1 开关闭合了吗?
L1 亮 L1 灭
图 4.2.2
6. 汇编源程序
START: ORG 00HБайду номын сангаасJB P3.0,LIG CLR P1.0 SJMP START SETB P1.0 SJMP START END
LIG:
7. C 语言源程序
#include <AT89X51.H> sbit K1=P3^0; sbit L1=P1^0; void main(void) { while(1) { if(K1==0) { L1=0; } else { L1=1; } } }
(1) . (2) . 把“单片机系统”区域中的 P1.0 端口用导线连接到“八路发光二极管指示模块” 区域中的 L1 端口上; 把“单片机系统”区域中的 P3.0 端口用导线连接到“四路拨动开关”区域中的 K1 端口上; 开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的 P3.0 端口输入信号, 而输入的信号只有高电平和低电平两种,当拨开开关 K1 拨上去,即输入高电平, 相当开关断开,当拨动开关 K1 拨下去,即输入低电平,相当开关闭合。单片机 可以采用 JB BIT ,REL 或者是 JNB BIT ,REL 指令来完成对开关状态的检测 (2) . 即可。 输出控制 如图 3 所示,当 P1.0 端口输出高电平,即 P1.0=1 时,根据发光二极管的单向导