📄 ledshow.asm
字号:
;;***********************************
; RAM 6BYTE,3BIT, R_TEMP[1,2,3,),
; STACK 1
; WDT ENABLE
; TIMER 0
; INTERRUPT 0
; PORT 5
; INPUT 0
; OUTPUT 5 (PB5,PA4,PA5,PA6,PA7)
;; LED SCAN 1000/5ms*3=66.6HZ,
; MAX RUNTIMER:136CYCLE(4MHZ)
;;************************************
ORG 200H
SBR_SHOW_LED:
INC R_COUNTER
MOV A,R_COUNTER
AND A,03H
ADDM A,PCL
JMP L_SHOW_COM1
JMP L_SHOW_COM2
JMP L_SHOW_COM3
CLR R_COUNTER
L_SHOW_COM1:
SET P_COM3_PA7
MOV A,R_TEMP[2]
SWAP ACC
AND A,0FH
ADD A,LOW T_LED_TABLE
MOV TBLP,A
TABRDC R_TEMP[1]
CALL SBR_WRITE
SZ F_TEMPERATURE_EEOR
JMP L_MN0
SNZ F_FAILURE
JMP L_NORMAL_SHOWH
L_MN0:
SNZ F_500MS
JMP L_NORMAL_SHOWH
SET P_COM1_PA5
RET
L_NORMAL_SHOWH:
CLR P_COM1_PA5
RET
;;;;;;;;;;;;;;;;;;;;
L_SHOW_COM2:
SET P_COM1_PA5
MOV A,R_TEMP[2]
AND A,0FH
ADD A,LOW T_LED_TABLE
MOV TBLP,A
TABRDC R_TEMP[1]
CALL SBR_WRITE
SZ F_TEMPERATURE_EEOR
JMP L_MN1
SNZ F_FAILURE
JMP L_NORMAL_SHOWL
L_MN1:
SNZ F_500MS
JMP L_NORMAL_SHOWL
SET P_COM2_PA6
RET
L_NORMAL_SHOWL:
CLR P_COM2_PA6
RET
;;;;;;;;;;;;;;;;;;;;;;;
L_SHOW_COM3:
SET P_COM2_PA6
INC R_COUNTER1
MOV A,R_COUNTER1
XOR A,20 ;;50*10MS=500 shui speed
SNZ Z
JMP L_MN2
CLR R_COUNTER1
INC R_COUNTER2
L_MN2:
SNZ F_WATER_STREAM
JMP L_OFF_WATER_SWICH
MOV A,R_COUNTER2
AND A,03H
ADDM A,PCL
JMP L_MP1
JMP L_MP2
JMP L_MP3
CLR R_COUNTER2
JMP L_SHOW_COM3
L_MP1:
MOV A,67H
JMP L_JUDGE_flame_FALG
L_MP2:
MOV A,57H
JMP L_JUDGE_flame_FALG
L_MP3:
MOV A,37H
JMP L_JUDGE_flame_FALG
L_OFF_WATER_SWICH:
MOV A,0FFH
L_JUDGE_flame_FALG:
MOV R_TEMP[3],A
SNZ F_FLAME
JMP L_OFF_flame
MOV A,R_COUNTER2
AND A,03H
ADDM A,PCL
JMP L_MP4
JMP L_MP5
L_MP4:
CLR R_TEMP[3].1
JMP L_OFF_flame
L_MP5:
CLR R_TEMP[3].2
L_OFF_flame:
SZ F_TEMPERATURE_EEOR
JMP L_MP6
SZ F_FAILURE
JMP L_MP6
CLR R_TEMP[3].0
L_MP6:
MOV A,R_TEMP[3]
MOV R_TEMP[1],A
CALL SBR_WRITE
CLR P_COM3_PA7
RET
;;;;;;;;;;;;;;;;;;;;;
SBR_WRITE:
MOV A,08H
MOV R_TEMP[0],A
L_WRITE_L00P:
CLR P_CLK_PA4
NOP
NOP
NOP
SET P_CLK_PA4
SZ R_TEMP[1].0
JMP L_WRITE1
JMP L_WRITE2
L_WRITE1:
SET P_DATA_PB5
JMP L_WRITE3
L_WRITE2:
CLR P_DATA_PB5
L_WRITE3:
RR R_TEMP[1]
SDZ R_TEMP[0]
JMP L_WRITE_L00P
SET P_CLK_PA4
RET
T_LED_TABLE:
dc 01h ;;0
dc 0cfh ;;1
dc 12h ;;2
dc 06h ;;3
dc 4ch ;;4
dc 24h ;;5
dc 20h ;;6
dc 0fh ;;7
dc 00h ;;8
dc 04h ;;9
dc 30h ;;e
dc 09h ;;n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -