3. 多路开关状态指示

发布者:快乐的小鸟最新更新时间:2016-09-22 来源: eefocus关键字:多路开关  状态指示 手机看文章 扫描二维码
随时随地手机看文章
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  
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  
  
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. 多路开关状态指示

上一篇:5. 广告灯(利用取表方式)
下一篇:4. 广告灯的左移右移

推荐阅读最新更新时间:2024-03-16 15:11

集成多路模拟开关的应用技巧
    摘要: 从应用的角度出发,研究了集成多路模拟开关的应用技巧,并结合实例进行了讨论。这些应用技巧具有较强的针对性和可操作性,对集成多路模拟开关的正确选择与合理使用具有指导意义。     关键词: 集成多路模拟开关 传输精度 传输速度 集成多路模拟开关(以下简称多路开关)是自动数据采集、程控增益放大等重要技术领域的常用器件,其实际使用性能的优劣对系统的严谨和可靠性重要影响。关于多路开关的应用技术,些文献上介绍有两点不足:一是对器件自身介绍较多,而对器件与相关电路的合理搭配与协调介绍较少;二是原则性的东西介绍较多,而操作性的东西介绍较少。研究表明:只有正确选择多路开关的种类,注意多路开关与相关电路的合理搭配与
[应用]
安捷伦推适合多路数字总线测试的自动化开关解决方案
安捷伦科技公司宣布推出适合多路数字总线接口测试的自动化开关解决方案。自动化开关解决方案结合了Infiniium系列示波器,可用于多路总线一致性应用,包括DisplayPort、HDMI、PCI-Express®、MIPI™ D-PHY和M-PHY接口。 该解决方案包括适用于 Infiniium 一致性测试应用软件的开关矩阵软件选件,以及预先配置的、与该应用软件配合使用的开关矩阵硬件模型。支持的开关矩阵硬件模型包括 Agilent U3020AS26 和安捷伦合作伙伴BitifEye BIT-2100 系列。 该解决方案还为 SMA 和 SMP 连接测试接口以及使用 Agilent InfiniiMax 系列探头进行的直接探测提供
[测试测量]
10Gbps CMOS多路解复用器开关【恩智浦】
中国上海,2011年3月16日—— 恩智浦半导体NXP Semiconductors N.V. (Nasdaq: NXPI)近日宣布推出业内速度最快的多路复用器/多路解复用器开关CBTL02043。CBTL02043可以支持速度高达10Gbps 信号号切换,同时具有低功耗及低能量损失的特性,特别适用于台式电脑、笔记本电脑及企业型计算机系统的设计,支持应用符合快速运算的标准,例如:PCIe Gen3、USB3.0、DisplayPort v1.2 及SAS/SATA III 6 Gbps。 CBTL02043可将两个差分信号设为一路输入,切换至两路输出的其中一路。同时保证较低的信号衰减。2:1多路复用器/多路解复用器开关采
[模拟电子]
10Gbps CMOS<font color='red'>多路</font>解复用器<font color='red'>开关</font>【恩智浦】
多路输出开关电源的设计及应用原则
对现代电子系统,即便是最简单的由单片机和单一I/O接口电路所组成的电子系统来讲,其电源电压一般也要由+5V,±15V或±12V等多路组成,而对较复杂的电子系统来讲,实际用到的电源电压就更多了。目前主要由下述诸多电压组合而成:+3.3V,+5V,±15V,±12V,-5V,±9V,+18V,+24V、+27V、±60V、+135V、+300V、-200V、+600V、+1800V、+3000V、+5000V(包括一个系统中需求多个上述相同电压供电电源)等。不同的电子系统,不仅对上述各种电压组合有严格的要求,而且对这些电源电压的诸多电特性也有较严格的要求,如电压精度,电压的负载能力(输出电流),电压的纹波和噪声,起动延迟,上升时间,恢
[电源管理]
<font color='red'>多路</font>输出<font color='red'>开关</font>电源的设计及应用原则
基于AVR单片机的负荷缸多路遥控开关编解码实现
  负荷缸是船舶电力核心发电机性能的负荷试验必备的重要工装设备,通过负荷试验,可以检验发电机长期工作的性能稳定的情况(静态特性)和对突加突卸负荷的应变能力(动态特性)。 AVR单片机 具有高性能低价格的优点,在本文中利用AVR单片机对发电机负荷缸的多路远程遥控开关量进行采集监控并进行数字信号编解码,用2芯的电缆取代原来40芯的粗电缆传输控制信号,有效地解决了工作中遇到的问题。   1 问题的提出   我们通过把由发电机供电的通电极板放到负荷缸水电阻中,用充气升降极板和补给水调节水电阻大小的方法控制试验发电机所带负荷的大小,对发电机的性能进行试验。体积庞大的负荷缸一般放置在码头,在船舶发电机的负荷试验中需要在船舶配电板处控制负荷
[单片机]
基于AVR单片机的负荷缸<font color='red'>多路</font>遥控<font color='red'>开关</font>编解码实现
基于AVR单片机的多路遥控开关编解码实现
  负荷缸是船舶电力核心发电机性能的负荷试验必备的重要工装设备,通过负荷试验,可以检验发电机长期工作的性能稳定的情况(静态特性)和对突加突卸负荷的应变能力(动态特性)。AVR单片机具有高性能低价格的优点,在本文中利用AVR单片机对发电机负荷缸的多路远程遥控开关量进行采集监控并进行数字信号编解码,用2芯的电缆取代原来40芯的粗电缆传输控制信号,有效地解决了工作中遇到的问题。   1 问题的提出   我们通过把由发电机供电的通电极板放到负荷缸水电阻中,用充气升降极板和补给水调节水电阻大小的方法控制试验发电机所带负荷的大小,对发电机的性能进行试验。体积庞大的负荷缸一般放置在码头,在船舶发电机的负荷试验中需要在船舶配电板处控制负荷缸的
[单片机]
基于AVR单片机的<font color='red'>多路</font>遥控<font color='red'>开关</font>编解码实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved