逻辑运算与51单片机的位操作指令

发布者:数字驿站最新更新时间:2018-05-08 来源: eefocus关键字:逻辑运算  51单片机  位操作指令 手机看文章 扫描二维码
随时随地手机看文章

一个单片机逻辑电路题目,要求编一程序实现下面逻辑电路的逻缉功能。

逻辑图:

 逻辑运算与51单片机的位操作指令 - 非著名博主 - 电子信息角落

悬赏分:20 | 解决时间:2011-1-2 22:53
;------------------------------------------------------------
最佳答案:

先把逻辑图写成如下的表达式:(用“P1.6\” 代表“P1.6 的非”,其它的也雷同)

    P3.0 = ((P1.0 * P1.1)\ * (P1.4 + P1.5)\) + P1.6\)\

再反复应用摩根定理化简:

    P3.0 = ((P1.0 * P1.1)\ * (P1.4 + P1.5)\)\ * P1.6

    P3.0 = ((P1.0 * P1.1) + (P1.4 + P1.5)) * P1.6

最后写成:

    P3.0 = (P1.0 * P1.1 + P1.4 + P1.5) * P1.6

这就简单多了,四个取反的步骤,都化没了。

等效的逻辑图如下:

 逻辑运算与51单片机的位操作指令 - 非著名博主 - 电子信息角落

 用汇编语言和C语言编写的局部程序如下:
====================================
;汇编语言:

    MOV  C,  P1.0
    ANL  C,  P1.1
    ORL  C,  P1.4
    ORL  C,  P1.5
    ANL  C,  P1.6
    MOV  P3.0,  C

SJMP  $

;===================================
//C语言:

sbit  a = P1^0;                //将引脚确定为变量
sbit  b = P1^1;
sbit  c = P1^4;
sbit  d = P1^5;
sbit  e = P1^6;
sbit  f = P3^0;

    f = (a & b | c | d) & e; //一行语句即可

//这个题目,在教材里面,一般是要求使用51单片机的位操作指令来编程的,所以,答题时应该用汇编语言。
//但是,看到多数网友,对汇编比较迟钝,所以,也就把C语言写在这里了。

//==================================

有些网友直接按照逻辑图来编写程序,没有先行逻辑化简,所以编写出来的程序难免笨重。
这里给出的程序,比楼上的几种方法,都简单的多,执行速度也快的多。

回答者: 做而论道
提问者对于答案的评价:非常感谢!
====================================
下面是另外一个关于逻辑化简的题目。

利用布尔代数的公理和定理求 F = (A ? B) ⊙ AB 的最简逻辑函数表达式。
悬赏分:0 | 解决时间:2011-1-2 19:40 
-------------------------------------
最佳答案:

以下用 A\ 代表“A的非”,其它的也雷同。
题目中的?和⊙,分别代表异或和同或,下面把它们用与或非逻辑运算展开并化简。

F = (A ? B) ⊙ AB
  = (A\B + AB\) * AB   +  (A\B + AB\)\ * (AB)\
  = (A\B * AB + AB\ * AB)  +  (A\B + AB\ ) + (AB)
  = ( 0  +  0 )  +  (A\B + AB\ ) + (AB)
  = ( 0  +  0 )  +   A\B + AB\  + AB
  = ( 0  +  0 )  +   A\B + AB + AB\  + AB
  = ( 0  +  0 )  +   A\B + AB + AB\  + AB
  = ( 0  +  0 )  +  (A\ + A)B + (B\ + B)A
  =  B + A


关键字:逻辑运算  51单片机  位操作指令 引用地址:逻辑运算与51单片机的位操作指令

上一篇:LCD1602 的4线接法
下一篇:利用74HC595在串行口扩充8位的并行输出接口

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

关于51单片机中的几种通信模式与总结
前言 在硬件传输过程中少不了各模块的通信,就近来学习到的知识做一个简单的梳理与总结 通信的基本概念 通信的方式分为多种,按照数据传送方式可以分为串行通信与并行通信,按照通信的数据同步方式,可以分为异步通信与同步通信,按照数据的传输方向可以分为单工,半双工和全双工通信。 串行通信与并行通信 串行通信 使用一条数据线,一位一位进行传输,适合于远距离通信 传输特点:传输线少,长距离传送成本低, 并行通信 将数据字节的各位用多条数据线同时进行传送,通常是8位,16位,32等数据一起传输 特点:控制简单,传输速度快,长距离传输成本高,抗干扰ability差。 异步通信与同步通信 异步通信 发送与接收设备使用各自的时钟
[单片机]
关于<font color='red'>51单片机</font>中的几种通信模式与总结
51单片机是冯诺依曼结构还是哈佛结构?
简介:有人说51地址线复用,就是冯诺依曼结构。很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组成的系统 都叫冯氏结构。 也有的说:“程序存储器的数据线地址线”与“数据存储器的数据线地址线”共用的话,就 是冯氏结构,所以51是该结构。 关于这个问题,有人说51地址线复用,就是冯诺依曼结构。很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组成的系统 都叫冯氏结构。 也有的说:“程序存储器的数据线地址线”与“数据存储器的数据线地址线”共用的话,就 是冯氏结构,所以51是该结构。(我认为说得太绝对了) 我认为冯氏结构与哈佛结构的区别应该在存储器的空间分别上,哈佛结构的数据区和代码区是分开的
[单片机]
<font color='red'>51单片机</font>是冯诺依曼结构还是哈佛结构?
51单片机对宿舍防火防盗智能报警系统的设计
0 引言 现如今在学校的寝室里,学生贵重物品被盗、由于学生过失而引起着火等事故时有发生,这些都是一直以来困扰着学生、学工以及学校保卫处的“大问题”。传统的防范措施存在很大的弊端,比如当事故发生时,防护铁门、铁栏杆就会成为主人逃生的最大障碍。而采用智能防火防盗报警系统,便能很好地解决此类问题了。但是市场上防火防盗系统价格对大学生来讲过高,本系统便是针对大学宿舍,从低成本的角度来设计制作的。 1 系统组成及工作原理 本系统通过一个监控室和两个宿舍来模拟,通过RS 485总线来实现通信。考虑到现实中监控室要能监控整栋宿舍楼,因此采用功能强大的ARM7芯片LPC2103作为主机控制芯片,从机采用价格低廉的51系列单片机作为控制芯片。宿
[单片机]
<font color='red'>51单片机</font>对宿舍防火防盗智能报警系统的设计
基于51单片机的电梯控制系统设计
一.系统概述 系统使用的模块有AT89C51单片机+LCD1602显示屏+ADC0832+按键+小灯。 本次设计的智能路灯控制系统以AT89C51单片机为控制核心,使用LCD1602显示屏显示ADC采集回来的光照强度的数字电压信号,系统程序内设置光照强度阈值,在默认状态下为自动模式,此时调节电位器就能实现光照强度的调节,按下自动按键就会切换到手动模式,此时按下手动开和手动关按键就能控制小灯的亮灭。 二.仿真概述 1.使用LCD1602显示光照强度电压信号值。 2.为电梯的内外都设置了上下楼按键,按下就开始执行上下楼程序,左侧的指示灯会根据电梯上行和下行高亮,到达指定楼层后状态灯会直接亮起。 3.当按下上下楼按键后
[单片机]
基于<font color='red'>51单片机</font>的电梯控制系统设计
51单片机实验16:A/D模数转换(XPT2046)
关于A/D模数转换以及XPT2046芯片的内容请参考:https://blog.csdn.net/cax1165/article/details/87024388 #include reg52.h #include XPT2046.h sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; uc code x ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uc dig ; void delay(uc x) { uc i,j; for(i=1;i =x;i++) for(j=1;j =110;j++); } v
[单片机]
51单片机学习——7--8*8LED点阵显示
原理 点阵简介 点阵的外部 点阵的内部结构 和矩阵按键相似,将每一行或每一列的LED阳极或阳极并联一起。如左图,如果我们想让某个led灯点亮,就让某一行输出高电平,某一列输出低电平。 我们通过74HC595向led点阵输入段选数据,即控制每一列哪些灯亮 通过P0口输入位选数据,即控制哪一列显示 74HC595 通过控制14,11,12引脚来输入数据。 14:DS(SER)对应网络标号的P3^4 11:SHCP(SRCLK)对应网络标号中的P3^6 12:STCP(RCLK)对应网络标号中的P3^5 上升沿就是数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。
[单片机]
<font color='red'>51单片机</font>学习——7--8*8LED点阵显示
51单片机实现通讯协议的串口通讯编程
我们以51单片机为例。51中一般针对串口通讯编程,通常采取中断接受查询发送的方式。中断函数在接受数据到达时被重复调用,其实是个重复入栈的过程,所以不宜将函数写的太长,函数太长一般会导致栈太深占用系统资源,二是处理时间过长,可能导致通讯出错。为了防止在处理数据过程中不受干扰,通常在处理接受数据前关闭中断,处理完后再开。 通常的的编程方式如下: static void UartInterruptService(void) interrupt 4 { ES = 0; RI = 0; uart_process(SBUF); ES=1; } 下面重点介绍数据处理函数 uart_process(SBUF); 其实很多时候,对于通讯
[单片机]
<font color='red'>51单片机</font>实现通讯协议的串口通讯编程
AT89S51单片机是什么?
AT89S51单片机是什么? AT89S51是什么? 书上和网络教程上可都是8051,89C51等 !没听说过有 89S51 ?! 这里,初学者要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。 有些文献
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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