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

📄 receving_wnv_07.asm

📁 红外线万能接收机
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;;                RECEVING_V00             ;;
;;*****        THE CPU IS HT48E06    ******;;
;;******  This program is EMC_receving  ***;;
;;              _____ ______               ;;
;;             |。   V      |              ;;
;;      K1 >---| PA3    PA4 |----< CH2     ;;
;;   RELAY <---| PA2    PA5 |----< CH1     ;;
;;   IR_in <---| PA1    PA6 |----          ;;
;;   LED_R <---| PA0    PA7 |---->         ;;
;;     GND >---| PB2   OSC2 |----          ;;
;;   LED_G <---| PB1   OSC1 |----          ;;
;;     CH3 >---| PB0    VDD |----          ;;
;;          ---| GND    RES |----          ;;
;;     MAB >---| PC0    PC1 |----          ;;
;;             |____________|              ;;
;;                                         ;;
;;*****************************************;;
;;                SFR_ACER                 ;;
;;*****************************************;;
IAR0              EQU          [0000H]     ;;
MP0               EQU          [0001H]     ;;
IAR1              EQU          [0002H]     ;;
MP1               EQU          [0003H]     ;;
BP                EQU          [0004H]     ;;
ACC               EQU          [0005H]     ;;
PCL               EQU          [0006H]     ;;
TBLP              EQU          [0007H]     ;;
TBLH              EQU          [0008H]     ;;
WDTS              EQU          [0009H]     ;;
STATUS            EQU          [000AH]     ;;
INTC              EQU          [000BH]     ;;
TMR               EQU          [000DH]     ;;
TMRC              EQU          [000EH]     ;;
PA                EQU          [0012H]     ;;
PAC               EQU          [0013H]     ;;
PB                EQU          [0014H]     ;;
PBC               EQU          [0015H]     ;;
PC                EQU          [0016H]     ;;
PCC               EQU          [0017H]     ;;
EECR              EQU          [0140H]     ;;
                                           ;;
cREAD	          EQU        11000000B     ;;
cERASE            EQU        11100000B     ;;
cWRITE            EQU        10100000B     ;;
cEWEN             EQU        10000000B     ;;
cEWDS             EQU        10000000B     ;;
cERAL             EQU        10000000B     ;;
cWRAL             EQU        10000000B     ;;
;;*****************************************;;
;;                BIT_ACER                 ;;
;;*****************************************;;
BP0               EQU          [0004H].0   ;;
EMI               EQU          [000BH].0   ;;
EEI               EQU          [000BH].1   ;;
ETI               EQU          [000BH].2   ;;
EIF               EQU          [000BH].4   ;;
 TF               EQU          [000BH].5   ;;
                                           ;;
TON               EQU          [000EH].4   ;;
                                           ;;
CY                EQU          [000AH].0   ;;
AC                EQU          [000AH].1   ;;
AZ                EQU          [000AH].2   ;;
OV                EQU          [000AH].3   ;;
                                           ;;
PA0               EQU          [0012H].0   ;;
PA1               EQU          [0012H].1   ;;
PA2               EQU          [0012H].2   ;;
PA3               EQU          [0012H].3   ;;
                                           ;;
PA4               EQU          [0012H].4   ;;
PA5               EQU          [0012H].5   ;;
PA6               EQU          [0012H].6   ;;
PA7               EQU          [0012H].7   ;;
PB0               EQU          [0014H].0   ;;
PB1               EQU          [0014H].1   ;;
PB2	              EQU          [0014H].2   ;;
PC0               EQU          [0016H].0   ;;
PC1               EQU          [0016H].1   ;;
;CS               EQU          [0140H].4   ;;
;SK               EQU          [0140H].5   ;;
;DI               EQU          [0140H].6   ;;
;DO               EQU          [0140H].7   ;;
                                           ;;
CS	              EQU             IAR1.4   ;;
SK	              EQU             IAR1.5   ;;
DI	              EQU             IAR1.6   ;;
DO	              EQU             IAR1.7   ;;
                                           ;;
