EM78系列單片機(jī)--查表程序設(shè)計(jì)
在一個(gè)沒有規(guī)則性的內(nèi)容轉(zhuǎn)換中,查表程序是相當(dāng)有用的,用戶可以使用查表程序很快速的得到相關(guān)內(nèi)容的轉(zhuǎn)換。
例:設(shè)計(jì)一個(gè)程序,將如下圖所示中的PORT5讀到的一個(gè)數(shù)值,將輸入內(nèi)容做轉(zhuǎn)換,然后輸出到PORT6的7段顯示器上。
上圖中開關(guān)關(guān)閉,I/O引腳可以得到一個(gè)低電位,若是開關(guān)開啟則I/O引腳可以得到一個(gè)高電位。
圖5.2數(shù)碼管八段說明
7段顯示器的接線圖如上,我們要編一個(gè)表做為讀入內(nèi)容以及輸出內(nèi)容的對(duì)映。
7段顯示器各腳位電位狀態(tài)PORT6輸出PORT5輸入
HGFEDCBA16進(jìn)位數(shù)值10進(jìn)位數(shù)值
001111110X3F0
000001100X061
010110110X5B2
010011110X4F3
011001100X664
011001100X6D5
011111010X7D6
000001110X077
011111110X7F8
011011110X6F9
011101110X7710
011111000X7C11
010110000X5812
010111100X5E13
011110010X7914
011100010X7115
程序清單如下:
PC==0X02;定義。
PORT5==5
PORT6==6
ORG0X10;設(shè)定程序起始位址。
MOV A,@0
IOWPORT6;設(shè)定PORT6為Output口。
MOV A,@0XFF
IOWPORT5;設(shè)定PORT5為Input口。
JMPSTART;跳轉(zhuǎn)到主程序中。
TABLE:;輸入及輸出對(duì)映表。
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