📄 ca745.asm
字号:
;**************************************************
;DEFINE THE SPECIAL REGISTER
;**************************************************
INDF EQU 0X00
TCC EQU 0X01
PC EQU 0X02
;------------------------------------
STATUS EQU 0X03
C EQU 0 ;CARRY FLAG,1=CARRY
DC EQU 1 ;AUXILIARY CARRY FLAG,1=AUXILIARY CARRY
Z EQU 2 ;ZERO FLAG,1=LOGIC OPERATION IS ZERO
P EQU 3 ;POWER DOWN BIT
T EQU 4 ;TIME-OUT BIT
PS0 EQU 5 ;
PS1 EQU 6 ;PS1-PS0 PAGE SELECT BIT
GP EQU 7 ;GENERAL READ/WRITE BIT
;------------------------------------
FSR EQU 0X04
;------------------------------------
R3F EQU 0X0F
TCIF EQU 0 ;TCC OVERFLOWING INTERRUPT FLAG
ICIF EQU 1
EXIF EQU 2 ;EXTERNAL INTERRUPT FLAG
;------------------------------------
P5 EQU 0X05
SDA EQU 1
SCK EQU 2
SCE EQU 3
P6 EQU 0X06
Key_up EQU 1
Key_down EQU 2
_scl EQU 6
_sda EQU 7
IOCB EQU 0X0B ;ENABLE THE WAKE-UP FUNCTION OF P6 PORT
IOCC EQU 0X0C
IOCD EQU 0X0D
;-------------------------------------
IOCE EQU 0X0E ;WDT CONTROL REGISTER
WUE EQU 0 ;ENABLE WAKE-UP FUNCTION OF P74~P75,0=ENABLE,1=DISABLE
ROC EQU 3 ;R-OPTION SETTING,1=ENABLE,0=DISABLE
SLPC EQU 4
WDTE EQU 5 ;ENABLE WDT TIMER,0=DISABLE,1=ENABLE
ODE EQU 6 ;OPEN-DRAIN OF P76 AND P77 PINS,0=DISABLE,1=ENABLE
;---------------------------------------
IOCF EQU 0X0F ;INTERRUPT MASK REGISTER
TCIE EQU 0 ;TCIF INTERRUPT ENABLE BIT,0=DISABLE,1=ENABLE
ICIE EQU 1
EXIE EQU 2 ;EXIF INTERRUPT ENABLE BIT,0=DISABLE,1=ENABLE
;---------------------------------------
CONT EQU 0X01
;**************************************************
;DEFINE THE GENERAL PURPOSE REGISTER
;**************************************************
COUNT EQU 0X10
COUNT1 EQU 0X11
TEMP EQU 0X12
flag EQU 0X13
ukey_dep EQU 0
dkey_dep EQU 1
inc_sta EQU 2
dec_sta EQU 3
inc_stop EQU 4
dec_stop EQU 5
count_dw EQU 0X14
count_dw1 EQU 0X15
;==========IIC=REG==========
device_addr EQU 0x16
word_addr EQU 0x17
TXBUF EQU 0X18 ; TX buffer
RXBUF EQU 0X19 ; RX buffer
;===========================
A1 EQU 0X1A
A2 EQU 0X1B
A3 EQU 0X1C
A4 EQU 0X1D
rf_frequ EQU 0X1E
AA0 EQU 0X1F
AA1 EQU 0X20
div_l EQU COUNT
b_div EQU COUNT1
l_byte EQU AA1
yu EQU AA0
;****************************************************
; define the macro command
;****************************************************
SDA_O MACRO
IOR P6
AND A,@0B01111111
IOW P6
ENDM
SDA_I MACRO
IOR P6
OR A,@0B10000000
IOW P6
ENDM
;**************************************************
;FOLLOWING IS THE PROGRAM AREA
;**************************************************
ORG 0X000 ;
JMP MAIN
ORG 0X008 ;HARDWARE INTERRUPT ADDRESS
JMP HW_INT ;HARDWARE INTERRUPT
ORG 0X010
;***************************************************
;THE HARDWARE INTERRUPT PROGRAM(/INT)
;USED REGISTER:
;WRITE BY liguangtao
;2005-08-16
;***************************************************
HW_INT:
RETI
;***************************************************
;THE MAIN PROGRAM
;WRITE BY liguangtao
;2005-08-16
;***************************************************
MAIN:
NOP
CALL INIT_MCU
MAIN_PROCESS:
CALL rf_adjust_process
JMP MAIN_PROCESS
;********************************************************************************************
;used: The RF-frequ adjusting process
;reg:
;wrt: ProBoy
;date: 2001.07.03
;********************************************************************************************
rf_adjust_process:
JBC P6,Key_down
JMP rf_adjust_inc_end
JBS P6,Key_up
jmp rf_adjust_process_end
JBC flag,inc_sta
JMP data_adjust_inc
JBS flag,dkey_dep
jmp $+3
INC count_dw
jmp rf_adjust_process_end1
BS flag,dkey_dep
data_adjust_inc:
JBS flag,inc_sta
JMP $+6
INC count_dw1
MOV A,@0x02
SUB A,count_dw1
JBS STATUS,Z
JMP rf_adjust_dec_process
CLR count_dw1
JBS flag,inc_stop
JMP rf_adjust_dec_process
INC rf_frequ
CALL lcd_dis_data
CALL rf_adjust_process
MOV A,@205
SUB A,rf_frequ
BC flag,inc_stop
JBC STATUS,Z
BS flag,inc_stop
jmp rf_adjust_dec_process
rf_adjust_inc_end:
BC flag,inc_sta
BC flag,dkey_dep
rf_adjust_dec_process:
JBC P6,Key_up
jmp rf_adjust_dec_end
JBC flag,dec_sta
JMP data_adjust_dec
JBS flag,ukey_dep
jmp $+3
INC count_dw
jmp rf_adjust_process_end1
clr count_dw
BS flag,ukey_dep
data_adjust_dec:
JBS flag,dec_sta
JMP $+6
INC count_dw1
MOV A,@0x02
SUB A,count_dw1
JBS STATUS,Z
JMP rf_adjust_process_end
CLR count_dw1
JBS flag,dec_stop
JMP rf_adjust_process_end
DEC rf_frequ
CALL lcd_dis_data
CALL rf_adjust_process
MOV A,rf_frequ
BC flag,dec_stop
JBC STATUS,Z
BS flag,dec_stop
JMP rf_adjust_process_end
rf_adjust_dec_end:
BC flag,dec_sta
BC flag,ukey_dep
JMP rf_adjust_process_end
rf_adjust_process_end1:
MOV A,@0x02
SUB A,count_dw
JBS STATUS,Z
jmp rf_adjust_process_end
JBS P6,Key_down
BS flag,inc_sta
JBS P6,Key_up
BS flag,dec_sta
rf_adjust_process_end:
ret
;***************************************************
;INITIALIZE THE MCU
;WRITE BY MARK.PENG
;2003-12-14
;***************************************************
INIT_MCU:
DISI ;DISABLE INTERRUPT
MOV A,@0B01000111 ;@0X07
CONTW
MOV A,@0B00000000 ;SET I/O DIRECTION,1=INPUT,0=OUTPUT
IOW P5
MOV A,@0B11111111
IOW P6
MOV A,@0XFF
IOW IOCB
MOV A,@0X00
IOW IOCC
MOV A,@0X00
IOW IOCD
MOV A,@0X00
IOW IOCE
MOV A,@0X00
IOW IOCF
MOV A,@0X11
MOV FSR,A
MOV A,@0X1F
MOV COUNT,A
CLR_GENERAL_REG: ;CLEAR ALL OF THE USER'S RAM
CLR INDF
INC FSR
DJZ COUNT
JMP CLR_GENERAL_REG
CLR_GENERAL_REG_END:
CLR A4
MOV A,@0X08
MOV A3,A
MOV A,@0X07
MOV A2,A
MOV A,@0X05
MOV A1,A
ENI
RET
;********************************************************************************************
;used: the rf data inc 1
;reg:
;wrt: ProBoy
;date: 2001.07.03
;*******************************************************************************************
lcd_dis_data:
CLR A4
MOV A,@100
MOV b_div,A
MOV a,rf_frequ
MOV div_l,A
CALL div_8bit
MOV A,l_byte
MOV A3,A
MOV A,@10
MOV b_div,A
MOV A,yu
MOV div_l,A
CALL div_8bit
MOV A,l_byte
MOV A2,A
MOV A,yu
MOV A1,A
MOV A,@0X05
ADD A,A1
DAA
MOV temp,A
MOV A,@0X0F
AND A,temp
MOV A1,A
MOV A,@0XF0
AND A,temp
JBS STATUS,Z
INC A2
MOV A,@0X07
ADD A,A2
DAA
MOV temp,A
MOV A,@0X0F
AND A,temp
MOV A2,A
MOV A,@0XF0
AND A,temp
JBS STATUS,Z
INC A3
MOV A,@0X08
ADD A,A3
DAA
MOV temp,A
MOV A,@0X0F
AND A,temp
MOV A3,A
MOV A,@0XF0
AND A,temp
JBS STATUS,Z
INC A4
CALL LCD_Display
RET
;********************************************************************************************
;used: the rf data inc 1
;reg:
;wrt: ProBoy
;date: 2001.07.03
;********************************************************************************************
div_8bit:
MOV A,@0x08
MOV temp,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -