在一個沒有規(guī)則性的內容轉換中,查表程序是相當有用的,用戶可以使用查表程序很快速的得到相關內容的轉換。
例:設計一個程序,將如下圖所示中的PORT5讀到的一個數(shù)值,將輸入內容做轉換,然后輸出到PORT6的7段顯示器上。
上圖中開關關閉,I/O引腳可以得到一個低電位,若是開關開啟則I/O引腳可以得到一個高電位。
圖5.2數(shù)碼管八段說明
7段顯示器的接線圖如上,我們要編一個表做為讀入內容以及輸出內容的對映。
7段顯示器各腳位電位狀態(tài)PORT6輸出PORT5輸入
HGFEDCBA16進位數(shù)值10進位數(shù)值
001111110X3F0
000001100X061
010110110X5B2
010011110X4F3
011001100X664
011001100X6D5
011111010X7D6
000001110X077
011111110X7F8
011011110X6F9
011101110X7710
011111000X7C11
010110000X5812
010111100X5E13
011110010X7914
011100010X7115
程序清單如下:
PC==0X02;定義。
PORT5==5
PORT6==6
ORG0X10;設定程序起始位址。
MOV A,@0
IOWPORT6;設定PORT6為Output口。
MOV A,@0XFF
IOWPORT5;設定PORT5為Input口。
JMPSTART;跳轉到主程序中。
TABLE:;輸入及輸出對映表。
ADDPC,A
RETL@0X3F
RETL@0X06
RETL@0X5B
RETL@0X4F
RETL@0X66
RETL@0X6D
RETL@0X7D
RETL@0X07
RETL@0X7F
RETL@0X6F
RETL@0X77
RETL@0X7C
RETL@0X58
RETL@0X5E
RETL@0X79
RETL@0X71
START:
MOV A,PORT5
ANDA,@0X0F
CALLTABLE
MOV PORT6,A
JMPSTART