# PIC mikrokontrolleri >  Pic16F84-04p

## konis22

Sveiki vis apkārt.Es pasen postēju te forumā par tādu lietu kā pic un prasiju padomus ko un kā.Esmu jau uzrakstijis daudz programmas priekš pll un ascii comunikācijām bet gribētos šo to pilnveidot.Ir tāda lietā ka nesaprotu kā vienkāršāk uzrakstīt mpasm rindā ;a izvad;it datus virknē uz vienu porta grupas kāju.Piemēram ja man vajag izvadīt 101 uz bporta 0 kāju.es to parasti izdaru tā kad sūtu 1tad0 un tad atkal 1 uz konkrēto portu.Nezinu vai tas ir riktīgi bet viss itkā strādā.Problēmas rodas tad kad gribētos izvadīt piemēram skaitli kas sasniedz kādus 32bitus vai vairāk.Būtu prieks ja kāds par šo tēmu padiskutētu vai ko palīdzētu.Ja vajag kādus piemērus tad uzpostēšu.Paldies

----------


## 0xDEAD BEEF

Nu tu vari izmantot usart, kas suta datus seriali. Vai uzlikt taimeri un uztaisit funkciju, kas suta datus. Tad tev butu counter1 un counter2. counter1 = 8->0, counter2 = baitu skaits. funkcija ontimer aizsuta uz to pinu pirmo bitu no counter2 baita, pashiftp counter2 baitu pa labi/kreisi, samazina counter1. ja counter1 = 0, coutner1 = 8, counter2++.
beefs

----------


## Slowmo

PIC16F84, ja nemaldos nav seriālā porta, tāpēc nāksies vien pašam šiftot datus ārā kā Beefs aprakstīja. Saglabājam 32 bitus 3 baitos un bīdam pa vienam bitam ārā.

----------


## next

Gruuti saprast ko iisti vajag.
Aizdomas ka gruutiibas rada nepiecieshamiiba komuniceet caur briivi izveeleetu pinu.
Gribi lai viena un taa pati programma suuta datus pa dazhaadaam kaajaam?
Tad jaaaizmirst par bsf un bcf un proceduura jaaveido no and un or.
Ja gribi papildus veel briivi izveeleetu portu - naaksies portu adreseet caur FSR.
Padomaa vai tas ir to veerts.

----------


## sharps

Ja veelies suutiit datus seriaali, tad nemokies ar PIC16F84. Peec kaaju konfiguraacijas ir PIC16F628A un leetaak arii maksaa, bet ar dazhaam labaam lietaam iekshaa. Kaa arii seriaalu datu suutishanu var vieglaak oranizeet. Shim chipam RB1 un RB2 kaajas ir organizeetas kaa RX un TX jeb iebuuveets USARTs. RX taa ir datu sanjemshana, ko var organizeet ar paartraukumu un TX ir kaa datu nosutiishana. Piemeerm uz datoru caur RS232 mikreni vari suutiit datus, ko var izvadiit seriaalaa konsolee iestaadot vajadziigo baudrati.
Ja ir siikaaka interese varu padalaaties ar informaaciju.

----------


## next

> Piemeerm uz datoru caur RS232 mikreni vari suutiit datus.


 Ja lieto softisko variantu tad var iztikt bez RS232 paarveidotaaja.

----------


## sharps

> Piemeerm uz datoru caur RS232 mikreni vari suutiit datus.
> 
> 
>  Ja lieto softisko variantu tad var iztikt bez RS232 paarveidotaaja.


 
Kaa tu to domaa softisko? Pa tiesho no PICa uz datoru? Tu ko gribi PICam izejas nosvilinaat? Tas RS232 ir sprieguma liimenju paarveidotaajs neviss koda paarveidotaajs. Dators tev sapratiis 8bitu ciparu kaa ASCII kodu. Protams var jau riskeet un taa dzenaat.

----------


## next

Nosvilinaat jau var visu.
Bet tas atkariigs no kurienes rokas aug.

----------


## sharps

> Nosvilinaat jau var visu.
> Bet tas atkariigs no kurienes rokas aug.


 Rokaam te biezhi nav noziimes. Taapeec jau labaak lietot tam paredzeetos chipus. Mazaak galva saapes.

----------


## next

> Rokaam te biezhi nav noziimes. Taapeec jau labaak lietot tam paredzeetos chipus. Mazaak galva saapes.


 Rekur tipisks RS232 uztveereejs kas kompii uz maatesplates staav.
Pastaasti kaapeec vinjam nevar PICu sleegt klaat.

----------


## Delfins

kompim jau nekas nebūs, bet PICu var nosvilināt.
tas tač nav nekāda problēma uzlikt buferi.

----------


## sharps

> Rokaam te biezhi nav noziimes. Taapeec jau labaak lietot tam paredzeetos chipus. Mazaak galva saapes.
> 
> 
>  Rekur tipisks RS232 uztveereejs kas kompii uz maatesplates staav.
> Pastaasti kaapeec vinjam nevar PICu sleegt klaat.


 par to jau runa ka kompim jau nekas. bet PICs pie kaa vainiigs? ir jau veel viena iespeeja ka ja PICu baro caur impulsnieku, tad var shaada taada ziepe izveidoties izsitot gan PICu gan kompi.

----------


## konis22

