Probléma 16F871 UART inicializálásakor?
Simon Dávid
bowika at freemail.hu
Tue Aug 20 17:30:46 CEST 2002
Sziasztok!
Próbáltam irni egy 1xű kis progit PIC16F871- re, amivel
össze tudnám kapcsolni a PIC-et egy PC-vel, de sajna
valamiért nem működik.
Hogy miért nem tudom. Már elolvastam tüzetesen a PIC
adatlapját a témával kapcsolatban többször is (már a
sorrendet is betartom), de ennek ellenére sem jövök rá
miért nem megy.
A progi a következő (tartalmaz 1 számlálót is a B porton
csak azért, hogy szkóppal ellenőrizni lehessen, hogy a PIC-
ben fut-e a progi.
list p=16f871 ; list directive to define
processor
#include <p16f871.inc> ; processor
specific variable definitions
;***********************************************************
***********
ORG 0x000
goto MAIN
ORG 0x004
goto interrupt
MAIN
BSF STATUS,RP0
MOVLW 0X00 ;ezt csak azért, hogy lássam
MOVWF TRISB ;müködik-e a PIC
MOVLW 0XBF ;ezt nem tudom kell-e
MOVWF TRISC ;csak a biztonság kedvéért
MOVLW 0X81 ; 9600 bit/s
MOVWF SPBRG ;
BSF TXSTA,BRGH ;csak a kisebb hiba miatt
egyébként azt
;se tudom mi a BRGH=0 azt
értelme ha
;BRGH=1 esetén kisebb a hiba
BCF TXSTA,SYNC ;aszinkron módra állítás
BCF STATUS,RP0
BSF RCSTA,SPEN ; a soros port enedélyezés
BSF STATUS,RP0
BSF PIE1,TXIE ;megszakítás eng.
BCF TXSTA,TX9 ;nem kell 9.bit
BSF TXSTA,TXEN ;TX engedélyezve
BSF INTCON,GIE ;ezt nem tudom, hogy kell-e
; a adatlap nem irj, de nem
árt
BCF STATUS,RP0
MOVLW 0X55 ;csak hogy lgyen benne
valami
MOVWF TXREG
KEZDET
INCF TRISB,F ; ez csak egy 8.bináris
számláló
; csak hogy lássam müxik-e
a PIC
; de megy a freki is OK
GOTO KEZDET
interrupt
BCF INTCON,GIE ;hogy ne szakítson félbe
RRF TXREG,F ;ezt meg azért, hogy ne
mindig ugyanazt
BSF INTCON,GIE ;mert csak
RETFIE ;ki a soros vonalra
END
Ha esetleg valakinek van 1 perce rá, nagyon megköszönöm a
segítségét.
Vagy ha esetleg tud valaki küldeni egy UART inicializálás
progit az lenne a legjobb (szétnéztem a neten, de ne igen
találtam röved lényegretöröt).
Előre is köszi mindenkinek a segítséget.
Üdv.:
Bowie
More information about the Elektro
mailing list