Bankas 0 pic16f84 bankai 1 un vadības manipulācijām

D

Dunn

Guest
Hi i am mēģina mācīties PIC programmēšanu.

Lūdzu, varētu dabūt palīdzību.

Es izlasīju, ka:
1) pic16f84 bankai 1 izmanto kontroles.
2) Bankas 0 pic16f84 izmanto manipulācijām.

Kā es varu pateikt, ja instrukcija (piemēram, MOVLW) ir kontroles vai manipulācijām?

Paldies.

 
Hi,

"Bankas" var būt grūti lieta saprast, kad esat tikko sākusies.

Centīsimies un izskaidrot skaidri.

Pirmkārt, "Banku" ir tiešām tikai RAM atmiņu.

Jūs, Lietotājs var izmantot noteiktu daļu no RAM jūsu uzglabātu jūsu vērtībām Kas vispār reģistros tekstā.
Tāpat Pic sistēma pati par sevi ir jāizmanto RAM saviem reģistriem.

Kas Pic16F84 RAM tiek sadalīta uz divām atšķirīgām platību, Bank0 un Bank1.
Abas bankas izmanto sistēmu, un to var piekļūt lietotāju, bet konkrētās vietās tikai.
Skatīt Page 13 datu lapā - tas liecina par sistēmas reģistru un lietotāju reģistru dēvē par "vispārējas nozīmes"

Lai gan iepriekš nav pārāk grūti ir, kad sākat kodu, problēmas sākas.

Kad jūs rakstīt vai lasīt vai nu jūsu lietotāja reģistrus vai sistēmas reģistra, piemēram, Porta, jums jānodrošina, ka Banka Izvēlieties Bit ir iestatīts atbilstoši.

Tas tiek darīts, izmantojot īpašu bitu Statuss reģistrā.

Piemērs būtu: -

Kods:

BCF STATUS, RP0; Izvēlēties Bank 0

BCF PORTB; skaidrs Port B

movlw b'00000000 "vērtība, lai PortB digitālā izeja

BSF STATUSS, RP0; izvēlieties banka 1

movwf TRISB; Uzstādīt TRISB uz izejas

BCF STATUS, RP0; Uzstādīt līdz 0 Banka
 
Sveiki

Paldies par atbildi.

Es saprotu jūsu piemērs (es domāju):
BCF STATUS, RP0; Izvēlēties Bank 0
BCF PORTB; skaidrs Port B
movlw b'00000000 "vērtība, lai PortB digitālā izeja
BSF STATUSS, RP0; izvēlieties banka 1
movwf TRISB; Uzstādīt TRISB uz izejas
BCF STATUS, RP0; Uzstādīt līdz 0 Banka

In tutoral es esmu lasījumā ir teikts:

Līnija 1 BSF 03h, 5, GO 1 Banku
Līnija MOVLW 06h 2; Ievietojiet 00110 uz W
Līnija 3 MOVWF 85h; Pārvietot 00110 uz TRISA
Līnija 4 BCF 03h, 5, Nāc atpakaļ uz 0 Banku

Es nesaprotu, kāpēc, 1 Line, tā dodas uz banku 1 kad banka 1 Control.
Es būtu doma 1 līnija ies līdz 0 Bankas MOV (MOVLW 06h un MOVWF 85h) tiek izmantoti, lai manipulēt datus.

Es domāju, tas būtu:
Līnija 1 BSF 03h, 5, GO 0 Banka
Līnija MOVLW 06h 2; Ievietojiet 00110 uz W (izvirzīti ir manipulējot dati?)
Līnija 3 BSF 03h, 5, GO līdz bankai 1 (gatava Control Port)
4 Line MOVWF 85h; Pārvietot 00110 uz TRISA
Līnija 5 BCF 03h, 5, Nāc atpakaļ uz 0 Banku

Paldies par jebkādu palīdzību

 
Hi,

Ok, Jūsu apmācība kods ir pareizs - tomēr es domāju, ka jūsu pamācību jābūt wriiten ar 1980 koledžas pasniedzējs - lūdzam meklēt internetā, lai daži no daudzajiem labu un saprotamu montētājs konsultācijas, kas ir tur.
Vai ne tikai iet pirmo vienu jūs atrast, ir labi izskatīties un iet ar vienu, kas, šķiet, padara visvairāk nozīmē jums.

