📄 t6620.lst
字号:
0001 ;ProgramTEST for SH66P20
0002
0003 ; Date 2003.11.29
0004
0005 ; AuthorWilliam Guo
0006
0007 LIST P=69P20
0008
0009 TITLE T6620
0010
0011 ; Define Symbols
0012
0013 ; 00h->1fhSystem RAM for Register 32*4bit
0014 0000 IE EQU 0
0015 0001 IRQ EQU 1
0016 0002 TM0MOD EQU 2
0017 0004 T0L EQU 4
0018 0005 T0H EQU 5
0019
0020 0008 PORTA EQU 8
0021 0009 PORTB EQU PORTA+1
0022 000A PORTC EQU PORTA+2
0023
0024 000E TBR EQU PORTA+6
0025 000F INX EQU PORTA+7
0026
0027 0010 DPTRL EQU 10H
0028 0011 DPTRM EQU DPTRL+1
0029 0012 DPTRH EQU DPTRL+2
0030
0031
0032 0016 PAOUT EQU 16H
0033 0017 PBOUT EQU PAOUT+1
0034 0018 PCOUT EQU PAOUT+2
0035 0019 PLCTL EQU 19H
0036
0037
0038 001E WDT EQU 1EH
0039
0040 ;20h->5Fh USER RAM 64*4 Bit
0041 0020 ACCBUF EQU 20H
0042 0021 CT0 EQU 21H
0043 0022 CT1 EQU 22H
0044 0023 CT2 EQU 23H
0045 0024 PARM EQU 24H
0046
0047 0025 IRCNTH EQU 25H
0048 0026 IRCNTL EQU 26H
0049 0027 IRTEMP EQU 27H
0050 0028 IRRES EQU 28H
0051
0052 0030 IRC0 EQU 30H
0053 0031 IRC1 EQU IRC0+1
0054 0032 IRC2 EQU IRC0+2
0055 0033 IRC3 EQU IRC0+3 ;4*4=16BIT Custom CODE
0056 0034 IRD0H EQU IRC0+4
0057 0035 IRD0L EQU IRC0+5 ;2*4=8BITIR Data CODE
0058 0036 IRD1H EQU IRC0+6
0059 0037 IRD1L EQU IRC0+7 ;2*4=8BITIR Invert Data CODE
0060
0061
0062 0040 PS2INH EQU 40H
0063 0041 PS2INL EQU PS2INH+1
0064 0042 PS2CNTL EQU 42H
0065 0043 PS2SNDH EQU 43H
0066 0044 PS2SNDL EQU 44H
0067 0047 PS2RET EQU 47H
0068 0048 PS2TEMP EQU 48H
0069 0049 PS2BUF EQU 49H
0070
0071 003A CMP0H EQU 3AH
0072 003B CMP0L EQU 3BH
0073 003C CMP1H EQU 3CH
0074 003D CMP1L EQU 3DH
0075 003E KEYCNT EQU 3EH
0076
0077 ;MARSK
0078 000D MPS2CLK0EQU 1101B
0079 0002 MPS2CLK1EQU 0010B
0080 000B MPS2D0 EQU 1011B
0081 0004 MPS2D1 EQU 0100B
0082 0005 KEYTHRS EQU 05H
0083 0300 TABCH EQU 0300H
0084 0370 TABFN EQU 0370H
0085 0007 FNOFF EQU 07H
0086 ; Port Assign
0087
0088 ; Program Begins
0089
0090 0000 ORG 0
0091
0092 0000 E010 JMP INI
0093
0094 0001 D400 RTNI
0095 0002 D400 RTNI
0096 0003 D400 RTNI
0097 0004 D400 RTNI
0098
0099 0010 ORG 10h
0100
0101 0010 INI:
0102 0010 FFFF NOP
0103 0011 FFFF NOP
0104 0012 FFFF NOP
0105
0106 0013 C129 CALL INITMCU
0107 ;CALL INITWDT
0108 ;LDI PARM,0AH;上电延时100mS之后启动
0109 ;CALL DELAY_N_10mS
0110
0111 0014 MAIN_SELFTEST:
0112 0014 7D43 LDI PS2SNDH,0AH
0113 0015 7D44 LDI PS2SNDL,0AH
0114 0016 C1FC CALL PS2OUTB ;发送自检Pass指令
0115 0017 3847 LDA PS2RET
0116 0018 8014 BNZ MAIN_SELFTEST
0117
0118 0019 MAIN_LOOP:
0119 0019 C138 CALL RSTWDT
0120
0121
0122 001A C270 CALL PS2INB
0123 001B 3847 LDA PS2RET
0124 001C 805F BNZ MAIN_LOOP_YAOKONG
0125
0126 001D 78A4 LDI PARM,1
0127 001E C142 CALL DELAY_N_mS
0128
0129 001F 3840 LDA PS2INH
0130 0020 3C3A STA CMP0H
0131 0021 3841 LDA PS2INL
0132 0022 3C3B STA CMP0L
0133
0134 0023 7F3C LDI CMP1H,0EH
0135 0024 7F3D LDI CMP1L,0EH
0136 0025 C13C CALL BYTECMP
0137 0026 802C BNZ MAIN_LOOP_CMD_1
0138 ;EE指令 ECHO
0139 0027 7F43 LDI PS2SNDH,0EH
0140 0028 7F44 LDI PS2SNDL,0EH
0141 0029 C1FC CALL PS2OUTB ;发送响应指令
0142
0143 002A FFFF NOP
0144
0145 002B E019 JMP MAIN_LOOP
0146
0147 002C MAIN_LOOP_CMD_1:
0148 002C 7FBC LDI CMP1H,0FH
0149 002D 793D LDI CMP1L,02H
0150 002E C13C CALL BYTECMP
0151 002F 803F BNZ MAIN_LOOP_CMD_2
0152 ;F2指令 ID
0153 0030 7FC3 LDI PS2SNDH,0FH
0154 0031 7D44 LDI PS2SNDL,0AH
0155 0032 C1FC CALL PS2OUTB ;发送响应指令
0156
0157 0033 78A4 LDI PARM,1
0158 0034 C142 CALL DELAY_N_mS
0159
0160 0035 7D43 LDI PS2SNDH,0AH
0161 0036 7DC4 LDI PS2SNDL,0BH
0162 0037 C1FC CALL PS2OUTB ;ID BYTE1
0163
0164 0038 78A4 LDI PARM,1
0165 0039 C142 CALL DELAY_N_mS
0166
0167 003A 7C43 LDI PS2SNDH,08H
0168 003B 79C4 LDI PS2SNDL,03H
0169 003C C1FC CALL PS2OUTB ;ID BYTE2
0170
0171 003D FFFF NOP
0172
0173 003E E019 JMP MAIN_LOOP
0174 003F MAIN_LOOP_CMD_2:
0175 003F 7FBC LDI CMP1H,0FH
0176 0040 7FBD LDI CMP1L,0FH
0177 0041 C13C CALL BYTECMP
0178
0179 0042 804F BNZ MAIN_LOOP_CMD_3
0180 0043 78A4 LDI PARM,1
0181 0044 C142 CALL DELAY_N_mS
0182 0045 7FC3 LDI PS2SNDH,0FH
0183 0046 7D44 LDI PS2SNDL,0AH
0184 0047 C1FC CALL PS2OUTB ;发送响应指令
0185
0186 0048 78A4 LDI PARM,1
0187 0049 C142 CALL DELAY_N_mS
0188
0189 004A 7D43 LDI PS2SNDH,0AH
0190 004B 7D44 LDI PS2SNDL,0AH
0191 004C C1FC CALL PS2OUTB
0192
0193 004D FFFF NOP
0194 004E E019 JMP MAIN_LOOP
0195
0196 004F MAIN_LOOP_CMD_3:
0197 004F 7FBC LDI CMP1H,0FH
0198 0050 79BD LDI CMP1L,03H
0199 0051 C13C CALL BYTECMP
0200
0201 0052 805A BNZ MAIN_LOOP_CMD_ALL
0202 0053 78A4 LDI PARM,1
0203 0054 C142 CALL DELAY_N_mS
0204
0205 0055 7FC3 LDI PS2SNDH,0FH
0206 0056 7D44 LDI PS2SNDL,0AH
0207 0057 C1FC CALL PS2OUTB ;发送响应指令
0208 0058 FFFF NOP
0209 0059 E019 JMP MAIN_LOOP
0210 005A MAIN_LOOP_CMD_ALL:
0211 ;不解释的指令全部返回FA
0212 005A 7FC3 LDI PS2SNDH,0FH
0213 005B 7D44 LDI PS2SNDL,0AH
0214 005C C1FC CALL PS2OUTB ;发送响应指令
0215
0216 005D FFFF NOP
0217
0218 005E E019 JMP MAIN_LOOP
0219
0220 005F MAIN_LOOP_YAOKONG:
0221 005F C180 CALL YAOKONG
0222 0060 3828 LDA IRRES,00H
0223 0061 9019 BAZ MAIN_LOOP
0224
0225 0062 50A8 SBI IRRES,01H
0226 0063 8019 BNZ MAIN_LOOP
0227
0228 0064 3834 LDA IRD0H,00H
0229 0065 3C0E STA TBR,00H
0230 0066 3835 LDA IRD0L,00H
0231 0067 C2FF CALL TABCH-1
0232 0068 3C44 STA PS2SNDL,00H
0233 0069 380E LDA TBR,00H
0234 006A 3C43 STA PS2SNDH,00H
0235
0236 006B MAIN_LOOP_YK_1:
0237 006B C1FC CALL PS2OUTB
0238 006C 3847 LDA PS2RET
0239 006D 806B BNZ MAIN_LOOP_YK_1 ;发送第一字节
0240
0241
0242 006E 78A4 LDI PARM,1
0243 006F C142 CALL DELAY_N_mS
0244
0245
0246
0247 0070 5743 SBI PS2SNDH,0EH
0248 0071 887F BNC MAIN_LOOP_YK_3
0249
0250 0072 3834 LDA IRD0H,00H
0251 0073 3C0E STA TBR,00H
0252 0074 4B8E ADIM TBR,FNOFF
0253 0075 3835 LDA IRD0L,00H
0254 0076 C36F CALL TABFN-1
0255 0077 3C44 STA PS2SNDL,00H
0256 0078 380E LDA TBR,00H
0257 0079 3C43 STA PS2SNDH,00H
0258
0259 007A MAIN_LOOP_YK_2:
0260 007A C1FC CALL PS2OUTB
0261 007B 3847 LDA PS2RET
0262 007C 807A BNZ MAIN_LOOP_YK_2
0263
0264 007D 78A4 LDI PARM,1
0265 007E C142 CALL DELAY_N_mS
0266
0267 007F MAIN_LOOP_YK_3:
0268 007F 7FA4 LDI PARM,0FH
0269 0080 C142 CALL DELAY_N_mS
0270 0081 7AA4 LDI PARM,05H
0271 0082 C142 CALL DELAY_N_mS
0272 0083 7FA4 LDI PARM,0FH
0273 0084 C142 CALL DELAY_N_mS
0274
0275 0085 3834 LDA IRD0H,00H
0276 0086 3C0E STA TBR,00H
0277 0087 3835 LDA IRD0L,00H
0278 0088 C2FF CALL TABCH-1
0279 0089 3C44 STA PS2SNDL,00H
0280 008A 380E LDA TBR,00H
0281 008B 3C43 STA PS2SNDH,00H
0282
0283 008C 5743 SBI PS2SNDH,0EH
0284 008D 80AC BNZ MAIN_LOOP_YK_7
0285 008E 5044 SBI PS2SNDL,00H
0286 008F 80AC BNZ MAIN_LOOP_YK_7
0287 ;若发送码为E0H,这样发送
0288
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -