Duomenų įvedimas į mikrovaldiklį (0)
Trumpas supažindinimas su MPLAB IDE programa. Pirmieji žingsniai programavime būdų tokie kaip į MV (mikrovaldiklį) PIC16F84A atminties ląsteles įrašyti duomenis.
Prisijunk prie technologijos.lt komandos!
Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.
Sudomino? Užpildyk šią anketą!
1. Naujo projekto sudarymas. Norėdami sudaryti naują projektą MPLAB aplinkoje galite naudotis projekto sudarymo ir transliavimo įrankių juosta, kuri pavaizduota 1 paveiksle arba MPLAB programos meniu punktu Project>.
1 pav. Projekto sudarymo ir transliavimo įrankių juosta
Pastaba. Paleidus pirmą kartą MPLAB IDE programą, patartina naudoti projektui sukurti, bei konfigūracijos nustatymams atlikti, vykdant Project>Project wizard.... . Atidarius Project wizard nustatymo lauką, išmetamas pasisveikinimo langas, kuris yra pavaizduotas 2 paveikslėlyje. Paspaudus Next ikoną pereinama prie mikrovaldiklių išrinkimo lango (3 pav.) kur išsirenkamas PIC16F84A mikrovaldiklis. Paspaudus Next ikoną pereinama prie konfigūracijos lango, kuris yra pavaizduotas . Nesant aktyviems MLAB IDE darbinėms programos failams esantys Toolsuite contens laukelyje jie yra aktyvuojasi paspaudus Browse... ikoną ir išrenkamas C:\Program Files\Microchip\MPASM Suite\MPASMWIN.EXE. Suaktyvinus darbinės programos failus ir paspaudus Next ikoną pereinama prie naujo projekto sukūrimo ir išsaugojimo lango, kuris yra pavaizduotas 5 paveikslėlyje. Projekto pavadinimas turėtų būti konkretus ir aiškus. Pavadinime nenaudoti tarpelio. Projekto failai turėtų būti saugomi ne per toli nuo pagrindinių darbinės programos failų, kitaip programa gali nepasiekti ir simuliavimo metu mesti klaidą pavyzdžiui: Source file path exceeds 62 characters
2 pav. Project wizard pasisveikinimo langas |
3 pav. Mikrovaldiklių išrinkimo langas |
4 pav. Konfigūracijos langas |
5 pav. Naujo projekto sukūrimo ir išsaugojimo langas |
Įrašius projekto vardą ir priskyrus jam saugojimo katalogą spaudžiamas Next ikonas po kurio pereinama prie failų atrinkimo lango, kuris yra pateiktas 6 paveikslėlyje. Čia galima pasirinkti iš anksčiau buvusių projektų reikiamus failus ir perkelti į kuriamą projekto katalogą. Jeigu mums nėra reikalingų failų spaudžiamas Next ir Finsh ikonai.
6 pav. Failų atrinkimo langas
Toliau yra sukuriamas teksto rašymo failas vykdant File>New ir vykdant File>Save As, įvesta programos tekstą išsaugoti sudarytame kataloge kaip asemblerinę rinkmeną (Assembly source files), prieš tai suteikus jai pavadinimą, pavyzdžiui kaip rinkmena LAB1_1.asm.
Sudarytame projekte darbinės aplinkos lange Source File šakoje (7 pav.) įtraukiama rinkmena LAB1_1.asm. Vykdant dešiniuoju pelės klavišu spustelėjus ant Source File šakos ir pasinaudojus add file komanda įtraukiama išsaugota LAB1_1.asm rinkmena. Šioje šakoje gali būti tik viena rinkmena. Taip pat Header File šakoje įtraukiama PIC16F84A biblioteka, vykdant dešiniuoju pelės klavišu spustelėjus išsirenkamas Add File> ir kataloge C:\Program Files\Microchip\MPASM Suite surandama rinkmena P16F84A.INC
7 pav. Projekto LAB1_1 darbinės aplinkos langas
2. Programos modeliavimas. Norėdami atlikti sudarytos programos modeliavimą MPLAB aplinkoje galite naudotis programos modeliavimo įrankių juosta, kuri pavaizduota 8 paveiksle, arba MPLAB programos meniu punktu Debugger. Kad ši įrankių juosta pasirodytų MPLAB programos lange pirmiausia reikia užkrauti simuliatorių (programos modeliavimo įrankį). Tai galima padaryti iš MPLAB meniu pasirinkus Debugger>Select Tool>2 MPLAB SIM .
8 pav. Programos modeliavimo įrankių juosta
Prieš modeliavimą turite nustatyti kelis modeliavimo parametrus susijusius su MV PIC16F84A. Šie parametrai nustatomi iš MPLAB meniu pasirinkus Debugger>Settings.... Pagrindiniai nustatymai pavaizduoti 9 ir 10 paveiksluose.
9 pav. Modeliavimo sulėtinimo parametrų nustatymas |
10 pav. MV kvarcinio rezonatoriaus dažnio nustatymas |
Programos modeliavimo rezultatus leidžia stebėti daugelis priemonių. Jas galima pasirinkti iš MPLAB meniu View>. Kai kurios šių priemonių aprašytos ir atvaizduotos 11 pav.
11 pav. Modeliavimo rezultatų stebėjimo priemonės
Mikrovaldikliuose RAM atmintis yra suskirstyta į atskiras dalis, tai: specialios ir bendros paskirties registrus. Standartinė RAM atminties struktūra yra pateikta 12 paveikslėlyje. Specialios paskirties registruose vykdomi mikrovaldiklio darbui, bei ryšiui tarp aparatūrinės ir programinės dalies valdyti, o bendros paskirties registruose saugomi duomenys.
12 pav. Standartinė RAM atminties struktūra
3. Tiesioginis adresavimas. Sukurtoje rinkmenoje LAB1_1.asm duomenų įrašymas į RAM atmintį tiesioginio adresavimo būdu, atliekama sekančiai:
;******1 laboratorinis darbas*****************************
;******grupe Vardas Pavarde ******************************
;Tiesioginiu budu duomenu irasymas i RAM atminti
;mikrovaldiklis PIC16F84A taktinis daznis 4MHz
#include "p16f84a.inc"
org 0x00 ;vektoriaus numetimas
movlw 0x11 ;i darbini registra (W) irasomas skaicius 0x11
movwf 21h ;is W irasomas skaicius i isrinkta registra 21h
end ;programos pabaiga
4. Netiesioginis adresavimas. INDF ir FSR registrai yra skirti netiesioginiam adresavimui. INDF adresas fiziškai neegzistuoja. Kreipiantis į šį registrą ištiktųjų kreipiamasi į registrą, kurio adresas ištikrųjų yra įrašytas FSR registre. Rašymas netiesioginiu būdu atliekamas taip: į FSR registrą įrašomas skaičius kuris nurodo į kokią atminties ląstelę bus rašomi duomenys. Po to į INDF registrą rašo duomenys kurie bus saugomi ląstelės atmintyje.
Sukurtoje rinkmenoje LAB1_2.asm atliekamas duomenų įrašymas į RAM atmintį netiesioginio adresavimo būdu, atliekama sekančiai:
movwf INDF ;irasomi duomenys i isrinkta adresa 0x21
end ;programos pabaiga
;******1 laboratorinis darbas*****************************
;******grupe Vardas Pavarde ******************************
;Netiesioginiu budu duomenu irasymas i RAM atminti
;mikrovaldiklis PIC16F84A taktinis daznis 4MHz
#include "p16f84a.inc"
org 0x00 ;vektoriaus numetimas
movlw 0x11 ;i W irasomas skaicius 0x11
movwf FSR ;nustatomas adresas i kuri bus rasoma
movlw 0x21 ;i W irasomas skaicius 0x21
Naudojamų pagrindinių direktyvų paaiškinimai:
#include – papildomos rinkmenos iškvietimo komanda. Šia komanda iškviečiama rinkmena, kuri tampa programos teksto dalimi, t. y. toks rinkmenos iškvietimas yra analogiškas šioje rinkmenoje esančio programos teksto kopijavimui ir įkėlimui i #INCLUDE direktyvos vieta. Ši direktyva dažnai naudojama iškviesti rinkmenai, aprašančiai specifinius MV kintamuosius. Pavyzdžiui, rinkmena, aprašanti specifinius MV PIC16F84A kintamuosius, yra iškviečiama šia programos teksto eilute:
#INCLUDE <p16F84a.inc>
ORG – pradžios adreso nustatymo komanda. Ji nurodo programos adresą kodui, einančiam po šios komandos. Jei ši
direktyva nėra naudojama, kodas yra formuojamas pradedant nuliniu adresu.
Pavyzdžiui, norėdami nurodyti, kad programos pradžios adresas yra 0x01, rašome šia programos eilute:
ORG 0x01
END – programos pabaigos komanda. Ši komanda nurodo programos teksto pabaiga.
Duomenų formatas. Mikrovaldiklyje duomenys fiziškai yra saugomi dviejų būsenų atminties ląstelėse t.y. dvejetainių skaičių pavidalu. Todėl MV atlieka veiksmus su dvejetainiais skaičiais, o duomenų vienetas yra bitas. Programavime dvejetainiais skaičiai yra nekompaktiški. Taigi susitarimo dėlei yra naudojami šešioliktainiai skaičiai, kurie yra kompaktiškesni. Programavime galima naudoti įvairius duomenų pavidalo tipus tokius, kaip:
Dvejetainius: b‘1010 1100‘, b‘101‘
Dešimtainius: d‘15‘, .10
Aštuntainius: O‘15‘, O‘77‘
Šešioliktainius: 0x5A, 5Fh, H‘C2‘
ASCII: A‘K‘, ‘L‘