Šeit ir labs saraksts - tikai ceru, ka EDA nav prātā mani norādes ET http://www.electro-tech-online.com/micro-controllers/15035-newcomers-please-read-pic-regarded-upd-0xd. htm

Dodas atpakaļ uz savu kodu, -

Kas pic16F84 datu lapu apskatīt shematisks par mikroshēmas lapā 8 un jūs redzēsiet, ka W ir vienība savā un nav daļa no sistēmas reģistru bankām.lai kaut ko jūs darīt, lai W nav atkarīga no bankām.

Tagad apskatīt atmiņas karti, 13 parādot sistēmas reģistru - pirmais STATUSS reģistra un tad TRIS reģistrs - informācija hex adresi pusi no tiem.

Tagad apskatīsim jūsu privātskolotāji kodu, atšķirībā no raktuvju vietā nosaucot STATUSS reģistra viņš ir pieskāries šim jautājumam tieši hex vērtību.
Viņš dara to pašu ar TRIS reģistrā.
Tas padara kodu, ir ļoti grūti sekot, un ir tik nevajadzīga.

Visbeidzot apskatīt lapu 13 statusa reģistru un biti 5 & 6, nosakot banku.Tātad, lai apskatīt savu kodu, un labot to -

Līnija 1 BSF 03h, 5, GO 0 Banka

Lai izvēlētos Bank 0 jums ir "skaidri" BCF STATUS, RP0 - padara RP0 = 0Līnija MOVLW 06h 2; Ievietojiet 00110 uz W (izvirzīti ir manipulējot dati?)

Tas tikai kravas hex vērtību uz W, W nav aprūpi, kas bankā jūs esatLīnija 3 BSF 03h, 5, GO līdz bankai 1 (gatava Control Port)

Tagad jūs izvēlaties 1 Bank "SET" BSF STATUSS, RP0 - padara RP0 = 1

4 Line MOVWF 85h; Pārvietot 00110 uz TRISA

Pēc tam pārvietot datus W līdz TRISA reģistrēties bank1 movwf TRISA

Līnija 5 BCF 03h, 5, Nāc atpakaļ uz 0 Banku

Beidzot jums atgriezties pie Bank0 ja jums nav citas instrukcijas bank1Ja jūs nevarat sekot šai nepadodieties, ņem brīvdienas un meklēt apkārt, lai labāk apmācība, parasti sākot ar mirgošanas rezultātā, neuztraucieties, ja Jums nav saprast koda piemērus, vienkārši būvēt sistēmā un palaist to , lietas, kas drīzumā varētu nonākt vietā un kļūt daudz vieglāk saprast.

 
Es domāju, ka man jāpiebilst, ka, ja jūs izmantojat MPLab kā montētājs, Microchip pievienota iezīme, kas palīdzēs jums izvēlēties pareizo banku.Viss, kas Jums jādara, ir izmantot "banksel" instrukciju pirms reģistra vēlaties piekļūt.

Piemēram:
Ja jūs vēlaties veikt ostas B jauda un laisti reģistrēties 10101010 tās pins jums ir nepieciešams, lai izmantotu bankas 1, lai piekļūtu TRIS reģistra un bankas 0, lai piekļūtu datiem.Tā vietā, nosakot un atiestatīšanas biti STATUSS reģistrā, kas kļūst neskaidra un viegli zaudēt izsekot, izmantot:

banksel TRISB
clrf TRISB

banksel PORTB
movlw B'10101010 "
movwf PORTB

Ir padara to daudz vieglāk lasīt.Kā iesācējs, varbūt ir gudrs, lai pār izmantot banksel instrukciju, ja banka nav faktiski mainās, bet tas nerada kaitējumu, un tikai zaudē divas instrukcijas.Es to izmantot biežāk, nekā vajadzīgs, lai iegūtu programmu darba, tad noņemiet gadījumi, kad pareizā banka jau ir izvēlēts.Ņemiet vērā, ka banksel nav procesors instrukcija, tas ir komplektētājs instrukcija, kas rada divu procesoru instrukcijām automātiski, pa vienam katrai bankai atlases bit.Jūs atradīsiet banksel īpaši noderīga, ja Jūs lietojat lielāku atbildīgās personas, kurām ir vairāk reģistrs bankām, jo tas kontrolē gan bankas biti, nevis tikai viens bankām 0 un 1.

Brian.

 
Hi Brian,Paldies par pievienojot Banksel - kaut ko es varētu darīt ar, kad es izmantoti, lai programma 16Fs.

Tikai tik priecīgs es pārcēlos uz 18.f bez peidžeru jāuztraucas par, un līdz 384 bytes RAM pieejami pirms jums nepieciešams mainīt banku (bankas 0 piekļuves 128 bankas 1 256)

 
Es arī tagad izmanto 18F46J11 lielākajā daļā izmantošanas gadījumu, parasti ar masu neizmantotās atmiņas, bet tas maksā tik maz tas nav jāuztraucas mani.Ja tikai, ka mikroshēmu, bija uz kuģa EEPROM.Smieklīgi ir tas, es arī izmantot daudz 10F202s un tās ir pārāk mazas, lai nepieciešamību bankām atlases bitiem!

Brian.

 
Hi Brian,

Quote:

Ja tikai, ka mikroshēmu, bija uz kuģa EEPROM.
 
Paldies visām iesaistītajām pusēm.

Lūdzu varētu kāds man palīdzēt, ko iznomāšanas mani zināt, ja ir grāmata, vai ....kur es varētu apskatīt parauga kods (vēlams ar komentāriem), raksta montāža) par 16F84/16F690, lai es varētu mācīties no tā.

Beigās es gribu iemācīties programmu PIC, izmantojot C.
Pirmā pulcēšanās tad C. Vai tas pareizi mācīties (vai arī es vienkārši uzzināt, kā programmā C jau no paša sākuma)?

Es galu galā vēlos programmu PIC 16F690, izmantojot C.
Es domāju, es iemācīties programmas 16F84 vispirms, jo tas izskatījās daudz vieglāk pēc tam 16F690.

Paldies visiem replys.

 
Es nāk no elektroniskas fona, tāpēc es gribētu teikt, mācīties montāža valodu vispirms, tad pāriet uz C. iemesls ir tas, ka pulcēšanās valoda dod daudz vairāk ieskatu par to, kā PIC darbojas un palīdz jums saprast savas stiprās un trūkumus.C ir vieglāk, bet daudzējādā ziņā ir mazāk efektīvi, jo tas lietas "vispārējas nozīmes" ceļu, nevis optimizēt jūsu konkrētajā pieteikumu.

Jums vajadzētu arī apsvērt, ka C iet parametri kaudze vai nu reālo datortehnikas vienā vai viens izveidota ar kompilatoru, tas izmanto diezgan daudz atmiņas, lai īstenotu.Šī iemesla dēļ, C ir vairāk ierobežota par ierīcēm, kas ir neliels atmiņas, patiesībā daudzi C kompilatori neatbalsta mazos PIC ierīcēm vispār.

Attiecībā uz lietošanas ērtumu, es nevarētu teikt, F84, ir vieglāk izmantot nekā F690, tas ir atkarīgs no pieteikumu.Dažreiz tas ir daudz vienkāršāk izmantot uzcelta perifērijas nekā līdzināties tai programmatūras ierīcē bez tā.

Ir daudz koda piemēri MPLab palīdzības failus, Microchip mājas lapā un PICLIST mājas lapā.Google meklēšana "16 F84A ASM" izrādījās līdz 8400 norādes pirms brīža tā ir jābūt daudz piemēru, kas tur.

Brian.

 
Hi,

Tas ir labs padoms no Brian, bet ne tikai norēķināties par lasīšanas grāmatas, lejupielādēt MPLab un palaist savu kodu, pat ja tās tikai 4 pozīcijas Jūs šobrīd izmantojat.
Varat izmantot simulatora funkciju vienu soli, kur jūs varat redzēt, kā katrs no jūsu intructions ir procedūru un pārvietoties dažādos reģistros

Vai arī jums nosūtīja PM.

 

Welcome to EDABoard.com

Sponsor

Back
Top