国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
51單片機匯編語言實現(xiàn)進制轉換
[打印本頁]
作者:
coolfire
時間:
2021-5-6 01:29
標題:
51單片機匯編語言實現(xiàn)進制轉換
任務是利用中斷進行數(shù)制轉換,并利用數(shù)碼管顯示轉換前后數(shù)字、原理圖放下面
PS:本次進制轉換為16進制轉換為10進制,只是例子
照例先說我的思路:
1. 我在主程序先對P1置零(為了讓十六進制數(shù)從0開始)
2. 然后對P1進行加1的操作,并循環(huán)以及延時(為了容易看清是否轉換)
3. 配置中斷,開啟外部中斷0,設置觸發(fā)方式為電平觸發(fā),開啟中斷總控制(這里的配置務必跟著自己的電路圖來,這里是我電路圖對對應的配置)
4. 編寫中斷子程序,里面對P1做除法,除以0x64H即0x100D配(由于是兩位十六進制最多百位數(shù),所以除以100)為了得到百位數(shù),并將商移到P2(這里剛 好高位為0,不影響)作百位數(shù),并對剩下來的余數(shù)進行除10得到新的商,字節(jié)內(nèi)交換后,將交換后新商加上新的余數(shù)移入P0,得到十位數(shù)和個位數(shù)。
5. 退出中斷返回
DIV AB 結果:A/B的商放入A,余數(shù)放入B
原理圖:
1.png
(36.93 KB)
下載附件
2021-5-6 01:28 上傳
匯編代碼:
ORG 00H
LJMP 30H ;turn to main
ORG 03H
LJMP 0200H
ORG 30H
MAIN: MOV P1, #00H ;hex
MOV P0, #00H ;low2_dec
MOV P2, #00H ;high1_dec
SETB EX0 ;open it
SETB IT0
SETB EA ;open total switch
HERE: INC P1
MOV R7, #0FFH
DJNZ R7, $
SJMP HERE
ORG 0200H
EXCHANGE:
MOV B, #64H ;div with 100 for P2-high1_dec
MOV A, P1
DIV AB
MOV P2, A
MOV A, B ;save remainder;
MOV B, #0AH ;div with 10 for P0-low2_dec
DIV AB
SWAP A
ADD A, B
MOV P0, A
RETI
END
復制代碼
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0