?? nuanfeng.asm
字號:
原程序如下
;4M,4CLOCK,每個指令1U
;======================================================================================
;本程序為暖風機器所寫,2004-03-24開始開發
;======================================================================================
R0 == 0X00
TCC == 0X01
PC == 0x02
R3 == 0X03
R4 == 0X04
P5 == 0X05
LED == 3
KEY == 0 ;按鍵
NTS == 1 ;光敏電阻
R10K == 2 ;標準電阻
P6 == 0X06
REM == 7 ;遙控接收
DATA == 7
WR == 6
CS == 5
BELL == 2
JDQ1 == 0
JDQ2 == 1
YT == 3
FS == 4
IOC5 == 0X05
IOC6 == 0X06
IOC7 == 0X07
IOCA == 0X0A
IOCB == 0X0B
IOCC == 0X0C
IOCD == 0X0D
IOCE == 0X0E
IOCF == 0X0F
RF == 0X0F
C == 0
Z == 2
;-------------------------------------------
;全局變量
;--------------------------------------------
RKEY == 0X28 ;鍵值保存
R_A == 0X29
R_R3 == 0X2A
TEMP == 0X2B
STEMP == 0X2C
STIME == 0X2D ;0.5到7.5各放半個字節,高字節實際時間,底字節設置時間
FTIMES == 0X2E ;閃爍7次
R250MS == 0X2F
R05S == 0X30
R30M == 0X31
R66MS == 0X32
R200MS == 0X33 ;奉命器發生
R1M == 0X18
R15S == 0X19
ADID == 0X1A
R10KTC1 == 0X20 ;求平均值
R10KTC2 == 0X21
R10KTC3 == 0X22
R10KTC4 == 0X23
RNTSTC1 == 0X24
RNTSTC2 == 0X25
RNTSTC3 == 0X26
RNTSTC4 == 0X27
D0 == 0X34;0X3A~0X3F為顯示存儲空間!!!
FLAG == 0X1B
FHWKEY == 0
F250MS == 1
F33MS == 2
F33MSS == 3 ;蜂鳴器發生標志
FLED == 4
F05S1 == 5
;FOFFPOWER== 6
F05S == 7
FLAG1 == 0X1C ;開關狀態保存
F1 == 1
F2 == 2
F3 == 3
F4 == 4
FKO == 5 ;開關鍵值保存
FKS == 6 ;搖頭保存
FTIME == 0
FTEMP == 7
R30S == 0X1D
temp1 == 0x1e
;-------------------------------------------
;局部變量
;--------------------------------------------
DIV1 == 0X10
DIV2 == 0X11
DIV3 == 0X12
CHU1 == 0X13
YU == 0X14
SHANG1 == 0X15
SHANG2 == 0X16
DIV_CNT == 0X17
B3 == DIV1
B8 == DIV2
RX == DIV3
RTCC == DIV1
RKEYTC == DIV2;TCC保存
DCNT2 == DIV_CNT
B == CHU1
DCNT1 == YU ;注意,DCNT,與DIV1~3,SHANG1~2不能復用
R_ADL == SHANG1
R_ADH == SHANG2
BINARY == DIV1 ;BINARY<0X64
BCD == DIV2
BCD_CNT == DIV3
; KS == 1;搖頭
; KH == 2;加熱
; KT == 3;間設定
; KTE == 4;溫度
; KP == 5;+按鍵
; KD == 6;-按鍵
; KO == 7;開關按鍵
;===================================================================
ORG 000H
CALL INIT
MAIN: CALL FANGDIAN ;放電
CALL HW_TEST ;紅外檢測,30ms
CALL MAIN_AD ;包括按鍵檢測與處理,溫度檢測與處理
CALL SYSTIME
CALL MAINDISPLAY
JMP MAIN
ORG 008H
MOV R_A,A
SWAP R_A
SWAPA R3
MOV R_R3,A
CLR RF
BS FLAG,F33MS ;
bs flag,f33mss
DJZ R250MS
JMP TCC_RETURN
MOV A,@8;
MOV R250MS,A
BS FLAG,F250MS
DJZ R05S
JMP TCC_RETURN
BS FLAG,F05S
BS FLAG,F05S1
MOV A,@2
MOV R05S,A
DJZ R1M
JMP TCC_RETURN
MOV A,@250;120;由于250ms加長,所以此處減115
MOV R1M,A
DJZ R30M
JMP TCC_RETURN
MOV A,@30
MOV R30M,A
MOV A,STIME
AND A,@0XF
JBS R3,Z
JMP TCC_RETURN0
BC P6,JDQ1
BC P6,JDQ2
BC FLAG1,FKO
JMP TCC_RETURN
TCC_RETURN0: DEC STIME
TCC_RETURN: SWAPA R_R3
MOV R3,A
SWAPA R_A
RETI
PRTTAB: ADD PC,A
JMP PRT0
JMP PRT1
JMP PRT2
JMP PRT3
JMP PRT4
JMP PRT5
JMP PRT6 ;益處
JMP PRT7 ;益處
TEMPTAB0: ADD PC,A
RETL @0X9f
RETL @0Xa4
RETL @0Xa9
RETL @0Xae
RETL @0Xb3
RETL @0Xb8
RETL @0Xbe
RETL @0Xc4
RETL @0Xca
RETL @0Xd0
RETL @0Xd6
RETL @0Xdd
RETL @0Xe4
RETL @0Xeb
RETL @0Xf2
RETL @0XFF;fa
TEMPTAB1: ADD PC,A
RETL @0X02
RETL @0X0a
RETL @0X12
RETL @0X1b
RETL @0X24
RETL @0X2e
RETL @0X38
RETL @0X42
RETL @0X4d
RETL @0X58
RETL @0X63
RETL @0X6f
RETL @0X7c
RETL @0X88
RETL @0X96
RETL @0Xa4
RETL @0Xb2
RETL @0Xc1
RETL @0Xd1
RETL @0Xe1
RETL @0XFF;f2
TEMPTAB2: ADD PC,A
RETL @0X04
RETL @0X16
RETL @0X2a
RETL @0X3d
RETL @0X52
RETL @0X68
RETL @0X7f
RETL @0X96
RETL @0Xaf
RETL @0Xc8
RETL @0Xe3
RETL @0XFF;ff
TEMPTAB3: ADD PC,A
RETL @0X1c
RETL @0X3a
RETL @0X5a
RETL @0X7b
RETL @0X9e
RETL @0Xbf;???
RETL @0Xff;e8
TEMPTAB4: ADD PC,A
RETL @0X0f
RETL @0X39
RETL @0X64
RETL @0Xa5
RETL @0Xc0
RETL @0Xff;f2
TEMPTAB5: ADD PC,A
RETL @0X26
RETL @0X5c
RETL @0X95
RETL @0XFF;b2
TEMPH: ADD PC,A
RETL @80 ;69度,數據表只有,
RETL @64
RETL @43
RETL @31
RETL @24
RETL @18
TIMETABLE: ADD PC,A
RETL @00
RETL @05
RETL @10
RETL @15
RETL @20
RETL @25
RETL @30
RETL @35
RETL @40
RETL @45
RETL @50
RETL @55
RETL @60
RETL @65
RETL @70
RETL @75
REMOTETAB: ADD PC,A
RETL @0XFF ;0
RETL @0XA0 ;1
RETL @0X20 ;2
RETL @0X10 ;3
RETL @0X10 ;4
RETL @0X80 ;5
RETL @0X00 ;6
RETL @0X90 ;7
;=====================================================================================
;按鍵檢測,按鍵值放在RKEY中,底半字節為檢測到的鍵值,高半字節為上次檢測到的值
;RKEY的最高位為有按鍵標志
;====================================================================================
;=============================================================================================
READKEY:JBC RKEY,7
RET ;一樣,有按鍵,且是一直按住,則退出
JBC FLAG1,FKO
JMP READK
MOV A,RKEYTC
XOR A,@7
JBS R3,Z
RET
READK: MOV A,RKEYTC
MOV RKEY,A
BS RKEY,7
BS FLAG,FLED
AND A,@7
ADD PC,A
JMP RKEY0
JMP RKEY1
JMP RKEY2
JMP RKEY3
JMP RKEY4
JMP RKEY5
JMP RKEY6
JMP RKEY7
WRITE: MOV A,B ;放在ROM255以前
ADD PC,A
JMP ST0
JMP ST1
JMP ST2
JMP ST3
JMP ST4
JMP ST5
JMP ST6
JMP ST7
JMP ST8
JMP ST9
RKEY0: ;BC FLAG1,FTIME
;BC FLAG1,FTEMP
;CLR RKEY
RET
RKEY1: ;BC FLAG1,FTIME
;BC FLAG1,FTEMP
JBS P6,3
JMP RK11
BC P6,3 ;原來為開,則關
BC D0+8,0
BC D0+1,0
RET
RK11: BS P6,3 ;原來為開,則關
BS D0+8,0
BS D0+1,0
RET
RKEY2: ;BC FLAG1,FTIME
;BC FLAG1,FTEMP
MOV A,P6 ;加熱 ,輸出控制
AND A,@3
ADD PC,A
JMP RK20
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -