用單片機實現位邏輯運算

2020-12-17 電子工程世界網

編寫程序,完成下列邏輯功能:


Q = XYZ\F + XY\ZF + X\YZF + XYZF   (\Y表示Y非,\Z表示Z非、、、)


這個邏輯表達式,可以化簡,就是:Q = XYZ + XYF + XZF


假設,各個變量對應的引腳如下:


X:  P1.0

Y:  P1.1

Z:  P1.2

F:  P1.3

Q:  P1.7



程序如下:


MOV  C,  P1.0

ANL  C,  P1.1

ANL  C,  P1.2

MOV  F0, C

MOV  C,  P1.0

ANL  C,  P1.1

ANL  C,  P1.3

ORL  C,  F0

MOV  F0, C

MOV  C,  P1.0

ANL  C,  P1.2

ANL  C,  P1.3

ORL  C,  F0

MOV  P1.7, C


END



=============================


單片機:請編寫程序實現位X與位Y異或運算。


2010-10-12 22:03無敵的中國人 | 分類:其他程式語言 | 瀏覽1546次


設X、Y分別存放在00H、01H,結果Z存放在02H。

(注意:00H、01H、02H是位地址,屬於內部RAM20H的D0、D1、D2位)


    CLR  02H

    MOV  C, 00H

    ANL  C, 01H

    JC   _END_

    MOV  C, 00H

    ORL  C, 01H

    JNC  _END_

    SETB 02H


_END_:


;完


END


=============================


單片機:請編寫程序實現位X、位Y 的異或運算。


設X、Y分別存放在 00H、01H,結果 Z 存放在02H。


注意:00H,01H,02H是位地址,屬於內部RAM20H的D0,D1,D2位


方法1:

;

    MOV   C, 00H

    ANL   C, /01H

    MOV   F0, C

    MOV   C, 01H

    ANL   C, /00H

    ORL   A, F0

    MOV   02H, C


END


;-----------------------


方法2:

;

    CLR   02H

    JNB   00H, ZZZ

    JNB   01H, EXIT

    SJMP  EXIT

ZZZ:

    JB    01H, EXIT

    SETB  02H

EXIT:


END


;-----------------------


方法3:

;

    MOV   A, 20H

    RR    A

    XRL   A, 20H

    RL    A

    RL    A

    ANL   A, #00000100B

    JZ    ZZZ

    ORL   20H, A

    SJMP  EXIT

ZZZ:

    CPL   A

    ANL   20H, A

EXIT:


END


;-----------------------


關鍵字:單片機  位邏輯運算 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/article_2018050939127.html 本網站轉載的所有的文章、圖片、音頻視頻文件等資料的版權歸版權所有人所有,本站採用的非本站原創文章及圖片等內容無法一一聯繫確認版權者。如果本網所選內容的文章作者及編輯認為其作品不宜公開自由傳播,或不應無償使用,請及時通過電子郵件或電話通知我們,以迅速採取適當措施,避免給雙方造成不必要的經濟損失。

推薦閱讀

MSP430單片機寫Info Memory

MSP430F5438A單片機在寫Info Memory時,需要先把整頁數據擦除,才能寫進去。否則寫失敗。而且還得設置下載程序時不要擦除 Info memory, 否則存儲數據失敗。因為沒此下載時都給你擦除了。

發表於 2020-05-08

51單片機實驗8:led點陣(1):點亮一個點

開發板led點陣模塊電路圖如下:74HC595:74HC595是一個8位串行輸入、並行輸出的位移緩存器。晶片第11角為數據輸入時鐘線,上升沿有效。晶片第12腳為輸出存儲器鎖存時鐘線,上升沿有效。晶片第13腳為輸出有效(低電平)。晶片第14腳為串行數據輸入。為表示出輸入74HC595的8位二進位數,開發板加入了led模塊(圖一中綠色所示)。若要使led發光,則需將JP595接vcc。OE為輸出有效控制端,低電平有效,所以務必將JOE短接片短接到GND端。_nop_();函數為延時一個機器周期,所對應頭文件為intrins.h#include<reg52.h>#include<intrins.h>#define

發表於 2020-05-08

51 單片機:在 P0 口接上 8 個 LED,實現每次亮兩個燈的流水燈

要求:每次亮相鄰兩個燈,分別閃爍五次後,移動一位,彙編。做而論道編程如下:;------------------------    ORG   0000H    LJMP  MAIN    ORG   0100HMAIN:    MOV   R2, #0FCH    MOV   A, #1;------------------------LOOP:    MOV   P0, R2   ;

發表於 2020-05-08

51單片機 4個獨立按鍵控制LED燈 (protues仿真)(C語言版)

}}void main(){while(1){key();}}四、運行程序後成功後,打開proteus右鍵單擊單片機AT89C51,找到編輯,然後添加hex文件

發表於 2020-05-08

單片機實例---定時器控制點陣顯示0~9

顯示狀態:點陣上每隔1s顯示一個數字,顯示到9又重頭顯示不斷循環#include<reg52.h>#include<intrins.h> typedef unsigned int u16;typedef unsigned char u8; u8 flag=0;   //時間標誌位 #define lie_io P0    //定義P0埠 sbit RCLKK = P3^5;    sbit SRCLK = P3^6;sbit SER = P3^4;   //串行輸入 u

