當前位置:編程學習大全網 - 編程軟體 - 求壹下51單片機匯編程序的解釋:不太明確這段程序功能,希望哪位大俠指點下!謝謝!

求壹下51單片機匯編程序的解釋:不太明確這段程序功能,希望哪位大俠指點下!謝謝!

這是壹個?8位2進制數轉換成10進制顯示的程序,或者叫計算器。

改變的地方是為了仿真成功。低位在右。?1101B?轉換過來正好是13

;p3口接段碼a,b,c,d,e,f,g,?p2.5-7口接位碼,選哪個數碼管顯示

a_bit?equ?20h?;個位數存放處

b_bit?equ?21h?;十位數存放處

org0000H

SJMP?main

ORG0030H

main:?

mov?p0,#0ffh?;初始化p0口

loop:?mov?a,p0?;將a中的十六進制數轉換成10進制

mov?b,#10;10進制/10=10進制

div?ab

mov?b_bit,a?;十位在a

mov?a_bit,b?;個位在b

mov?dptr,#numtab?;指定查表啟始地址

mov?a,a_bit?;取個位數

MOVC?A,@A+DPTR?;查個位數的7段代碼

mov?p3,a

acall?d1ms

mov?p2,#40h?;顯示個位數

acall?d1ms

mov?p2,#0ffh;屏蔽所有顯示

acall?d1ms

mov?dptr,#numtab?;指定查表啟始地址

mov?a,b_bit?;取十位數

MOVC?A,@A+DPTR?;查十位數的7段代碼

mov?p3,a

call?d1ms

mov?p2,#80h?;顯示十位數

acall?d1ms

mov?p2,#0ffh?;屏蔽所有顯示

SJMP?loop

d1ms:?

MOV?R2,#200

DJNZ?R2,$

nop

RET

numtab:?DB?3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH

end?

妳看這句,?loop:?mov?a,p0?;將a中的十六進制數轉換成10進制

把p0?送A?才開始的轉換?。?這可不是我加的。不知妳說的fpga在哪裏。當然把p0改成fpga就是妳說的那個功能了。

總之?理解成16進制轉換成2位10進制數再顯示就對了,?至於16進制數是哪來的?就全看在那用了吧。

  • 上一篇:steam賬號名稱是郵箱嗎
  • 下一篇:(如下Java代碼)為什麽logo不能顯示?
  • copyright 2024編程學習大全網