📄 mplxch0.lst
字号:
0087 00234 Update3rdLsd
0087 20A9 00235 call ChkMsdZero ;msd = 0?
0088 1D03 00236 btfss STATUS,Z ;yes then skip
0089 0810 00237 movf MsdTime,W ;get 3rd Lsd in w
008A 390F 00238 andlw 0x0f ;mask low nibble
008B 2890 00239 goto DisplayOut ;enable display
008C 00240 UpdateMsd
008C 0E10 00241 swapf MsdTime,W ;get Msd in w
008D 390F 00242 andlw 0x0f ;mask rest
008E 1903 00243 btfsc STATUS,Z ;msd != 0 then skip
008F 300A 00244 movlw 0x0a
0090 00245 DisplayOut
0090 2095 00246 call LedTable ;get digit output
0091 0086 00247 movwf PORTB ;drive leds
0092 080C 00248 movf TempC,W ;get sink value in w
0093 0085 00249 movwf PORTA
0094 0008 00250 return
00251 ;
00252 ;
0095 00253 LedTable
0095 0782 00254 addwf PCL, F ;add to PC low
0096 343F 00255 retlw B'00111111' ;led drive for 0
MPASM 01.40 Released MPLXCH0.ASM 1-16-1997 16:24:14 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0097 3406 00256 retlw B'00000110' ;led drive for 1
0098 345B 00257 retlw B'01011011' ;led drive for 2
0099 344F 00258 retlw B'01001111' ;led drive for 3
009A 3466 00259 retlw B'01100110' ;led drive for 4
009B 346D 00260 retlw B'01101101' ;led drive for 5
009C 347D 00261 retlw B'01111101' ;led drive for 6
009D 3407 00262 retlw B'00000111' ;led drive for 7
009E 347F 00263 retlw B'01111111' ;led drive for 8
009F 3467 00264 retlw B'01100111' ;led drive for 9
00A0 3400 00265 retlw B'00000000' ;blank led drive
00266 ;
00267 ;
00A1 00268 Chk2LsdZero
00A1 20A9 00269 call ChkMsdZero ;msd = 0?
00A2 1D03 00270 btfss STATUS,Z ;yes then skip
00A3 0008 00271 return ;else return
00A4 0E11 00272 swapf LsdTime,W ;get 2nd lsd
00A5 390F 00273 andlw 0x0f ;mask of LSD
00A6 1D03 00274 btfss STATUS,Z ;0? then skip
00A7 0008 00275 return
00A8 340A 00276 retlw .10 ;else return with 10
00277 ;
00A9 00278 ChkMsdZero
00A9 0810 00279 movf MsdTime,W ;get Msd in w
00AA 1D03 00280 btfss STATUS,Z ;= 0? skip
00AB 0008 00281 return ;else return
00AC 340A 00282 retlw .10 ;ret with 10
00283 ;
00284 ;
00285 ;
00000026 00286 count equ 26
00000027 00287 temp equ 27
00288 ;
00000020 00289 H_byte equ 20
00000021 00290 L_byte equ 21
00000022 00291 R0 equ 22 ; RAM Assignments
00000023 00292 R1 equ 23
00000024 00293 R2 equ 24
00294 ;
00295 ;
00AD 1003 00296 B2_BCD bcf STATUS,0 ; clear the carry bit
00AE 3010 00297 movlw .16
00AF 00A6 00298 movwf count
00B0 01A2 00299 clrf R0
00B1 01A3 00300 clrf R1
00B2 01A4 00301 clrf R2
00B3 0DA1 00302 loop16 rlf L_byte, F
00B4 0DA0 00303 rlf H_byte, F
00B5 0DA4 00304 rlf R2, F
00B6 0DA3 00305 rlf R1, F
00B7 0DA2 00306 rlf R0, F
00307 ;
00B8 0BA6 00308 decfsz count, F
MPASM 01.40 Released MPLXCH0.ASM 1-16-1997 16:24:14 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00B9 28BB 00309 goto adjDEC
00BA 3400 00310 RETLW 0
00311 ;
00BB 3024 00312 adjDEC movlw R2
00BC 0084 00313 movwf FSR
00BD 20C5 00314 call adjBCD
00315 ;
00BE 3023 00316 movlw R1
00BF 0084 00317 movwf FSR
00C0 20C5 00318 call adjBCD
00319 ;
00C1 3022 00320 movlw R0
00C2 0084 00321 movwf FSR
00C3 20C5 00322 call adjBCD
00323 ;
00C4 28B3 00324 goto loop16
00325 ;
00C5 3003 00326 adjBCD movlw 3
00C6 0700 00327 addwf 0,W
00C7 00A7 00328 movwf temp
00C8 19A7 00329 btfsc temp,3 ; test if result > 7
00C9 0080 00330 movwf 0
00CA 3030 00331 movlw 30
00CB 0700 00332 addwf 0,W
00CC 00A7 00333 movwf temp
00CD 1BA7 00334 btfsc temp,7 ; test if result > 7
00CE 0080 00335 movwf 0 ; save as MSD
00CF 3400 00336 RETLW 0
00337 ;
00338 ;
00339
00340 end
MPASM 01.40 Released MPLXCH0.ASM 1-16-1997 16:24:14 PAGE 8
SYMBOL TABLE
LABEL VALUE
ADCON0 00000008
ADCON1 00000088
ADCS0 00000006
ADCS1 00000007
ADFlag 00000012
ADIE 00000006
ADIF 00000001
ADON 00000000
ADOver 00000005
ADRES 00000009
AdDone 00000047
B2_BCD 000000AD
Bcd 00000027
BcdMsd 00000026
C 00000000
CHS0 00000003
CHS1 00000004
Chk2LsdZero 000000A1
ChkMsdZero 000000A9
Count 0000000F
DC 00000001
DisplayOut 00000090
DoAd 0000004C
F 00000001
FSR 00000004
GIE 00000007
GO 00000002
GO_DONE 00000002
H_byte 00000020
INDF 00000000
INTCON 0000000B
INTE 00000004
INTEDG 00000006
INTF 00000001
IRP 00000007
InitAd 00000036
InitPorts 00000021
InitTimers 0000002B
L_byte 00000021
LedTable 00000095
LsdTime 00000011
MsdTime 00000010
NOT_DONE 00000002
NOT_PD 00000003
NOT_RBPU 00000007
NOT_TO 00000004
Next 00000057
OPTION_REG 00000081
OptionReg 00000001
PABuf 00000020
PBBuf 00000021
PCFG0 00000000
PCFG1 00000001
MPASM 01.40 Released MPLXCH0.ASM 1-16-1997 16:24:14 PAGE 9
SYMBOL TABLE
LABEL VALUE
PCL 00000002
PCLATH 0000000A
PORTA 00000005
PORTB 00000006
PS0 00000000
PS1 00000001
PS2 00000002
PSA 00000003
R0 00000022
R1 00000023
R2 00000024
RBIE 00000003
RBIF 00000000
RP0 00000005
RP1 00000006
RestorePorts 00000067
STATUS 00000003
SampleAd 00000045
SavePorts 0000005A
ServiceInterrupts 00000039
ServiceTMR0 0000003E
Start 0000000D
StatBuffer 0000002E
T0CS 00000005
T0IE 00000005
T0IF 00000002
T0SE 00000004
TMR0 00000001
TRISA 00000085
TRISB 00000086
TempC 0000000C
TempD 0000000D
TempE 0000000E
Update2ndLsd 00000082
Update3rdLsd 00000087
UpdateAd 00000013
UpdateDisplay 00000071
UpdateLsd 0000007F
UpdateMsd 0000008C
W 00000000
WBuffer 0000002F
Wait 00000056
Z 00000002
_CP_OFF 00003FFF
_CP_ON 00003FEF
_HS_OSC 00003FFE
_LP_OSC 00003FFC
_PWRTE_OFF 00003FF7
_PWRTE_ON 00003FFF
_RC_OSC 00003FFF
_WDT_OFF 00003FFB
_WDT_ON 00003FFF
_XT_OSC 00003FFD
MPASM 01.40 Released MPLXCH0.ASM 1-16-1997 16:24:14 PAGE 10
SYMBOL TABLE
LABEL VALUE
__16C71 00000001
adjBCD 000000C5
adjDEC 000000BB
count 00000026
loop 00000010
loop16 000000B3
pop
push
temp 00000027
MEMORY USAGE MAP ('X' = Used, '-' = Unused)
0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
00C0 : XXXXXXXXXXXXXXXX ---------------- ---------------- ----------------
All other memory blocks unused.
Program Memory Words Used: 205
Program Memory Words Free: 819
Errors : 0
Warnings : 0 reported, 0 suppressed
Messages : 0 reported, 7 suppressed
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -