Elektronika.lt
 2024 m. gruodžio 22 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 NaujienosSąrašas
 StraipsniaiSąrašas
 Vaizdo siužetaiSąrašas
 Nuolaidos, akcijosSąrašas
 Produktų apžvalgosSąrašas
 Naudingi patarimaiSąrašas
 Vykdomi projektaiSąrašas
 Schemų archyvasSąrašas
 Teorija, žinynaiSąrašas
 - Elektronikos komponentai
 - Elektronikos technologija
 - Parametrų apskaičiavimai
 - Kompiuterija
 - Telekomunikacijos
 - Įvairi teorija
 Nuorodų katalogai
 Įvairūs siuntiniai
 Bendravimas
 Skelbimai ir pasiūlymai
 Elektronikos remontas
 Robotų kūrėjų klubas
 RTN žurnalo archyvas






 Verta paskaityti
Gruodžio 22 d. 11:24
Energetikos sektoriaus laukia pokyčiai – alternatyvų yra, bet ar užteko laiko pasiruošti?
Gruodžio 21 d. 11:33
Kokį elektronikos įrenginį dovanoti, kad jis vėliau neišaugintų elektros sąskaitos?
Gruodžio 20 d. 17:12
KTU mokslininkai sukūrė nanolazerį – sidabro nanokubus panaudojo šviesos generavimui
Gruodžio 20 d. 14:28
Lietuvių kalba ir technologijos: VU mokslininkų projektas LIEPA-3 atvers naujas galimybes
Gruodžio 20 d. 11:49
Stacionarūs kompiuteriai: koks jų vaidmuo nešiojamųjų kompiuterių eroje?
Gruodžio 20 d. 08:14
„DS Automobiles“ pristato naujausią savo elektrinį flagmaną – „DS N°8“ kupė
Gruodžio 19 d. 20:18
Naudingi patarimai, kurie padės maksimaliai padidinti jūsų elektrinio automobilio priemonės įveikiamą atstumą
Gruodžio 19 d. 17:27
Žaidybinimas: efektyvus švietimo įrankis ar bėgimas nuo tikrovės?
Gruodžio 19 d. 14:27
Orkaitės darbymetis prasideda: 5 paprasti patarimai, kurie kalėdinius kepinius leis paruošti elektrą naudojant taupiau
Gruodžio 19 d. 11:15
Proveržis magnetų tyrimuose: ištisas savaites tarnaujanti telefono baterija ir 1000 kartų didesnė jo sparta
FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
 Teorija, žinynai » Elektronikos komponentai Dalintis | Spausdinti

Mikrovaldiklis PIC16F84A

Publikuota: 2006-02-06 08:37
Tematika: Elektronikos komponentai
Skirta: Mėgėjams
Autorius: el. paštas Andrius Jasiulionis
Aut. teisės: el. paštas ©Andrius Jasiulionis
Inf. šaltinis: Automatikas.ten.lt

Mikrovaldikliai gali būti naudojami įvairiausiuose elektroniniuose įrenginiuose, pradedant mirksinčia lempute ar šviesos diodu, baigiant robotu. Mikrovaldikliai tarpusavyje skiriasi daugeliu parametrų, o tai pat ir struktūra. Kviečiame iš arčiau susipažinti su mikrovaldikliu PIC16F84A.

 Rodyti komentarus (3)
Įvertinimas:  1 2 3 4 5 

Architektūra

PIC16F84A priklauso 8 bitų mikrovaldiklių klasei. Harvard architektūra yra naujesnė nei Von-Neumann. Ši technologija buvo kuriama norint pagreitinti mikrovaldiklio darbo greitį. Harvard architektūroje, duomenų ir adresų magistralės yra atskirtos. Dėl to pasidarė didesnis duomenų pralaidumas centriniame procesoriuje, ir dėl to pagreitėjo programos veikimas. Išskyrus programos ir duomenų atmintis, atsirado galimybė komandas rašyti ne aštuonių bitų žodžiais. PIC16F84A mikrovaldiklis naudoja keturiolikos bitų žodžius komandoms rašyti, tai leido vienai komandai užtekti vieno žodžio atminties. Taip pat tipiška Harvard architektūrai yra tai, kad visas komandas galima atlikti per vieną ciklą.


1 pav. Harvard ir Von-Neumann mikrovaldiklių architektūros

Mikrovaldikliai su Harvard architektūra dar vadinami „RISC mikrovaldikliai“. RISC tai „Reduced Instruction Set Computer“ (sumažinto komandų rinkinio kompiuteris). Mikrovaldikliai su Von-Neumann architektūra yra vadinami „CISC mikrovaldikliai“ (kompleksinio komandų rinkinio kompiuteris).

Nuo tada, kai PIC16F84A yra RISC mikrovaldiklis, tai reiškia, kad yra sumažinto komandų rinkinio kompiuteris, tiksliau 35 komandos. (pvz.: „Intel „ir „Motorola“ mikrovaldikliai turi šimtus komandų). Visos šios komandos yra įvykdomos viename cikle, išskyrus „jump“ ir „branch“ komandas. Dėl to galime sakyti, kad PIC16F84A dažniausiai pasiekia 2:1 kodo suspaudimą, 4:1 greičio rodiklius negu kiti 8 bitų mikrovaldikliai.

Veikimo principas

FLASH – atmintis, kurioje saugomas parašytos programos kodas. Atmintis yra pagaminta naudojant FLASH technologiją , todėl ji gali būti užprogramuota ir ištrinta daugiau nei vieną kartą, o tai padaro mikrovaldiklį tinkamą įrenginio plėtojimui ar programos atnaujinimams.

EEPROM – naudojama programos ar duomenų išsaugojimui. Dažniausiai naudojama išsaugojimui duomenims kurių negalima prarasti jei dingtų maitinimas (jungiama išoriškai).

RAM – informacijos atmintis, naudojama laikinam tarpinių duomenų saugojimui per programos vykdymą. RAM atmintyje saugomi visi tarpiniai ar laikini duomenys programos vykdymo metu.


2 pav. Mikrovaldiklio struktūrinė schema

PORTA ir PORTB yra fizinė sąsaja tarp mikrovaldiklio ir išorinio pasaulio. PORTA turi penkis įėjimus/išėjimus, PORTB turi aštuonis įėjimus/išėjimus.

FREE-RUN TIMER yra 8 bitų registras mikrovaldiklio viduje, kuris dirba nepriklausomai nuo programos. Kas keturis generatoriaus impulsus skaitliukas didina vienetu savo reikšmę tol, kol pasiekia maksimalią (255) reikšmę ir vėl pradeda skaičiuoti reikšmę nuo nulio. Taimeris gali būti naudojamas skaičiuoti laiką ir tai yra labai naudinga kai kuriuose prietaisuose.

CPU - centrinis procesorius, atliekantis pagrindinį vaidmenį mikrovaldiklyje. Jis apjungia visus sisteminius blokus, koordinuoja jų darbą bei vykdo vartotojo programą.

Išvadų aprašymas

PIC16F84A iš viso turi 18 kojų. Dažniausiai naudojamos DIP18 korpuso mikroschemos, bet galime rasti ir SMD (angl. Dual In Package) tipo, tai patogu kai montažinėje plokštėje negalime gręžti skylučių, ar tiesiog norime, kad montažinė plokštė užimtų mažiau vietos.

PIC16F84A kojų aprašymas:

