Seriál - PIC16F84 - 26 - Sériový přenos II.
10. 10. 08 - 11:20. Napsal Jiří Chytil. Přečteno 6369x. Žádné komentáře
Sériový přenost dat z PC do MCU přes RS232 (Com port)
Sériový přenos z počítače do mikrořadiče v našem případě zprostředkovává jediný vodič (když nepočítám zem) a to je linka TXD (datový výstup sériového portu z PC). Není používán časový signál a přenos je tedy asynchronní.
INCLUDE "P16F84A.INC" LIST P=16F84A, R=DEC __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;- Proměnné ---------------------------------------------------- c1 EQU h'20' ;proměnné pro cykly c2 EQU h'21' c3 EQU h'22' pocet EQU h'23' ;pocet datových bitů ;- Nastavení v/v ----------------------------------------------- BSF STATUS,RP0 ;přesun do banky 1 MOVLW b'00000001' ;nastavení v/v MOVWF TRISA MOVLW b'00000000' MOVWF TRISB BCF STATUS,RP0 ;přesun zpět do banky 0 ;- Vlastní program --------------------------------------------- zacatek BTFSC PORTA,0 ;čekání na startbit tlačítka GOTO get ;na RA0 musí být log0 GOTO zacatek ;aby se přešlo na get ;- doesílání dat --------------------------------------------- get CALL prodleva CALL prodlevs MOVLW 8 MOVWF pocet CLRF PORTB next BTFSS PORTA,0 BSF STATUS,C BTFSC PORTA,0 BCF STATUS,C RRF PORTB,1 CALL prodleva DECFSZ pocet,1 GOTO next ;- čekání na stop bit --------------------------------------------- konec BTFSS PORTA,0 GOTO zacatek GOTO konec ;- podprogram prodlevy čekání --------------------------------------------- ;- podprogram prodlevy --------------------------------------------- prodleva MOVLW 137 ;zpoždění: doba jednoho MOVWF c3 ;datového cyklu waitd DECFSZ c3,1 GOTO waitd RETURN prodlevs MOVLW 62 ;zpoždění: doba půl MOVWF c3 ;datového cyklu waitE DECFSZ c3,1 GOTO waitE RETURN END ;konec programu
Řízení probíhá z jednoduchého řídícího programu, který využívá komponenty RSCOM.dll. Ten je napsán v jazyce Visual Basic a jeho kód zabírá jen několik řádků kódu:
Private Sub Command1_Click()
SENDBYTE Val(Text1.Text)
End Sub
Private Sub Form_Load()
OPENCOM "COM2,1200,N,8,2"
End Sub
Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub
Je zde tedy vysíláno 8 bitů přenosovou rychlostí 1200bd. Není zde jakákoliv kontrolována parita a stop bit je nastaven na délku 2 dob 1/přenosová rychlost. Pracujeme s portem COM2. Číselná data zapsaná ve objektu text1.text se nám v binární hodnotě zobrazí na výstupu PORTB. Tohoto lze bez jakéhokoliv problému využít například pro sériové řízení inteligentních zobrazovačů.
Novinky Další novinky
Anketa
Jaký obchod preferujete při nákupu součástek?
TME
GES
GME
Farnell
SOS electronic
TIPA
EZK
PS Electronic
Mouser
Buček
Denkl Electronic
FK Technics
Hadex
Conrad
Jiný český
Jiný zahraniční
Poslední komentáře