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 重新制定時器初...