導航:首頁 > 操作系統 > 低五位不變單片機

低五位不變單片機

發布時間:2022-08-18 00:00:57

1. 關於C51單片機單片機的幾個問題

1、徐漢斌版單片機微型計算機原理教材P144上說「中斷服務程序最後一條指令必須是中斷返回指令RETI」,
這句話是不是錯了?
如果最後一句話是跳轉指令不是也可以么,只不過程序不會回到斷點處罷了,PC也會填充跳轉處PC地址

--寫跳轉指令、或者寫其它什麼指令,都行,隨你便。單片機都會執行。
--只是,單片機沒有執行 RETI 指令,中斷程序就沒有結束。
--如果,你不寫 RETI,中斷後,單片機就永遠處於中斷程序之內。

2、在方式0定時器T0的初值為1E0CH,則TH0,TL0的初值分別為()
這題答案給的居然是F0H、0CH,我覺得分明是1EH、0CH啊,是不是答案錯了

--寫成二進制:1E0CH = 0001 1110 0000 1100B
--取其低 13 位,寫成高八位、低五位:11110000、01100
--方式0的初值,就應該是:F0、0C。

3、」MCS 51的程序計數器PC不能被用戶使用,因為他沒有地址「,
首先,不能被用戶使用指的收拾什麼?其次,它沒有地址那他到底在哪?
--PC 的數值,時時刻刻,在自動加一,這個特點,用戶對其,不可控制。
--但是,用戶,可以用 JMP 指令,改變 PC 的數值。
--說 PC 不能被用戶使用,實際上是他不會用。
--51 單片機裡面,確實沒有 PC 的地址,因為,誰都不需要這個地址。

4、MOV 20H,@DPTR 這個語句錯了是因為DPTR只能用於片外定址么
--這個指令,並不存在。
DPTR只能用於片外定址么
--查一下指令表,就知道了。

5、」80C51單片機子程序調用時能自動保護斷點和現場「,
這句話錯了是不是因為只能自動保護斷點不能自動保護現場?
--中斷時,51 單片機,採用壓棧的方法,自動的保護斷點地址。

--保護現場 ?
--單片機,不知道你的現場是什麼。
--把單片機和保護現場聯系在一起,就是狗戴嚼子,胡勒!

6、MOV A,#33H 是把33H當成無符號數吧?那麼如果我想移入一個帶符號數呢

就寫上負號即可。
MOV A, #-33H
這就行了。

7、向前轉移的偏移量為什麼等於(目的地址+0100H)-(原地址+3),0100H是什麼?
--編寫程序,現在都用編譯軟體來進行編譯。
--編譯軟體,會自動計算程序中的偏移量。
--編程人,根本不用討論偏移量的計算,以及推導公式。
--有些教材,作者的思維,還停留在人工編譯的階段,抱殘守缺,不用理他。
--0100H,是256。

2. 51單片機中定時器T0的高低位賦值問題

定時器兩個位元組為65536,定時50ms,-50000相當於65536-50000,兩個等價。
沒說是工作在方式0,所以所以高8位的值要乘以2的8次方即256.比如一個數23,十位上的2=23/10,個位上的3=23%10.

3. 將累加器A的低五位送到P0口的低五位,但P0口的高3位保持不變。編程求解

P0=(P0&0xe0)|(A&0x1f);
1) ANL A,#1FH
ANL P0,#0E0H
ORL P0,A

2) ANL A,#1FH
MOV R0,P0
ANL R0,#0E0H
ORL A,R0
MOV P0,A

第一種,P0的低5位會有一個短暫的全為0的狀態。
第二種,P0就會由原態直接變為由A得到的新值。

4. 單片機指令問題!

MCS-51系列單片機指令以A開頭的指令有18條,分別為:篇幅不夠,只是一半!

1、ACALL addr11

指令名稱:絕對調用指令
指令代碼:{A10,A9,A8,10001},A[7:0]
指令功能:構造目的地址,進行子程序調用。其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不變。
操作內容:
PC<-(PC)+2
SP<-(SP)+1
(SP)<-(PC)7~0
SP<-(SP)+1
(SP)<-(PC)15~8
PC10~0<-addrl0~0
位元組數: 2
機器周期:2
使用說明:由於指令只給出子程序入口地址的低11位,因此調用范圍是2KB。

2、ADD A,Rn

指令名稱:寄存器加法指令
指令代碼:28H~2FH
指令功能:累加器內容與寄存器內容相加
操作內容:A<-(A)+(Rn), n=0~7
位元組數: 1
機器周期;1
影響標志位:C,AC,OV

3、ADD A,direct

指令名稱:直接定址加法指令
指令代碼:25H
指令功能:累加器內容與內部RAM單元或專用寄存器內容相加
操作內容:A<-(A)+(direct)
位元組數: 2
機器周期:1
影響標志位:C,AC,OV

4、ADD A,@Ri

指令名稱:間接定址加法指令
指令代碼:26H~27H
指令功能:累加器內容與內部RAM低128單元內容相加
操作內容:A<-(A)+((Ri)), i=0,1
位元組數: 1
機器周期:1
影響標志位:C,AC,OV

5、ADD A,#data

指令名稱:立即數加法指令
指令代碼:24H
指令功能:累加器內容與立即數相加
操作內容:A<-(A)+data
位元組數: 2
機器周期:1
影響標志位:C,AC,OV

6、ADDC A,Rn

指令名稱:寄存器帶進位加法指令
指令代碼:38H~3FH
指令功能:累加器內容、寄存器內容和進位位相加
操作內容:A<-(A)+(Rn)+(C), n=0~7
位元組數: 1
機器周期:1
影響標志位:C,AC,OV

7、ADDC A,direct

指令名稱:直接定址帶進位加法指令
指令代碼:35H
指令功能:累加器內容、內部RAM低128單元或專用寄存器內容與進位位加
操作內容:A<-(A)+(direct)+(C)
位元組數: 2
機器周期:1
影響標志位:C,AC,OV

8、ADDC A,@Ri

指令名稱:間接定址帶進位加法指令
指令代碼:36H~37H
指令功能:累加器內容、內部RAM低128單元內容及進位位相加
操作內容:A<-(A)+((Ri))+(C), i=0,1
位元組數: 1
機器周期:1
影響標志位:C,AC,OV

9、ADDC A,#data

指令名稱:立即數帶進位加法指令
指令代碼:34H
指令功能:累加器內容、立即數及進位位相加
操作內容:A<-(A)+data+(C)
位元組數: 2
機器周期:1
影響標志位:C,AC,OV

10、AJMP addr11

指令名稱:絕對轉移指令
指令代碼:{A10,A9,A8,00001},A[7:0]
指令功能:構造目的地址,實現程序轉移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不變。
操作內容:PC<-(PC)+2
PCl0~0<-addrll
位元組數: 2
機器周期:2
使用說明:由於addrll的最小值是000H,最大值是7FFH,因此地址轉移范圍是2KB。

11、ANL A,Rn

指令名稱:寄存器邏輯與指令
指令代碼:58H~5FH
指令功能:累加器內容邏輯與寄存器內容
操作內容:A<-(A)^(Rn), n=0~7
位元組數: 1
機器周期:1

12、ANL A,direct

指令名稱:直接定址邏輯與指令
指令代碼:55H
指令功能:累加器內容邏輯與內部RAM低128單元或專用寄存器內容
操作內容:A<-(A)^(diret)
位元組數: 2
機器周期:1

13、ANL A,@Ri

指令名稱:間接定址邏輯與指令
指令代碼:56H~57H
指令功能:累加器內容邏輯與內部RAM低128單元內容
操作內容:A<-(A)^((Ri)) i=0,1
位元組數: 1
機器周期:1

14、ANL A,#data

指令名稱:立即數邏輯與指令
指令代碼:54H
指令功能:累加器內容邏輯與立即數
操作內容:A<-(A)^data
位元組數: 2
機器周期:1

15、ANL direct,A

指令名稱:累加器邏輯與指令
指令代碼:52H
指令功能:內部RAM低128單元或專用寄存器內容邏輯與累加器內容
操作內容:direct<-(A)^(direct)
位元組數: 2
機器周期:1

