Serj66610 писал(а):...переходим на 5 строк вверх
У меня нет PIC10F200 и симуляторов но, по идее, должно работать по вашему описанию из этого поста...
Проверяйте... /возможны ошибки/
Спойлер
Код: Выделить всё
LIST p=PIC10F200
#include <P10F200.INC>
;----------------------------------------------------------------------
__CONFIG _WDTE_OFF&_CP_OFF&_MCLRE_OFF
;----------------------------------------------------------------------
TIMELEDFLASHON equ .13 ; *8mS
TIMECOMPRESSORON equ .30 ; *2sec
TIMERESTARTCOMPRESSOR equ .11 ; *1min
;----------------------------------------------------------------------
BITREG1 equ 10h ; Bit register
CT2SEC equ 11h ; Counter to 2 second
CTMIN equ 12h ; Counter to 1 minute
CTRESTARTCOMPRESSOR equ 13h ; Counter to restart compressor
CTFLASHLEDON equ 14h ; Counter Led On
CTCOMPRESSORON equ 15h ; Counter Compressor On
;----------------------------------------------------------------------
#define _LED GPIO,0
#define _COMPRESSOR GPIO,1
#define _TESTOUT GPIO,2 ; Test ONLY for testing OSCCAL Data!!! 125Hz!!!
;----------------------------------------------------------------------
#define _REQLEDON BITREG1,0
#define _REQCOMPON BITREG1,1
;**********************************************************************
org 0
START
; movlw 0 ; Manual set OSCAL data / Preset OSCAL data (if commented).
movwf OSCCAL
bcf OSCCAL,FOSC4
;--------------------------------
movlw b'00001000'
movwf GPIO
TRIS GPIO
;
movlw b'00010100' ; TMR0: Fin = 1MHz; Prescaller = 32
OPTION
;----------------------------------------------------------------------
clrf BITREG1
;
movlw TIMECOMPRESSORON
movwf CTCOMPRESSORON
;
movlw TIMELEDFLASHON
movwf CTFLASHLEDON
;================
MAIN
movlw TIMERESTARTCOMPRESSOR
movwf CTRESTARTCOMPRESSOR
;--------------------------------
MAIN1
movlw .30
movwf CTMIN
;--------------------------------
MAIN2
movlw .250
movwf CT2SEC
;----------------------------------------------------------------------
MAIN3
; Check TMR0 data (counter to 250)
movf TMR0,W
btfss STATUS,Z
goto MAIN3
;
movlw .5
movwf TMR0
;----------------------------------------------------------------------
; 125Hz
;--------------------------------
; Test ONLY for testing OSCCAL Data!!! 125Hz!!!
bsf _TESTOUT
bcf _TESTOUT
;----------------------------------------------------------------------
; Check counter LedON & set serv bit.
bcf _REQLEDON
movf CTFLASHLEDON,W
btfss STATUS,Z
bsf _REQLEDON
;
; Check counter CompressorON & set serv bit.
bcf _REQCOMPON
movf CTCOMPRESSORON,W
btfss STATUS,Z
bsf _REQCOMPON
;--------------------------------
; Led on/Off
btfsc _REQLEDON
bsf _LED
btfss _REQLEDON
bcf _LED
;-------
; Compressor on/Off
btfsc _REQCOMPON
bsf _COMPRESSOR
btfss _REQCOMPON
bcf _COMPRESSOR
;----------------------------------------------------------------------
; Dec Time LED ON (if ON)
btfsc _REQLEDON
decf CTFLASHLEDON,F
;--------------------------------
; Count to 2 second
decfsz CT2SEC,F
goto MAIN3
;----------------------------------------------------------------------
; 2 Sec
;--------------------------------
; REQ Led On if Compressor is ON
movlw TIMELEDFLASHON
btfsc _REQCOMPON
movwf CTFLASHLEDON
;--------------------------------
; Dec Time Compressor ON (if ON)
btfsc _REQCOMPON
decf CTCOMPRESSORON,F
;----------------------------------------------------------------------
; Count to 1 minute
decfsz CTMIN,F
goto MAIN2
;----------------------------------------------------------------------
; 1 Min
;----------------------------------------------------------------------
decfsz CTRESTARTCOMPRESSOR,F
goto MAIN1
;----------------------------------------------------------------------
; REQ Compressor ON
movlw TIMECOMPRESSORON
movwf CTCOMPRESSORON
goto MAIN
;----------------------------------------------------------------------
;----------------------------------------------------------------------
end
/Комментарии на "кривом eng" - это за ваше нежелание проставить метки по goto


