|
在一個沒有規則性的內容轉換中,查表程序是相當有用的,用戶可以使用查表程序很快速的得到相關內容的轉換。 例:設計一個程序,將如下圖所示中的PORT5讀到的一個數值,將輸入內容做轉換,然后輸出到PORT6的7段顯示器上。 上圖中開關關閉,I/O引腳可以得到一個低電位,若是開關開啟則I/O引腳可以得到一個高電位。 圖 5.2 數碼管八段說明 7段顯示器的接線圖如上,我們要編一個表做為讀入內容以及輸出內容的對映。 7段顯示器各腳位電位狀態 | PORT6輸出 | PORT5輸入 | H | G | F | E | D | C | B | A | 16進位數值 | 10進位數值 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0X3F | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0X06 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0X5B | 2 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0X4F | 3 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0X66 | 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0X6D | 5 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0X7D | 6 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0X07 | 7 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0X7F | 8 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0X6F | 9 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0X77 | 10 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0X7C | 11 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0X58 | 12 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0X5E | 13 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0X79 | 14 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0X71 | 15 |
程序清單如下: PC == 0X02 ;定義。 PORT5 == 5 PORT6 == 6 ORG 0X10 ;設定程序起始位址。 IOW PORT6 ;設定PORT6為Output口。 MOV A, @0XFF IOW PORT5 ;設定PORT5為Input口。 JMP START ;跳轉到主程序中。 TABLE:;輸入及輸出對映表。 ADD PC, 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 AND A, @0X0F CALL TABLE MOV PORT6, A JMP START |