微控制器的用組合語言程式設計,微控制器的用組合語言程式設計

時間 2022-03-31 09:03:53

1樓:匿名使用者

k1 equ p1.0

k2 equ p1.1

k3 equ p1.2

org 0000h

ljmp main

org 000bh

ljmp t0isr

org 0030h

main:

mov tmod,#11h

mov th0,#high(65536-50000)mov tl0,#low(65536-50000)mov th1,#high(65536-5000)mov tl1,#low(65536-5000)setb et0

setb et1

setb tr1

setb ea

mov r2,#0

mov r3,#0

loop:

jb k1,loop1

jnb k1,$

setb tr0

sjmp loop

loop1:

jb k2,loop2

jnb k2,$

clr tr0

sjmp loop

loop2:

jb k3,loop

jnb k2,$

ljmp main

t0isr:

clr tr0

mov th0,#high(65536-50000)mov tl0,#low(65536-50000)setb tr0

inc r2

cjne r2,#20,t0e

mov r2,#0

inc r3

cjne r3,#100,t0e

mov r3,#0

t0e:

reti

t1isr:

clr tr1

mov th1,#high(65536-5000)mov tl1,#low(65536-5000)setb tr1

mov a,r3

mov b,#10

div ab

mov dptr,#ledtab1

cpl 00h

jb 00h,t11

movc a,@a+dptr

mov p0,a

reti

t11:

xch a,b

movc a,@a+dptr

mov p2,a

reti

;--------------------ledtab1: db 0c0h ;"0" 00h db 0f9h ;"1" 01h db 0a4h ;"2" 02h db 0b0h ;"3" 03h db 99h ;"4" 04h db 92h ;"5" 05h db 82h ;"6" 06h db 0f8h ;"7" 07h db 80h ;"8" 08h db 90h ;"9" 09hend

2樓:匿名使用者

程式就不具體寫了,就寫實現方法吧

主程式初始化好定時器t0,根據晶振頻率算好乙個值,然後進入主迴圈,迴圈內要做的時就是檢測按鍵,可以多次檢測去抖動,根據按鍵開定時器和關定時器t0(setb tr0,clr tr0),復位就是把x寫0即可,同時完成將乙個暫存器x的值複製到暫存器y,然後將y的內容換算為十進位制的兩個數,然後查表得到對應顯示的端碼送去p0和p2口。

t0中斷服務程式,每次進中斷後設定乙個暫存器z的值加1,達到設定的數字後回0,作用就是這個值乘t0定時的時間為1秒,如果暫存器回0的話,就把暫存器x加1,並判斷到了99就回0。

如此程式的效果就是你要求的樣子了

arm微控制器可以用組合語言程式設計嗎

3樓:匿名使用者

arm微控制器程式可以用組合語言進行編寫。除去協處理器(高階的arm微控制器才具有)的指令,常用的指令大致為msr、mrs、ldr、str、ldm、stm,orr、bic,test, add, sub,mul等指令。如果說想寫一寫彙編**玩一下的話還行。

原則上能用c語言則一定不會使用彙編。例如uboot的引導**,linux核心的啟動**都是用彙編寫的,本質是快速初始化以滿足c程式的執行條件。除了特殊的暫存器(如cpsr)要用專用的彙編指令(msr、mrs)外,對於讀寫暫存器操作一般使用ldr、str指令,也就對應於c語言的通過指標訪問記憶體。

在實際開發中,經常要讀寫暫存器。所以經常會使用到訪存指令(ldr、str),以及各種邏輯操作(add、sub、bic、orr、and)。如果設定到使用棧暫存資料還需要ldm和stm指令。

其實常用的也就這幾個。因此,可以用彙編寫微控制器程式,但還是那句話,能用c語言則不要使用彙編。因為把c程式轉化為彙編**那是編譯器做的事情。。。

4樓:匿名使用者

可以。請檢索arm微控制器的說明應用文件。

微控制器(組合語言)需要的軟體?

5樓:i多多問題多多

51微控制器是襲keil 軟體

6樓:匿名使用者

關鍵你學過什麼語言??如果學過c語言就用c,上手快。學過其他的高階語言也可以,和c也大都是相通的。要是學過彙編的話就用彙編,畢竟彙編對硬體的操作

7樓:匿名使用者

建議你還是先學微控制器c語言,這樣不會因為彙編這個攔路虎,而降低你持續學習的熱情。

微控制器用什麼語言編寫程式?

8樓:great啦啦啦

微控制器一般用c語言或者組合語言來編寫程式。

建議先學c語言,組合語言要算位址,組合語言比較難,所以建議先學c語言。組合語言要算位址,大多數情況下,微控制器執行的程式,都是c語言編寫的。不過並不是一般意義上的c語言,而是變種後的c51語言。

微控制器是典型的嵌入式微控制器(microcontroller unit),由運算器,控制器,儲存器,輸入輸出裝置等構成,相當於乙個微型的計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自**(不用外接硬體)和節約成本。

9樓:可愛的那麼快

c語言啊,彙編少量的,基本在那些很簡單的產品上會用彙編程式設計,因為產品簡單,微控制器空間資源少,所以只能用彙編變成減少程式空間占用。像stm32等微控制器需要跑作業系統也會需要少量彙編,其它都是c。

編大點的程式你用彙編試試,累不死你!

微控制器彙編問題,微控制器組合語言的問題

改好了,可以編譯。但是,程式設計的思路,可能還有錯。org 0000h ljmp main org 0003h ljmp pint0 org 0200h main mov ie,81h cpu開放中斷,int0允許中斷setb it0 外部中斷為邊沿觸發方式mov sp,30h 指標入口位址。set...

微控制器組合語言問題,微控制器,組合語言問題,懂彙編麻煩指教下。

看這個簡單的程式 org 0000h ljmp st org 0100h st mov p2,00h p2口控制數碼管,讓所有的數碼管都有效。mov p0,0a4h p0口控制輸出字 sjmp 原地踏步 end在這裡,sjmp是死迴圈,但是我們發現如果沒有sjmp,無論我們設計的控制字是多少,數碼管...

如何學習微控制器的組合語言,想學習微控制器組合語言,怎樣學入門比較快呢

我也學習微控制器定址有很多方式 舉幾個例子給你吧 1.暫存器定址 暫存器定址就是運算元存放在暫存器中,指令中指定的暫存器的內容就是運算元。2.直接定址 直接定址方式就是在指令中直接給出運算元所在儲存單元的位址。此時,指令中運算元部分是運算元所在位址。3.立即數定址 立即數定址就是運算元在指令中直接給...

微控制器1秒鐘定時組合語言怎麼編,用微控制器組合語言編寫一秒的定時 用定時器T0 方式2 急求!!

org 00h start mov tmod,01h mov r5,14h mov tl0,0b0h mov th0,03ch setb tr0 djnz r7,next clr tr0 這裡寫要處理的程式 jmp start endnext mov tl0,0b0h mov th0,03ch re...

微機原理裡的組合語言與微控制器裡的組合語言有什麼不同

我很負責的告訴樓上 8086是16位機 區別 你這叫人怎麼說,都屬於組合語言,是低階語言,各個語法及方式都有不同之處。難道你能問拼音和英語音標有什麼區別麼?有點像,但是你能具體說出哪個不一樣麼?微機原理講80x86 cpu的組合語言,微控制器講某種微控制器 通常是8051 的組合語言,兩種cpu的體...