久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機第五次作業

單片機第五次作業

作者: 時間:2016-11-25 來源:網絡 收藏
作業:將4位二進制數轉換為ASCII碼
入口:R2=4位二進制數,只取低四位。
出口:R2=轉換后的ASCII碼
1、先fileànew建asm文件20.asm
BIN2ASC:MOV 10H,R2
ANL 10H,#0FH
PUSH 10H
MOV A,10H
CLR C
SUBB A,#0AH
POP 10H
MOV A,10H
JC LOOP
ADD A,#07H
LOOP:ADD A,#30H
MOV R2,A
RET
END
為了調試時看數據,預先在R2中賦值為7CH,所以程序前加:

MOV R2,#7CH
程序變為:
MOV R2,#7CH
BIN2ASC:MOV 10H,R2
ANL 10H,#0FH
PUSH 10H
MOV A,10H
CLR C
SUBB A,#0AH
POP 10H
MOV A,10H
JC LOOP
ADD A,#07H
LOOP:ADD A,#30H
MOV R2,A
RET
END
2、建新工程,Projectànewproject,選AtemlàAT89C51,導入文件20.asm。
注意,對初學者,一個工程里只能有本程序20.asm,無關的程序要刪除,新試驗一個程序最好重新建工程,以保證一個工程里只有你要試驗的那一個程序。
3、可見程序




4、編譯通過后,點debug下的start/stop開始調試,step和stepover都是單步調試,step是遇到子程序或中斷也要進入進行單步調試,stepover是遇到子程序或中斷當一句一次執行完。本程序物子程序,二者是一樣的。我們執行一句得到:


可見:R2值變為7ch.繼續執行:
點view àmemory windows,再輸入D:10h回車,得到:





10H處值為7CH.下一步:

可見,10H值變為0ch,下一步:



A中值變為0CH,下一步:


把A與0AH相減,并使10H出棧,此時CY并未改變,仍為0。所以不跳轉。繼續執行:





可見A中值變為13H,繼續往下執行:



A中值變為43h,下一步:


可見R2中值變為43h,即為0ch轉換后的ACSII碼值.


關鍵詞: 單片機ASCII

評論


技術專區

關閉