Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем при четене на термодатчик
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=3468
Страница 1 от 1

Автор:  harleybg [ Пон Дек 25, 2006 6:01 pm ]
Заглавие:  Проблем при четене на термодатчик

Весела Коледа на всички!!!!!!!!!



Ползвам PIC16F84A и датчик ТС77. Измерената температура я записвам в EEPROM-а на PIC-a, но тя не е вярна. Не мога да разбера къде точно греша. Ето и програмата:
Код:
   list   p=16f84
   #include   <p16f84.inc>
   __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
w   EQU   0
f   EQU   1
   cblock   h'0c'
   i
   temp1;mlad6i byte na temperaturata   
   temp2;star6i byte na temperaturata
   buffer
   endc
#define   ck   PORTB,0
#define   IO   PORTB,1
#define   fan   PORTB,2
#define   CS   PORTB,3   

   ORG   H'0000'
   goto   start

start   bsf   STATUS,RP0
   bcf   TRISB,0
   bcf   TRISB,2
   bsf   TRISB,3
   nop
   nop
   nop
   nop   
   bcf   STATUS,RP0
   bcf   CS
   CLRF   PORTB
   goto   main
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
clock   bcf   ck
   nop
   nop
   nop
   nop
   nop
   bsf   ck
   return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
proverka   btfsc   EECON1,WR
   goto   proverka
   bcf   STATUS,RP0
   return
pisane   movlw   H'01'
   movwf   EEADR
   movf   temp1,w
   movwf   EEDATA
   bsf   STATUS,RP0
   bsf   EECON1,WREN
   movlw   H'55'
   movwf   EECON2
   movlw   H'AA'
   movwf   EECON2   
   BSF   EECON1,WR
   call   proverka
   
   movlw   H'00'
   movwf   EEADR
   movf   temp2,w
   movwf   EEDATA
   bsf   STATUS,RP0
   bsf   EECON1,WREN
   movlw   H'55'
   movwf   EECON2
   movlw   H'AA'
   movwf   EECON2   
   BSF   EECON1,WR

   call   proverka

   return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
noname   btfss   IO
   bcf   STATUS,C
   bsf   STATUS,C
   rlf   buffer,f
   return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
chetene   movlw   0
   movwf   buffer
chetene_   call    clock
   call   noname
   decfsz   i,f
   goto   chetene_
   movf   buffer,w
   return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
main   bsf   STATUS,RP0
   BSF   TRISB,1
   bcf   STATUS,RP0
   movlw   D'5'
   movwf   i
   call   chetene
   movwf   temp2
   movlw   D'8'
   movwf   i
   call   chetene
   movwf   temp2
ni6to   movlw   D'3'
   movwf   i
ni6to_   call   clock
   decfsz   i,f
   goto   ni6to_
   goto   izvejdane
izvejdane;16 posledovatelni 0
   bsf   STATUS,RP0
   bcf   TRISB,1
   bcf   STATUS,RP0
   bcf   IO
   movlw   D'16'
   movwf   i
izvejdane_   call   clock
   decfsz   i,f
   goto   izvejdane_
   call   pisane
   goto   main

   END

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/