Koja Žymėjimas I Funkcija II Funkcija
1 RA2 Antras prievado A bitas  
2 RA3 Trečias prievado A bitas  
3 RA4 Ketvirtas prievado A bitas TOCK1 Taimeris
4 MCLR Atskirti programavimą; nuo paleidimo  
5 Vss Maitinimo šaltinio žemė  
6 RB0 Nulinis prievado B bitas. Įėjimas priskiriamas kaip trūkis
7 RB1 Pirmas prievado B bitas  
8 RB2 Antras prievado B bitas  
9 RB3 Trečias prievado B bitas  
10 RB4 Ketvirtas prievado B bitas  
11 RB5 Penktas prievado B bitas  
12 RB6 Šeštas prievado B bitas „Clock“ linija programavimo metu
13 RB7 Septintas prievado B bitas „Data“ linija programavimo metu
14 Vdd +5 V maitinimo šaltinis  
15 OSC2 Jungiamas kvarcinis (a) generatoriaus  
16 OSC1 Jungiamas kvarcinis (b) generatoriaus  
17 RA2 Antras prievado A bitas  
18 RA1 Pirmas prievado A bitas  

Centrinis procesorius

Centrinis procesorius (CPU) yra mikrovaldiklio smegenys. Ši dalis yra atsakinga už teisingą instrukcijų (komandų) vykdymą.

Centrinis procesorius sujungia visas valdiklio dalis į bendrą visumą. Be abejo naudingiausia funkcija - programos kodo vykdymas. Kada programatorius įrašinėja programą, komandos yra paprasčiausios formos, kaip MOVLW 0x20. Kad mikrovaldiklis suprastų tą paprasčiausią komandą, tuos simbolius reikia paversti mašininiu kodu (vienetukai, nuliukai). Šį konvertavimą nuo raidžių iki mašininio kodo atlieka „vertėjai“ (translators), tokie kaip „assembler translator“ (žinomas kaip asembleris). Komandos tokiu būdu išvedamos iš programos atminties RAM ir centrinis procesorius turi jas atkoduoti. Tada mes galime pasirinkti iš visų lentelėje esančių komandų sudaryti programą kuri įvykdys norimą užduotį. Kadangi komandos gali savyje sudaryti priskyrimus, kurie reikalauja skirtingų duomenų perkėlimų iš vienos atminties ląstelės į kitą, iš atminties į prievadus, arba kitiems skaičiavimams, centrinis procesorius turi būti sujungtas su visomis mikrovaldiklio dalimis. Ši galimybė yra išspręsta sujungus dalis per duomenų ir adresų magistrales.

Aritmetinis loginis įrenginys yra atsakingas už operacijų atlikimą: sudėjimas, atėmimas, eiti į (kairę ar dešinę per registrą) ir loginės operacijos. Duomenų nešiojimas registro viduje yra vadinamas „shifting“. PIC16F84A sudaro 8 bitų aritmetinis loginis įtaisas ir 8 bitų darbinis registras.

Komandose su dviem operandais, vienas operandas yra saugomas į darbinį registrą (W registras), o kitas yra saugomas spec. registruose arba kaip konstanta. GPR (angl. General Purposes Registers) bendros paskirties registrai, ir SFR (angl. Special Function Registers) specialių funkcijų registrai. Komandose su vienu operandu, pastarasis yra saugomas darbiniame registre.

Prievadai

Terminas „prievadas“ (angl. port) reiškia grupę mikrovaldiklio kojų, kurios gali būti prieinamos vienu metu, arba į kurias mes galime užduoti norimą vienetų, nulių kombinaciją, arba nuskaityti jų turimą kombinaciją. Fiziškai, prievadas – tai registras mikrovaldiklio viduje, kuris yra prijungtas laidais prie mikroschemos kojų. Prievadai atstovauja fizinę sąsają tarp centrinio procesoriaus ir išorinio pasaulio. Mikrovaldiklis naudoja juos stebėti ar valdyti kitus komponentus ar įtaisus. Funkcionalumo prasme, kai kurios mikrovaldiklio kojos vaidina du vaidmenis (funkcijas): PortA4/TOCKI koja (3), ji tuo pačiu metu ir porto A ketvirtas bitas ir išorinis įėjimas nepriklausomam skaitliukui. Šių funkcijų pasirinkimą lemia registro sukonfigūravimas.

Visi prievado bitai gali būti nustatyti kaip įėjimai arba išėjimai, priklausomai nuo to ką ir kaip jungsime prie mikrovaldiklio. Kad nustatyti bitą kaip įėjimą ar išėjimą reikia įrašyti vienetų ir nulių kombinaciją į TRIS registrą. Jeigu TRIS registras yra loginis „1“, tai prievado bitas bus naudojamas kaip įėjimas, jei atvirkščiai tai bitas bus naudojamas kaip išėjimas. Kiekvienas prievadas turi savo TRIS registrą. Tai prievadas A turės TRISA registrą, prievadas B turės TRISB registrą. Bito kryptis taip pat gali būti pakeista komanda programoje.

PORTB ir TRISB

PORTB susietas su aštuoniomis kojomis. Atitinkamai, bito krypties registras bus TRISB. Įjungiant bitą TRISB registre atitinkamai PORTB prievade tas bitas bus įėjimas, ir išjungus bitą TIRSB registre atitinkamas bitas PORTB prievade bus išėjimas.

Kiekviena PORTB koja turi silpną vidinę palaikymo varžą (varža kuri nustato loginį vienetą), kuri gali būti aktyvuota atstatant septintą bitą RBPU OPTION registre. Šios palaikymo varžos automatiškai išjungiamos, kai prievado koja yra sukonfigūruota kaip išėjimas. Kai mikrovaldiklis startuoja, šios varžos yra išjungtos.

Keturios PORTB kojos, RB7:RB4 gali sukelti pertraukimą, kuris atsiranda kai pasikeičia jų statusas iš loginio „1“ į loginį „0“ ir atvirkščiai. Tiktai šios mikrovaldiklio kojos sukonfigūruotos kaip įėjimai gali įtakoti pertraukimą (jei bet kuri iš RB7:RB4 kojų yra sukonfigūruota kaip išėjimai, pertraukimo galima išvengti keičiantis loginėms reikšmėms.)

PORTA ir TRISA

PORTA turi penkias susietas kojas. Atsakingas už duomenų krypti registras yra TRISA registras. Kaip ir PORT B įjungiant bitą TRISA registre atitinkamai bus nukreipti duomenys prievado B registre. Loginis „1“ atitiks įėjimą, o loginis „0“ atitiks išėjimą.

Labai svarbu, kad PORTA koja RA4 yra tiktai įėjimas. Taip pat kita šios kojos funkcija yra ta, kad ji turi išorinį taimerio TMR0 įėjimą. Ar RA4 bus standartinis įėjimas ar įėjimas skaitliukui priklauso nuo T0CS bito registruose (TMR0 Clock Source Select bit). Ši koja leidžia taimeriui TMR0, kuris gali būti prijungtas nuo vidinio laikrodžio ar per impulsus gautus iš RA4/T0CKI kojos didinti reikšmę vienetu.

RA4 koja gali būti suprojektuota kaip išėjimas, bet dėl to reikia prijungti lygiagrečiai varžą prie +5 V, kad susidarytų loginis vienetas.

Atmintis

Atminties tvarkymas

PIC16F84A mikrovaldiklis turi dvi atskirtus atminties blokus: vienas skirtas duomenų saugojimui, o kitas skirtas programai. EEPROM atmintis su GPR ir SFR registrais RAM atmintyje laiko duomenų bloką, kol FLASH dirba su programos bloku.

Programos atmintis

Programos atmintis buvo sukurta pagal FLASH technologiją kuri leidžia perprogramuoti mikrovaldiklį daug kartų. Programos atminties dydis yra 1024 pozicijos su 14 bitų pločio eilutėmis.

Duomenų atmintis