Runājot par svilināšanu tad es parasti izmantoju invertorus vai būtu buferis un pirms kautko slēdzu klāt pārbaudu kas notiek shēmā un uz porta.Lieta tāda kad esmu uzrakstijis softu picam kas ar 9600bod sūta uz com datus pa 2 vadiem un viss itkā notiek ok tikai gribētos kautkā vienkāršāk ko visu lietu uztaisīt lai varētu programmu advancētāku uztaisīt.Itkā jau gan pic12c508 ar pic16f84 viss iet un savstarpēji komunicē.Paldies par padomiem
Starpcitu ko jūs sakiet par pic16f636 vai kāds ir darbojies ar šādu brīnumu????Tas tā tikai starp citu.
Ja drīkst tad sharp lūdzu iepostē kādu piemēru kā varētu tā baitu sūtīšana izskatīties asm veidā.

----------


## sharps

> Starpcitu ko jūs sakiet par pic16f636 vai kāds ir darbojies ar šādu brīnumu????Tas tā tikai starp citu.
> Ja drīkst tad sharp lūdzu iepostē kādu piemēru kā varētu tā baitu sūtīšana izskatīties asm veidā.


 ar 636 neesmu saskaaries.
tev to kodu softiskajam seriaalam vai hardwariskam (USART) seriaalam? varu tev piedaavaat USARTam, jo softvarisko sen neesmu lietojis un nez vai atradiishu.

----------


## konis22

Piedod nesapratu tavu domu.Man vajag tādu gabalu kas der lai pic16f84 izmantojot var pielāgot un tas kompilētos.Nu to gabalu kurā tie dati tiek sūtīti uz teiksim portb,0 kautvai daļu no koda lai varu apskatīties kā tu biji domājis to lietu ar tiem baitiem jo šobrīd nav skaidrs nekas par to.  ::

----------


## sharps

> Piedod nesapratu tavu domu.Man vajag tādu gabalu kas der lai pic16f84 izmantojot var pielāgot un tas kompilētos.Nu to gabalu kurā tie dati tiek sūtīti uz teiksim portb,0 kautvai daļu no koda lai varu apskatīties kā tu biji domājis to lietu ar tiem baitiem jo šobrīd nav skaidrs nekas par to.


 
to sauc par sofwarisko jeb tu pats fiziski ar kodiem cilaa kaajas spriegumu liimenjus. man hardwariskais (to dara iebuuveeta ieriice PICaa) gatavs ir prieksh 628A. tad man jaapameklee. neko nesolu ka ka atradishu taadu. varu ideju mutiski izstaastiit.

----------


## konis22

Us parasti pats definēju kad un kas (kura)kāja būs au up vai down 0 vai +5V   ::   Visus softus ko rakstu rakstu no nulles.

----------


## sharps

> Us parasti pats definēju kad un kas (kura)kāja būs au up vai down 0 vai +5V    Visus softus ko rakstu rakstu no nulles.


 
tas prasa vairaak laika un taimingu apreekjinu, ja gribi piemeeram peekshnji mainiit baudrati. iesaku tev panjemt jau chipu kuraa ir tas USART iekshaa. pats redzeesi, ka tas viss notiek elemenaaraak.
kaa tu to pasaakumu tur taisi. tu suuti datus uz kompi no PICa?

----------


## next

Atradu vecos arhiivos prieksh 10MHz.


```
bout	macro

;	bout_ 	raida baitu uz serial portu 9600 bps no PORTA 0
; 	prog size= h 22		ram size=ramsak+2
		;const
	local	rampoint,outbit,baits,rcs,rpau
		;label
	local	la1,la2,la3,la4
		;literal
rampoint	set	ramsak		;0 level
outbit		set	0		;bits raidisanai
		;register
baits		set	rampoint	;raidamais baits (in arguments )
rcs		set	rampoint+1	;ciklu skait
rpau		set	rampoint+2	;pauze skait

		movlw	D'85'			;pauzes garums
		movwf	rpau
		movlw	TRISA
		movwf	FSR
		bcf	PORTA,outbit		;uzstada startbitu bit=0
		bcf	INDF,outbit		;port A0 is out
la1		decfsz	rpau,F			;forme pauzi
		goto	la1
		movlw	8			;bitu skaits
		movwf	rcs
la2		bsf	PORTA,outbit		;bit=1
		btfss	baits,0
		bcf	PORTA,outbit		;bit=0	
		movlw	D'83'			;pauzes garums
		movwf	rpau
la3		decfsz	rpau,F			;forme pauzi
		goto	la3
		rrf	baits,F
		decfsz	rcs,F
		goto	la2	
		bsf	PORTA,outbit		;uzstada stopbitu bit=1	
		movlw	D'170'			;pauzes garums
		movwf	rpau
la4		decfsz	rpau,F			;forme pauzi
		goto	la4
		movlw	TRISA
		movwf	FSR
		movlw	1
		iorwf	INDF,F			;port A0 is in
		return
		endm
```

----------


## next

skip

----------


## konis22

Es parasti izmantoju taimeru lai regulētu boud raitu piemēram ja man vajag citu tad mainās vērtība ko sūta uz taimeru un līdz ar to mainās arī boudbaits.Man tikai 1 vitā jānorāda cits skaitlis un viss mainās attiecīgi.Sistēma ir kautkas līdzīgs kā adrešu signalizācijas devējiem tikai atšķirība ka tas viss iet pa 3vadiem un izmantojas pic12c508 vismaz tajās vietās kur nevajag vairāk par 5 sensoriem.85 pic ir krietni vairāk iespēju bet tas tā.
es parasti aprakstu ks būs jāsūta un tad to pasaucu ja vajag biežāk konkrēto darbību tad es to uztaisu kā moduli un tad saucu moduli.Apmēram tā.

----------


## konis22

Jā dati tiek sūtīti no pic uz rs232 un ir doma arī lai pic16f84 atsauktos uz konkrētu komandu.Notestēju itkā jau šis tas sanāk.Boud raitu var mainīt.takts 4mhz

----------

