⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rem.lst

📁 10首儿歌音乐的程序源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 186  0059                    KEY_ROW_0:
 187  0059  0426                XOR     A,RAMA             ; Check HANG HANG HANG Multi-Key FOR EX PB=1010 1111 2KEY
 188  005A  3D0A                SZ      STA_Z              ; PBVALUE=RAMA ?
 189  005B  2800     R          JMP     COL_WITH_KEY       ; =  IS 1KEY
 190  005C                  COL_ERROR_KEY:
 191  005C  30B4                SET     MultiBIT           ; = IS 2-8 KEY
 192  005D              
 193  005D                  COL_WITHOUT_KEY:
 194  005D  2800     R          NOP2
 195  005E  2800     R          NOP2
 196  005F  2800     R          NOP2                       ; TIMES DELAY
 197  0060  2800     R          JMP     READY_2_NEXT_COLUMN
 198  0061                  COL_WITH_KEY:
 199  0061  182A                RLA     SCANSTEP           ; \ KEYNUM CAL K1-K64 TO A
 200  0062  1885                RL      ACC                ; > SCANSTEP * 8 --> ACC
 201  0063  1885                RL      ACC                ; /
 202  0064  0327                ADD     A,RAMB
 203  0065  00AC                MOV     NOWKEY,A           ; KEY NUM CAL OVER K1-K64
 204  0066  3CB2                SZ      ReckeyBIT          ; CHECK LIE LIE LIE Multi-Key REC KEY BIT=0 ? FOR EX K1\K9 KNOB
 205  0067  30B4                SET     MultiBIT           ; <>0 DUO TIMES
 206  0068  30B2                SET     ReckeyBIT          ; =0 ONE TIME REV NO KEY
 207  0069                READY_2_NEXT_COLUMN:
 208  0069  14AA                INC     SCANSTEP           ; THIS LUN=8LIE  PA RL8
 209  006A  072A                MOV     A,SCANSTEP
 210  006B  0C08                XOR     A,008D
 211  006C  390A                SNZ      STA_Z
 212  006D  2800     R          JMP     NEXT_COLUMN        ; A=1-7
 213  006E  0001                CLR       WDT                        ; A=8 THIS LUN OVER
 214  006F                    ; === Scan Key Complete, Check key valid ? ===
 215  006F              CHECK_KEY_ACTIVE:
 216  006F  0001                CLR     WDT
 217  0070  10AC                SZ      NOWKEY             ; If NOWKEY = 00H, invalid key
 218  0071  2800     R          JMP     VALID_KEY_CHK      ; <>0 YES KEY
 219  0072  2800     R          JMP     INVALID_KEY_CHK    ; =0 NO KEY
 220  0073                 VALID_KEY_CHK:
 221  0073  10AB                SZ      PREKEY             ; Check New Key ?
 222  0074  2800     R          JMP     VALID_KEYC_PRO     ; OLD KEY
 223  0075  2800     R          JMP     KEY_DEB            ; NEW KEY PREKEY=0 CONFIRM 6 TIMES TO PREKEY=0FFH
 224  0076                 VALID_KEYC_PRO:
 225  0076  072C                MOV     A,NOWKEY           ; OLD KEY
 226  0077  042B                XOR     A,PREKEY           ; Check Repeat key
 227  0078  390A                SNZ      STA_Z
 228  0079  2800     R          JMP     VALID_SEND_KEY     ; OLD KEY <> NEWKEY
 229  007A                 VALID_RPSEND_KEY:               ; OLD KEY = NEWKEY <> 0
 230  007A  38B4                SNZ     MultiBIT           ; Check Multi-Key Clear NOWKEY
 231  007B  2800     R          JMP     REPEAT_KEY         ; (Multibit=0) & (OLD KEY = NEWKEY <> 0) REPEAT KEY
 232  007C  1F2C                CLR     NOWKEY             ; (Multibit=1) & (OLD KEY = NEWKEY <> 0)  DOU KEYS
 233  007D  0003                RET
 234  007E              
 235  007E                 REPEAT_KEY:
 236  007E  30B3                SET     RepeatBIT          ; SET Repeat Flag
 237  007F  2800     R          NOP2
 238  0080  2800     R          JMP     SET_VALIDFG
 239  0081                 VALID_SEND_KEY:                 ; OLD KEY <> NEWKEY <> 0
