帮忙注解一下里面的单片机汇编程序(最好给我画个流程图), 请大家帮我解决啊
:funk: 看了好几天还是不怎么明白,帮忙画个流程图给我吧!f0 equ 0
rtcc equ 1
PC equ 2
status equ 3
FSR equ 4
OSCCAL equ 5
GPIO equ 6
_TestPort equ 0
_SyncPort equ 2
_Light equ 4
_05sPort equ 5
; --60Hz值-- --50Hz值--
ACTimeMax equ .130 ;.156
ACV equ .27 ;.23
T05s equ .60 ;.50
FlashC equ .2
FlashF equ .2
ACTimeMin equ .3
T30s equ .60
T05H equ .60
T8H equ .16
T95H equ .19
T24H equ .48
;1). ** Bank0 ** (FSR.6=0,FSR.5=0)
Mark1 equ .9
_Flash equ 0
_ON equ 1
_SyncTemp equ 7
Mark2 equ .10
_Sync equ 7
Time05s equ .15
Time30s equ .16
Time05H equ .17
Time24H equ .18
FlashCount equ .20
;FlashFrequence equ .21
ACVelocity equ .22
SetACTime equ .25
Temp equ .7
; org 01ffh
; movlw 60H
org 00H
movwf OSCCAL
goto start
;---------------------------------------
SetIO:
movlw 05h
option
movlw 0fh
tris GPIO
retlw 1
;---------------------------------------
start:
bcf status,5
btfss status,3
goto Main
btfss status,4
goto Main
PowerON:
call SetIO
movlw 0ffh
movwf GPIO
clrf Mark1
clrf Mark2
movlw T05s
movwf Time05s
movlw T30s
movwf Time30s
movlw T05H
movwf Time05H
movlw T24H
movwf Time24H
bsf Mark1,_Flash
; movlw FlashF
; movwf FlashFrequence
movlw FlashC
movwf FlashCount
movlw ACTimeMax-15h
movwf SetACTime
movlw 1
movwf ACVelocity
btfsc GPIO,_TestPort
goto Main
bcf Mark1,_Flash
movlw ACV
movwf ACVelocity
movlw 1
movwf Time05H
movlw T24H-T8H+1
movwf Time24H
movlw 1
movwf Time30s
Main:
clrwdt
call SetIO
btfsc Mark1,_Flash
goto Main_10
btfsc Mark1,_ON
goto Main_10
bsf GPIO,_Light
goto JudgeSYNC
Main_10:
movlw ACTimeMax-8
subwf rtcc,0
btfss status,0
goto Main_20
movlw ACTimeMin
subwf SetACTime,0
btfsc status,0
bsf GPIO,_Light
goto JudgeSYNC
Main_20:
movf SetACTime,0
subwf rtcc,0
btfss status,0
goto JudgeSYNC
bcf GPIO,_Light
JudgeSYNC:
goto JudgeSYNC_10
goto JudgeSYNC_20
goto JudgeSYNC_30
JudgeSYNC_10:
goto JudgeSYNC_30
JudgeSYNC_20:
xorwf Mark1,1
goto Main
JudgeSYNC_30:
btfsc Mark1,_SyncTemp
goto Main
JudgeSYNC_40:
btfsc Mark2,_Sync
goto Main
JudgeSYNC_50:
xorwf Mark2,1
clrf rtcc
movlw ACTimeMin
subwf SetACTime,0
btfsc status,0
bsf GPIO,_Light
Timer:
decfsz Time05s,1
goto Main
movlw T05s
movwf Time05s
movlw 20h
xorwf GPIO,1
decfsz ACVelocity,1
goto Timer_15
btfss Mark1,_Flash
goto Timer_10
movlw 1
movwf ACVelocity
decfsz SetACTime,1
goto Timer_15
movwf SetACTime
decfsz FlashCount,1
goto Timer_15
bcf Mark1,_Flash
bsf GPIO,_Light
goto Timer_15
Timer_10:
movlw ACV
movwf ACVelocity
btfss Mark1,_ON
goto Timer_15
decfsz SetACTime,1
goto Timer_15
incf SetACTime,1
Timer_15:
decfsz Time30s,1
goto Main
movlw T30s
movwf Time30s
Timer_20:
decfsz Time05H,1
goto Main
movlw T05H
movwf Time05H
decfsz Time24H,1
goto Timer_30
movlw T24H
movwf Time24H
Timer_30:
movlw T24H-T8H
subwf Time24H,0
btfss status,2
goto Timer_40
bsf Mark1,_ON
movlw ACTimeMax-15h
movwf SetACTime
goto Main
Timer_40:
btfss GPIO,_TestPort
goto Main
movlw T24H-T95H
subwf Time24H,0
btfsc status,2
bcf Mark1,_ON
btfss status,0
bcf Mark1,_ON
goto Main
end
页:
[1]