16、ANL direct, #data

指令名稱:邏輯與指令
指令代碼:53H
指令功能:內部RAM低128單元或專用寄存器內容邏輯與立即數
操作內容:direct<-(direct)^data
位元組數: 3
機器周期:2

17、ANL C,bit

指令名稱:位邏輯與指令
指令代碼:82H
指令功能:進位標志邏輯與直接定址位
操作內容:C<-(C)^(bit)
位元組數: 2
機器周期:2

18、ANL C,/bit

指令名稱:位邏輯與指令
指令代碼:B0H
指令功能:進位標志邏輯與直接定址位的反
操作內容:C<-(C)^(bit)
位元組數: 2
以C開頭的指令有10條,分別為:
1、CJNE A,dircet,rel

指令名稱:數值比較轉移指令
指令代碼:B5H
指令功能:累加器內容與內部RAM低128位元組或專用寄存器內容比較,不等則轉移。
操作內容:若(A)=(direct),則PC<-(PC)+3,C<-0
若(A)>(direct),則PC<-(PC)+3+rel,C<-0
若(A)<(direct),則PC<-(PC)+3+rel,C<-1
位元組數: 3
機器周期:2

2、CJNE A,#data,rel

指令名稱:數值比較轉移指令
指令代碼:B4H
指令功能:累加器內容與立即數比較,不等則轉移。
操作內容:若(A)=data,則PC<-(PC)+3,C<-0
若(A)>data,則PC<-(PC)+3+rel,C<-0
若(A)<data,則PC<-(PC)+3+rel,C<-1
位元組數: 3
機器周期:2

3、CJNE Rn,#data,rel

指令名稱:數值比較轉移指令
指令代碼:B8H~BFH
指令功能:寄存器內容與立即數比較,不等則轉移。
操作內容:若(Rn)=data,則PC<-(PC)+3,C<-0
若(Rn)>data,則PC<-(PC)+3+rel,C<-0
若(Rn)<data,則PC<-(PC)+3+rel,C<-1
位元組數: 3
機器周期:2

4、CJNE @Ri,#data,rel

指令名稱:數值比較轉移指令
指令代碼:B6H~B7H
指令功能:內部RAM低128單元內容與立即數比較,不等則轉移。
操作內容:若((Ri))=data,則PC<-(PC)+3,C<-0
若((Ri))>data,則PC<-(PC)+3+rel,C<-0
若((Ri))<data,則PC<-(PC)+3+rel,C<-1
位元組數: 3
機器周期:2

5、CLR A

指令名稱:累加器清0指令
指令代碼:E4H
指令功能:累加器清0
操作內容:A<-0
位元組數: 1
機器周期:1

6、CLR C

指令名稱:進位標志清0指令
指令代碼:C3H
指令功能:進位位清0
操作內容:C<-0
位元組數: 1
機器周期:1

7、CLR bit

指令名稱:直接定址位清0指令
指令代碼:C2H
指令功能:直接定址位清0
操作內容:bit<-0
位元組數: 2
機器周期:1

8、CPL A

指令名稱:累加器取反指令
指令代碼:F4H
指令功能:累加器取反
操作內容:A<-(A)
位元組數: 1
機器周期:1

9、CPL C

指令名稱:進位標志取反指令
指令代碼:B3H
指令功能:進位標志位狀態取反
操作內容:C<-(c取反)
位元組數: 1
機器周期:1

10、 CPL bit

指令名稱:直接定址位取反指令

指令代碼:B2H
指令功能:直接定址位取反
操作內容:bit<-(bit取反)
位元組數: 2
機器周期:1

以D開頭的指令有8條,分別為:
1、DA A

指令名稱:十進制調整指令
指令代碼:D4H
指令功能:對BCD碼加法運算的結果進行有條件的修正
操作內容:若(A)3~0>9|(AC)=1,則A3~0<-(A)3~0+6
若(A)7~4>9|(C)=1,則A7~4<-(A)7~4+6
若(A)7~4=9^(A)3~0>9,則A7~4<-(A)7~4+6
位元組數: 1
機器周期:1

使用說明:DA指令不影響溢出標志

2、DEC A

指令名稱:累加器減1指令
指令代碼:14H
指令功能:累加器內容減1
操作內容:A<-(A)-1
位元組數: 1
機器周期:1

3、DEC Rn

指令名稱:寄存器減1指令
指令代碼:18H~1FH
指令功能:寄存器內容減1
操作內容:Rn<-(Rn)-1,n=0~7
位元組數: 1
機器周期:1

4、DEC direct

指令名稱:直接定址減1指令
指令代碼:15H
指令功能:內部RAM低128單元及專用寄存器內容減1
操作內容:direct<-(direct)-1
位元組數: 2
機器周期:1

5、DEC @Ri

指令名稱:間接定址減1指令
指令代碼:16H~17H
指令功能:內部RAM低128單元內容減1
操作內容:(Ri)<-((Ri))-1, i=0,1
位元組數: 1
機器周期:1

6、DIV AB

指令名稱:無符號數除法指令;
指令代碼:84H
指令功能:A的內容被B的內容除。指令執行後,商存於A中,余數存於B中。
操作內容:A<-(A)/(B)的商
B<-(A)/(B)的余數
位元組數: 1
機器周期:4
影響標志位:C被清0;若B=00H,除法無法進行,並使OV=1;否則OV=0。

7、DJNZ Rn,rel

指令名稱:寄存器減1條件轉移指令
指令代碼:D8H~DFH
指令功能:寄存器內容減1。不為0轉移;為0順序執行。
操作內容:Rn<-(Rn)-l,n=0~7
若(Rn)≠0,則PC<-(PC)+2+rel
若(Rn)=0,則PC<-(PC)+2
位元組數: 2
機器周期:2

8、DJNZ direct,rel

指令名稱:直接定址單元減1條件轉移指令
指令代碼:D5H
指令功能:內部RAM低128單元內容減1。不為0轉移;為0順序執行。
操作內容:direct<-(direct)-1
若(direct)≠0,則PC<-(PC)+3+rel
若(direct)=0,則PC<-(PC)+3
位元組數: 3
機器周期:2

以I開頭的指令有5條,分別為:

1、INC A

指令名稱:累加器加1指令
指令代碼:04H
指令功能:累加器內容加1
操作內容:A<-(A)+1
位元組數: 1
機器周期:1

2、INC Rn

指令名稱:寄存器加1指令
指令代碼:08H~0FH
指令功能:寄存器內容加1
操作內容:Rn<-(Rn)+1,n=0~7
位元組數: 1
機器周期:1

3、INC direct

指令名稱:直接定址單元加1指令
指令代碼:05H
指令功能:內部BAM低128單元或專用寄存器內容加1
操作內容:direct<-(direct)+1
位元組數: 2
機器周期:1

4、INC @Ri

指令名稱:間接定址單元加1指令
指令代碼:06H~07H
指令功能:內部RAM低128單元內容加1
操作內容:(Ri)<-((Ri))+1;i=0,l
位元組數: 1
機器周期:1

5、INC DPTR

指令名稱:16位數據指針加1指令
指令代碼:A3H
指令功能:數據指針寄存器DPTR內容加1
操作內容:DPTR<-(DPTR)+1
位元組數: 1
機器周期:2

以J開頭的指令有8條,分別為:

1、JB bit,rel

指令名稱:位條件轉移指令。
指令代碼:20H
指令功能:根據指定位的狀態,決定程序是否轉移。若為1則轉移;否則順序執行。
操作內容:若(bit)=1,則PC<-(PC)+3+rel
若(bit)≠1,則PC<-(PC)+3
位元組數: 3
機器周期:2

2、JBC bit,rel

指令名稱:位條件轉移清0指令
指令代碼:10H
指令功能:對指定位的狀態進行測試。若為1,則把該位清0並進行轉移;否則程序順序執行。
操作內容:若(bit)=1,則PC<-(PC)+3+rel,bit<-0
若(bit)≠1,則PC<-(PC)+3
位元組數: 3
機器周期:2

