當前位置:編程學習大全網 - 編程語言 - 單片機匯編語言 多分支程序的應用~ 急急急·~

單片機匯編語言 多分支程序的應用~ 急急急·~

看到這個題目,恍如隔世。

當年在大學裏面,用的是個什麽牌子的實驗箱,實驗程序,就是這個題目。

想不到,多年後,還有人問這樣的問題。

翻開筆記,整理了壹下程序,如下。

現在樓主要求使用proteus仿真,本人尚未測試,LED輸出的部分,軟件、硬件都需要重新設計。

=====================

2.多路分支程序

根據A中內容(來自20H單元)進行多路分支的程序如下:

ORG 0000H

MOV 20H, #0 ;每次實驗,這裏可以改為0、1、2和3

;-----------------------------------

MOV A, 20H ;取預置數據

MOV DPTR, #J_TAB ;散轉表起始地址

RL A ;A 乘以 2

JMP @A+DPTR ;散轉指令

;------------------------------- 多路分支結構----

J_TAB: ;散轉表

AJMP P1

AJMP P2

AJMP P3

AJMP P4

P1:

MOV 20H, #0C0H ;"0"字的7段碼

LJMP DISPLAY

P2:

MOV 20H, #0F9H ;"1"字的7段碼

LJMP DISPLAY

P3:

MOV 20H, #0A4H ;"2"字的7段碼

LJMP DISPLAY

P4:

MOV 20H, #0B0H ;"3"字的7段碼

;----------------------------------------------

DISPLAY: ;循環顯示程序

MOV A, 20H ;取來7段碼

MOV R0, #22H ;顯示器段地址

MOV R1, #21H ;顯示器位地址

MOVX @R0, A ;將7段碼輸出

MOV A, #01H ;最"右"邊的位發光

D_LOOP:

MOVX @R1, A

MOV R2, #20H ;準備延時

LCALL DELAY ;調用延時子程序

RL A ;左移顯示的位

SJMP D_LOOP ;無窮循環

;----------------------------------------------

DELAY: ; 延時子程序

PUSH 02H

DL0: PUSH 02H

DL1: PUSH 02H

DJNZ R2, $

POP 02H

DJNZ R2, DL1

POP 02H

DJNZ R2, DL0

POP 02H

DJNZ R2, DELAY

RET

;----------------------------------------------

  • 上一篇:如何利用微課程總結自己的教學研究成果
  • 下一篇:無編程控制電路
  • copyright 2024編程學習大全網