1樓:
共陽數碼管顯示數字嗎?0~9:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
2樓:
把數值送到暫存器a中,
mov b,#10
div ab
得到的a即是商,也就是十位,b中是餘數,也就是個位。
如果位數更多的話,例如三位六進位制數,100關到b中,相除,得到的a中就是最高位,先存放到別的暫存器中,再
mov a,b
mov b,10
div ab
得到的a就是十位嘍,b中自然是個位
就是這個原理,再想想,不難的
3樓:匿名使用者
程式經過**除錯通過,如下所示:
mov r0, tl0
mov r1, th0
clr a
mov r2, a, ;先清零
mov r3, a,
mov r4, a,
mov r5, #16 ;共轉換十六位數
loop:
clr c
mov a, r0 ;從待轉換數的高階移出一位到cy
rlc a
mov r0, a
mov a, r1
rlc a
mov r1, a
mov a, r4 ;送到bcd碼的低端
addc a, r4 ;帶進位加。自身相加,相當於左移一位
da a ;十進位制調整,變成bcd碼
mov r4, a
mov a, r3
addc a, r3
da a
mov r3, a
mov a, r2
addc a, r2
mov r2, a
djnz r5, loop ;共轉換十六位數
;-------至此,已經把th1 tl1中的數字,轉換成bcd碼,送到了r2 r3 r4。
;-------下面,分別存入r4 r3 r2 r1 r0。
mov a, r4
mov b, #16
div ab
mov r1, a
mov r0, b
mov a, r2
mov r4, a
mov a, r3
mov b, #16
div ab
mov r3, a
mov r2, b
ret;完
4樓:匿名使用者
unsigned char code seg_code = ; // a, b, c, d, e, f
是幾就點亮相應的led腳。
5樓:匿名使用者
樓主可以到網上搜尋一下,很多這樣的子程式。在使用時要注意這段子程式佔用了哪些儲存單元,程式的入口和出口分別是什麼。你可以把計數器得到的數值賦給轉換子程式的入口單元,轉換結束後就可以從出口的儲存地址得到結果,然後做一下處理送到數碼管顯示。
這類程式有很多,樓主只要注意它使用了哪些儲存地址即可順利使用。
在51微控制器中,使用組合語言,如何將8位2進位制數轉換成2位16進位制顯示 5
6樓:匿名使用者
太高深了,真沒看懂
難道8位2進位制不是2位16進位制?
是不是要顯示成字元啊?
比如0101_1010,在顯示器上顯示0x5a ?
7樓:匿名使用者
在微控制器組合語言 程式設計中 ,其實 8位2進位制數 就可以直接 看成 2位16進位制數,
只是 與 10進位制數 有轉換關係, 組合語言中 也是通用的 如mov a, #11111111bmov a, #0ffh ; 彙編 中 資料的第一個 數不能以字元開頭
mov a, #255 ; 這 三條語句是相同的
8樓:做而論道
顯示16(或10、或2)進位制數字,需要顯示器,led數碼管、lcd1602,都很常用。
如何顯示?
樓主必須指定顯示器和電路。
9樓:匿名使用者
在微控制器中是可以識別2進位制和16進位制的,直接轉換就可以的如mov a,00110101b;
mov r1,a;
and a,0fh;
mov porta,a;
mov a,r1
swap a;
and a,0fh
mov porta,a;
10樓:匿名使用者
要把8位的,變成兩個4位的二進位制數
高位部分,右移4位即可,
低位部分,對之取與0f,即可
11樓:匿名使用者
將8位2進位制數除以16,商就是2位16進位制資料的高位,餘數是低位。
12樓:朝酒晚舞
分解成高四位、低四位,分別找出顯示**,送到顯示器即可。
順便問一下:你有顯示器嗎?
13樓:匿名使用者
還要看是靜態顯示的,還是動態顯示的。
如何用51微控制器組合語言編寫一個將十六進位制數轉換成十進位制數,並在七段數碼管上顯示出來的程式
14樓:匿名使用者
keyval equ 30h
dat equ 33h
scanled equ 39h
org 0000h
ljmp main
org 001bh
ljmp t1isr ;掃描顯示
org 0030h
main:
mov sp,#5fh
mov tmod,#10h
mov th1,#0ech
mov tl1,#078h
mov 33h,#10h
mov 34h,#10h
mov 35h,#10h
mov 36h,#10h
setb tr1
setb et1
setb ea
mov keyval,50h
loop:
lcall datchg
jb p1.0,loop1
jnb p1.0,$
inc keyval
sjmp loop
loop1:
jb p1.1,loop
jnb p1.1,$
mov a,keyval
dec a
mov keyval,a
sjmp loop
t1isr:
push acc
clr tr1
mov th1,#0ech
mov tl1,#78h
setb tr1
mov dptr,#ledtab
t100:
mov r0,#dat
mov a,scanled
add a,r0
mov r0,a
mov a,scanled
jnz t101
mov p2,#01h
sjmp t1dis
t101:
dec a
jnz t102
mov p2,#02h
sjmp t1dis
t102:
dec a
jnz t103
mov p2,#04h
sjmp t1dis
t103:
mov p2,#08h
t1dis:
mov a,@r0
movc a,@a+dptr
mov p0,a
inc scanled
mov a,scanled
cjne a,#4,t1end
mov scanled,#0
t1end:
pop acc
reti
datchg:
mov a,keyval
mov b,#100
div ab
mov 34h,a
xch a,b
mov b,#10
div ab
mov 35h,a
mov 36h,b
retledtab: ; 共陰極數碼管顯示**表db 3fh,06h,5bh,4fh,66h ;01234db 6dh,7dh,07h,7fh,6fh ;56789end
51微控制器彙編程式二進位制、十進位制、十六進位制數怎麼表示?
15樓:落日之暮
彙編中的2進位制在數值結尾加“b”
10進位制在結尾加“d”(有的編譯器不加字母預設為十進位制)
16進位制在結尾加“h”(有的編譯器不加字母預設為十六進位制,如windows裡面的debug程式)
16樓:亮到掉渣
00010100b
2014h
51微控制器彙編程式二進位制、十進位制、十六進位制數怎麼表示??
17樓:匿名使用者
十進位制 20d
十六進位制 14h
二進位制 10100b
應該是這樣,試一下吧
18樓:匿名使用者
十進位制bai就是0到9這是個數 比如du mov a,#8二進位制就
是01這兩個數
十六進位制是zhi從0到9到a b c d e f 這16個數.a表示10 b表示11 。。dao。。。。。
f表示15就這樣。16進位制後面有帶一個h表示16進位制。比如 mov a #0ffh
19樓:林立秋
真是搞笑,你把這個當成提供答案的工具呀,每個人都問這些奇怪的問題,這個問題是最基本的,你應該不是小學生吧
20樓:匿名使用者
比如說20,用二進位制表示為00010100,十進位制20,十六進位制14h
大學80C51微控制器程式設計題,請使用組合語言編寫,謝謝
1 mov a,r1 anl a,0f0h xch a,r2 anl a,0fh orl a,r2 mov r3,a 2 mov r0,30h mov 40h,0 mov 41h,0 mov r2,16 loop mov a,r0 add a,40h mov 40h,a mov a,41h addc...
組合語言微控制器,組合語言怎麼寫入微控制器
rlc 是帶進位的迴圈左移,rlc a即將a的內容左移一位,將進位位c中的值移到累加器a的最低位,a的最高位移到c裡。譬如說 設a 01000001,c 1 則如果執行rl 則a 10000010,c 1 a所有位左移一位,最低位補零,c不參加移位操作,保持原值不變 如果執行rlc後,則a 1000...
微控制器組合語言程式設計,全國微控制器組合語言程式設計師
org 0000h main mov dptr,3000h clr r0 clr r1 clr r2 mov r3,100 loop mov a,dptr clr c cjne a,0h,loop1 inc r0 djnz r3,loop loop1 rl a jc fushu inc r1 djn...