- 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
|