Tak nevim, jestli jsem to pochopil, jelikož to jako nashvál nekomunikuje ... jinak Baudrate mám 2,4k, což znamená 1bit = 400us, 25bitů = 10ms.
Takže po přepnutí RXTOTX následuje čekání 10ms.
Druhá strana:
Před přepnutím TXTORX je zakázán příjem UARTU, po přepnutí čeká 5ms (cca 13bitů), následně zapne příjem a čeká RCIF.
Vložil jsem detekce FERR a OERR.
Pro jistotu přikládám zdrojáky ...
Kód: Vybrat vše
LIST P=16F627
INCLUDE<P16F627.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC
TEMP EQU 23H
TEMP1 EQU 24H
K0L EQU 25H
K0H EQU 26H
K1L EQU 27H
K1H EQU 28H
K2L EQU 29H
K2H EQU 30H
ZNAMENKO EQU 31H
TMP0 EQU 32H
TMP1 EQU 33H
#DEFINE RXTX PORTB,3
#DEFINE ENABLE PORTB,0
ORG 00H
GOTO INIT
;-------------------------------ZACATEK PODPROGRAMU---------------------------------------------------------
PocitadloMinusJedna
DECFSZ TMP0,F
RETLW 0XFF ;este nepadol cas
DECFSZ TMP1,F
RETLW 0XFF ; este nepadol
RETLW 0 ;je zle padol cas
;--------------------------------------------------------------------
RXTOTX
BTFSC RXTX
RETURN
BSF RXTX
CALL WAIT400uS
CALL WAIT10mS
RETURN
;---------------------------------------------------------------------
TXTORX
BSF STATUS,RP0 ;BANKA1 ;CEKA DOKUD TSR NENI PRAZDNY ABYCHOM SI NEUFIKLI ODCHOZI DATA
BTFSS TXSTA,TRMT ; -,,-
GOTO $-1 ; -,,-
BCF STATUS,RP0 ;BANKA0 ; -,,-
BCF RCSTA,CREN
BCF RXTX
CALL WAIT40uS
BCF ENABLE
CALL WAIT20uS
BSF ENABLE
CALL WAIT200uS
CALL WAIT5mS
BSF RCSTA,CREN
RETURN
;----------------------------------------------------------------------
WAIT20uS
MOVLW 0x22 ;34 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
RETURN
;----------------------------------------------------------------------
WAIT40uS
MOVLW 0x43 ;67 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
RETURN
;------------------------------------------------------------------------
WAIT200uS
MOVLW 0x04 ;4 DEC
MOVWF TMP1
MOVLW 0x52 ;82 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
;----------------------------------------------------------------------
WAIT400uS
MOVLW 0x03 ;3 DEC
MOVWF TMP1
MOVLW 0x0DD ;221 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
WAIT10mS
MOVLW 0x50 ;80 DEC
MOVWF TMP1
MOVLW 0x0CF ;207 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
WAIT5mS
MOVLW 0x28 ;40 DEC
MOVWF TMP1
MOVLW 0x0CF ;207 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
;-------------------------------KONEC PODPROGRAMU-----------------------------------------------------------
INIT
MOVLW B'00000111'
MOVWF CMCON
BSF STATUS,RP0 ;BANKA1
MOVLW B'00000000' ;VYSTUPNI PORT A
MOVWF TRISA
MOVLW B'00000110' ;REZERVACE PORTU B,1,2 PRO SERIOVY PRENOS
MOVWF TRISB
MOVLW D'129' ;KONSTANTA PRO VYPOCET BAUD RATE
MOVWF SPBRG
MOVLW B'00100000' ;zapnuti TXEN
MOVWF TXSTA ;
CLRF PIE1 ;Vypnout preruseni na periferiich
BCF STATUS,RP0 ;BANKA0
BSF RCSTA,SPEN ;POVOLENI SERIOVEHO PORTU
BSF RCSTA,CREN ;POVOLENÍ PRIJMU
;INICIAKZACE BEZDRATOVEHO MODULU
BSF ENABLE
CALL WAIT20uS
BSF RXTX
CALL WAIT400uS
;--------------------------------------------------------------------------------------------
MOVF RCREG
MOVF RCREG
;---------------------------------SYNCHRONIZACE S DRUHYM PROCESOREM---------------------------
SYNCHRO
CALL RXTOTX
MOVLW 0x55 ;POSLI 55H, TESTUJ NECHTENE PREPSANI TXREG
BTFSS PIR1,TXIF ; -,,-
GOTO $-1 ; -,,-
MOVWF TXREG ; -,,-
CALL TXTORX
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVLW 0x21 ;33 DEC ;CEKEJ 50MS
MOVWF TMP1
MOVLW 0x76 ;118 DEC
MOVWF TMP0
CykSynchro
BTFSC PIR1,RCIF ;
GOTO TestujNa0XAA ;PRISLO ZPET AAH ?
CALL PocitadloMinusJedna ;ODECTI 1 Z INTERVALU 50MS
ANDLW 0XFF ;test W, NA RETLW
BTFSC STATUS,Z
GOTO SYNCHRO ;ČAS UPLYNUL
GOTO CykSynchro ;ČAS NEUPLYNUL
TestujNa0XAA
movf RCREG,0
movwf TEMP
movlw 0XAA
subwf TEMP,0
btfss STATUS,Z
goto SYNCHRO
call RXTOTX
goto PRENOSK0
RESTARTPRIJMU
BCF RCSTA,4
BSF RCSTA,4
GOTO SYNCHRO
CHYBASTOPBITU
MOVF RCREG
GOTO SYNCHRO
;-------------------------------------------------------------------------------------------------------------------------
PRENOSK0
MOVLW B'00000001' ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI vždy pred zápisom !
GOTO $-1 ;
MOVWF TXREG ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
CALL TXTORX
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVLW 0x21 ;33 DEC
MOVWF TMP1
MOVLW 0x76 ;118 DEC
MOVWF TMP0
CYKPRIJEM1
BTFSC PIR1,RCIF
GOTO PRIJEM1
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM1 ; ešte nepadol
PRIJEM1
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF K0L ;DAT A JEJICH ULOZENI
CYKPRIJEM2
BTFSC PIR1,RCIF
GOTO PRIJEM2
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM2 ; ešte nepadol
PRIJEM2
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF K0H ;DAT A JEJICH ULOZENI
CALL RXTOTX
;-------------------------------------------------------------------------------------------------------------------------
PRENOSK1
MOVLW B'00000010' ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI vždy pred zápisom !
GOTO $-1 ;
MOVWF TXREG ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
CALL TXTORX
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVLW 0x21 ;33 DEC
MOVWF TMP1
MOVLW 0x76 ;118 DEC
MOVWF TMP0
CYKPRIJEM3
BTFSC PIR1,RCIF
GOTO PRIJEM3
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM3 ; ešte nepadol
PRIJEM3
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF K1L ;DAT A JEJICH ULOZENI
CYKPRIJEM4
BTFSC PIR1,RCIF
GOTO PRIJEM4
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM4 ; ešte nepadol
PRIJEM4
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF K1H ;DAT A JEJICH ULOZENI
CALL RXTOTX
;-------------------------------------------------------------------------------------------------------------------------------
PRENOSK2
MOVLW B'00000100' ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI vždy pred zápisom !
GOTO $-1 ;
MOVWF TXREG ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
CALL TXTORX
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVLW 0x21 ;33 DEC
MOVWF TMP1
MOVLW 0x76 ;118 DEC
MOVWF TMP0
CYKPRIJEM5
BTFSC PIR1,RCIF
GOTO PRIJEM5
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM5 ; ešte nepadol
PRIJEM5
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF K2L ;DAT A JEJICH ULOZENI
CYKPRIJEM6
BTFSC PIR1,RCIF
GOTO PRIJEM6
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM6 ; ešte nepadol
PRIJEM6
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF K2H ;DAT A JEJICH ULOZENI
CYKPRIJEM7
BTFSC PIR1,RCIF
GOTO PRIJEM7
CALL PocitadloMinusJedna
ANDLW 0XFF ;test W
BTFSC STATUS,Z
GOTO SYNCHRO ; podol čas
GOTO CYKPRIJEM7 ; ešte nepadol
PRIJEM7
BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;jdi na opravu chyby prijmu
BTFSC RCSTA,FERR
GOTO CHYBASTOPBITU
MOVF RCREG,0
MOVWF ZNAMENKO ;DAT A JEJICH ULOZENI
CALL RXTOTX
GOTO PRENOSK0
END
Kód: Vybrat vše
LIST P=16F877A
INCLUDE<P16F877A.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC & _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF
TMP0 EQU 22H
TMP1 EQU 23H
VYBER EQU 24H
ZNAMENKO EQU 25H
#DEFINE ENABLE PORTC,1
#DEFINE RXTX PORTC,2
ORG 00H
GOTO INIT
;----------------------------ZACATEK PODPROGRAMU--------------------------------------------------
ADPREVOD
MOVLW 0x05 ;CEKANI 750uS PRED ZAHAJENIM PREVODU
MOVWF TMP1
MOVLW 0x0DD ;
MOVWF TMP0
DECFSZ TMP0,1 ;
GOTO $-1
DECFSZ TMP1,1 ;
GOTO $-3
BSF ADCON0,2 ;zahejni prevodu
BTFSC ADCON0,2 ;zjistovani dokonceni prevodu
GOTO $-1 ;...
RETURN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VYSILEJL
BSF STATUS,RP0 ;BANKA1 (ADRESL JE V BANCE 1 !!! )
MOVF ADRESL,W ;do W je ulozena informace a MCU ji nasledne odesila pres UART ven
BCF STATUS,RP0 ;BANKA0
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI
GOTO $-1 ;
MOVWF TXREG ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
RETURN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VYSILEJH
MOVF ADRESH,W ;do W je ulozena informace a MCU ji nasledne odesila pres UART ven
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI vždy pred zápisom !
GOTO $-1 ;
MOVWF TXREG ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
RETURN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VYSILEJZNAMENKO
MOVF ZNAMENKO,W
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI vždy pred zápisom !
GOTO $-1 ;
MOVWF TXREG ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
RETURN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RXTOTX
BTFSC RXTX
RETURN
BSF RXTX
CALL WAIT400uS
CALL WAIT10mS
RETURN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TXTORX
BSF STATUS,RP0 ;BANKA1 ;CEKA DOKUD TSR NENI PRAZDNY ABYCHOM SI NEUFIKLI ODCHOZI DATA
BTFSS TXSTA,TRMT ; -,,-
GOTO $-1 ; -,,-
BCF STATUS,RP0 ;BANKA0 ; -,,-
BCF RCSTA,CREN
BCF RXTX
CALL WAIT40uS
BCF ENABLE
CALL WAIT20uS
BSF ENABLE
CALL WAIT200uS
CALL WAIT5mS
BSF RCSTA,CREN
RETURN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WAIT20uS
MOVLW 0x22 ;34 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
RETURN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WAIT40uS
MOVLW 0x43 ;67 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
RETURN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WAIT200uS
MOVLW 0x04 ;4 DEC
MOVWF TMP1
MOVLW 0x52 ;82 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WAIT400uS
MOVLW 0x03 ;3 DEC
MOVWF TMP1
MOVLW 0x0DD ;221 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
WAIT10mS
MOVLW 0x50 ;80 DEC
MOVWF TMP1
MOVLW 0x0CF ;207 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
WAIT5mS
MOVLW 0x28 ;40 DEC
MOVWF TMP1
MOVLW 0x0CF ;207 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
RETURN
;+++++++++++++++++++++++++++++++++++KONEC PODPROGRAMU++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;-----------------------------------INICIALIZACE PERIFERII--------------------------------------------
INIT
BCF STATUS,RP0 ;BANKA0
BCF STATUS,RP1 ;BANKA0
CLRF PORTA
CLRF PORTE
CLRF PORTC
CLRF PORTB
BSF STATUS,RP0 ;BANKA 1
MOVLW B'00000111' ;INICIALZICAZE PORTU
MOVWF CMCON ;
MOVLW B'10000000' ;INICIALIZACE AD PREVODNIKU
MOVWF ADCON1 ;
MOVLW B'00111111' ;INICIALIZACE PORTUA RA0-RA5 AD VSTUPY
MOVWF TRISA ;
MOVLW B'00000111' ;INICIALIZACE PORTUE RE0-RE2 AD VSTUPY
MOVWF TRISE ;
MOVLW B'00000000' ;INICIALIZACE PORTUB VSE VYSTUP
MOVWF TRISB ;
CLRF TRISC ;PortC 7,6 pro USART, 0 pro detekci zaporneho napeti cidla teploty
MOVLW B'11000001' ;
MOVWF TRISC ;
MOVLW D'129' ;konstanta pro vypocet BAUD RATE
MOVWF SPBRG ;
;
MOVLW B'00100000' ;zapnuti TXEN
MOVWF TXSTA ;
CLRF PIE1 ;Vypnout preruseni na periferiich
BCF STATUS,RP0 ;BANKA0
MOVLW B'10010000' ;zapnuti UART portu a prijmu
MOVWF RCSTA
;INICIALIZACE BEZDRATOVEHO MODULU
BSF ENABLE
CALL WAIT20uS
BSF RXTX
CALL WAIT200uS
BCF RXTX
CALL WAIT40uS
BCF ENABLE
CALL WAIT20uS
BSF ENABLE
CALL WAIT200uS
;------------------------------------------------KONEC INICIALIZACE-------------------------------------------------------------------------
START BTFSC RCSTA,OERR ;TEST CHYBY PRIJMU
GOTO RESTARTPRIJMU ;
BTFSC RCSTA,FERR ;TEST CHYBY PRIJMU
GOTO CHYBARAMEC ;
BTFSS PIR1,RCIF ;ceka na prichozi data (dokud neni naplnen RCREG)
GOTO START ;
MOVF RCREG,0
MOVWF VYBER
MOVWF PORTB ;zobrazeni prichozich dat na LED
GOTO MENU
RESTARTPRIJMU
BCF RCSTA,4
BSF RCSTA,4
GOTO START
CHYBARAMEC
MOVF RCREG,0
GOTO START
MENU
MOVLW 0X55
SUBWF VYBER,0 ;porovnaj ak W==VYBER>je zero v STATUS
BTFSC STATUS,Z ; Zero indikator
GOTO SYNCHRO ; nie call treba odpovedat 0xAA a ide START
MOVLW B'00000001'
SUBWF VYBER,0
BTFSC STATUS,Z
GOTO PRENOSK0
MOVLW B'00000010'
SUBWF VYBER,0
BTFSC STATUS,Z
GOTO PRENOSK1
MOVLW B'00000100'
SUBWF VYBER,0
BTFSC STATUS,Z
GOTO PRENOSK2
GOTO START
SYNCHRO ;SYNCHRONIZACE (POSLI ZPET 0xAA) (POKUD 0x55 PRIJATO A BEZ CHYB)
CALL RXTOTX
BTFSS PIR1,TXIF ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI
GOTO $-1 ;
MOVLW 0xAA ;odpoved
MOVWF TXREG
CALL TXTORX
GOTO START ; bude sa cakat odznova povel alebo synchro
PRENOSK0
CALL RXTOTX
MOVLW B'11000001' ; vyber vstupniho kanalu (0) , vyber zdroje CLOCK (INTRC), zapnuti AD
MOVWF ADCON0 ;...
CALL ADPREVOD ;zavolej zahajeni AD prevodu
CALL VYSILEJL ;zavolej vysilani LsB
CALL VYSILEJH ;zavolej vysilani MsB
CALL TXTORX
GOTO START
PRENOSK1
CALL RXTOTX
MOVLW B'11001001' ; vyber vstupniho kanalu (1) , vyber zdroje CLOCK (INTRC), zapnuti AD
MOVWF ADCON0 ;...
CALL ADPREVOD ;zavolej zahajeni AD prevodu
CALL VYSILEJL ;zavolej vysilani LsB
CALL VYSILEJH ;zavolej vysilani MsB
CALL TXTORX
GOTO START
PRENOSK2
CALL RXTOTX
BTFSC PORTC,0 ;POKUD TEPLOTA KLADNA, TAK PREVOD S NORMALNIM VREF+. POKUD ZAPORNA TAK VREF+ -5V
GOTO MINUSHODNOTA
MOVLW B'11010001' ; vyber vstupniho kanalu (2) , vyber zdroje CLOCK (INTRC), zapnuti AD
MOVWF ADCON0 ;...
CALL ADPREVOD ;zavolej zahajeni AD prevodu
CALL VYSILEJL ;zavolej vysilani LsB
CALL VYSILEJH ;zavolej vysilani MsB
BCF ZNAMENKO,0 ;TEPLOTA JE KLADNA
CALL VYSILEJZNAMENKO
CALL TXTORX
GOTO START
MINUSHODNOTA
BSF STATUS,RP0 ;BANKA1
MOVLW B'10000001' ;NASTAVENI VREF+ RA3
MOVWF ADCON1
BCF STATUS,RP0
MOVLW B'11010001' ; vyber vstupniho kanalu (2) , vyber zdroje CLOCK (INTRC), zapnuti AD
MOVWF ADCON0 ;...
CALL ADPREVOD ;zavolej zahajeni AD prevodu
CALL VYSILEJL ;zavolej vysilani LsB
CALL VYSILEJH ;zavolej vysilani MsB
BSF ZNAMENKO,0 ;teplota je zaporna
CALL VYSILEJZNAMENKO
BSF STATUS,RP0 ;BANKA1
BCF ADCON1,0 ;NASTAVENI VREF+ +5V
BCF STATUS,RP0 ;BANKA0
CALL TXTORX
GOTO START
PRENOSK3
PRENOSK4
GOTO START
END