?? receving_wnv_07.asm
字號:
;; 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 + -