INIT_ALL
;调入校准信息到控制寄存器
CALL #0xFFF
MOV OSCCAL0, R0 ;晶振校准0
NOP
NOP
CALL #0xFFE
MOV OSCCAL1, R0 ;晶振校准1
NOP
NOP
;选择工作频率
MOV R0 ,#0x60
MOV OSCCTL, R0 ;设置为8M
;端口初始化
MOV R0,#0x1c ;配置按键P02 P04 IO口未输入模式
MOV TR0,R0
MOV R0,#0X00
MOV TR1,R0
MOV R0,#0X00 ;设置P2端口为输出,数码管位选设置为输入,关闭
数码管显示
MOV TR2,R0
CLR P0
CLR P1
MOV R0,#0XF0 ;关闭数码管位选端
MOV P2,R0
CRET
;/************************************************************
******************
;* 函 数 名: init_RAM
;* 函数功能: 根据数据使用情况,默认RAM数值
;* 入口参数: 无
;* 返 回: 无
;*************************************************************
*****************/
INIT_RAM
CLR R2 ;传递默认RAM值
; CLR RAM SET 0 BANK0
CLR PSW ,RP0
MOV R0 ,#0X80 ;起始地址0x80
MOV R1 ,#0X20 ;操作个数
CALL INIT_RAM_0
; CLR RAM SET 0 BANK1
SET PSW ,RP0
MOV R0 ,#0X80 ;起始地址0x80
MOV R1 ,#0X01 ;操作个数
CALL INIT_RAM_0
; 默认工作区域设定 BANK0
CLR PSW ,RP0
; 其他变量的数值操作
CRET
;;;;;;;;;;;;;;;;;;执行默认数值装载到RAM区
INIT_RAM_0
ST [R0],R2
INC R0
DECJZ R1
JMP INIT_RAM_0
CRET
;*************************************************************
*****************
;* 函 数 名: DELAY
;* 函数功能: 延时函数,时间为1ms
;* 入口参数: 无
;* 返 回: 无
;*************************************************************
*****************
DELAY_MS
MOV R0 ,#0xC8
MOV DELAY_NUM0, R0
LP0
CWDT
MOV R0 ,#0XC8
MOV DELAY_NUM1, R0
LP1
DECJZ DELAY_NUM1 ;DELAY_NUM2自减1,若为0,则跳过
JMP LP1
DECJZ DELAY_NUM0 ;DELAY_NUM1自减1,若为0,则跳过
JMP LP0
CRET
.END
|