Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 4.7 4x4 鍵盤 每按一次鍵盤 控制七段顯示器. 2 ;PROGRAM : 4-7.ASM (4-7.PRJ) 2002.DEC.30. ;FUNCTION: 4X4 MATRIX KEYPAD DEMO PROGRAM BY STEVEN #INCLUDEHT46R23.INC.CHIPHT46R23.

Similar presentations


Presentation on theme: "1 4.7 4x4 鍵盤 每按一次鍵盤 控制七段顯示器. 2 ;PROGRAM : 4-7.ASM (4-7.PRJ) 2002.DEC.30. ;FUNCTION: 4X4 MATRIX KEYPAD DEMO PROGRAM BY STEVEN #INCLUDEHT46R23.INC.CHIPHT46R23."— Presentation transcript:

1 1 4.7 4x4 鍵盤 每按一次鍵盤 控制七段顯示器

2 2 ;PROGRAM : 4-7.ASM (4-7.PRJ) 2002.DEC.30. ;FUNCTION: 4X4 MATRIX KEYPAD DEMO PROGRAM BY STEVEN #INCLUDEHT46R23.INC.CHIPHT46R23 ;-------------------------------------------------------------------- MY_DATA.SECTION'DATA' ;== DATA SECTION == DEL1 DB ? ;DELAY LOOP COUNT 1 DEL2 DB ? ;DELAY LOOP COUNT 2 DEL3DB ?;DELAY LOOP COUNT 3 COUNTDB ? KEYDB ? ;KEY CODE REGISTER ;-------------------------------------------------------------------- SEG_PORTEQUPB;DEFINE 7-SEG PORT SEG_PORTCEQUPBC ;DEFINE 7-SEG PORT CONTROL REG. KEY_PORTEQUPA;DEFINE KEYPAD PORT KEY_PORTC EQUPAC;DEFINE KEY PORT VONTROL REG. MY_CODE.SECTIONAT 0'CODE' ;== PROGRAM SECTION == ORG 00H ;HT-46RXX RESET VECTOR CLRSEG_PORTC;CONFIG PA AS OUTPUT MODE

3 3 MAIN: CLR SEG_PORT;CLEAR DISPLAY CALL READ_KEY;READ KEYPAD MOVA,16 XORA,KEY SZZ;IS KEY NOT PRESSED(KEY=16)? JMP MAIN ;YES,RE-READ. MOVA,KEY CALLTRANS;GET 7 SEG DISPLAY CODE MOVSEG_PORT,A;DISPLAY KEY VALUE CALLDELAY;DELAY 1 SEC. JMPMAIN

4 4 ;******************************************************************** ; SCAN 4x4 MATRIX ON KEY PORT AND RETURN THE CODE IN KEY REGISTER ;IF NO KEY BEEN PRESSED, KEY=16. ;******************************************************************** READ_KEYPROC MOVA,11110000B MOVKEY_PORTC,A;CONFIG PORT B BIT 7-4 input BIT 3-0 output SETKEY_PORT;INITIAL PORT B CLRKEY;INITIAL KEY REGISTER MOVA,04 MOVCOUNT,A;SET ROW COUNTER CLR C;CLEAR CARRY FLAG

5 5 Key_port.4=0 按下 SCAN_KEY: RLCKEY_PORT;ROTATE SCANNING BIT SET C;MAKE SURE C=1 SNZ KEY_PORT.4;COLUMN 0 PRESSED? JMPEND_KEY;YES. INCKEY;NO, INCREASE KEY CODE. SNZ KEY_PORT.5;COLUMN 1 PRESSED? JMPEND_KEY;YES. INCKEY;NO, INCREASE KEY CODE. SNZ KEY_PORT.6;COLUMN 2 PRESSED? JMPEND_KEY;YES. INCKEY;NO, INCREASE KEY CODE. SNZ KEY_PORT.7;COLUMN 3 PRESSED? JMPEND_KEY;YES. INCKEY;NO, INCREASE KEY CODE. SDZCOUNT;HAVE ALL ROWs BEEN CHECKED? JMPSCAN_KEY;NO, NEXT ROW. END_KEY: RET READ_KEY ENDP

6 6 ;******************************************************************** ; Delay about DEL1(100)*10mS ;******************************************************************** DELAY PROC MOVA,100 MOVDEL1,A DEL_1: MOV A,30 MOV DEL2,A;SET DEL2 COUNTER DEL_2:MOVA,110 MOVDEL3,A;SET DEL3 COUNTER DEL_3: SDZ DEL3 ;DEL3 DOWN COUNT JMP DEL_3 SDZ DEL2 ;DEL2 DOWN COUNT JMP DEL_2 SDZDEL1;DEL1 DOWN COUNT JMPDEL_1 RET DELAYENDP

7 7 ;******************************************************************** ; RETURN THE TABLE VALUE INDEX BY A ;******************************************************************** TRANSPROC ADDMA,PCL RET A,00111111B;0 RETA,00000110B;1 RETA,01011011B;2 RET A,01001111B;3 RET A,01100110B;4 RETA,01101101B;5 RET A,01111101B;6 RET A,00000111B;7 RET A,01111111B;8 RET A,01100111B;9 RETA,01110111B;a RETA,01111100B;b RETA,01011000B;c RETA,01011110B;d RETA,01111001B;E RETA,01110001B;F TRANSENDP END


Download ppt "1 4.7 4x4 鍵盤 每按一次鍵盤 控制七段顯示器. 2 ;PROGRAM : 4-7.ASM (4-7.PRJ) 2002.DEC.30. ;FUNCTION: 4X4 MATRIX KEYPAD DEMO PROGRAM BY STEVEN #INCLUDEHT46R23.INC.CHIPHT46R23."

Similar presentations


Ads by Google