❶ 單片機系統指令的位操作指令
一、數據位傳送指令
MOV C,bit
MOV bit,C
如MOV C,06H ;(20H).6→Cy
06H是內部RAM 20H位元組位6的位地址。
MOV P1.0,C ;Cy→P1.0
可定址位的具體定義:從20H單元的第一位開始一直到2FH單元的最後一位分別為00H~7FH以及特殊功能寄存器中80H~F7H。
二、位變數修改指令
CLR C ;清「0」Cy
CLR bit ;清「0」bit位
CPL C ;Cy求反
CPL bit ;bit位求反
SETB C ;置「1」 Cy
SETB bit ;置「1」bit位
三、位變數邏輯與指令
ANL C,bit ;bit ∧Cy →Cy
ANL C,/bit; ;/ bit ∧Cy →Cy
四、位變數邏輯或指令
ORL C,bit ;bit ∨ Cy →Cy
ORL C,/bit ;/ bit ∨ Cy →Cy
五、條件轉移類指令
JC rel ;如果進位位Cy=1,則轉移
JNC rel ;如果進位位Cy=0,則轉移
JB bit,rel ;如果直接定址位=1,則轉移
JNB bit,rel ;如果直接定址位=0,則轉移
JBC bit,rel ;如果直接定址位=1,則轉移,並對bit位清0
❷ 單片機系統指令的功能指令
一、位元組交換指令
XCH A, Rn
若(A)=80H,(R7)=08H,執行後(A)=08H,(R7)=80H
XCH A, direct
若(A)=80H,(40H)=F0H,執行後(A)=F0H ,(40H)= 80H
XCH A, @Ri
若(A)=80H , (R0)=6AH, (6AH)=0FH ,
執行後(A)=0FH,(6AH)=80H
二、半位元組交換指令
XCHD A, @Ri 累加器的低4位與內部RAM低4位交換
三、累加器半位元組交換指令
SWAP A
將累加器A的高半位元組和低半位元組互換。
四、算術運算指令
加、減、乘、除指令,都是針對8位二進制無符號數。執行
的結果對Cy、Ac、OV等標志位有影響,但增1和減1指令不影
響上述標志。
1、加法指令,目的操作數均為ACC。
ADD A, Rn ;(A)+(Rn)→A,n=0~7
ADD A, direct ;(A)+(direct)→A
ADD A, @Ri ;(A)+((Ri))→A,i=0,1
ADD A, #data ;(A)+#data→A
注意運算結果對各個標志位的影響:
(1)、如果位7有進位,則進位標志Cy置「1」,否則清0;
(2)、如果位3有進位,則輔助進位標志Ac置「1」,否則清0;
(3)、溢出標志位OV:
如果位6有進位,而位7沒有進位;或者位7有進位,而位6 沒有,則溢出標志位OV置「1」,否則清0。
OV狀態,只有在帶符號數加法運算時才有意義。
當兩個帶符號數相加時,OV=1,表示加法運算超出了累加器A所能表示的帶符號數的有效范圍。
2、帶進位加法指令
標志位Cy參加運算,因此是三個數相加。共4條:
ADDC A, Rn ;(A)+(Rn)+C→A,n=0~7 ADDC A, direct ;(A)+(direct)+C→A
ADDC A, @Ri ;(A)+(Ri)+C→A,i=0,1
ADDC A, #data ;(A)+#data+C→A
3、增1(加1)指令(C語言的++ )
INC A
INC Rn ;n=0~7
INC direct
INC @Ri ;i=0,1
INC DPTR (除立即數以外)
(1)、不影響PSW中的任何標志局碼(除了INC A 外)。
(2)、INC DPTR
該指令是16位數增1指令。指令首先對低8位指針DPL的內容執行加1的操作,當產生溢出時,就對DPH的內容進行加1操作,不影響標志Cy的狀態。
4、DA A,十進制調整指令
用於對BCD碼加法運算結果的修正。
兩個BCD碼按二進制相加之後,必須經本指令的調整才能
得到正確的壓縮BCD碼的和數。
調整方法:十進制調和臘讓整修正,即結果加6調整。具體為:
a) 累加器低4位大於9或輔助進位位Ac=1,則進行低4位加6修正;
b) 累加器高4位大於9或進位位Cy=1,則進行高4位加6修正;
c) 累加器高4位大於9, 低4位大於9, 則高4位和低4位分別加6修正;是否加6是通過執行指令 DA A 來自動實現的。
5、帶借位的減法指令(注意:減法只有帶借位的)
SUBB A, Rn ;(A)-(Rn)- Cy→A,n=0~7
SUBB A, direct ; (A)-(direct)- Cy→A
SUBB A, @Ri ;(A)-((Ri))- Cy→A, i=0,1
SUBB A, #data ;(A)-#data - Cy→A
A的內容減去源操作數和進位標志Cy的值,結果存在A中。
1、如果位7需借位,則Cy置1,否則清0;
2、如果位3需借位,則Ac置1 ,否則清0;
3、如果位6需借位而位7不需要借位,或者位7需借位,位6
不需借位,則溢出標志位OV置1,否則清0。
6、減1指令(C語言的--)
DEC A ;(A)-1→A
DEC Rn ;(Rn)-1→Rn,n=0~7
DEC direct ;喚局(direct)-1→direct
DEC @Ri ;((Ri))-1→(Ri),i=0,1
1、減1指令不影響標志位。
2、增1/加1指令有INC DPTR,減1無DEC DPTR指令。
7、乘法指令
MUL AB ;A×B→BA
1、積的高位元組在B中,低位元組在A中;
2、如果積大於255,則置「1」溢出標志位OV
8、除法指令
DIV AB ;A/B→A(商),余數→B
如果B的內容為「0」(即除數為「0」),則存放結果的A、B中的內容不定,並置「1」溢出標志位OV。
五、左環移指令RL A
累加器A的內容向左環移一位,Acc.7移入Acc.0 ,不影響標志。
六、帶進位左環移指令RLC A
累加器A的內容和進位標志位Cy一起向左環移一位,Acc.7移入進位位Cy,Cy移入Acc.0,不影響其它標志。
七、右環移指令RR A
累加器A的內容向右環移一位,Acc.0移入Acc.7,不影響標志。
八、帶進位環移指令RRC A
累加器A的內容和進位標志Cy一起向右環移一位,Acc.0移入Cy,Cy移入Acc.7。不影響其它標志。
九、邏輯與指令
ANL A, Rn ; (A)∧(Rn)→A,n=0~7
ANL A, direct ; (A)∧(direct)→A
ANL A, #data ; (A)∧#data→A
ANL A, @Ri ; (A)∧((Ri))→A,i=0~1
ANL direct, A ; (direct)∧(A)→direct
ANL direct, #data ; (direct)∧#data→direct
十、邏輯或指令
ORL A, Rn ;(A) ∨(Rn)→A ,n=0~7
ORL A, direct ;(A) ∨(direct)→A
ORL A, #data ;(A) ∨data→A
ORL A, @Ri ;(A) ∨((Ri))→A,i=0,1
ORL direct, A ;(direct) ∨(A)→direct
ORL direct, #data ;(direct) ∨#data→direct
十一、邏輯異或指令
XRL A, Rn ;(A) ⊕(Rn)→A
XRL A, direct ;(A) ⊕(direct)→A
XRL A, @Ri ;(A) ⊕((Ri))→A ,i=0,1
XRL A, #data ;(A) ⊕#data→A
XRL direct, A ;(direct) ⊕(A)→direct
XRL direct, #data ;(direct) ⊕#data →direct
與1相與取反,與0相與不變。
❸ 單片機的左移指令什麼意思
這是匯編語言中的指令,是對累加器A中的8位數依此向左移一位,還分帶Cy的移位和不帶Cy的移位。指令分別為
RLC A ;帶Cy的左移位
RL A ;不帶Cy的移位
以RL A為例說明:假如A=10110010,則左移位一次後,這8位數向左移一位,最高位回到最低位,就像是8個人轉了一圈似。
移位後,A=01100101
❹ 單片機指令
一、
1、單片機全稱單片微型計算機,就是將CPU、存儲器、I/O口等集成在一個晶元內
2、設置工作模式,設置是否開中斷,置入計數初值
3、P3.0,RXD(串列輸入)
P3.1,TXD(串列輸出)
P3.2,/INT0(外部中斷0)
P3.3,/INT1(外部中斷1)
P3.4,T0(定時器0外部輸入)
P3.5,T1(定時器1外部輸入)
P3.6,/WR(外部數據存儲器寫選)
P3.7,/RD(外部數據存儲器讀選)
4、SMOD(模式控制寄存器),TCON(定時器控制寄存器),IE(中斷控制寄存器)
5、定址方式就是尋找操作數或操作數地址的方式,MCS-51單片機有七種定址方式:立即數定址,直接定址,間接定址,寄存器定址,寄存器間接定址,變址定址,相對定址
6、8051有五個中斷源:外部中斷0、T0溢出中斷、外部中斷1、T1溢出中斷、串口中斷;其對應的入口地址分別為:0003H,000BH,0013H,001BH,0023H
7、書上講的應該是有21個特殊功能寄存器,PSW的狀態標志位從第7位到第0位分別為:Cy(借位或者進位標志位)、Ac(輔助進位標志位也叫半進位標志位)、F0(由用戶來定義)、RS1、RS0(這兩位合起來定義單片機選用四組通用寄存器中的哪一組)、OV(溢出標志位)、未用、P(奇偶校驗位)
8、定時器/計數器有2種工作方式:定時方式和計數方式,定時方式時一個時鍾周期定時器加1,計數方式時時鍾脈沖為外部信號(引腳P3.4或者P3.5),如果你問的是工作『模式』的話自己網上查一下,很容易找
二、
5、9、10是對的,其它是錯的
三、
1、SP)=41H,(DPTR)=3412
2、(SP)=40H,(DPTR)=3412
3、(SP)=41H,(DPTR)=3413
4、(A)=0FAH,(B)=03H
5、(30H)=0EH
6、這個題目有錯誤,250後面不應該有H吧
沒有的話應該是:約2.5ms 自己再算算
四、
1.將片外RAM 8000H單元的內容傳送到片內RAM 20H單元。
MOV DPTR,#8000H
MOVX A,@DPTR
MOV 20H,A
2.將片外RAM 4000H單元的內容傳送到片內RAM 20H單元。
MOV DPTR,#4000H
MOVX A,@DPTR
MOV 20H,A
3.將片內RAM 50H單元與51H單元的內容交換
MOV A,50H
MOV B,51H
XCH A,B
MOV 50H,A
MOV 51H,B
4.將片內RAM 20H單元的內容傳送到A中
MOV A,20H
5.將片內RAM 60H單元的內容傳送到A中
MOV A,60H
6. 使累加器A的內容高四位取反,低四位清零
CPL A
ANL A,#F0H
7. 使累加器A的內容最四位置1,低四位清零,其餘位保持不變。
是最高位置1嗎??是的話
ORL A,#80H
ANL A,#F0H
8.分別用指令實現下列各小題的要求:
1) T0開中斷(允許中斷),其餘禁止中斷
MOV IE,#82H
2) T1、串列口開中斷(允許中斷),其餘禁止中斷
MOV IE,#92H
3) 全部開中斷
MOV IE #FFH
4) 全部禁止中斷
CLR IE
五、計數初值=65536-(50ms/1us)=15535=3CAFH
❺ 幫忙解釋一下單片機編程中的 每一個指令的意思和控制過程、急用、謝謝
mov tmod, #61h;將61h這個數賦給tmod寄存器,具體什麼模式你把它拆成16進制數對著寄存器看吧,好吧,剛幫你查了下,是:僅由TR0,TR1置位分別啟動定時器T0、T1,T0為計數功能,T1為定時功能。T1是自動重裝8位計數器,T0是16位計數器。
mov dptr, #15536 ;令dptr(記得是數據指針)的值為15536
mov tl0,dpl ;讓dptr的低8位的值給定時器t0的低8位
mov th0, dph ;把dptr的高8位的值給定時器t0的高8位
mov tl1, #236 ;讓t1的值為236
setb tr0;開啟t0
setb tr1;開啟t1
loop: jnb tf0,$; 表示測試tf0的值,如果不為1(為0)則程序繼續執行本條指令($表示當前位置),如果為1則順序執行下一條指令。 這里就是說當定時器T0溢出時進入下面的指令
clr tf0 ;清零tf0並進入下面的程序
mov dptr, #15536 ;與上面的意思一樣
mov tl0, dpl
mov th0, dph
clr p3.5 ;使3.5口為0
setb p3.5 ;使3.5口為1
jnb tf1 ,loop ;還是檢測,這次檢測tf1位的值,如果不為1則繼續本指令
clr tf1;令tf1為0,即低電平
大概就記得這些了 給你個參考吧
❻ 51單片機指令
TF1是定時器1溢出標志位,$是取地址。JNB TF1,$ 實現的功能是查詢定時器1溢出標志位,如果為0,跳轉到本條指令繼續執行(即繼續查詢)直到定時時間到,TF1置位,才執行下一條指令。
給你注釋一下:
MOV TMOD,#10H //設置定時器工作方式(定時器1,工作方式2)
SETB TR1 //開啟定時器1
LOOP: MOV TH1,#0D8H //裝初值D8F0H 即55536,定時10mS(晶振12M)時間隨晶振改變
MOV TL1,#0F0H
JNB TF1,$ //查詢等待定時器1中斷
CLR TF1 //定時器溢出標志位清0(定時時間到後硬體自動給TF1置位,需軟體清0)
CPL P1.1 //P1.1取反
SJMP LOOP //跳到LOOP處循環(是個死循環)
該段程序實現的功能是:每隔10mS對P1.1取反一次。(10mS當然是晶振為12M的情況下)
❼ 單片機編程中都有什麼指令,,代表什麼意思
不知道你指的是哪一類單片機,最常用的89C51系列單片機匯編語言共有111條指令,可分為5類:
[1].數據傳送類指令(共29條)
[2].算數運算類指令(共24條)
[3].邏輯運算及移位類指令(共24條)
[4].控制轉移類指令(共17條)
[5].布爾變數操作類指令(共17條)
jz 指令屬於第4類"控制轉移類"里的條件轉移指令,具體格式和作用是:
JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的內容為0,
則轉移到偏移量所指向的地址,否則程序往下執行。
jb 是屬於第5類"布爾變數操作類"指令,其格式和作用如下:
JB bit, rel ; 位狀態為1轉移。
❽ 單片機中指令SETB代表什麼意思
單片機中指令SETB代表MCS-51的位操作命令。
作為匯編指令,SETB可以實現其後面的那個寄存器的位置為1。就SETB而言,定時/計數器0的中斷允許位ET0為1時,單片機會響應定時/計數器0的溢出中斷,但為0時,單片機不響應。其中的具體情況如下:
1、SETB C(進位標志置位指令)
①指令代碼:D3H;
②指令功能:置進位位;
③操作內容:C←1;
④位元組數: 1;
⑤機器周期:1。
2、SETB bit(直接定址位置位指令)
①指令代碼:D2H;
②指令功能:置直接地址位;
③操作內容:bit←1;
④位元組數: 2;
⑤機器周期:1。
(8)單片機指令解釋擴展閱讀
SETB的相關情況
對於指令SETB來說,單片機的基本功能如下:
1、8位數據匯流排,16位地址匯流排的CPU。
2、具有布爾處理能力和位處理能力。
3、採用哈佛結構,程序存儲器與數據存儲器地址空間各自獨立,便於程序設計。
4、相同地址的64KB程序存儲器和64KB數據存儲器。
5、0-8KB片內程序存儲器(8031無,8051有4KB,8052有8KB,89C55有20KB)。
6、128位元組片內數據存儲器(8051有256位元組)。
7、32根雙向並可以按位定址的I/O線。
8、兩個16位定時/計數器(8052有3個)。
9、一個全雙工的串列I/O介面。
10、多個中斷源的中斷結構,具有兩個中斷優先順序。
11、片內時鍾振盪器。