微控制器彙編查表指令,微控制器查詢方式程式設計步驟

2025-02-18 01:40:13 字數 3994 閱讀 3789

1樓:大漠一浩

mov xp0,#

mov dptr,#tp0

loop: mov a,xp0

movc a,@a+dptr

mov p2,a

inc xp0

mov a,xp0

cjne a,#80,loop %迴圈查表中每乙個直接的值,一共80次%

rettp0: db 030h,048h,048h,048h,048h,048h,030h,000h

db 010h,030h,010h,010h,010h,010h,07ch,000h

db 000h,038h,044h,004h,018h,020h,07ch,000h

db 030h,048h,008h,010h,008h,048h,030h,000h

db 008h,018h,028h,048h,07ch,008h,008h,000h

db 03ch,020h,020h,038h,004h,024h,018h,000h

db 078h,040h,040h,078h,048h,048h,078h,000h

db 078h,008h,008h,008h,008h,008h,008h,000h

db 030h,048h,048h,030h,048h,048h,030h,000h

db 030h,048h,048h,038h,008h,048h,030h,000h

2樓:網友

把電路圖發上來,沒電路圖這問題沒法。

微控制器查詢方式程式設計步驟

3樓:

摘要。您好親,很高興能您的問題。1.

查詢方式void init_t0 (void) 定時器初始化void main() 主函式 }}2.進入中斷處理void init_t0 (void) 定時器初始化void time0_int() interrupt 1 中斷處理函式void main() 主函式對於查詢方式,一定要手動清楚中斷標誌。上面2段程式,我遮蔽了,中斷時重新裝計數初值的語句,程式都可正常執行,所以我認為無論重灌初值都不必要。

初始化時,可定義輸出口的初始狀態。而在處理中斷時,一定要用取反語句。手動置0或1,程式將不能正常執行。

您好親,很高興能您的問題。1.查詢方式void init_t0 (void) 定時器初始化void main() 主函式灶念 }}2.

進入中斷處理void init_t0 (void) 定時器初始化void time0_int() interrupt 1 中斷處理函式void main() 主函式對於查詢方式,一定要手動清楚中斷標誌。上面2段程式,我遮蔽了,中斷時重新裝計數初值的語句,程式都可正常執行,所以我認為無論重灌初值都不必要。初始化時,可定義輸隱運困出口的初始狀態。

而在處理中斷時,一定要用取反語句。手動置0或1,程式將不能正常執行。

關於組合語言,這個我該怎麼描述?

您好親,很高興能您的問題。組合語言又稱為符號語言(下文介紹為什麼野租源會有這個名字),屬於低階語言。它是從機器語言發展而來的。

使用簡短的英文縮寫作為頌態彙編指令,並通過彙編過程將這些型渣彙編指令轉換為機器指令。也就是說彙編指令和機器指令的差別在於指令的表示方法上。

我主要是想詢問步驟。

也就是說,該怎麼做?

您好親,什麼的步驟?組合語言的步驟?

您好親,如何使激帶用組合語言?計算機只能讀懂機器指令,所以需要有乙個能夠將彙編指令轉換成機器指令的翻譯程式,這樣的程式我們稱其為編譯器。程式設計師用匯編語乎仿言寫出源程式,再用匯編編譯器將其編譯為機器碼,也就是一列二進位數字,然後計算機將之轉變為一列高低電平,使計算機的電子器明頃蘆件受到驅動,進行運算。

您好親,舉例:在vs2015,如下圖所示:

微控制器查詢方式程式設計步驟

4樓:

摘要。組合語言程式設計步驟:(1)分析問題:

已知條件、要解決的問題、功能/效能要求等。(2)建立數學模型:把問題數學化、公式化,便於計算機處理。

3)確定演算法:簡單、速度快、精度高、**量小、程式設計容易。(4)繪製程式流程圖:

用箭頭、框圖、菱形圖等表示程式結構。(5)記憶體空間分配:為程式或資料分配記憶體空間。

6)編制程式與靜態檢查:程式結構層次簡單、清楚、易懂。(7)程式除錯:

利用除錯軟體debug進行除錯。

關於組合語言這個步驟該怎麼描述?

組合語言程式設計步驟:(1)分析問題:已知條件、要解決的問題、功能/效能要求等。

2)建立數學模型:把問題數學化、公式化,便於計算機處理。(3)確定演算法:

簡單、速度快、精度高、**量小賣敗、程式設計容易。(4)繪製程式流程圖:用箭頭、框圖、菱形圖等表示程式結構。

5)記憶體空間分配:為程式或資料野攜分配記憶體空間。(6)編制程式與靜態檢查:

程式結構層次簡單、清楚、易懂。中脊顫(7)程式除錯:利用除錯軟體debug進行除錯。

微控制器 查表法

5樓:網友

0100h、0200h表示的都是51微控制器程式存貯器裡面的位址,51微控制器可定址最大64k程式存貯器、最大64k記憶體。程式存貯器和記憶體不是統一編址。

pc時程式計數器,主要是記錄微控制器在rom的執行位置,一般微控制器可以訪問64k的位址,也就是需要16位的字寬。

微控制器編址是16進位,看看程式設計器裡怎樣表示的。

org 0100h 表示程式從這裡開始執行。

dptr是乙個16位的暫存器,對這個資料暫存器賦值時,對於暫存器定址方式,我們是把它拆分為高八位,低八位來訪問的。

由於它是16位,所以我們可以用它來訪問64k的rom空間,也可以訪問64k的外表ram空間。

org 0200h 表示存放資料的位址從這裡開始,這個位址是程式存貯器位址,不可以在執行中改變。

squ是查表子程式的編號,主程式呼叫這段查表程式需 lcall squ,這時候微控制器的pc指向0101h,微控制器從0101h開始執行指令 。

6樓:匿名使用者

紅線 100表示**的首位址,200表示 資料存放的首位址。

微控制器彙編指令問題

7樓:做而論道

講解指令的時候,都是說 rel 是8位帶符號補碼數,是相對轉移指令中的偏移量。

實際程式設計時,都是在 sjmp 後面,寫上目的地的標號。

在編譯的時候,編譯軟體,就會算出這個偏移量,以《8位帶符號補碼數》寫入機器語言**。

所以,這個《8位帶符號補碼數》的偏移量,並不用《程式設計人》來關心。

程式設計時,只要寫:sjmp 某某標號,即可。

有些書,總是寫些機器語言方面的知識,以顯得有多麼的高深。

8樓:網友

pc 為執行指令的位址指標,就是指令存放的位置,rel 表示轉移指令的 偏移量,如 pc 位址 100hl0100h:

sjmp 8 ; 則 pc <-100h+2+8 = 10ah ( 十六進位 )

就是執行指令後 轉移 到位址 10ah 的位址。

微控制器彙編指令的簡介

9樓:村裡那點事

現在微控制器的程式設計大多 是c語言完成。

但有時**中必須嵌入組合語言解決某些特定的問題對於程式除錯 組合語言更是不可或缺。

直接使用匯編指令編寫微控制器程式,對硬體的控制更加直接,可以直接操作實體地址,暫存器,埠等;其它更高階的語言(如:c語言)對硬體的控制是依賴於類庫來實現的。並且,對於一些對程式大小和執行速度有非常嚴苛要求的專案而言,都必須使用匯編指令。

c語言只是為了方便編寫,與機器打交道的其實都是2進製得**,組合語言就是這些**好記憶的名稱和規則,只是比c語言難理解些。

微控制器彙編指令的介紹

10樓:幸晗

微控制器彙編指令:為解決某些特定的問題**中必須嵌入組合語言以代替c語言完成的微控制器的程式設計,組合語言對於程式除錯是不可或缺的。它包括:

算術操作類指令,布林變數操作類指令,邏輯運算元指令,控制轉移類指令。

微控制器指令判斷正誤,微控制器的指令判斷正誤

1 clr a 對 2 mul r0,r1 錯,只有mul a,b 3 mov dptr,1050h 錯,猜測該題意圖應該是mov dptr,1050h,並且dptr除了立即數賦值外只能用movx dptr,a來為其賦值 4 mov a,r7 錯,只有r0與r1可以間址 5 add 30h,20h ...

微控制器彙編程式,微控制器(組合語言)程式

這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr 0fef0h是給資料指標賦值,movx dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。ofefoh指...

微控制器組合語言填空,微控制器組合語言作業

delay mov r3,20 設定50ms計數迴圈初值 mov tmod,10h 設定時器1方式1mov th1,03ch 置定時器初值mov tl1,0b0h setb tr1 啟動t1lp1 jbc tf1 lp2 查詢計數溢位sjmp lp1 lp2 mov th1,03ch 重新制定時器初...