導航:首頁 > 操作系統 > f4v3飛控連接單片機

f4v3飛控連接單片機

發布時間:2023-08-23 08:21:05

『壹』 在學STM32F4單片機 RTC實驗裡面有這么一句代碼 (*(u32*)temp)=data這是什麼意思

強制類型轉換。

u32 是一個自定義的數據類型。
u32*是一個指針類型。
temp 前面加(u32*)是把temp強制轉換成 指向u32類型的指針。
前面再加一個*,是訪問指針指向的地址。

temp是一個整數,這個整數實際上是一個內存地址,這句的意思是把data內容放到temp所指向的地址的內存單元中。

這實際上是一個低層訪問,除了匯編語言,就數C語言做這種低層操作比較簡單,所以,單片機大都用C語言編程

『貳』 單片機指令問題!

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

閱讀全文

與f4v3飛控連接單片機相關的資料

熱點內容
單片機根據波形寫代碼 瀏覽:669
應屆生程序員怎麼投簡歷 瀏覽:721
數學建模演算法與應用ppt 瀏覽:99
遠程怎麼訪問端游伺服器 瀏覽:106
打電話定位置的源碼 瀏覽:642
即時通訊平台源碼 瀏覽:457
安卓自助app怎麼轉到蘋果手機 瀏覽:328
雅馬哈迴音壁不能識別源碼 瀏覽:730
python如何移植到安卓 瀏覽:29
黃柱選股公式源碼 瀏覽:639
教育系統源碼達標 瀏覽:887
音效卡驅動安裝程序在哪個文件夾 瀏覽:60
錢還完了銀行不給解壓 瀏覽:169
linux的系統調用表 瀏覽:752
php怎麼轉換頁面 瀏覽:546
我的世界買了伺服器之後怎麼開服 瀏覽:828
r1234yf汽車空調壓縮機 瀏覽:147
ftp伺服器地址欄 瀏覽:902
linux圖形分區 瀏覽:967
安徽到遼寧源碼 瀏覽:579