發表於 2020-05-08

51單片機課程設計——led點陣廣告牌程序設計

上學期期末的課設題目是led點陣廣告牌,當時的要求如下:(1)能夠顯示不同字符的LED點陣廣告牌;(2)按鍵切換不同的顯示效果(如閃爍,靜止,平移等);(3)按鍵切換不同的顯示內容;(4)能夠顯示圖形或自定義字符;(5)其他功能(創新部分);(6)系統調試、分析、總結與功能實現。當時用的是我用是的普中科技的STC90C51RD+的單片機,不過只要是51單片機,換哪個51內核的晶片都可以,只要電路和程序匹配就可以。我用的那款普中科技的51單片機可以直接連線決定線路的布置,不需要自己去重新焊一個電路板。然後我根據任務要求連接了電路,寫了對應的程序,還有proteus仿真。另外,覺得有趣可以點個讚;有什麼有趣的想法可以評論一下,我感興趣

發表於 2020-05-08

相關焦點

  • 跟電師傅學單片機(14):輕鬆學習單片機邏輯運算類指令
    單片機邏輯運算類指令:24條對2個8位二進位數進行與、或、非和異或等單片機邏輯運算,對單片機數據進行邏輯處理,適合於傳送、存儲和輸出等。一:邏輯與指令(共6條)注意:在單片機實際編程中,邏輯與指令主要用於從某個存儲單元中取出某幾位,而把其他位變為0。除前面4條累加A為目的操作數僅影響單片機PSW中的P標誌,後面2條指令均不影響PSW中的任何標誌位。
  • 跟電師傅學單片機(15):單片機邏輯運算指令圖文講解
    的8位二進位數向左移動1位,累加器A中最左邊1位(即最高位A.7)移至最右邊1位(即最低位A.0)。不影響單片機標誌寄存器PSW中的標誌位。RR A;右循環移位指令:單片機軟體指令功能是將累加器A的8位二進位數向右移動1位,累加器A中最右邊1位(即最低位A.0)移至最左邊1位(即最高位A.7)。不影響單片機標誌寄存器PSW中的標誌位。
  • 51單片機位及位操作指令
    我們已經習慣了「位」一位就是一盞燈的亮和滅,而我們學的指令卻全都是用「字節」來介紹的:字節的移動、加法、減法、邏輯運算、移位等等。用字節來處理一些數學問題,比如說:控制冰箱的溫度、電視的音量等等很直觀,可以直接用數值來表在。
  • 51單片機教程:單片機邏輯運算類指令
    對單片機的累加器A的邏輯操作:本文引用地址:http://www.eepw.com.cn/article/171291.htmCLR A ;將A中的值清0,
  • 跟電師傅學單片機(13):單片機算術運算類指令圖文講解
    二:十進位調整指令(1條)DA A單片機十進位調整指令,功能是在進行BCD碼加法運算時,用來對BCD碼的加法運算結果自動進行修正,修正結果存放在A中。BCD碼:是二進碼十進數或二-十進位代碼,用4位二進位數來表示1位十進位數中的0~9這10個數碼。注意:1:在進行BCD加法運算時,在單片機加法指令ADD或ADDC指令後緊跟著DA A指令,單片機自動判斷和修正。
  • 51單片機邏輯運算類指令
    對累加器A的邏輯操作:CLR A ;將A中的值清0,單周期單字節指令,與MOV A,#00H效果相同。CPL A ;將A中的值按位取反RL A ;將A中的值邏輯左移RLC A ;將A中的值加上進位位進行邏輯左移RR A ;將A中的值進行邏輯右移RRC A ;將A中的值加上進位位進行邏輯右移SWAP A ;將A中的值高、低4位交換。
  • 從零開始51單片機教程 —— 13 單片機邏輯運算類指令
    對單片機的累加器A的邏輯操作:CLR A ;將A中的值清0,單周期單字節指令,與MOV A,#00H效果相同。CPL A ;將A中的值按位取反RL A ;將A中的值邏輯左移RLC A ;將A中的值加上進位位進行邏輯左移RR A ;將A中的值進行邏輯右移RRC A ;將A中的值加上進位位進行邏輯右移SWAP A ;將A中的值高、低4位交換。
  • 跟電師傅學單片機(21):單片機位操作指令圖文講解(二)
    位運算指令表CY:單片機標誌寄存器PSW的最高位,是進位標誌位,CY也稱為位累加器,在指令中CY直接寫成C。如同累加器A,都在單片機編程指令中使用頻率較高。Bit:位尋址區內的某一位的狀態。ANL為邏輯「與」指令:ANL C,bit;指令功能是將位累加器CY的內容與直接尋址位進行邏輯「與」操作,並將結果送回累加器CY中。ANL C,/bit;指令功能是將直接尋址位取反後再同位累加器CY的內容進行邏輯「與」操作,並將結果送回累加器CY中。
  • HMAC認證協議的ZQ032SA單片機實現
    當大於B時,先經Hash計算形成L字節的秘鑰(B是Hash算法中一次迭代運算的數據塊字節數;L是Hash算法形成報文摘要的字節數)。   HMAC協議定義了迭代兩次的Hash加密算法,最終形成報文摘要(DIGEST)值就是認證碼。基於算法的可靠性、安全性和易於計算機實現特性,先用Hash中的MD5算法實現HMAC,其B=64,L=16。
  • CRC校驗碼在單片機中的程序實現的求取
    對於8位的單片機系統,要實現CRC通信就必須編寫生成CRC碼的指令程序,且由於單片機的程序存儲器很少、運算速度也比較低,因此要求程序代 碼儘量少,算法必須簡單。下面將以CRC—CCITT標準為例來介紹CRC通信碼的單片機實現過程。1 CRC校驗碼的構成
  • 單片機的加減法原理
    8位裡面還需要表示一個符號,而且負號在最高位,那麼數值只能是 bit0 ~ bit 7 表示,也就是說 -128 ~ 127計算機裡面做的運算都是補碼運算,有符號數還是無符號數,計算機是不管的,其實這個只是寫給編譯器看的,由編譯器去識別。
  • 基於AT89C51單片機的十進位計算器系統設計
    硬體方面從功能考慮,首先選擇內部存儲資源豐富的AT89C51 單片機,輸入採用4×4 矩陣鍵盤。顯示採用4 位7 段共陽極LED 動態顯示。軟體方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計。  引言  本系統採用AT89C51 單片機作為控制器,用來實現實現四位數的「+」,「-」,「*」,「/」運算,運算結果通過數碼管顯示,並具有有清零功能。
  • PIC單片機指令系統基礎知識
    PIC單片機指令系統基礎知識:A 指令系統是指一種單片機所能識別的所有指令的集合.(PIC系列單片機指令系統採用的是精簡指令集RISC結構體系)B 指令系統是單片機的核心,人們必須通過指令指揮CPU來完成某項特定的操作.C 如果要為某種單片機編寫程序,首先要學習,記憶和應用該單片機指令系統的每一條指令.
  • 單片機測試邏輯筆電路
    當我們需要對單片機接口邏輯電路測試時,要求測試工作不影響被測電路的狀態。使用邏輯筆是利用LM339運算放大器進行測量和放大,它的輸入電阻非常高,因而不影響被測電路的狀態。邏輯筆的指示只用3隻發光二極體,觀察方便而且直觀,體積小巧易攜帶,還可以觀察脈衝狀態。LM339內部由4個運算放大器組成(1個未用),每個運算放大器都有兩個輸入端。「+」表示同相輸入端,「-」表示反相輸入端。
  • 單片機教程:PIC單片機C語言程序設計(五)
    基本運算符有8類,即算術運算符、關係運算符、邏輯運算符、自增運算符、自減運算符、字位運算符、賦值運算符、條件運算符、逗號運算符等。而其他運算符有指針運算符和雜項運算符等。每類運算符又包含了多種運算符。  2.基本運算符  (1)算術運算符及自增、自減運算符。
  • 單片機浮點數的運算原理及表達方式
    打開APP 單片機浮點數的運算原理及表達方式 發表於 2019-04-18 15:38:39 單片機一般浮點數均採用士MxC的形式來表示
  • 跟電師傅學單片機(12):單片機算術運算加減法指令圖文新解
    單片機算術運算類指令(24條)單片機算術運算指令是8位二進位數進行加、減、乘、除四則運算,以及加1、減1、十進位調整等。本節介紹其中加減法12條指令。單片機系統上電或復位時,PSW初始值為00H。3:減法指令(4條)SUBB:帶借位減法指令,與帶進位加法指令類似,指令功能是把累加器A中的內容減去源操作數所確定單元中的內容和進位標誌CY,其結果送回A中。
  • [GO語言基礎] 四.算術運算、邏輯運算、賦值運算、位運算及編程練習
    這篇文章將介紹運算,包括算術運算、邏輯運算、賦值運算、位運算及編程練習。 這系列文章入門部分將參考「尚矽谷」韓順平老師的視頻和書籍《GO高級編程》,詳見參考文獻,並結合作者多年的編程經驗進行學習和豐富,且看且珍惜!
  • MCS-51單片機的結構和工作原理
    實現算術、邏輯運算、位變量處理、移位、數據傳送1、算術邏輯單元(ALU)8位用來完成二進位四則運算和布爾代數的邏輯運算,運算結果影響PSW的有關標誌位。,其運算結果產生低四位向高四位進位或借位時,AC由硬體置「1」;否則AC位被自動清「0」。
  • PIC單片機C語言程序設計(5)
    基本運算符有8類,即算術運算符、關係運算符、邏輯運算符、自增運算符、自減運算符、字位運算符、賦值運算符、條件運算符、逗號運算符等。而其他運算符有指針運算符和雜項運算符等。每類運算符又包含了多種運算符。  2.基本運算符  (1)算術運算符及自增、自減運算符。  表4列出了加、減、乘、除、取模5種算術運算符,以及自增、自減運算符的操作說明。