;;*****************************************;;
;;                DATA_ACER                ;;
;;*****************************************;; *** 0040H ***
COUNT_LOOPT       EQU          [0040H]     ;;
COUNT_LOOPN       EQU          [0041H]     ;;
DELAY_R1          EQU          [0042H]     ;;
DELAY_R0          EQU          [0043H]     ;;
CHANHH            EQU          [0044H]     ;;
CHANHL            EQU          [0045H]     ;;
CHANLH            EQU          [0046H]     ;;
CHANLL            EQU          [0047H]     ;;
EEADDR		      EQU          [0048H]     ;; *** EEPROM_REGISTER ***
EEDATA		      EQU          [0049H]     ;;
EE_CNT		      EQU          [004AH]     ;;
EE_BUF            EQU          [004BH]     ;;
COUNT_LOOPEE      EQU          [004CH]     ;;
COUNT_WAITEE      EQU          [004DH]     ;;
                                           ;;
;;*****************************************;; *** 0070H ***
DATA_RECHH        EQU          [0070H]     ;;
DATA_RECHL        EQU          [0071H]     ;;
DATA_RECLH        EQU          [0072H]     ;;
DATA_RECLL        EQU          [0073H]     ;;
PASSHH            EQU          [0074H]     ;;
PASSHL            EQU          [0075H]     ;;
PASSLH            EQU          [0076H]     ;;
PASSLL            EQU          [0077H]     ;;
COUNT_LOOPW       EQU          [0078H]     ;;
COUNT_ELARN       EQU          [0079H]     ;;
COUNT_LEDG        EQU          [007AH]     ;;
COUNT_MODE        EQU          [007BH]     ;;
COUNT_EXT         EQU          [007CH]     ;;
COUNT_DATA        EQU          [007DH]     ;;
DATAH             EQU          [007EH]     ;;
DATAL             EQU          [007FH]     ;;
;;*****************************************;;
;;                BIT_ACER                 ;;
;;*****************************************;;   
DATA_FLAG         EQU          [004EH]     ;;
RITE_ON           EQU          [004EH].0   ;; *** BIT0: RITE_ON ***
READ_ON           EQU          [004EH].1   ;; *** BIT1: READ_ON ***
EWEN_ON           EQU          [004EH].2   ;; *** BIT2: EWEN_ON ***
TMRC_ST           EQU          [004EH].3   ;; *** BIT3: TMRC_ST ***
LEDR_ST           EQU          [004EH].4   ;; *** BIT4: LEDR_ST ***
LEDG_ST           EQU          [004EH].5   ;; *** BIT5: LEDG_ST ***
RELY_ST           EQU          [004EH].6   ;; *** BIT6: RELY_ST ***
SCAN_TY           EQU          [004EH].7   ;; *** BIT7: SCAN_TY ***
                                           ;;
CONTROL_FLAG      EQU          [004FH]     ;;
SCAN_ON           EQU          [004FH].0   ;; *** BIT0: SCAN_ON *** 
ELAN_ON           EQU          [004FH].1   ;; *** BIT1: ELAN_ON ***
EXTE_ON           EQU          [004FH].2   ;; *** BIT2: EXTE_ON ***
REIN_ON           EQU          [004FH].3   ;; *** BIT3: REIN_ON ***
DATA_ON           EQU          [004FH].4   ;; *** BIT4: DATA_ON ***
CMPA_ON           EQU          [004FH].5   ;; *** BIT5: CMPA_ON ***
LEDR_ON           EQU          [004FH].6   ;; *** BIT6: LEDR_ON ***
KBOD_ON           EQU          [004FH].7   ;; *** BIT7: KBOD_ON ***
                                           ;;                                         
;;*****************************************;;
          ORG     0000H                    ;;
          JMP     START                    ;;
          ORG     0004H                    ;;
          JMP     START                    ;;
          ORG     0008H                    ;;
          JMP     INTERRUPT_TMR            ;;
                                           ;;
START:                                     ;;
          CLR     WDT                      ;;
         CALL     FORMAT_RAM               ;;
         CALL     FORMAT_SYS               ;;
         CALL     CONFIG_RAM               ;;
         CALL     EWEN                     ;;
         CALL     EEPROM_READ              ;;
                                           ;;
