微控制器程式注釋,微控制器程式注釋(大致注釋)

2022-02-23 05:30:07 字數 5497 閱讀 9552

1樓:胖大海君

嘿嘿 還是俺來幫你回答吧

1 這是乙個一位的7段數碼管顯示控制程式,通過p3口連線了乙個7段數碼管(靜態顯示,共陽極)。

2 該程式就是利用這個一位的7段數碼管分時迴圈顯示0~9、a~f共16個十六進製制數碼。

3 在程式儲存器存放的**tab: 是共陽極顯示編碼 應該是0~9、a~f共16個顯示編碼

可惜少了一半:

現在給你補全:

tab:db 0c0h, 0f9h, 0a4h,0b0h,99h,92h,82h,0f8h,

db 80h, 90h, 88h, 82h, 0c6h,0a1h,86h,8eh

4 參考:

org 00h :微控制器啟動位址

start:mov r2,#0 ;要顯示的第乙個數為0

mov r5,#16 ;要迴圈顯示的次數16次

main: mov dptr,#tab ;取顯示編碼**首位址

mov a,r2 ; 取要顯示的數(在r2中)

movc a,@a+dptr ;查表 求要顯示的數的編碼

mov p3,a ;送p3口驅動7段數碼管顯示

inc r2 ;修改要顯示的下乙個數(要顯示的數增1)

lcall delay ; 呼叫延時子程式(穩定顯示)

djnz r5,main ;迴圈顯示次數減1 不等於0 繼續顯示

jmp start ;從新轉主程式 開始新一輪的顯示

delay:mov r0,#5 ;延時子程式

delay0:mov r7,#200

delay1:mov r6,#250

djnz r6,$

djnz r7,delay1

djnz r0,delay0

ret ;子程式返回

tab:db 0c0h, 0f9h, 0a4h,0b0h,99h,92h,82h,0f8h ;顯示編碼**

end ;結束彙編、

滿意 就請選擇正確的回答

2樓:安裝機電

;程式從00h開始存貯

;名為start的程式段開始;將立即數0放入暫存器r2中;將立即數16放放r5中;

3樓:匿名使用者

org 00h 彙編從00h開始

start:mov r2,#0 將數0送給r2

mov r5,#16 將數16送給r5

main: mov dptr,#tab 將tab的位址給資料指標dptr

mov a,r2 將r2中的值(就是0)給r2

movc a,@a+dptr (查表)將0c0h給a

mov p3,a 將a中的數值(就是0c0)給p3口

inc r2 r2加1

lcall delay 呼叫延時程式delay

djnz r5,main (迴圈轉移指令)若r5-1不等於0就執行main,等於0就順序執行

jmp start 跳轉到start

delay:mov r0,#5 將#5給r0

delay0:mov r7,#200 將#200給r7

delay1:mov r6,#250 將250給r6

djnz r6,$ 若r6-1不等於0就繼續執行這條指令,等於零就順序執行

djnz r7,delay1 若r7-1不等於0就繼續執行delay1,等於零就順序執行

djnz r0,delay0 若r6-1不等於0就繼續執行delay0,等於零就順序執行

ret 返回

tab:db 0c0h, 0f9h, 0a4h,0b0h,99h,92h,82h,0f8h **

end 結束

純手寫,如果明白了,就選為滿意答案吧

微控制器程式注釋(大致注釋)

4樓:巨蛋一號

org 00h

mov r5,#00h

mov r7,#00h

djnz r7,$

mov r7,#10h

mov r6,#06h

mov r1,#35h

l1: mov a,r7

mov dptr,#table

movc a,@a+dptr

mov @r1,a

dec r1

inc r7

djnz r6,l1

start: orl p2,#0ffh

mov r4,#06h

mov r0,#40h

clear: mov @r0,#00h

inc r0

djnz r4,clear

l2: mov r3,#0f7h

mov r1,#00h

l3: mov a,r3

mov p1,a

mov a,p1

mov r4,a

setb c

mov r5,#04h

l4: rlc a

jnc keyin

inc r1

djnz r5,l4

call disp

mov a,r3

setb c

rrc a

mov r3,a

jc l3

jmp l2

keyin: mov a,r1

xrl a,#0bh

jz x3

mov a,r1

xrl a,#0fh

jz x4

mov r7,#10

d1: mov r6,#24

djnz r6,$

djnz r7,d1

d2: mov a,p1

xrl a,r4

jz d2

mov a,r1

mov dptr,#table

movc a,@a+dptr

mov r7,a

xrl a,#0ah

jz set0

mov a,r7

xrl a,#0bh

jz start

mov a,r7

xrl a,#0ch

jz l2

mov a,r7

xrl a,#0dh

jz l2

mov a,r7

xch a,40h

xch a,41h

xch a,42h

xch a,43h

xch a,44h

xch a,45h

call disp

jmp l2

x3: jmp disp2

x4: jmp comp

disp:mov r0,#45h

disp1: mov a,@r0

add a,#50h

mov p0,a

call delay

dec r0

mov a,@r0

add a,#40h

mov p0,a

call delay

dec r0

mov a,@r0

add a,#30h

mov p0,a

call delay

dec r0

mov a,@r0

add a,#20h

mov p0,a

call delay

dec r0

mov a,@r0

add a,#10h

mov p0,a

call delay

dec r0

mov a,@r0

add a,#00h

mov p0,a

call delay

retset0: mov r2,#06hmov r0,#40h

mov r1,#30h

e1: mov a,@r0

xch a,@r1

inc r0

inc r1

djnz r2,e1

call delay

e2: jmp start

comp: mov r1,#45h

mov r0,#35h

mov r2,#06h

c1: mov a,@r1

xrl a,@r0

jnz c3

dec r1

dec r0

djnz r2,c1

clr p2.0

mov r2,#200

c2: mov r6,#248

djnz r6,$

djnz r2,c2

c3: inc r5

mov a,r5

mov r5,a

cjne r5 ,#03h,c4

clr p2.1

mov r5,#00h

c4: jmp start

disp2: mov r0,#35h

call disp

mov a,p1

xrl a,r4

jz disp2

call delay

jmp start

delay: mov r7,#c3

d3: mov r6,#248

djnz r7,d3

retorg 300h

table: db 01h 02h 03h 0chdb 04h 05h 06h 0dh

db 07h 08h 09h 0eh

db 0ah 00h 0bh 0fh

db 01h 02h 03h 04h05h 06hend

5樓:做而論道

看了一遍。

好像,是個密碼鎖的程式。

6樓:蜻蜓點水

你以為是貼吧啊,1樓何在

注釋一下 微控制器程式

微控制器程式,微控制器的應用

寫錯了吧,0x10和0x01能一樣嗎?if adc contr 0x10 測試其第5位是否是1 相當於 if adc contr 0x10 0 while adc contr 0x10 測試其第5位 d4 是否是0 乙個是測試 1 乙個是測試 0x10 能一樣麼?微控制器的應用 微控制器的應用領域 ...

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

開發當bai然是用c,又快又易懂好維 du護,但是想要優zhi化程式dao還是要懂彙編的,要不然實回現同樣乙個功能答的程式,好的程式設計師可以把程式設計得又短又快,而不做優化的可能會又臭又長,2k以下可以搞定的,你非要搞到4k以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本公升高時質量卻...

微控制器C語言程式

define uint unsigned int就是用unit替換unsigned int,unsigned int是c語言關鍵字,unit比較簡單 void delayms uint x 定義乙個函式,無返回值,引數是個 無符號整形的變數叫 x uchar 上面不是定義了unsigned char...