---------------------------------------------------------------------------- 16x16 陣列 LED 字幕機 (Matrix LED Experience) 檔案 :LEDMA_7.ASM ----------------------------------------------------------------------------- LIST P=16F877 #INCLUDE <P16F877.INC> CBLOCK 0X20 ENDC 虛指令, 由 MPLAB 代為管理變數 CBLOCK 以下為程式所需的變數 D1, D2, D3, D4, B1, FIVE, FIVE1, HEART, NUMRO COUNT_TA, COUNT_TB, COUNT_TC, COUNT_TD, HEART_COUNT, HEART_COUNT1 SHOW_UP_COUNT, SHOW_UP_INDF_COUNT, SHOW_UP_ENOUGH, RLF_TEMP, COUNT_UP_TIMES ROM_TO_RAM, WEL_COUNT ENDC --------I/O 設定 ----------- ORG 0 NOP INITIAL: BANKSEL TRISA CLRF TRISA BANKSEL PORTA CLRF PORTA BANKSEL TRISB CLRF TRISB BANKSEL PORTB CLRF PORTB BANKSEL TRISC CLRF TRISC BANKSEL PORTC CLRF PORTC BANKSEL TRISD CLRF TRISD BANKSEL PORTD CLRF PORTD CLRF NUMRO CLRF ROM_TO_RAM 設定歡迎光臨執行次數變數 ******************************************************* * * Show Chinese Welcome, then Up to Go * 字幕展示 歡迎光臨 一字一字往上走 * ******************************************************* SHOW_UP: MOVF ROM_TO_RAM,W MOVWF SHOW_UP_INDF_COUNT CLRF SHOW_UP_COUNT CLRF SHOW_UP_ENOUGH *** 上移時間 Move up times *** 清除間接定址的空間 Indf if enough MATRIX_RAM: BSF STATUS,IRP BSF PCLATH,0 MOVLW 0XA0 MOVWF FSR MATRIX_IN: PAGESEL TABLE2 *** 將資料載入間接定址中, 變成一個陣列 *** 選擇 BANK3 *** 設定 ROM 位址 0X900 *** 從 0X1A0 開始儲存資料第 1 頁
MOVF SHOW_UP_INDF_COUNT,W CALL TABLE2 MOVWF INDF INCF SHOW_UP_INDF_COUNT,F MOVF SHOW_UP_INDF_COUNT,W CALL TABLE2 MOVWF INDF INCF SHOW_UP_INDF_COUNT,F INCF SHOW_UP_ENOUGH,F PAGESEL MATRIX_IN BTFSS SHOW_UP_ENOUGH,4 GOTO MATRIX_IN BCF STATUS,IRP BCF PCLATH,0 ********************************************************* ** ** SHOW FIVE TIMES SINGAL WORD ** 將字體秀五次 ********************************************************* BSF STATUS,IRP MOVLW.5 MOVWF SHOW_UP_ENOUGH MATRIX_UP_250MS: MATRIX_FIVE: CLRF PORTB MOVLW 0XA0 MOVWF FSR MATRIX_FIVE_FLASH: BCF PORTA,0 NOP BSF PORTA,0 GOTO MATRIX_FIVE_FLASH GOTO MATRIX_FIVE BCF STATUS,IRP ********************************************************* ** ** SHOW FIVE TIMES SINGAL WORD RE_WHITE EFFECT ** 展示反白字 ********************************************************* BSF STATUS,IRP MOVLW.5 第 2 頁
MOVWF SHOW_UP_ENOUGH MATRIX_UP_250MS_R: MATRIX_FIVE_R: CLRF PORTB MOVLW 0XA0 MOVWF FSR MATRIX_FIVE_FLASH_R: MOVLW B'11111111' XORWF PORTC,F 利用 XOR 互斥或 FLASH EFFECT XORWF PORTD,F 達成字型反白 BCF PORTA,0 NOP NOP BSF PORTA,0 GOTO MATRIX_FIVE_FLASH_R GOTO MATRIX_FIVE_R DECFSZ SHOW_UP_ENOUGH GOTO MATRIX_UP_250MS BCF STATUS,IRP MOVE RUN UP MAIN PORGRAM 由右至左移動 MOVLW.16 MOVWF COUNT_UP_TIMES MATRIX_UP_MAIN_INT BSF STATUS,IRP MOVLW.16 MOVWF SHOW_UP_ENOUGH MATRIX_UP_MAIN: MOVLW 0XA0 MOVWF FSR MATRIX_UP_ROATOR: CLRF RLF_TEMP TEMP REGISTER FOR RLF MOVWF RLF_TEMP RLF RLF_TEMP,W MOVWF INDF MOVLW B'10000000' KEEP THE LEFT BIT ANDWF RLF_TEMP BCF STATUS,C RLF RLF_TEMP RLF RLF_TEMP MOVE THE LEFT BIT TO THE RIGHT 第 3 頁
BCF STATUS,C DEAL WITH PORTD RLF INDF MOVF RLF_TEMP,W ADDWF INDF,F BCF STATUS,C CLRF RLF_TEMP DECFSZ SHOW_UP_ENOUGH GOTO MATRIX_UP_ROATOR *********************************************** * * PUT MOVE_UP NEW DATA INTO PORTB,C,D * 將資料放入 PORTB,PORTC 及 PORTD *********************************************** MATRIX_UP_BCD: MATRIX_FIVEBCD: CLRF PORTB MOVLW 0XA0 MOVWF FSR MATRIX_FIVE_FLASHBCD: BCF PORTA,0 NOP BSF PORTA,0 GOTO MATRIX_FIVE_FLASHBCD GOTO MATRIX_FIVEBCD DECFSZ COUNT_UP_TIMES GOTO MATRIX_UP_MAIN_INT BCF STATUS,IRP MOVLW.32 ADDWF ROM_TO_RAM,F CHANGE THE NEXT WORD BTFSS ROM_TO_RAM,7 GOTO SHOW_UP BCF STATUS,IRP ***************************************************************** SHOW SHIN YIN VOCATIONAL HIGH SCHOOL E.E RIGHT TO LEFT 顯示 新營高工電機科 由右至左移動 ***************************************************************** SHOW1: MOVLW.112 MOVWF FIVE1 第 4 頁
MOVLW.0 MOVWF HEART_COUNT1 FIVE5A1: HEART_A1: MOVLW.0 MOVWF PORTB MOVF HEART_COUNT1,W MOVWF HEART HEART_AA1: BSF PCLATH,2 SELECT PAGE3 PAGESEL TABLE3 CALL TABLE3 CALL TABLE3 BCF PCLATH,2 SELECT PAGE0 BCF PORTA,0 ENABLE ALL LEDS PAGESEL DLY100MS BSF PORTA,0 DARK ALL LEDS PAGESEL HEART_AA1 GOTO HEART_AA1 GOTO HEART_A1 CALL H_COUNT1 DECFSZ FIVE1 GOTO FIVE5A1 *************************************************************************** * * SHOW ENGLISH W.E.L.C.O.M.E WORDS CIRCULE PRESENT, USING TIMER0 * 展示英文字 W.E.L.C.O.M.E *************************************************************************** CLRF HEART CLRF NUMRO CLRF WEL_COUNT CLRF B1 MOVLW.2 MOVWF NUMRO WEL_MAIN: WEL_A: MOVF WEL_COUNT,W MOVWF HEART CLRF PORTB 第 5 頁
WEL_1: SHOW 1ST WORD PAGESEL TABLE1 CALL TABLE1 BCF PORTA,0 ENABLE ALL LEDS PAGESEL DLY100MS BSF PORTA,0 DARK ALL LEDS BTFSS PORTB,3 GOTO WEL_1 GOTO WEL_A CALL DLY_TMR0 WEL_B: MOVF WEL_COUNT,W MOVWF HEART MOVLW.8 MOVWF PORTB ADDWF HEART,F WEL_2: SHOW 2ND WORD PAGESEL TABLE1 CALL TABLE1 BCF PORTA,0 ENABLE ALL LEDS PAGESEL DLY100MS BSF PORTA,0 DARK ALL LEDS GOTO WEL_2 GOTO WEL_B CALL DLY_TMR0 WEL_C: MOVF WEL_COUNT,W MOVWF HEART MOVLW.8 MOVWF PORTB MOVLW.16 ADDWF HEART,F WEL_3: SHOW 3RD WORD PAGESEL TABLE1 CALL TABLE1 第 6 頁
BCF PORTA,0 ENABLE ALL LEDS PAGESEL DLY100MS BSF PORTA,0 DARK ALL LEDS GOTO WEL_3 GOTO WEL_C CALL DLY_TMR0 WEL_D: MOVF WEL_COUNT,W MOVWF HEART MOVLW.0 MOVWF PORTB MOVLW.24 ADDWF HEART,F WEL_4: SHOW 3RD WORD PAGESEL TABLE1 CALL TABLE1 BCF PORTA,0 ENABLE ALL LEDS PAGESEL DLY100MS BSF PORTA,0 DARK ALL LEDS BTFSS PORTB,3 GOTO WEL_4 GOTO WEL_D CALL DLY_TMR0 MOVLW.32 MOVWF WEL_COUNT DECFSZ NUMRO GOTO WEL_MAIN CALL DLY_TMR0 GOTO INITIAL *************************************************** USE TMR0 FOR DELAY *************************************************** DLY_TMR0: BCF STATUS,C BANKSEL OPTION_REG MOVLW B'00000111' MOVWF OPTION_REG BANKSEL TMR0 CLRF TMR0 LOOP: 第 7 頁
SUBWF TMR0,W BTFSS STATUS,C GOTO LOOP RETURN **************************************************** COUNT HEART TIMES **************************************************** H_COUNT1: MOVLW.2 ADDWF HEART_COUNT1,F RETURN H_COUNT: MOVLW.2 SUBWF HEART_COUNT,F RETURN TIME DELAY DLY5MS: MOVLW.10 MOVWF D1 DLY10MS_1: MOVLW 10 MOVWF D2 DLY10MS_2: DECFSZ D2 GOTO DLY10MS_2 DECFSZ D1 GOTO DLY10MS_1 RETURN DLY100MS: MOVLW.10 MOVWF D3 DLY10MS: DECFSZ D3 GOTO DLY10MS RETURN ***ENGLISH WELCOME WORD SHOW*********** ORG 0X0800 TABLE1: ADDWF PCL,F DT 0X00,0XFC,0X02,0X1C,0X02,0XFC,0X00,0X00 W DT 0X00,0XFE,0X92,0X92,0X92,0X82,0X00,0X00 E DT 0X00,0XFE,0X02,0X02,0X02,0X02,0X00,0X00 L DT 0X00,0X7C,0X82,0X82,0X82,0X44,0X00,0X00 C DT 0X00,0X7C,0X82,0X82,0X82,0X7C,0X00,0X00 O DT 0X00,0XFE,0X40,0X30,0X40,0XFE,0X00,0X00 M DT 0X00,0XFE,0X92,0X92,0X92,0X82,0X00,0X00 E DT 0X00,0X00,0XF0,0XF8,0XF0,0X00,0X00,0X00! *******WELCOME CHINESE WORDS SHOW**************** ORG 0X0900 TABLE2: ADDWF PCL,F 第 8 頁
DT 0X80,0X2E,0XFE,0X2B,0XAA,0X7A,0XAA,0X2E HUAN DT 0XFE,0X2F,0XAA,0X7A,0XAA,0X2A,0XAA,0X2E DT 0X00,0X01,0X02,0X06,0X0C,0X7C,0XF0,0X07 DT 0X10,0X04,0X8C,0X05,0X02,0X0F,0X00,0X00 DT 0X02,0X04,0X84,0X44,0X88,0X35,0X78,0X06 ENI DT 0X04,0X00,0XF2,0X0F,0X12,0X10,0X22,0X20 DT 0X42,0X20,0X02,0X40,0XFA,0X1F,0X42,0X10 DT 0X22,0X10,0X12,0X10,0XE2,0X1F,0X00,0X00 DT 0X02,0X02,0X02,0X42,0X04,0X22,0X08,0X12 KUONG DT 0X30,0X0A,0X40,0X02,0X80,0X03,0X00,0X7E DT 0XFE,0X03,0X02,0X0A,0X02,0X12,0X02,0X22 DT 0X02,0X42,0X02,0X02,0X1E,0X00,0X00,0X00 DT 0XFE,0X3F,0X44,0X22,0X7C,0X3E,0X44,0X22 LIN DT 0XC4,0X23,0X00,0X20,0X3E,0X08,0X24,0X10 DT 0XA4,0X67,0X3E,0X25,0X00,0X25,0X3E,0X25 DT 0XA4,0X27,0X24,0X20,0X3E,0X00,0X00,0X00 ********WELCOME TO SHINYING VOCATIONAL HIGH SCHOOL CHINESE WORDS************* ORG 0X1000 TABLE3: ADDWF PCL,F DT 0X44,0X00,0X48,0X12,0X54,0X1E,0XFE,0X73 SHIN DT 0X50,0X1E,0X48,0X12,0X44,0X00,0X10,0X00 DT 0XE0,0X7F,0X00,0X48,0X00,0X48,0XFE,0X4F DT 0X00,0X48,0X00,0X08,0X00,0X00,0X00,0X00 DT 0X80,0X03,0X00,0X42,0X00,0X26,0X00,0X1A YING DT 0X0E,0X72,0XEA,0X1A,0XAA,0X26,0XBA,0X42 DT 0XAA,0X42,0XEA,0X26,0X0E,0X1A,0X00,0X72 DT 0X00,0X1A,0X00,0X26,0X80,0X43,0X00,0X00 DT 0X00,0X00,0X7E,0X00,0X40,0X00,0X40,0X00 KUAO DT 0X40,0X10,0X5C,0X17,0X54,0X15,0X54,0X75 DT 0X54,0X15,0X5C,0X17,0X40,0X10,0X40,0X00 DT 0X40,0X00,0X7E,0X00,0X00,0X00,0X00,0X00 DT 0X02,0X00,0X02,0X20,0X02,0X20,0X02,0X20 KUONG DT 0X02,0X20,0X02,0X20,0X02,0X20,0XFE,0X3F DT 0X02,0X20,0X02,0X20,0X02,0X20,0X02,0X20 DT 0X02,0X20,0X02,0X20,0X02,0X00,0X00,0X00 DT 0X00,0X5C,0X00,0X50,0X00,0X50,0XF0,0X51 DANG DT 0X50,0X5B,0X50,0X55,0X50,0X51,0XFE,0X7F DT 0X52,0X51,0X52,0X55,0X52,0X5B,0XF2,0X51 DT 0X02,0X50,0X02,0X5C,0X00,0X00,0X00,0X00 DT 0X40,0X04,0X80,0X05,0XFE,0X7F,0X00,0X05 CHI DT 0X88,0X04,0X70,0X1B,0X48,0X2D,0X46,0X4B DT 0X40,0X11,0XE2,0X7F,0X54,0X01,0X48,0X1B DT 0X54,0X2D,0X42,0X4B,0X46,0X11,0X00,0X00 DT 0X30,0X02,0XC0,0X06,0X00,0X0B,0XFE,0X1F KO DT 0X00,0X23,0XC0,0X02,0X30,0X02,0X40,0X00 第 9 頁
DT 0X40,0X12,0X40,0X09,0X40,0X00,0XFE,0X7F DT 0X40,0X00,0X40,0X00,0X40,0X00,0X00,0X00 BLANK BLANK ***HEART AND GONG XI FA CAI WORD SHOW************ ORG 0X1C00 TABLE: ADDWF PCL,F BLANK BLANK DT 0x00,0x3E,0x00,0x7F,0x80,0x7F,0xC0,0x7F DT 0xE0,0x7F,0xF0,0x7F,0xF8,0x3F,0xFC,0x1F DT 0xFC,0x1F,0xF8,0x3F,0xF0,0x7F,0xE0,0x7F DT 0xC0,0x7F,0x80,0x7F,0x00,0x7F,0x00,0x3C HEART_1 DT 0X00,0X00,0X80,0X00,0XD0,0X08,0X98,0X28 GONG DT 0X20,0X29,0X40,0X2A,0X08,0XFC,0XFC,0X29 DT 0X00,0XF8,0X40,0X2C,0X38,0X6A,0X18,0X29 DT 0XA8,0X08,0X50,0X18,0X00,0X08,0X00,0X00 DT 0X40,0X00,0XC0,0X00,0X80,0X11,0X08,0X52 XI DT 0XF8,0X5F,0X00,0X53,0XC0,0X10,0X80,0X10 DT 0XB8,0X10,0XE8,0X5F,0XA8,0X5A,0XA8,0XFA DT 0XE8,0X5F,0XB8,0X50,0X80,0X11,0X80,0X00 DT 0X00,0X04,0X00,0X00,0X10,0X24,0XD8,0X59 FA DT 0X48,0X55,0X48,0X55,0X78,0X67,0X08,0X01 DT 0X48,0X47,0X68,0X24,0X50,0X37,0X68,0X49 DT 0X08,0X1B,0X18,0X25,0X08,0X04,0X00,0X06 DT 0X00,0X00,0X08,0X00,0XD8,0X7F,0X60,0X4A CAI DT 0X40,0X4A,0X60,0X4A,0XD8,0X7F,0X08,0X00 DT 0X40,0X20,0X80,0X21,0X10,0X23,0X18,0X24 DT 0XF8,0X7F,0X00,0X20,0X00,0X20,0X00,0X00 BLANK BLANK END 第 10 頁