51單片機位及位操作指令

2021-01-12 電子產品世界

我們已經習慣了「位」一位就是一盞燈的亮和滅,而我們學的指令卻全都是用「字節」來介紹的:字節的移動、加法、減法、邏輯運算、移位等等。用字節來處理一些數學問題,比如說:控制冰箱的溫度、電視的音量等等很直觀,可以直接用數值來表在。可是如果用它來控制一些開關的打開和合上,燈的亮和滅,就有些不直接了?我們知道送往P1口的數值後並不能馬上知道哪個燈亮和來滅,而是要化成二進位才知道。工業中有很多場合需要處理這類開關輸出,繼電器吸合,用字節來處理就顯示有些麻煩,所以在8051單片機中特意引入一個位處理機制。

位尋址區

在8051中,有一部份RAM和一部份SFR是具有位尋址功能的,也就是說這些RAM的每一個位都有自已的地址,可以直接用這個地址來對此進行操作。

內部RAM的20H-2FH這16個字節,就是8031的位尋址區。看圖1。可見這裡面的每一個RAM中的每個位我們都可能直接用位地址來找到它們,而不必用字節地址,然後再用邏輯指令的方式。

可以位尋址的特殊功能寄存器

8031中有一些SFR是可以進行位尋址的,這些SFR的特點是其字節地址均可被8整除,如A累加器,B寄存器、PSW、IP(中斷優先級控制寄存器)、IE(中斷允許控制寄存器)、SCON(串行口控制寄存器)、TCON(定時器/計數器控制寄存器)、P0-P3(I/O埠鎖存器)。以上的一些SFR我們還不熟,等我們講解相關內容時再作詳細解釋。

位操作指令

MCS-51單片機的硬體結構中,有一個位處理器(又稱布爾處理器),它有一套位變量處理的指令集。在進行位處理時,CY(就是我們前面講的進位位)稱「位累加器」。有自已的位RAM,也就是我們剛講的內部RAM的20H-2FH這16個字節單元即128個位單元,還有自已的位I/O空間(即P0.0…..P0.7,P1.0…….P1.7,P2.0……..P2.7,P3.0……..P3.7)。當然在物理實體上它們與原來的以字節尋址用的RAM,及埠是完全相同的,或者說這些RAM及埠都可以有兩種用法。

位傳送指令

MOV C,BIT

MOV BIT,C

這組指令的功能是實現位累加器(CY)和其它位地址之間的數據傳遞。

例:MOV P1.0,CY ;將CY中的狀態送到P1.0引腳上去(如果是做算術運算,我們就可以通過觀察知道現在CY是多少啦)。

MOV P1.0,CY ;將P1.0的狀態送給CY。

位修正指令

位清0指令

CLR C ;使CY=0

CLR bit ;使指令的位地址等於0。例:CLR P1.0 ;即使P1.0變為0

位置1指令

SETB C ;使CY=1

SETB bit ;使指定的位地址等於1。例:SETB P1.0 ;使P.0變為1

位取反指令

CPL C ;使CY等於原來的相反的值,由1變為0,由0變為1。

CPL bit ;使指定的位的值等於原來相反的值,由0變為1,由1變為0。

例:CPL P1.0

以我們做過的實驗為例,如果原來燈是亮的,則執行本指令後燈滅,反之原來燈是滅的,執行本指令後燈亮。

位邏輯運算指令

位與指令

ANL C,bit ;CY與指定的位地址的值相與,結果送回CY

ANL C,/bit ;先將指定的位地址中的值取出後取反,再和CY相與,結果送回CY,但注意,指定的位地址中的值本身並不發生變化。

例:ANL C,/P1.0

設執行本指令前,CY=1,P1.0等於1(燈滅),則執行完本指令後CY=0,而P1.0也是等於1。

可用下列程序驗證:

ORG 0000H

AJMP START

ORG 30H

START: MOV SP,#5FH

MOV P1,#0FFH

SETB C

ANL C,/P1.0

MOV P1.1,C ;將做完的結果送P1.1,結果應當是P1.1上的燈亮,而P1.0上的燈還是不亮

51單片機相關文章:51單片機教程


相關焦點

  • 51單片機彙編語言:位操作指令有哪些?
    數據位傳送指令MOVC,bit;bit可直接尋址位C←(bit)>MOVbit,C;C進位位(bit)←C位變量修改指令CLRC;將C=0CLRbit
  • 跟電師傅學單片機(21):單片機位操作指令圖文講解(二)
    位運算指令表CY:單片機標誌寄存器PSW的最高位,是進位標誌位,CY也稱為位累加器,在指令中CY直接寫成C。如同累加器A,都在單片機編程指令中使用頻率較高。Bit:位尋址區內的某一位的狀態。ANL為邏輯「與」指令:ANL C,bit;指令功能是將位累加器CY的內容與直接尋址位進行邏輯「與」操作,並將結果送回累加器CY中。ANL C,/bit;指令功能是將直接尋址位取反後再同位累加器CY的內容進行邏輯「與」操作,並將結果送回累加器CY中。
  • 跟電師傅學單片機(20):單片機位操作指令圖文講解(一)
    位操作指令:指令中的操作數不是字節,而是字節中的某一位,每位取值只能是0或1;指令中的操作對象是單片機內部RAM的位尋址區:20H~2FH單元中的128個位和SFR中的11個可以位尋址的特殊功能寄存器。
  • 51單片機彙編指令的記憶方法
    MCS-51使用彙編語言指令,它共有44個操作碼助記符,33種功能,其操作數有#data、direct、Rn、@Ri等。這裡先介紹指令助記符及其相關符號的記憶方法。一、助記符號的記憶方法1 表格列舉法把44個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結。
  • 51單片機邏輯運算類指令
    對累加器A的邏輯操作:CLR A ;將A中的值清0,單周期單字節指令,與MOV A,#00H效果相同。例:(A)=73H,則執行CPL A,這樣進行:73H化為二進位為01110011,逐位取反即為 10001100,也就是8CH。RL A是將(A)中的值的第7位送到第0位,第0位送1位,依次類推。例:A中的值為68H,執行RL A。68H化為二進位為01101000,按上圖進行移動。
  • 單片機的指令和尋址方式
    單片機的品種很多,設計時怎樣表示操作碼和操作數,都有各自的規定,再有指令代碼也各不相同,因此,必須對所選單片機的全部指令,也就是所謂「指令系統」,有足夠的了解。各個系列的單片機雖然有不同的指令系統,但也有其共同性。掌握一種單片機的指令系統,對其它系列單片機可以起到觸類旁通的作用。
  • 位操作指令的功能是什麼呢?他又有哪些分類和作用?
    位操作類指令的功能是對單片機內部存儲器的位單元進行操作。位操作類指令有數據位傳送指令、位變量修改指令、位變量邏輯指令和位控制轉移指令。MCS-51 系列單片機內部能進行位操作的空間如下。① 特殊功能寄存器(SFR)中可位尋址的位單元。
  • 初學51單片機指令快速記憶法
    學習單片機,除了搞清單片機內部功能、存儲空間分配及I/O接口外,還應掌握其指令系統。MCS-51共有111條指令,現介紹我們總結出的快速記憶MCS-51指令的方法,供大家參考。  大家都知道,彙編語言指令由操作碼、操作數兩部分組成。
  • 51單片機的尋址方式
    這裡也特別說明一下:在80C51單片機的指令系統中,僅有一條指令的操作數是16位的立即數,其功能是向地址指針DPTR傳送16位的地址,即把立即數的高8位送入DPH,低8位送入DPL。二、直接尋址指令中直接給出操作數的地址。
  • 51單片機教程:單片機邏輯運算類指令
    對單片機的累加器A的邏輯操作:本文引用地址:http://www.eepw.com.cn/article/171291.htmCLR A ;將A中的值清0,
  • 慎用51單片機中的RET指令
    題目:已知有四個按鍵依次連接單片機中的P3口的0到3的IO口,有四個LED燈連接P1的0到3 IO口,寫一程序,滿足以下條件:當按下按一個按鍵,
  • MCS-51單片機的結構和工作原理
    在指令中可作為轉移的條件:JC rel    ;cy=1轉移JNC rel  ;cy=0轉移位操作指令中做累加器:ANL C,bitORL C,bitSETB CSETB  F0  ;置位CLR    F0  ;復位0P(PSW.0)奇偶標誌位P標誌表明累加器ACC中1的個數的奇偶性。在每條指令執行完後,單片機根據ACC的內容對P位自動置位或復位。
  • 51單片機彙編語言:控制轉移指令有哪些?
    跳轉指令短跳指令 AJMP addr11 PC←addr11,跳轉範圍2k長跳指令 LJMP addr16 PC←addr16,跳轉範圍64k
  • 跟電師傅學單片機(19):單片機控制轉移指令圖文講解3
    PC:是單片機程序計數器,程序從哪裡執行,完全由PC裡的內容決定,始終是指定下一條將要執行指令的地址(是16位地址),單片機系統上電或復位時,PC的初始值為0000H。SP:是51單片機堆棧指針,是一個專用的8位寄存器,系統復位後,SP初始化為07H,使得堆棧指針實際上是由08H單元開始。
  • 51單片機輕鬆入門與實踐 — 暢學單片機
    ,講解當前最熱門的51單片機的C程序設計!課程詳情:      本課程主要通過典型實例的形式,以51單片機的系統設計為主線,結合軟體和硬體,由淺入深、通俗易懂地介紹了51單片機應用系統開發的流程、方法、技巧和設計思想。
  • 單片機之彙編指令系統
    MCS-51單片機指令系統按功能來分有五種.DPTR,高8位送DPH,低八位送DPL.8位無符號數相乘,其16位積的低八位存入A,高八位存入B,如果積大於255(0FFH),則置位溢出標誌OV,進位標誌Cy總是清零.
  • 從零開始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位交換。
  • 基於51單片機的電子音樂盒的課程設計
    由於51系列在我國使用最廣,且該系列的資料和能夠兼容的外圍晶片也比較多,特別是ATMEL公司89C系列單片機,其典型產品AT89C51單片機,具有較高的性能價格比。故本系統採用ATMEL公司生產的AT89C51單片機作為電子音樂盒的核心部件,AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含4k bytes的可反覆擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數據存儲器(RAM),器件採用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash存儲單元
  • MCS-51單片機試題及答案
    每小題1分,共10分)  1.MCS—51單片機的復位信號是( )有效。  A.8位計數器結構 B.2個8位計數器結構  C.13位計數結構 D.16位計數結構  7.設MCS-51單片機晶振頻率為12MHz,定時器作計數器使用時,其最高的輸入計數頻率應為( )  A.2MHz
  • 暢學三合一51單片機實戰教程
    ,講解當前最熱門的51單片機的C程序設計!課程詳情:      本課程主要通過典型實例的形式,以51單片機的系統設計為主線,結合軟體和硬體,由淺入深、通俗易懂地介紹了51單片機應用系統開發的流程、方法、技巧和設計思想。