模拟开关灯

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. 汇编源程序

复制代码
START: JB P3.0,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END 

7. C语言源程序

cpp 复制代码
#include <AT89X51.H>
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
  while(1)
  {
     if(K1==0)
     {
     L1=0; //灯亮
     }
     else
     {
     L1=1; //灯灭
     }
  }
}
相关推荐
FreakStudio3 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
通信小呆呆8 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick9 天前
自动对焦学习-3
人工智能·学习·计算机视觉
✎ ﹏梦醒͜ღ҉繁华落℘9 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Daisy Lee9 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn869 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e9 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨9 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
zd8451015009 天前
RS485 总线详解
单片机·嵌入式硬件
cqbzcsq9 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息