File: REM.ASM       Holtek Cross-Assembler  Version 2.86      Page 5

 240  0081  072B                MOV     A,PREKEY
 241  0082  0CFF                XOR     A,0FFH             ; Check Debounce END
 242  0083  390A                SNZ     STA_Z
 243  0084  2800     R          JMP     CHANG_KEY
 244  0085  34B3                CLR     RepeatBIT          ; PREKEY=OFFH IS 6 TIMES CONFIRM NEWKEY
 245  0086  072C                MOV     A,NOWKEY
 246  0087  00AB                MOV     PREKEY,A           ; PREKEY = NOWKEY  NEW KEYCODE SEND
 247  0088                 SET_VALIDFG:
 248  0088  30B1                SET     SENDBIT            ; SEND FLAG
 249  0089  0003                RET
 250  008A              
 251  008A                 CHANG_KEY:                      ; (OLD KEY <> NEWKEY <> 0) & (OLD KEY<>0FFH)
 252  008A  1F2E                CLR     KDTIME             ; ONE KEY AND ANOTHER KEY - CHUAN KEY
 253  008B  2800     R          JMP     RKEY_PRO           ; INVAILD KEY,CLR KD-TIME
 254  008C                 INVALID_KEY_CHK:
 255  008C  1F2E                CLR     KDTIME             ; NO KEY is  RL8 PB ALL=1111 1111  -NKDTIME=5TIME
 256  008D                 RKEY_PRO:
 257  008D  14AF                INC     NKDTIME            ; AT 5 RL8 LUN CAN CONFIM NO KEY
 258  008E  072F                MOV     A,NKDTIME
 259  008F  0C05                XOR     A,005D
 260  0090  390A                SNZ     STA_Z
 261  0091  2800     R          JMP     SCAN_KEY_MATRIX    ; <>5 CLR ALL , NEW SCAN-KEY
 262  0092  15AF                DEC     NKDTIME            ; =5 TIME -1  FOR (OLD KEY <> NEWKEY <> 0) & (OLD KEY<>0FFH)
 263  0093                 NO_KEY_PROC:                    ; UP: FOR (ONE KEY AND ANOTHER KEY - CHUAN KEY) / (NO KEY)
 264  0093  34B1                CLR     SENDBIT            ; NO SENDBIT
 265  0094  2800     R          NOP2
 266  0095  2800     R          NOP2
 267  0096  0001                CLR     WDT
 268  0097  072C                MOV     A,NOWKEY           ; EXIT_INVALID_KEY: Clear PREKEY
 269  0098  00AB                MOV     PREKEY,A           ; NO KEY NOWKEY=0
 270  0099  2800     R          NOP2
 271  009A  0003                RET
 272  009B              
 273  009B                 KEY_DEB:                        ; NOWKEY<>0,PREVKEY=0     NEWKEY
 274  009B  14AE                INC     KDTIME             ; Check Key Debounce  T1=455KHz/4=116480Hz = 8.79us
 275  009C  072E                MOV     A,KDTIME
 276  009D  0C06                XOR     A,6
 277  009E  390A                SNZ     STA_Z
 278  009F  2800     R          JMP     SCAN_KEY_MATRIX    ; KDTIME<>6,CLR ALL - SCAN-KEY
 279  00A0  0FFF                MOV     A,0FFH             ; SAVE KEY Debounce Check END
 280  00A1  00AB                MOV     PREKEY,A           ; 0FFH to PREKEY -- SCAN-KEY
 281  00A2  2800     R          JMP     SCAN_KEY_MATRIX
 282  00A3              
 283  00A3                   ; === TIME DELAY PROCEDURE  Delay 10*ACC+5 Instruction Cycle  ===
 284  00A3              F_DELAY:
 285  00A3  10AE                SZ      KDTIME
 286  00A4  2800     R          JMP     NEWK_D             ; KD-TIME <> 0
 287  00A5  072F                MOV     A,NKDTIME          ; KD-TIME=0 Release Confirm time offset delay
 288  00A6  00A9                MOV     RAMD,A
 289  00A7                  BLANK_DELAY_00:
 290  00A7  14A9                INC     RAMD
 291  00A8  0729                MOV     A,RAMD             ; NKDTIME=5 ?
 292  00A9  0C05                XOR     A,005D
 293  00AA  3D0A                SZ      STA_Z
 294  00AB  2800     R          JMP     BLANK_DELAY_010    ; =5
 295  00AC  0F9A                MOV     A,154D             ; <>5    ORIGIN=155D 
 296  00AD                  BLANK_DELAY_01:
 297  00AD  1785                SDZ     ACC
 298  00AE  2800     R          JMP     BLANK_DELAY_01     ; DELAY
 299  00AF  0001                CLR     WDT
