📄 daa.asm
字号:
;本程序为海尔的主板程序
;MCU=MOTO68HC08SR12
;----------------------------------
;-------include section----------------
;应用的头文件
;$Include 'sr12regs.inc'
PTA EQU $0000 ; Ports and data direction
PTB EQU $0001
PTC EQU $0002
PTD EQU $0003
DDRA EQU $0004
DDRB EQU $0005
DDRC EQU $0006
DDRD EQU $0007
;
LEDA EQU $000C
LEDC EQU $000D ; Port pull-up enables
AMCR EQU $000E
AMGCR EQU $000F
AMSCR EQU $0010 ; SPI (Syncronous communications)
SCC1 EQU $0013 ; SPI (Asyncronous communications)
SCC2 EQU $0014
SCC3 EQU $0015
SCS1 EQU $0016
SCS2 EQU $0017
SCDR EQU $0018
SCBR EQU $0019
KBSCR EQU $001a
KBIER EQU $001b
INTSCR2 EQU $001c ;
CONFIG2 EQU $001d ;
INTSCR1 EQU $001e ; System configuration
CONFIG1 EQU $001f
T1SC EQU $0020 ; Timer 1
T1CNTH EQU $0021
T1CNTL EQU $0022
T1MODH EQU $0023
T1MODL EQU $0024
T1SC0 EQU $0025
T1CH0H EQU $0026
T1CH0L EQU $0027
T1SC1 EQU $0028
T1CH1H EQU $0029
T1CH1L EQU $002a
T2SC EQU $002b ; Timer 2
T2CNTH EQU $002c
T2CNTL EQU $002d
T2MODH EQU $002e
T2MODL EQU $002f
T2SC0 EQU $0030
T2CH0H EQU $0031
T2CH0L EQU $0032
T2SC1 EQU $0033
T2CH1H EQU $0034
T2CH1L EQU $0035
PTCL EQU $0036 ; Phase lock loop (for crystals)
PBWC EQU $0037
PMSH EQU $0038
PMSL EQU $0039
PMRS EQU $003A
PMDS EQU $003B
TBCR EQU $0046
MMADR EQU $0048
MMCR1 EQU $0049
MMCR2 EQU $004A
MMSR EQU $004B
MMDTR EQU $004C
MDDRR EQU $004D
MMCRDR EQU $004E
MMFDR EQU $004F
PWMCR EQU $0051
PWMCCR EQU $0052
PWMDR0 EQU $0053
PWMDR1 EQU $0054
PWMDR2 EQU $0055
PWMPCR EQU $0056
ADSCR EQU $0057
ADCLK EQU $0058
ADRH0 EQU $0059
ADRL0 EQU $005A
ADRL1 EQU $005B
ADRL2 EQU $005C
ADRL3 EQU $005D
ADASCR EQU $005E ;
SBSR EQU $fe00 ; System integration
SRSR EQU $fe01
SBFCR EQU $fe03
INT1 EQU $fe04 ; Interrupt status
INT2 EQU $fe05
INT3 EQU $fe06
FLCR EQU $fe08
FLBPR EQU $fe09
BRKH EQU $FE0C
BRKL EQU $fe0D
BRKSCR EQU $fe0E
LVISR EQU $fe0F
MOR EQU $ff80
COPCTL EQU $ffff ; COP (Computer operating properly) control
;********************************************
;$Include 'haier.inc'
;常数定义
IOStart EQU $0000
RamStart EQU $0060
RomStart EQU $C000
VectorStart EQU $FFDA
;-----
TRUE EQU 1
FALSE EQU 0
;---A2D通道定义
CH_To EQU 0 ;;To
;CH_Tr EQU 3 ;;Tr
;CH_Te EQU 4 ;Te
;CH_Ta1 EQU 5 ;Ta1
;CH_Ta2 EQU 6 ;Ta2
;CH_DY EQU 2
CH_GG EQU 7
TEMPT_MIN0 EQU $4A
TEMPT_MAX0 EQU $F9
TEMPT_MIN EQU $30
TEMPT_MAX EQU $E2
;
PageSize equ 8T
mem_byte equ 48T;32 ;should be 8*n
FaxAddr equ 50H ;AFTER ROLC,IS A0H
PrgAddr equ 00H
;ram变量定义
;-----------RAM AREA DEFINE---------------
org RamStart
TX_BUFF RMB 16T
RX_BUFF RMB 16T
CRC_BUFF RMB 1
;--------timer ram define-------------------
T_t RMB 1 ;T_t
T_AD1S RMB 1
T_TX200MS RMB 1
T_RecErr RMB 1
T_REC50MS RMB 1
TIMING_ONH RMB 1
TIMING_ONM RMB 1
TIMING_OFFH RMB 1
TIMING_OFFM RMB 1
;T3_COM1 RMB 2
;T3_COM2 RMB 2
;T3_COM3 RMB 2
;T3_COM4 RMB 2
;COM_LJ1 RMB 2
;COM_LJ2 RMB 2
;COM_LJ3 RMB 2
;COM_LJ4 RMB 2
;COM_LJ0 RMB 2
NEW0 RMB 1
T_1S RMB 1
T_1M RMB 1
T_LFP RMB 1 ;内风机,冷却风机,水泵的开启间隔
DELAY_TIME RMB 1
;--------counter ram define-----------------
CNT_165 RMB 1
;--------Tx AND Rx BUFF--------
RX_DADT RMB 1
RX_COM RMB 1
CNT_TX RMB 1
CNT_RX RMB 1
TX_NUM RMB 1
RX_NUM RMB 1
CNT_COM RMB 1
;--------temperature ram define--------------
EC08_BUF RMB 1
TEMP_ToZ RMB 1
TEMP_Tr RMB 1
TEMP_Te RMB 1
TEMP_Ta1 RMB 1
TEMP_Ta2 RMB 1
;TMPT_SET RMB 1
;--------flag ram define--------------------
FLAG0 RMB 1
F_ONOFF EQU 7
F_PROBE_FAIL EQU 2
F_TIME_ON EQU 6
F_TIME_OFF EQU 5
;
FLAG1 RMB 1
F_STOP EQU 7 ;FLAG1:7
B_KEYR0 EQU 6 ;FLAG1:6
F_STORE_CLK EQU 5 ;FLAG1:5
F_STORE_E2P EQU 4 ;FLAG1:4
F_SELF EQU 3
F_SELF_START EQU 2
;
FLAG2 RMB 1
F_TXOK EQU 7 ;FLAG2:7
F_RXOK EQU 6 ;FLAG2:6
F_TX EQU 5 ;
F_RX EQU 4
F_TXRX EQU 3
R8 RMB 1
FLAGS0 RMB 1
;****************************
T_COM1 RMB 2
T_COM2 RMB 2
FDAN0 RMB 1
K_QQ RMB 1
K_yd RMB 1
FDAN RMB 1
OUT1 RMB 1
OUT2 RMB 1
FDAN3 RMB 1
SL_JC RMB 1
FDAN1 RMB 1
FDAN2 RMB 1
RX_CNT RMB 1
;--------work ram define--------------------
K1_165_BUF RMB 1
K2_165_buf RMB 1
;KEY_QZ RMB 1
JFLAG RMB 1
TIMES_DL RMB 1
T_MS RMB 1
T3_COM1 RMB 2
TIMES_PQ RMB 1
FLAG3 RMB 1
;TEMP_Ta1 RMB 1
XXIN RMB 1
XXTIME RMB 1
FLAGX RMB 1
T_PL RMB 1
TIMES_PL RMB 1
TIMES_PH RMB 1
FLAG_CS RMB 1
FGZDY RMB 1
K22_165 RMB 1
TEMP_Ts RMB 1
GZDY RMB 1
flagg RMB 1
POWER_M EQU 0
FLAG RMB 1
KEY_Q EQU 7
POWER EQU 0
FD_RUN EQU 6
;FIRST EQU 5
FLAG4 RMB 1
ERR_VALUE1 RMB 1
;ERR_VALUE2 RMB 1
;ERR_VALUE3 RMB 1
;ERR_VALUE4 RMB 1
;ERR_VALUE5 RMB 1
ERR_PH4 EQU 7;0
ERR_PH3 EQU 5;2
ERR_PH2 EQU 3;7
ERR_PH1 EQU 1;5
ERR_WAT EQU 3;7
ERR_FAN EQU 1;5
ERR_PL4 EQU 6;1
ERR_PL3 EQU 4;3
ERR_PL2 EQU 2;6
ERR_PL1 EQU 0;4
ERR_3PH EQU 2;6
ERR_TMP EQU 0;4
FLAG6 RMB 1
AD_CHANAL RMB 1
FLAG5 RMB 1
;SETEMP_H RMB 1
;SETEMP_C RMB 1
MODE RMB 1
K1_165 DS 1
K2_165 DS 1
WORN DS 1;回风温度
FLAG7 DS 1;设定温度
F_COMP1 EQU 7
F_COMP2 EQU 6
F_COMP3 EQU 5
F_COMP4 EQU 4
F_PUMP EQU 3
F_EHEAT1 EQU 2
F_EHEAT2 EQU 1
;
DS_SECOND RMB 1
DS_MINUTE RMB 1
DS_HOUR RMB 1
DS_DATE RMB 1
DS_MONTH RMB 1
DS_DAY RMB 1
DS_YEAR RMB 1
R0 RMB 1
R2 RMB 1
;-----------
E2P_ADDR RMB 1
MEM_BUFF0 RMB 1
SAX1 RMB 1 ;SA../8/7/6/5/4/3/2/1
SAX2 RMB 1 ;SA../././././././10/9
;
PC01 RMB 1
PC02 RMB 1
PC03 RMB 1
PC04 RMB 1
PC05 RMB 1
PC06 RMB 1
PC07 RMB 1
PC08 RMB 1
SP01 RMB 1
SP02 RMB 1
SP03 RMB 1
SP04 RMB 1
SP05 RMB 1
SP06 RMB 1
SP07 RMB 1
SP08 RMB 1
;TMPT_SETH RMB 1
;TMPT_SETC RMB 1
;
SC01 RMB 1
SC02 RMB 1
SC03 RMB 1
SC04 RMB 1
SC05 RMB 1
SC06 RMB 1
SC07 RMB 1
SC08 RMB 1
;
EP01 RMB 1
EP02 RMB 1
EP03 RMB 1
EP04 RMB 1
EP05 RMB 1
EP06 RMB 1
EP07 RMB 1
EP08 RMB 1
EC01 RMB 1
EC02 RMB 1
EC03 RMB 1
EC04 RMB 1
EC05 RMB 1
EC06 RMB 1
EC07 RMB 1
EC08 RMB 1
;
HF01 RMB 1
HF02 RMB 1
HF03 RMB 1
HF04 RMB 1
HF05 RMB 1
HF06 RMB 1
HF07 RMB 1
;MODE RMB 1
;
PAGE RMB 1
R7 RMB 1
NEW1 RMB 1
;*********************
;FDAN0 RMB 1
SWFJYS RMB 1
SB_20S RMB 1
SA04 RMB 1
f_ys RMB 1
GYJ_YS1 RMB 1
KYJ_YS1 RMB 1
KYJ_YS2 RMB 1
GYJ_YS2 RMB 1
QID_YS1 RMB 1
;QID_YS2 RMB 1
T_GSB RMB 1
GWFJ RMB 1
KFYS RMB 1
YS1_5S RMB 1
;YS2_5S RMB 1
T_STF RMB 1
HF08 RMB 1
FD_YX RMB 1
PH2_TIME RMB 1
PL2_TIME RMB 1
TEMP_ZH RMB 1
TEMP_WH RMB 1
T_5M RMB 1
RE_3M RMB 1
GSTF RMB 1
TEMP_PQ1 RMB 1
TEMP_PQ2 RMB 1
CS_WFJ_YS RMB 1
CS_COM1 RMB 1
CS_COM2 RMB 1
CS_COM3 RMB 1
ADDR RMB 1
CS_YS RMB 1
CX_COMMAND RMB 1
TEMP_TO RMB 1
TEMP_WP1 RMB 1
TEMP_WP1C RMB 1
TEMP_WP2 RMB 1
TEMP_WP2C RMB 1
COM_WORKING2 EQU 7
COM_WORKING1 EQU 6
COM_WORKING EQU 5
f_comm_err EQU 5
ST1 EQU 0
ST2 EQU 0
comp1 EQU 0
comp2 EQU 0
;PUMP EQU 0
WFJ EQU 0
ph1_on EQU 0
ph2_on EQU 1
SLKG EQU 1
;-----------------------------
TIMEOUT1 RMB 1 ; Allows three timeout routines to be called each of which
;-----口定义----------------------
LFAN EQU 2 ;PTD2,冷却风机
PUMP EQU 1 ;PTD1,冷却水泵
FAN EQU 3 ;PTC3,室内风机
COMP EQU 0;pd7;6 ;PA6,压缩机1
;-----------------
SCL EQU 5;C5
SDA EQU 4;C4
SDA_DR EQU 4;DDRC4
;----------------
LEDRUN EQU 1;C1
LEDERR EQU 2;C2
LEDTXRX EQU 7;A7
;--------
DSCLK EQU 0;PTC0
DSRST EQU 5;PTD5
DSDATA EQU 6;PTD6
DS_IO EQU 6;DDRD:6
ENTXRX EQU 0;PTD:4
;--------
JMP1 EQU 6;A6
JMP2 EQU 7;D7
;---------
SH165_LD EQU 1;B4
SH165_CLK EQU 2;B5
SH165_QH EQU 3;B6
T_1MS RMB 1
AD_01 RMB 1
AD_02 RMB 1
AD_03 RMB 1
AD_04 RMB 1
T0_COM1 RMB 1
T_DELAY1 RMB 1
T_DELAY2 RMB 1
T_DELAY3 RMB 1
;T_10 RMB 1
;T_PH1 RMB 1
T_PL1 RMB 1
COM_N RMB 1
COM_N_SET RMB 1
;T_LFP1 RMB 1
com_1 RMB 1
err_com RMB 1
FD_T1 RMB 1
COM_OPEN_BUF RMB 1
TT_COM RMB 1
NEW2 RMB 1
T_ROOM RMB 1
T_TUR1 RMB 1
T_TUR2 RMB 1
T_TUR3 RMB 1
T_TUR4 RMB 1
T_3S RMB 1
T15S RMB 1
ERR_TIME RMB 1
EC05_BUF RMB 1
T_CO_LM0 RMB 1
T_CO_LM1 RMB 1
T_CO_LM2 RMB 1
T_CO_LM3 RMB 1
K1_165_DAT RMB 1
K2_165_DAT RMB 1
K165_N RMB 1
;K1_165_BUF rmb 1
T_LFP3 RMB 1
T_LFP4 RMB 1
T_LFP6 RMB 1
;T_1MS RMB 1
;TEMP_Te RMB 1
;TEMP_To RMB 1
;TIMES_PQ RMB 1
;COM_CON RMB 1
;TEMP_Ta2 RMB 1
CS_JG RMB 1
T_15S RMB 1
TCS_8 RMB 1
COMP_TIME RMB 1
PUMP_T RMB 1
CV_OFF EQU 5
FJ EQU 3
XX1 EQU 4 ;3
XX2 EQU 5 ;0
STF EQU 4
FIRST_RUN EQU 1
TF_3S RMB 1
PH_TIME RMB 1
COMP_T RMB 1
;TIMES_PH RMB 1
T_PH RMB 1
T_PH_1 RMB 1
PL_TIME RMB 1
T_PL_1 RMB 1
T_WAT RMB 1
T_PQ RMB 1
T_PQ_1 RMB 1
T_PQ_2 RMB 1
T_LL RMB 1
GLZ RMB 1
T_60S RMB 1
HOU_3S RMB 1
CS_60S RMB 1
YAJI_YX RMB 1
DY_MIN EQU $82
DY_MAX EQU $B4
DL_MIN EQU $50
DL_MAX EQU $BB
t_44m rmb 1
TEMP_WP3 RMB 1
TEMP_PQ3 RMB 1
T_ROOMDL RMB 1
T_ROOMDY RMB 1
DY_10S RMB 1
T_DL_1 RMB 1
T_DL RMB 1
FD_L10S RMB 1
;--------------code section--------------------
;program
;---------------------------------
org RomStart
;--------------------------------
RESET:
NOP
NOP
;-------disable interrupt-----------------------
SEI ; DISABLE interrupts to happen
;----------stack ini-----------------------------
LDHX #$260
TXS
;----------system initialize--------------------
STA COPCTL
MOV #%00000010,INTSCR2
CLRH
CLRX
clra ; Initialize A,X so that interrupt
clrx ; processing doesn't stop with
MOV #$88,CONFIG1 ;系统状态寄存器初始化;89禁止WDT,88允许
MOV #$10,CONFIG2 ;11
;----------IO dir and data initialize------
MOV #%00000000,PTA
MOV #%11011111,DDRA ;
MOV #%00000000,PTB
MOV #%00000111,DDRB
MOV #0,MMCR1
MOV #%00000000,PTC
MOV #%00111111,DDRC
MOV #%00000001,PTD
MOV #%11100110,DDRD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -