📄 cm-941.asm
字号:
ANDI KeyDoneFlg, 8
JNZ Exit_KeyProcess
ORI* KeyDoneFlg, 8
ORI* FatModeFlg, 4 ;FatModeFlg.B2 represent default status.
ANDI* FatModeFlg, 1100B
LDS Age2, 3
LDS Age1, 0
LDS Height4, 1
LDS Height3, 7
LDS Height2, 0
LDS Height1, 0
LDS Weight4, 0
LDS Weight3, 6
LDS Weight2, 5
LDS Weight1, 0
ANDI* OptionR, 7
LDS BMI1, 5
LDS BMI2, 2
LDS BMI3, 2
LDS FatLevel, 2
LDS P_FAT1, 0
LDS P_FAT2, 0
LDS P_FAT3, 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
S_Key:
ANDI FatModeFlg, 4
JNZ Exit_KeyProcess ;enter default parameter just now
SUBI MainMode, 4
JNZ Exit_KeyProcess
ANDI FatModeFlg, 1
JNZ Exit_KeyProcess
;MainMode=4 & no set unit mode
LDS FatTest1_1, 0
LDS FatTest2_1, 0
LDS FatTest3_1, 0
LDS M_Fat2hz, 1
LDS TestFatCnt, 3
LDS Delay5s, 4
LDS MaxM_FatTm, 4
LDS M_FatFlg, 1
LDS R180ms1, 7
LDS R180ms2, 0BH
ELC 111111111b
LDS PortA, 0
OPA PortA
SF 4h
ORI* OptionR, 1
SIE* 18H
TM2X 001000011B
RTS
;;;;;;;;;;;;;;;;;
LongKeyProcess:
SUBI KeyValue1, 8
JNZ LongKeyProcess3
LDA Keyms
JNZ LongKeyProcess3
SUBI MainMode, 1
JZ SetClock_F_Key
SUBI MainMode, 2
JZ Alarm_F_Key
SUBI MainMode, 3
JZ Timer_F_Key
RTS
LongKeyProcess3:
ANDI KeyDoneFlg, 2
JNZ LongKeyProcess1
LDA KeyS
JNZ Exit_KeyProcess
ORI* KeyDoneFlg,2
LDS Keyms, 1
CALL ActiveTMR2
RTS
LongKeyProcess1:
LDA MainMode
JNZ LongKeyProcess2
ANDI KeyDoneFlg, 8
JNZ Exit_KeyProcess
LDS KeyDoneFlg, 0BH
LDS MainMode, 1
LDS Mode1, 0
ORI* FlgSet_12Hr,2
LDA Min_L
STA SData1
LDA Min_H
STA SData2
LDA Hr_L
STA SData3
LDA Hr_H
STA SData4
JMP SetKeySound
LongKeyProcess2:
LDA Keyms
JNZ Exit_KeyProcess
LDS Keyms, 1
SUBI KeyValue1, 2
JZ LongA_Key
SUBI KeyValue1, 4
JZ LongT_Key
RTS
LongA_Key:
SUBI MainMode, 1
JZ LongA_Key_SetClock
SUBI MainMode, 2
JZ LongA_Key_Alm
SUBI MainMode, 3
JZ LongA_Key_Tmr
LongA_Key_Fat:
ANDI FatModeFlg, 1
JNZ Exit_KeyProcess
SUBI Mode1, 1
JZ Fat_A_Key1
SUBI Mode1, 2
JZ Fat_A_Key2
SUBI Mode1, 3
JZ Fat_A_Key3
RTS
LongA_Key_Tmr:
LDS TempR0, 2
SUB Mode1
JNZ Timer_A_Key
RTS
LongA_Key_Alm:
SUBI Mode1, 1
JZ IncHr
SUBI Mode1, 2
JZ IncMin
RTS
LongA_Key_SetClock:
LDA Mode1
JZ IncHr
JMP IncMin
;;;;;;;;;;
LongT_Key:
SUBI MainMode, 1
JZ LongT_Key_SetClock
SUBI MainMode, 2
JZ LongT_Key_Alm
SUBI MainMode, 3
JZ LongT_Key_Tmr
LongT_Key_Fat:
ANDI FatModeFlg, 1
JNZ Exit_KeyProcess
SUBI Mode1, 1
JZ Fat_T_Key1
SUBI Mode1, 2
JZ Fat_T_Key2
SUBI Mode1, 3
JZ Fat_T_Key3
RTS
LongT_Key_Tmr:
LDS TempR0, 2
SUB Mode1
JNZ Timer_T_Key
RTS
LongT_Key_Alm:
SUBI Mode1, 1
JZ DecHr
SUBI Mode1, 2
JZ DecMin
RTS
LongT_Key_SetClock:
LDA Mode1
JZ DecHr
JMP DecMin
NoKey:
ANDI KeyDoneFlg, 4
JZ NoKey1
EORI* FlgSet_12Hr, 1
LDS KeyDoneFlg, 0
SetKeySound:
ALM 80H
LDS KeySound, 2
ActiveTMR2:
ANDI OptionR, 1
JNZ Exit_KeyProcess
SIE* 18H
ORI* OptionR, 1
TM2X 000000011B ;(000)512 4*512/32.768 =62.5ms
RTS
NoKey1:
LDS KeyDoneFlg, 0 ;Inactive TMR2 int
LDA KeySound
JNZ Exit_KeyProcess
LDA M_FatFlg
JNZ Exit_KeyProcess
ANDI AlmFlg, 0110B
JNZ $+3
ANDI* OptionR, 1110B
SIE* 08H
Exit_KeyProcess:
RTS
;;;;;;;;;;;;;;;;;;;;;;;;
DisplayProcess:
LDA MainMode
JZ DlyClock
SUBI MainMode, 1
JZ DlySetClock
SUBI MainMode, 2
JZ DlyAlarm
SUBI MainMode, 3
JZ DlyTimer
DlyFat:
LDA M_FatFlg
JNZ DlyM_FatMode
LDA R_Error
JNZ Dly_Error
ANDI FatModeFlg, 1
JNZ DlyFat_1
LDA Mode1
JZ DlyFat0
SUBI Mode1, 1
JZ DlyFat1
SUBI Mode1, 2
JZ DlyFat2
SUBI Mode1, 3
JZ DlyFat3
SUBI Mode1, 4
JZ DlyFat4
DlyFat5: ;DISPLAY BMI
MRW Dummy, BMI1
LCT 4, Dummy
MRW Dummy, BMI2
LCT 3, Dummy
MRW Dummy, BMI3
LCB 2, Dummy ;Display BMI Data
LDS Dummy, 0
LCP 1, Dummy
LDS Dummy, 8
LDS TempR0, 0
LCP 8, Dummy ;Display BMI ICON
LCP 7, Dummy ;Display ,
LDS Dummy, 2
LDS TempR0, 0
LCP 0, Dummy
LCP 5, Dummy ;DISPLAY POINTER ICON
LDS Dummy, 2
ANDI OptionR, 8
JZ $+2
LDS Dummy, 1
LDS TempR0, 0
LCP 9, Dummy ;GENDER ICON
RTS
DlyFat4:
ANDI KeyDoneFlg, 1
JNZ DlyFat4_0
LDA R_2Hz
JNZ DlyFat4_1
DlyFat4_0:
LDS Dummy, 2
LDS TempR0, 8
AND SData1
JZ $+2
LDS Dummy, 1
LDS TempR0, 0
LCP 9, Dummy
LDS Dummy, 1
LDS TempR0, 0
LCP 8, Dummy
MRW Dummy, Age2
LCT 3, Dummy
MRW Dummy, Age1
LCT 4, Dummy
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
LCP 7, Dummy
RTS
DlyFat4_1:
LDS Dummy, 0
LCP 9, Dummy
RTS
DlyFat3:
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
LCP 7, Dummy
LCP 9, Dummy
ANDI KeyDoneFlg, 1
JNZ DlyFat3_0
LDA R_2Hz
JNZ DlyFat3_1
DlyFat3_0:
MRW Dummy, SData1
LCT 4, Dummy
MRW Dummy, SData2
LCT 3, Dummy
LDS Dummy, 1
LDS TempR0, 0
LCP 8, Dummy
RTS
DlyFat3_1:
LDS Dummy, 0
LCP 3, Dummy
lCP 4, Dummy
RTS
DlyFat2:
ANDI KeyDoneFlg, 1
JNZ $+3
LDA R_2Hz
JNZ DlyFat2_2
MRW Dummy, SData1
LCT 4, Dummy
MRW Dummy, SData2
LCT 3, Dummy
MRW Dummy, SData3
LCT 2, Dummy
MRW Dummy, SData4
LCB 1, Dummy
ANDI FatModeFlg, 2
JZ DlyFat2_1
DlyFat2_0 ;inch
LDS Dummy, 0110B
LDS TempR0, 0
LCP 7, Dummy
LDS Dummy, 0
LDS TempR0, 1
LCP 8, Dummy
RTS
DlyFat2_1: ;cm
LDS Dummy, 8
LDS TempR0, 0
LCP 7, Dummy
LDS Dummy, 0
LDS TempR0, 0011B
LCP 8, Dummy
RTS
DlyFat2_2:
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
LCP 7, Dummy
RTS
;;;;;;;;;;;;;;;;;
DlyFat1:
LDS Dummy, 0
LCP 0, Dummy
LCP 5, Dummy
LCP 6, Dummy
LCP 0AH, Dummy
LCP 9, Dummy
LDS Dummy, 8
LDS TempR0, 0
LCP 7, Dummy
ANDI KeyDoneFlg, 1
JNZ $+3
LDA R_2Hz
JNZ DlyFat1_2
MRW Dummy, SData1
LCT 4, Dummy
MRW Dummy, SData2
LCT 3, Dummy
MRW Dummy, SData3
LCT 2, Dummy
MRW Dummy, SData4
LCB 1, Dummy
ANDI FatModeFlg, 2
JNZ DlyFat1_1
DlyFat1_0 ;lb
LDS Dummy, 0010B
LDS TempR0, 0
LCP 8, Dummy
RTS
DlyFat1_1: ;kg
LDS Dummy, 0100B
LDS TempR0, 0
LCP 8, Dummy
RTS
DlyFat1_2:
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
LCP 7, Dummy
RTS
DlyFat0:
LDS Dummy, 0
LCP 6, Dummy
LCP 0AH, Dummy
LCP 1, Dummy
MRW Dummy, FatLevel
LDS TempR0, 0
LCP 0, Dummy
LCP 5, Dummy
MRW Dummy, P_FAT3
LCT 2, Dummy
MRW Dummy, P_FAT2
LCT 3, Dummy
MRW Dummy, P_FAT1
LCT 4, Dummy
LDS Dummy, 1000B
LDS TempR0, 0
LCP 7, Dummy
LDS Dummy, 0
LDS TempR0, 0100B
LCP 8, Dummy
LDS Dummy, 1
ANDI OptionR, 8
JNZ $+2
LDS Dummy, 0
LDS TempR0, 0
LCP 9, Dummy ;GENDER ICON
RTS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Dly_Error:
LDS Dummy, 0
LCP 0, Dummy
LCP 5, Dummy
LCP 7, Dummy
LCP 8, Dummy
LCP 9, Dummy
LCP 6, Dummy
LCP 0AH, Dummy
LDS Dummy, 1001B
LDS TempR0, 0111B
LCP 1, Dummy
LDS Dummy, 0
LDS TempR0, 0101B
LCP 2, Dummy
LCP 3, Dummy
LDS Dummy, 0
LCP 4, Dummy
RTS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DlyM_FatMode:
LDS Dummy, 0
LCP 0, Dummy
LCP 5, Dummy
LCP 7, Dummy
LDS TempR0, 4
SUB MaxM_FatTm
JZ DlyDelay2S
LDA Delay5s
JZ ExtinguishZero
LDS TempR0, 1
SUB Delay5s
JZ Dly4zero
LDS TempR0, 2
SUB Delay5s
JZ Dly3zero
LDS TempR0, 3
SUB Delay5s
JZ Dly2zero
Dly1zero:
LDS Dummy, 1100B
LDS TempR0, 0101B
LCP 1, Dummy
LDS Dummy, 0
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
RTS
Dly2zero:
LDS Dummy, 1100B
LDS TempR0, 0101B
LCP 1, Dummy
LCP 2, Dummy
RTS
Dly3zero:
LDS Dummy, 1100B
LDS TempR0, 0101B
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
RTS
Dly4zero:
LDS Dummy, 1100B
LDS TempR0, 0101B
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
RTS
ExtinguishZero:
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
RTS
;;;;;;;;;;;;;;;;;;;;
DlyDelay2S:
LDS Dummy, 0
LDS TempR0, 0100B
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
LDS Dummy, 0
LDS TempR0, 0100B
LCP 8, Dummy
LDS Dummy, 2
ANDI OptionR, 8
JZ $+2
LDS Dummy, 1
LDS TempR0, 0
LCP 9, Dummy ;GENDER ICON
RTS
;-------------
DlyFat_1: ;DLY Unit
LDS Dummy, 0
LCP 0, Dummy
LCP 1, Dummy
LCP 2, Dummy
LCP 3, Dummy
LCP 4, Dummy
LCP 5, Dummy
LCP 6, Dummy
LCP 9, Dummy
LCP 0AH, Dummy
ANDI KeyDoneFlg, 1
JNZ $+3
LDA R_2Hz
JZ ExtinguishUnit
LDS TempR0, 2
AND SData5
JNZ DlyFat_1_1
LDS Dummy, 0
LCP 7, Dummy
LDS Dummy, 0010B ;Kg_Cm
LDS TempR0, 0010B
LCP 8, Dummy
RTS
DlyFat_1_1: ;inch_lb
LDS Dummy, 0110B
LDS TempR0, 0
LCP 7, Dummy
LDS Dummy, 0100B
LDS TempR0, 0
LCP 8, Dummy
RTS
ExtinguishUnit:
LDS Dummy, 0
LCP 7, Dummy
LCP 8, Dummy
RTS
;;;;;;;;;;;;;;;;;;;;
DlyTimer: ;MainMode=2
LDS Dummy, 0
LCP 0, Dummy
LCP 5, Dummy
LCP 6, Dummy
LCP 8, Dummy
LCP 9, Dummy
LCP 0AH, Dummy
ANDI KeyDoneFlg, 1
JNZ LightC_Tmr
LDA R_2Hz
JZ LightC_Tmr
LDA Mode1
JZ ExtinguishTmr_Hr
SUBI Mode1, 1
JZ ExtinguishTmr_Min
LDS Dummy, 0 ;Runing
LCP 0AH, Dummy
RTS
ExtinguishTmr_Min:
LDS Dummy, 0
LCP 3, Dummy
LCP 4, Dummy
RTS
ExtinguishTmr_Hr:
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
RTS
LightC_Tmr:
MRW Dummy, SData4
LCB 1, Dummy
MRW Dummy, SData3
LCT 2, Dummy
MRW Dummy, SData2
LCT 3, Dummy
MRW Dummy, SData1
LCT 4, Dummy
LDS Dummy, 0110B
LDS TempR0, 0
LCP 7, Dummy
SUBI Mode1, 2
JNZ Exit_DlyTimer
LDS Dummy, 1
LDS TempR0, 0
LCP 0AH, Dummy
Exit_DlyTimer:
RTS
;;;;;;;;;;;;;
DlyAlarm: ;MainMode=2
LDS Dummy, 0
LCP 0, Dummy
LCP 5, Dummy
LCP 8, Dummy
LCP 9, Dummy
LDA Mode1
JZ DlyAlarm0
ANDI KeyDoneFlg, 1
JNZ LightC_Alm
LDA R_2Hz
JZ LightC_Alm
SUBI Mode1, 1
JZ ExtinguishAlmHr
ExtinguishAlmMin: ;adjust min
LDS Dummy, 0
LCP 3, Dummy
LCP 4, Dummy
RTS
ExtinguishAlmHr: ;adjust Hr
LDS Dummy, 0
LCP 1, Dummy
LCP 2, Dummy
RTS
LightC_Alm:
LDS Dummy, 1
LDS TempR0, 0
LCP 0AH, Dummy ;ALM ICON
MRW Dummy, SData1
LCT 4, Dummy
MRW Dummy, SData2
LCT 3, Dummy
LDA SData3
STA TempR1
LDA SData4
STA TempR2
CALL Set12hr
MRW Dummy, TempR1
LCT 2, Dummy
MRW Dummy, TempR2
LCB 1, Dummy
LDS TempR0, 0
LCP 6, DisplayR
JMP LightColone
;;;;;;;;
DlyAlarm0: ;ALM ON /OFF SELECT
ANDI KeyDoneFlg, 1
JNZ DlyAlarm0_1
LDS Dummy, 0 ;FLASH ALM ICON
LDA R_2Hz
JZ $+2
DlyAlarm0_1:
LDS Dummy, 1
LDS TempR0, 0
LCP 0AH, Dummy
LDS Dummy, 0
LCP 1, Dummy
LCP 6, Dummy
LCP 7, Dummy
ANDI AlmFlg, 1
JZ DlyOFF
DlyOn:
LDS Dummy, 1100B
LDS TempR0, 0101B
LCP 2, Dummy
LDS Dummy, 0100B
LDS TempR0, 0101B
LCP 3, Dummy
LDS Dummy, 0
LCP 4, Dummy
RTS
DlyOFF: ;DLY OFF
LDS Dummy, 1100B
LDS TempR0, 0101B
LCP 2, Dummy
LDS Dummy, 0001B
LDS TempR0, 0111B
LCP 3, Dummy
LCP 4, Dummy
RTS
;;;;;;;;;;;;;;;;
DlySetClock: ;MainMode=1
LDS Dummy, 0
LCP 0, Dummy
LCP 5, Dummy
LCP 8, Dummy
LCP 9, Dummy
LCP 0AH, Dummy
ANDI KeyDoneFlg, 1 ;when have Key, display data
JNZ LightC_Clk
LDA R_2Hz
JZ LightC_Clk
LDA Mode1
JZ ExtinguishClockHr
ExtinguishClockMin: ;adjust clock_Min
LDS Dummy, 0
LCP 3, Dummy
LCP 4, Dummy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -