使用查詢表的延時流水燈8085程式。
我們將在這裡學習如何使用8085實現帶延時的流水燈。
問題陳述
編寫8085程式,使用從記憶體地址8100H開始儲存的字查詢表實現帶適當延時的流水燈顯示。
討論
模式儲存在8100H地址及以後的位置。我們使用8255埠IC在LED顯示器上顯示內容。顯示完成後,它呼叫延遲函式等待一段時間,然後從記憶體呼叫下一個位元組進行顯示。因此,顯示模式如下所示:

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| 8000 | 31, 00, 82 | START | LXI SP, 8200 H | 初始化堆疊指標 |
| 8003 | 0E, 15 | | MVI C, 14 H | 初始化計數器 |
| 8005 | 21, 00, 81 | | LXI H, 8100 H | 指向模式輸入緩衝區 |
| 8008 | 3E, 99 | | MVI A, CW | 將控制字載入到累加器 |
| 800A | D3, 43 | | OUT 43 H | 將控制字輸出到控制暫存器 |
| 800C | 7E | AGAIN | MOV A, M | 讀取模式位元組 |
| 800D | D3, 41 | | OUT 41 H | 輸出到B埠 |
| 800F | CD, 20, 80 | | CALL DELAY | 呼叫延遲子程式 |
| 8012 | 2C | | INR L | 指向下一個位置 |
| 8013 | 0D | | DCR C | 遞減計數器 |
| 8014 | C2, 0C, 80 | | JNZ AGAIN | 如果未耗盡,則再次執行 |
| 8017 | 76 | | HLT | 停止 |
| 8020 | C5 | DELAY | PUSH B | 儲存B。此延遲子程式使用2個單暫存器A和D以及1個暫存器對BC |
| 8021 | F5 | | PUSH PSW | 儲存PSW |
| 8022 | 16, 0F | | MVI D, 0F H | 載入外迴圈計數器 |
| 8024 | 01, 00, 10 | ST | LXI B, 1000 H | 載入內迴圈計數器 |
| 8027 | 0B | L | DCX B | 遞減內迴圈計數器 |
| 8028 | 79 | | MOV A, C | 如果未耗盡,則再次執行內迴圈 |
| 8029 | B0 | | ORA B | |
| 802A | C2, 27, 80 | | JNZ L | |
| 802D | 15 | | DCR D | 遞減外迴圈計數器 |
| 802E | C2, 24, 80 | | JNZ ST | 如果未耗盡,則再次執行外迴圈 |
| 8031 | F1 | | POP PSW | 恢復PSW |
| 8032 | C1 | | POP B | 恢復B |
| 8033 | C9 | | RET | 返回到呼叫程式 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP