3. 多路开关状态指示

1. 实验任务

如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。

2. 电路原理图

图4.3.1

3. 系统板上硬件连线

(1. 把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;

(2. 把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上;

4. 程序设计内容

(1. 开关状态检测

对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.X,REL或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。

(2. 输出控制

根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETB P1.X和CLR P1.X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。

5. 程序框图

读P1口数据到ACC中

ACC内容右移4次

ACC内容与F0H相或

ACC内容送入P1口

图4.3.2

6. 方法一(汇编源程序)
ORG 00H
START: MOV A,P1
ANL A,#0F0H
RR A
RR A
RR A
RR A
XOR A,#0F0H
MOV P1,A
SJMP START
END
7. 方法一(C语言源程序)

#include <AT89X51.H>
unsigned char temp;void main(void)
{while(1){temp=P1>>4;temp=temp | 0xf0;P1=temp;}
}

8. 方法二(汇编源程序)
ORG 00H
START: JB P1.4,NEXT1
CLR P1.0
SJMP NEX1
NEXT1: SETB P1.0
NEX1: JB P1.5,NEXT2
CLR P1.1
SJMP NEX2
NEXT2: SETB P1.1
NEX2: JB P1.6,NEXT3
CLR P1.2
SJMP NEX3
NEXT3: SETB P1.2
NEX3: JB P1.7,NEXT4
CLR P1.3
SJMP NEX4
NEXT4: SETB P1.3
NEX4: SJMP START
END
9. 方法二(C语言源程序)

#include <AT89X51.H>void main(void)
{while(1){if(P1_4==0){P1_0=0;}else{P1_0=1;}if(P1_5==0){P1_1=0;}else{P1_1=1;}if(P1_6==0){P1_2=0;}else{P1_2=1;}if(P1_7==0){P1_3=0;}else{P1_3=1;}}
}

单片机实例3——多路开关状态指示(硬件电路图+汇编程序+C语言程序)相关推荐

  1. 单片机实例6——报警产生器(硬件电路图+汇编程序+C语言程序)

    6. 报警产生器 1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开 ...

  2. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)

    2. 模拟开关灯 1. 实验任务 如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭. 2. 电 ...

  3. 单片机实例27——ADC0809A/D转换器基本应用技术(硬件电路图+汇编程序+C语言程序)

    27. ADC0809A/D转换器基本应用技术 1. 基本知识 ADC0809是带有8位A/D转换器.8路多路开关以及微处理机兼容的控制逻辑的CMOS组件.它是逐次逼近式A/D转换器,可以和单片机直接 ...

  4. 单片机实例14——4×4矩阵式键盘识别技术(硬件电路图+汇编程序+C语言程序)

    14. 4×4矩阵式键盘识别技术 1. 实验任务 如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线:在数码管上显示每个按键 ...

  5. 单片机实例19—— “叮咚”门铃(硬件电路图+汇编程序+C语言程序)

    19. "叮咚"门铃 1. 实验任务 当按下开关SP1,AT89S51单片机产生"叮咚"声从P1.0端口输出到LM386,经过放大之后送入喇叭. 2. 电路原理 ...

  6. 单片机实例1——闪烁灯(硬件电路图+汇编程序+C语言程序)

    1. 闪烁灯 1. 实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒. 2. 电路原理图 图4.1.1 3. 系统板上硬件连线 ...

  7. 单片机实例4——广告灯的左移右移(硬件电路图+汇编程序+C语言程序)

    4. 广告灯的左移右移 1. 实验任务 做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出"0"时,发光二极管亮 ...

  8. 单片机实例21——拉幕式数码显示技术(硬件电路图+汇编程序+C语言程序)

    21. 拉幕式数码显示技术 1. 实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数 ...

  9. 单片机实例26——点阵式LED简单图形显示技术(硬件电路图+汇编程序+C语言程序)

    26. 点阵式LED简单图形显示技术 1. 实验任务 在8X8点阵式LED显示"★"."●"和心形图,通过按键来选择要显示的图形. 2. 电路原理图 图4.26 ...

最新文章

  1. Linux 线程实现机制分析--转
  2. 行业 | 调查:移动游戏盈利60%来源于0.23%付费玩家
  3. maven设置本地仓库路径
  4. HDU多校1 - 6955 Xor sum(字典树+贪心)
  5. Java终于可以加入字符串
  6. python 多分类情感词典_基于情感词典的文本情感分类
  7. 音乐上传网站_国外最受欢迎的15个BT下载网站
  8. Tensflow学习笔记(一)——TF生成并查看数据
  9. php rc4对称加密函数,PHP实现的简单对称加密与解密方法实例小结
  10. JS SDK的标准创建原则
  11. python x轴加范围_Python,Matplotlib,subplot:如何设置轴范围?
  12. macOS Monterey 兼容哪些 Mac?
  13. python显示1000以内的斐波拉契数列_Python 实现斐波那契数列方法及其优化总结
  14. 计算机主机前后,Win10电脑主机前面的耳机插口没声音怎么办?前置面板插孔没声音...
  15. 极大似然估计(Maximum likelihood estimation)
  16. 怎么将拍的照片免费转成PDF文件呢
  17. 如何将自己的win7电脑变身WiFi无线网络热点
  18. 微信小程序:缓存wx.getStorage
  19. linux如何ping多个ip,如何同时Ping多个IP地址并保存记录 | 个人信息技术网
  20. 最全Pycharm教程(14)——Pycharm编辑器功能总篇

热门文章

  1. Maven中的依赖冲突
  2. 小米路由器LuCI Web服务
  3. 流程二备选方案及评估
  4. Spring Boot项目 Spring Configuration Check Unmapped Spring configuration files found
  5. Java显示棋盘_Java的GUI学习:显示国际棋盘
  6. 数据安全管理软件-企业如何保护数据安全?
  7. php发送文本邮件和带附件邮件
  8. 5g理论速度_5G的速度到底能有多快?
  9. 本科生通信工程毕业何去何从
  10. 汇编语言寄存器说明eax, ebx, ecx, edx, esi, edi, ebp, esp,eip