MAIN:                                      ;;
          NOP                              ;;
          CLR     WDT                      ;;
         CALL     KEYSCAN_BOARD            ;;
         CALL     CONTROL_ELARN            ;;
         CALL     EXTEMBER_END             ;;
         CALL     RECEVING_DATA            ;;
         CALL     COMPAER_DATA             ;;
         CALL     EWEN                     ;;
         CALL     EEPROM_WRITE             ;;
         CALL     EEPROM_READ              ;;
         CALL     CONTROL_TIMER            ;;
                                           ;;
          JMP     MAIN                     ;;
          JMP     START                    ;;
                                           ;;
;;*****************************************;;
;;                INTERRUPT_AREA           ;;
;;*****************************************;;
INTERRUPT_TMR:                             ;;
          INC     COUNT_LEDG               ;; 
          INC     COUNT_MODE               ;;   
          SET     TMRC_ST                  ;;
RETI                                       ;;
                                           ;;
;;*****************************************;;
;;                FUNCTION_AREA            ;;
;;*****************************************;;
FORMAT_RAM:                                ;;
          NOP                              ;;
          CLR     BP                       ;;
          MOV     A,             003FH     ;;
          MOV     COUNT_LOOPT,       A     ;;
          MOV     A,             0041H     ;;
          MOV     MP0,               A     ;;
CLRRAM_LOOP:                               ;;
          CLR     IAR0                     ;;
          INC     MP0                      ;;
          SDZ     COUNT_LOOPT              ;;
          JMP     CLRRAM_LOOP              ;;
RET                                        ;;
                                           ;;
;;*****************************************;;
FORMAT_SYS:                                ;;
          NOP                              ;;
          MOV     A,             003AH     ;; 
          MOV     PAC,               A     ;;
          MOV     A,             0000H     ;;
          MOV     PA,                A     ;;
                                           ;;
          MOV     A,             0001H     ;; 
          MOV     PBC,               A     ;;
          MOV     PB,                A     ;;
          MOV     A,             0000H     ;;
                                           ;;
          MOV     A,             0001H     ;;
          MOV     PCC,               A     ;;
          MOV     PC,                A     ;;
                                           ;;
          MOV     A,             0087H     ;;
          MOV     TMRC,              A     ;;
          MOV     A,             0005H     ;;
          MOV     INTC,              A     ;;
          CLR     TMR                      ;;
          SET     EMI                      ;;
                                           ;;
RET                                        ;;
                                           ;;
;;*****************************************;;
CONFIG_RAM:                                ;;
          NOP                              ;;
          MOV     A,             000AH     ;;
          MOV     COUNT_LOOPW,       A     ;;
          CLR     RITE_ON                  ;;
          SET     READ_ON                  ;;
          SET     EWEN_ON                  ;;
          CLR     TMRC_ST                  ;;
          CLR     LEDR_ST                  ;;
          CLR     PA0                      ;;
          CLR     LEDG_ST                  ;;
          CLR     PB1                      ;;
          CLR     RELY_ST                  ;;
          CLR     PA2                      ;;
          CLR     SCAN_TY                  ;;
                                           ;;
          SET     SCAN_ON                  ;; 0
          CLR     ELAN_ON                  ;; 1
          CLR     EXTE_ON                  ;; 2
          CLR     REIN_ON                  ;; 3
          CLR     DATA_ON                  ;; 4
          CLR     CMPA_ON                  ;; 5
                                           ;;
          CLR     KBOD_ON                  ;; 7
                                           ;;
RET                                        ;;
                                           ;;
;;*****************************************;;
KEYSCAN_BOARD:                             ;;
          NOP                              ;;
          SNZ     CONTROL_FLAG.0           ;; *** EMI *******
          JMP     KEYSCAN_EXIT             ;;
           SZ     DATA_FLAG.7              ;; *** SCAN_TY ***
          JMP     MODE_ELARN               ;;
          SET     PA3                      ;; *** I/O DET ***
           SZ     PA.3                     ;;
          JMP     KEYSCAN_FORMAT           ;;

⌨️ 快捷键说明

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