- INTERRUPT
- ;保护现场作用,根据实际情况进行保存,中断内部和外部都使用的资源需要保
- 护,常规需要保护的内容有PSW PCH R0 R1
- SWAPR R1 ,PSW
- MOVPSW_TEMP, R1
- MOVR1 , PCH
- MOVPCH_TEMP, R1
- ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
- ;中断处理
- ;...
- ;...
- ;...
- ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
- ;恢复现场作用
- INT_END
- MOVR1 , PCH_TEMP
- MOVPCH, R1
- SWAPR R1 , PSW_TEMP
- MOV PSW, R1
- IRET
- ;;;;;;;;;;;;;;中断部分结
- 束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
-
- ;;;;;;;;;;;;;;入口函数,主程
- 序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- MAIN
- CALL INIT_ALL ;初始化寄存器
- CALL INIT_RAM ;初始化RAM
- LOOP
- INC UNIT ;个位数字的递增
- MOV R0 ,UNIT
- XOR R0 ,#0X0A
- JB PSW ,Z
- JMP C_DIS
- CLR UNIT
-
- INC DECADE ;十位数字的递增
- MOV R0 ,DECADE
- XOR R0 ,#0X0A
- JB PSW ,Z
- JMP C_DIS
- CLR DECADE
-
- INC HUNDRED ;百位数字的递增
- MOV R0 ,HUNDRED
- XOR R0 ,#0X0A
- JB PSW ,Z
- JMP C_DIS
- CLR HUNDRED
-
- INC THOUSAND ;千位数字的递增
- MOV R0 ,THOUSAND
- XOR R0 ,#0X0A
- JB PSW ,Z
- JMP C_DIS
- CLR THOUSAND
-
- C_DIS
- MOV R0,#0x33
- MOV DIS_DEL,R0 ;DIS_DEL是用来延时数值的递增用的,数值越
- 大,那么递增的速度就越慢
- CALL LED_DISPLAY ;数码管显示当前数值
- DECJZ DIS_DEL
- JMP $‐2 ;调整地址以当前地址减2的位置
- JMP LOOP
-
- CRET
- ;*************************************************************
- *****************
- ;* 函 数 名: INIT_ALL
- ;* 函数功能: 初始化函数,对各种寄存器的初始化
- ;* 入口参数: 无
- ;* 返 回: 无
- ;*************************************************************
- *****************
|