Stránka 1 z 1

Pic 16F88 .... seriova linka

Napsal: 31 led 2010, 15:04
od zdendii
Dobrej :)

Potrebuju helpnout s jednim programkem.....

Svym zpusobem púotrebuju podprogram, kde po stisku tlacitka (je jich 17 program na rozpoznavani mam hotovy) se odesle po seriove lince 8bajtů z paměti EEPROM. tzn. tlacitko 1 - pamet eeprom 00 - 07hex, tlacitko 2 - pamet eeprom 08 - 0Fhex. Dekuji za pomoc!

Napsal: 31 led 2010, 19:40
od mikollar
ak sa ti nikto neozval resp. neozve, po 2.2. budem mat cas

Napsal: 31 led 2010, 20:58
od zdendii
Ok sice to potrebuju do 2.2 :)) ale to nevadi nejak to posoupnu....kdyby to slo....potreboval bych helpnout s takym skolnim projektem....kdyz by to casove vyslo...dokonce bych i zaplatil :) sak se ozvy treba na icq 267565592 dakujem!

Napsal: 02 úno 2010, 21:27
od mikollar

Kód: Vybrat vše

   
LIST P=16F88, R=DEC
   INCLUDE<P16F88.INC>
   
;------------------------------------------------------------
;      cpu init


#DEFINE kolo   20h
#DEFINE adresa   21h

;------------------------------------------------------------
org 0x2100
de 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF

de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
;------------------------------------------------------------
   org   0
goto   INIT
   org 0x04
   retfie;
;
;------------------------------------------------------------
BANK0
      BCF       STATUS,RP0          ; RAM PAGE 0
      BCF       STATUS,RP1          ; RAM PAGE 0
      return

BANK1
      BSF       STATUS,RP0          ; RAM PAGE 1
      BCF       STATUS,RP1          ; RAM PAGE 1
      return

BANK2
      BCF       STATUS,RP0          ; RAM PAGE 2
      BSF       STATUS,RP1          ; RAM PAGE 2
      return

BANK3
      BSF       STATUS,RP0          ; RAM PAGE 3
      BSF       STATUS,RP1          ; RAM PAGE 3
      return


INIT
      CALL      BANK1
      MOVLW      b'11011111'
      MOVWF      TRISB

; Boot Baud Rate = 9600, No Parity, 1 Stop Bit
;
        MOVLW      0x19              ; 0x19=9600 bps (0x0C=19200 bps)
        MOVWF      SPBRG
        MOVLW      b'00100100'       ; brgh = high (2)
        MOVWF       TXSTA             ; enable Async Transmission, set brgh

        CALL      BANK0

        MOVLW       b'10010000'       ; enable Async Reception
        MOVWF       RCSTA
   
;***************************************************

START   
      MOVLW      .0  ;od ktorej adresy bude citat
      MOVWF       adresa
      CALL      EEREAD
      GOTO      START



EEREAD
      CALL      BANK0
      MOVLW       .9
      MOVWF       kolo


NEXT   
      CALL      BANK0
      DECFSZ      kolo,f
      GOTO      POKRACUJ
      RETURN
      
      
POKRACUJ MOVFW      adresa
      
      CALL      BANK2
   
      MOVWF       EEADR          ; adresa EEPROM z W
      ; to read
      CALL      BANK3
      
      BCF       EECON1, EEPGD   ; Point to Data memory
      BSF       EECON1, RD       ; EE Read
   
      CALL      BANK2
      
      MOVF       EEDATA, W       ; data
   
      CALL      BANK0


      MOVWF      TXREG   

      CALL      BANK1
CAKAJ     BTFSS       TXSTA,TRMT      ; (1) transmission is complete if hi
        GOTO       CAKAJ

        CALL      BANK0

      INCF       adresa,f
      
      GOTO      NEXT
      return

      GOTO       START

      end