File: REM.ASM       Holtek Cross-Assembler  Version 2.86      Page 6

 300  00B0  2800     R          JMP     BLANK_DELAY_00
 301  00B1                  BLANK_DELAY_010:               ; NKDTIME=5
 302  00B1  1F2F                CLR     NKDTIME            ; NKDTIME=0
 303  00B2  0F01                MOV     A,1                ; OFFSET TIME DELAY
 304  00B3  00A9                MOV     RAMD,A
 305  00B4                  BLANK_DELAY_02:
 306  00B4  0F25                MOV     A,037D
 307  00B5                  BLANK_DELAY_03:
 308  00B5  0001                CLR     WDT
 309  00B6  1785                SDZ     ACC
 310  00B7  2800     R          JMP     BLANK_DELAY_03
 311  00B8  17A9                SDZ     RAMD
 312  00B9  2800     R          JMP     BLANK_DELAY_02
 313  00BA  0003                RET
 314  00BB               NEWK_D:                           ; KDTIME<>0 -> NO DELAY  New Key No Time Offset Delay
 315  00BB  1F2E                CLR     KDTIME
 316  00BC  0003                RET
 317  00BD                   ; === Send Remote Code ===
 318  00BD              SEND_REMOTE_CODE:
 319  00BD  0001                CLR     WDT                ; CHECK VALIDITY KEY
 320  00BE  3CB1                SZ      SENDBIT
 321  00BF  2800     R          JMP     READY_SEND
 322  00C0  0003                RET
 323  00C1              
 324  00C1              ; ====   M3010 PHILIPS.FORMAT (Remote 64KEY)   OSC:429KHz CARRY:36KHz
 325  00C1              ;  ** HT48RA0A 455K  T1=4/455K=8.791US 
 326  00C1              ;  ** 4P30 432K(CAR=1/12Fosc=36K 25%ZKB) 1BIT=3X2(8)X1/432K=1.778MS 
 327  00C1                READY_SEND:
 328  00C1  072C                MOV     A,NOWKEY           ; READ KEY DATA
 329  00C2  0087                MOV     TBLP,A             ; TABLE LOW 8BIT ADR
 330  00C3  1DB6                TABRDL  REM_DATCODE        ; LAST PAGE 0300H; RL REM_DATCODE; RL REM_DATCODE               
 331  00C4  0708                MOV     A,TBLH             ; UP:REM_DATCODE=6BIT DATA ,THIS IS READ 5BIT SYSTEM CODE
 332  00C5  1885                RL      ACC
 333  00C6  1885                RL      ACC
 334  00C7  1885                RL      ACC
 335  00C8  00B7                MOV     REM_SYSCODE,A      ; SAVE AS SYSCODE
 336  00C9                      ;      SZ    REM_SYSCODE.0
 337  00C9                      ;      JMP   REMOTECAR        ; 4ge 500hz(3/4)&n(REM_DATCODE) ge 1khz(1/2)
 338  00C9  38B3                SNZ     RepeatBIT
 339  00CA  14B8                INC     CONBIT_DAT         ; CONBIT_DAT.0= 1&0 REPEAT=0(NEW KEY)             
 340  00CB  18B6                RL      REM_DATCODE
 341  00CC  18B6                RL      REM_DATCODE
 342  00CD                   ; == Starting send M3010 Remote code ==
 343  00CD                SEND_M3010:                      ; REPEAT=1 OR 0     110 00000 001101 --> 111 00000 001101
 344  00CD  1636                SIZA    REM_DATCODE        ; +1-> A CHECK NO KEY CODE 0FFH
 345  00CE  2800     R          JMP     SAT_BIT1
 346  00CF  0003                RET
 347  00D0                         ; ***** 4 ge 500hz(3low1high) rem_datcode ge 1k(1/2)  total 6cycle
 348  00D0                      ;REMOTECAR:        
 349  00D0                      ;           MOV     A,00AH
 350  00D0                      ;           SNZ     REM_DATCODE.6  ;  Ge 1Khz fa 4cycle 
 351  00D0                      ;           JMP     TOGETH         ; =0 10 Cycle          
 352  00D0                      ;           MOV     A,008D         ; 8 cycle
 353  00D0                      ; TOGETH: 
 354  00D0                      ;           MOV     RAMD,A                   
 355  00D0                      ; STACAR:   CLR     WDT
 356  00D0                      ;           SZ      RepeatBIT
 357  00D0                      ;           JMP     CAREND
 358  00D0                      ;           MOV     A,REM_DATCODE
 359  00D0                      ;           MOV     RAMB,A         ; n ge 1kHz
File: REM.ASM       Holtek Cross-Assembler  Version 2.86      Page 7

 360  00D0                      ;           MOV     A,004D         ; 4 ge 500hz
 361  00D0                      ;           MOV     RAMC,A  
 362  00D0                      ; FA500HZ:
 363  00D0                      ;           SET     REM            ; NO Fa
 364  00D0                      ;           MOV     A,58D          ; JISHOU 1.5MS  HIGH                                   
 365  00D0                      ; YS150MS:                         
 366  00D0                      ;           SDZ     ACC
 367  00D0                      ;           JMP     YS150MS        ; [3*(A-1)+2+2] * 4/455 =1500  fact=1485.7(56D)  
 368  00D0                      ;           CLR     WDT                   
 369  00D0                      ;           CLR     REM            ; YES FA  WDT 2048X8.79US=18MS
 370  00D0                      ;           MOV     A,16D                                              
 371  00D0                      ; YS500MS:                         
 372  00D0                      ;           SDZ     ACC
 373  00D0                      ;           JMP     YS500MS        ; [3*(A-1)+2+5] * 4/455 =500  fact=509.9+8.79(18D)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -