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


Ovládání PORTx přes COM port

05. 06. 10 - 08:23. Napsal Jiří Chytil. Přečteno 2492x. 6 komentářů

Ovládání jednotlivých pinů portů mikrokontroleru pomocí instrukcí posílaných přes COM (RS232). Při využití bitů 3-6 lze adresovat až 16 portů. Teoreticky by tedy bylo možné adresovat až 128 pinů.

Program funguje tak, že přijme data z COM portu (asynchronní přenos) a uloží je do proměnné datt; tři nejnižší bity (0-2) adresují pin portu. Pomocí proměnné pocet a instrukce RLF se vytvoří maskovací byte. Pokud by byly využity bity 3-6, určily by, který bit se má použít. Tento program je ale pro PIC16F84A a využívá proto pouze PORTB. Bit MSB - nejvyšší bit - určuje, do jakého stavu se port nastaví, pokud je v log. 1 nastaví se do log. 1, a naopak. To se provede použitím maskovacího bytu pocet a instrukcí ANDWF a IORWF

		INCLUDE	"P16F84A.INC"
		LIST 	P=16F84A, R=DEC

		__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

;- nastavení COM portu: -----------------------------------------
;
;                     2400 Baud
;                     8 bit
;                     none parity
;                     none handshake (pomocné linky)
;
;- Proměnné ----------------------------------------------------

c1		EQU		h'20'		;proměnné pro cykly
pocet		EQU		h'23'		;počet bitů
datt		EQU		h'24'		;data z portu
tatt		EQU		h'25'		;temp data

;- 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 start bit
		GOTO		get		
		GOTO		zacatek		

;- přijem dat --------------------------------------------------
		
get		CALL		prodleva
		CALL		prodleva
		CALL		prodleva
		MOVLW		8
		MOVWF		pocet
		MOVLW		255
		MOVWF		datt
		
next		BTFSS		PORTA,0
		BCF		STATUS,C
		BTFSC		PORTA,0
		BSF		STATUS,C
		RRF		datt,1		;ukládání do datt
		CALL		prodleva
		CALL		prodleva
		DECFSZ		pocet,1
		GOTO		next
		CALL		prodleva
		CALL		prodleva

;- čekání na stop bit ------------------------------------------

konec		BTFSC		PORTA,0	
		GOTO		konec

;- zpracovaní přijatých dat ------------------------------------

		COMF		datt,1		;inverze datt
		MOVLW		b'00000001'	;výchozí pozice
		MOVWF		pocet		;maskovacího bitu počet
		MOVF		datt,0
		ANDLW		b'00000111'	;maskovaní na hodnotu 0-7
		MOVWF		tatt		;bity b3-b7 se vynulují 
		
repe		MOVF		tatt,1		;nastavení maskovacího
		BTFSC		STATUS,Z	;bytu počet 
		GOTO		output
		BCF		STATUS,C
		RLF		pocet,1
		DECF		tatt,1
		GOTO		repe

output		MOVF		datt,0		;rozhodnutí zda se
		ANDLW		b'10000000'	;má bit nulovat
		BTFSC		STATUS,Z	;nebo nastavit
		GOTO		output0

output1		MOVF		pocet,0		;maskování portu
		IORWF		PORTB,1		;na nastavení bitu
		GOTO		zacatek
				

output0		COMF		pocet,0		;maskování portu
		ANDWF		PORTB,1		;na nulování bitu
		GOTO		zacatek

;- podprogram prodlevy ---------------------------------------------

prodleva	MOVLW		63
		MOVWF		c1
wait		DECFSZ		c1,1
		GOTO		wait
		RETURN	
				
		END

Kód: Assembler PIC16F84A - Ovládání PortuB přes COM port


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.


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í