3、JC rel

指令名稱:累加位條件轉移指令
指令代碼:40H
指令功能:根據累加位(C)的狀態決定程序是否轉移,若為1則轉移,否則順序執行。
操作內容:若(C)=1,則PC<-(PC)+2+rel
若(C)≠1,則PC<-(PC)+2
位元組數: 2
機器周期:2

4、JMP @A+DPTR

指令名稱:無條件間接轉移指令
指令代碼:72H
指令功能:A內容與DPTR內容相加作為轉移目的地址,進行程序轉移。
操作內容:PC<-(A)+(DPTR)
位元組數: 1
機器周期;2

5、JNB bit,rel

指令名稱:位條件轉移指令
指令代碼:30H
指令功能:根據指定位的狀態,決定程序是否轉移。若為0則轉移;否則順序執行。
操作內容:若(bit)=0,則PC<-(PC)+3+rel
若(bit)≠0,則PC<-(PC)+3
位元組數: 3
機器周期:2

6、JNC rel

指令名稱:累加位條件轉移指令
指令代碼:50H
指令功能:根據累加位(C)的狀態決定程序是否轉移。若為o則轉移;否則順序執行。
操作內容:若(C)=0,則PC<-(PC)+2+rel
若(C)≠0,則PC<-(PC)+2
位元組數: 2
機器周期:2

7、JNZ rel

指令名稱:判0轉移指令
指令代碼:70H
指令功能:累加位(A)的內容不為0,則程序轉移;否則程序順序執行。
操作內容:若(A)≠0,則PC<-(PC)+2+rel
若(A)=0,則PC<-(PC)+2
位元組數: 2
機器周期:2

8、JZ rel

指令名稱:判0轉移指令
指令代碼:60H
指令功能:累加位(A)的內容為o,則程序轉移;否則程序順序執行。
操作內容:若(A)=0,則PC<-(PC)+2+rel
若(A)≠0,則PC<-(PC)+2
位元組數: 2
機器周期:2

以L開頭的指令就2條,分別為:

1、LCALL addr16

指令名稱:長調用指令
指令代碼:12H
指令功能:按指令給定地址進行子程序調用
操作內容:PC<-(PC)+3
SP<-(SP)+1
(SP)<-(PC)7~0
SP<-(SP)+1
(SP)<-(PC)15~8
PC<-addrl6
位元組數: 3
機器周期:2
使用說明:在64KB的范圍內調用子程序

2、LJMP addrl6

指令名稱:長轉移指令
指令代碼:02H
指令功能:使程序按指定地址進行無條件轉移
操作內容:PC<-addrl6
位元組數: 3
機器周期:2

5. 單片機中屏蔽累加器的高4位且保持低4位不變的指令是什麼急求

這沒有直接的指令,但可以用一條與運算的邏輯運算指令實現
如:ANL A,#0FH
這樣,累加器A 的高4位被屏蔽成0,而低4位是不變的。

閱讀全文

與低五位不變單片機相關的資料

熱點內容
如何把蘋果的視頻傳到安卓手機 瀏覽:612
介面伺服器怎麼使用 瀏覽:62
蘋果怎麼實現安卓全面屏手勢 瀏覽:977
拳皇97最強宏命令 瀏覽:921
linux安裝svn查看 瀏覽:850
內置函數計算絕對值python 瀏覽:88
千聊免費課程可以重新加密嗎 瀏覽:507
python能代替php嗎 瀏覽:252
phpexcel樣式 瀏覽:265
安卓手機有沒有什麼軟體可以阻止彈廣告的 瀏覽:306
linux區域網搭建伺服器 瀏覽:690
python編譯器mac 瀏覽:293
windows的doc命令 瀏覽:463
nfc全加密門禁卡 瀏覽:636
身份信息被加密 瀏覽:482
我的鹽城app怎麼添加不了家庭成員 瀏覽:493
php商城並發 瀏覽:348
熊貓繪畫app怎麼做出大佬的筆刷 瀏覽:603
雲存儲伺服器知識 瀏覽:461
伺服器cpu是什麼指令集 瀏覽:592