Jít k navigaci - Jít k vyhledávání


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
Kód: Assembler pro PIC16F84A - Sériový přenos příjem

Ří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
Kód: Visual Basic 6.0 - Sériový přenos vysílání

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čů.



Autor
Jiří Chytil

Jiří Chytil24 let

Šéfredaktor 8bitu.cz. V současné době je studentem prvního ročníku magisterského studia na Fakultě elektrotechické na VUT v Brně. Mezi jeho koníčky patří elektrotechnika, bastlení, programování a hudba. Pracuje na částečný úvazrek ve společnosti Honeywell HTS ACS.

Diskuse ke článku (0)

- Žádné příspěvky -

Přidat první komentář »


Novinky Další novinky

[10. 03.]  Tak jsem pro Vás připravil novou anketu. A snažím se pokračovat na projektu jehož výsledky bych zde rád zveřejnil, ale poněkud mě brzdí diplomová práce a práce.
[30. 01.]  Omlouvám se za nečinnost způsobenou značným nedostatkem času. Nevím, ale jestli se mi to podaří změnit. To víte, člověk stárne a jeho čas je potřeba jinde než na internetu.
[07. 03.]  Po dlouhé době jsme pro vás přichystali novou anketu - najdete ji níže v pravém panelu.
[12. 12.]  Zajímavý počin v oblasti měřící techniky jsou Real-time spektrální analyzátory - odkaz
[07. 12.]  Sice již starší video, ale stále mě uchvacuje. Výroba elektronek "doma" - odkaz

Reklama

Morphy Richards elektronika Okruháři.cz

Programujte.com

Léčivé obrazy - enkaustika Lenka Blažíková

Keramika Věra Coufalová - užitková keramika

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í