Duomenų atmintis susideda iš EEPROM ir RAM atminčių. EEPROM atmintis sudeda iš 64 pozicijų po aštuonis bitus. Išjungus maitinimo šaltinį iš EEPROM atminties duomenys neišsitrina, juos galime ištrinti tik elektriškai. EEPROM nėra tiesiogiai adresuojama atmintis, bet prisijungiama netiesiogiai per EEADR ir EEDATA registrus. Kadangi EEPROM atmintis dažniausiai naudojama išsaugoti reikalingiems parametrams (pvz., temperatūros parodymus termoreguliatoriuje), yra griežtos procedūros, norint įrašyti į EEPROM atmintį ir išvengti atsitiktinių įrašymų. RAM atmintis užima duomenims vietą atminties žemėlapyje 68 atminties pozicijas. RAM atminties pozicijos dar vadinamos GPR registrais „General Purpose Registers“ pagrindinės paskirties registrai.

Pajungimas

LED diodai

Šviesos diodus galime prijungti dviem būdais: vienas, kad užsidegtų nuo loginio „0“, kitas, kad užsidegtų nuo loginio „1“.

Mygtukai

Mygtukus, kaip ir šviesos diodus, galime jungti dviem būdais. Tai priklauso nuo to, kokio signalo įėjime mums reikia. Žemiau pateiktoje schemoje mygtukai paduoda loginį „0“. Galime ir tiesiogiai per mygtukus paduoti +5 V TTL signalą, viskas priklausys nuo programos.


Relės

Relę taip pat galime valdyti su mikrovaldikliu. Jeigu relei reikalingas didesnis nei +5 V maitinimas, ją galime pajungti per stiprinimo pakopą. Jeigu valdoma schema yra galinga, patartina reles jungti per optines poras.

Septynių segmentų LED ekranas

LCD ekranas

LCD ekranai labai dažnai naudojami duomenims iš mikrovaldiklio išvesti. Integruotas simbolių procesorius leidžia lengvai 8 arba 4 bitų sąsaja greitai sugeneruoti simbolius.

Serial RS323 komunikacija

Panaudojus žemiau pateiktą schemą, yra galimybė gauti abipusį ryšį tarp kompiuterio ir mikrovaldiklio, siųsti bei gauti duomenis.

Asemblerio instrukcijos

Mnemonika, Operandai Apibūdinimas
BYTE-ORIENTED FILE REGISTER OPERATIONS
ADDWF f, d Add W and f
ANDWF f, d AND W with f
CLRF f Clear f
CLRW - Clear W
COMF f, d Complement f
DECF f, d Decrement f
DECFSZ f, d Decrement f, Skip if 0
INCF f, d Increment f
INCFSZ f, d Increment f, Skip if 0
IORWF f, d Inclusive OR W with f
MOVF f, d Move f
MOVWF f Move W to f
NOP - No Operation
RLF f, d Rotate Left f through Carry
RRF f, d Rotate Right f through Carry
SUBWF f, d Subtract W from f
SWAPF f, d Swap nibbles in f
XORWF f, d Exclusive OR W with f

BIT-ORIENTED FILE REGISTER OPERATIONS
BCF f, b Bit Clear f
BSF f, b Bit Set f
BTFSC f, b Bit Test f,Skip if Clear
BTFSS f, b Bit Test f, Skip if Set
LITERAL AND CONTROL OPERATIONS
ADDLW k Add literal and W
ANDLW k AND literal with W
CALL k Call subroutine
CLRWDT - Clear Watchdog Timer
GOTO k Go to address
IORLW k Inclusive OR literal with W
MOVLW k Move literal to W
RETFIE - Return from interrupt
RETLW k Return with literal in W
RETURN - Return from Subroutine
SLEEP - Go into standby mode
SUBLW k Subtract W from literal
XORLW k Exclusive OR literal with W
Operandai
f Register file address (0x00 to 0x7F)
W Working register (accumulator)
b Bit address within an 8-bit file register
k Literal field, constant data or label
d Destination select; d = 0: store result in W,d = 1: store result in file register f. Default is d = 1
PC Program Counter
TO Time-out bit
PD Power-down bit



Draudžiama platinti, skelbti, kopijuoti
informaciją su nurodyta autoriaus teisių žyma be redakcijos sutikimo.

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas


Reklama
‡ 1999–2024 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama