Documente Academic
Documente Profesional
Documente Cultură
Memoria Program La Microcontrollere - 1
Memoria Program La Microcontrollere - 1
Microprocesor - un circuit care poate îndeplini oricare funcţie în dependenă de programul care îl
are spre execuţie.
Program - un set de instrucţiuni care se execută una după alta.
Instrucţiune - o acţiune pe care o poate executa nucleul Microcontrollerului.
Nucleu - Partea principală a Microcontrollerului care execută instrucţiunile din program.
Microcontroller - minicalculator care cuprinde în sine un nucleu de microprocesor, memorie de
program şi Module periferice.
În general MCU preia informaţia de la interfeţele de intrare, o prelucrează şi aplică rezultatul către interfaţa
de ieşire.
(http://www.aut.upt.ro/~pal-stefan.murvay/teaching/dse/Memorii_pentru_sisteme_embedded.pdf)
Alocare statică
Stivă
Heap
Caracteristici:
Poate fi scris is citit
Prescaler de diferite dimensiunj (biti)
Sursa pentru semnalul de clock poate fi externa sau interna
Poate opera in diferite moduri(sincron, asincron)
PWM
4) Tipuri de adresari
a. Adresarea directa
b. Adresarea indirecta
5) Prezentati un caz de adresare indirecta a memoriei de date
a. Utilizarea adresarii indirecte simple pentru a sterge RAM intr-un numar minim de
instructiuni
6) Porturi de I/O. Descrieti functionarea citirii de la un pin de I/O.
a. Cand registrul PORT este citit, se citeste starea pinilor.
b. In curs!
7) ADC
a. Carcateristici
i. Rezolutia
ii. Acuratetea
iii. Rata...baud rate?
iv. Viteaza
v. Vezi in curs
b. Descrieti functionarea unui modul ADC cu circuit de esantionare/memorare si convertor
cu aproximatii succesive de 10 bit
i. Se definesc pinii de intrare si cei de iesire cu registrul DDR
ii. La pinul de intrarare se leaga ‚senzorul’ analog pentru ADC
iii. Se initializeaza timer-ul ...(timer 0 este de 8 bit iar timer 1 este 16 bit)..se definesc
registrii respectivi pentru a face conversia (Prescaller...??)
8) Sa se proiecteze schema de principiu a unui modul, schema logica a programului si programul
care realizeaza aprinderea intermitenta, cu frecventa de 1Hz, a doua LED-uri, unul rosu si celalalt
verde, utilizand microcontrolerul PIC12F675. Tema se va rezolva utilizand timere.
Fara timer:
DDRB = 0b00000000; //0 – output si 1 - input
while(1)
{
PORTB = 0b00000001;
_delay_ms(1000);
PORTB = 0b00000010;
}
Cu timer:
Configurarea registrilor:
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on
GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR
internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
void interrupt ()
{
//set timer value IE max is 255 for Timer0
//reset interrupt flag to 0
//increment a variable by 1
}
Ce este ALU
o ALU este unitatea aritmetica s ilogica
o Aceasta este in strânsă legătura cu mărimea registrului de lucru si cu tipul mictrocontroller
Ce face ALU
o Afecteaza functii aritmetice si logice intre date din registrul de lucru si oricare alt registru
o Poate efectua urmatoarele operatii:
Adunare
Scadere
Shiftare
Operatii logice
Ce ste un mictrocontroller si ce face el
o uC este un sistem cu microprocessor (acesta are CPU, diferite memorii de date si programe si
porturi I/O, Timere...)
o +???
Harvard
o Spatiu de memorie separate pentru instructiuni si date
o Sunt posibile largimi diferite pentru busurile de date si instructiuni
o Numar minim de cicli processor/ ciclu fetch
o Cresterea reala a Throughput-ului
Von Neumann
o Instructiunile si datele sunt aduse pe acelasi bus = system de comunicare intre diferite
componente (autostrada de date)
o Banda limitata
o Numar mare de cicli processor/ ciclu fetch = operatia de baza a unui processor (citire,
decodificare, executie)
o Versatilitate
Memoria program
o MAI SUS
CPU
Responsabila cu:
o Aducerea instructiunii corecte pentru executie
o Decodarea acestei instructiuni
o Executia acestei instructiuni
CPU lucreaza in conjunctie cu ALU pentru a complete executia instructiunii (in operatii aritmetice si logice)
Controleaza:
o Busul adreselor de memorie program
o Busul adreselor se memorie de date
o Accesul la stiva
Stiva (generatlitati)
o Este o memorie de tip LIFO (Last In First Out).
o Permite aparitia unor combinatii de pana la 8 sau 16 (enhanced) apeluri de subrutine sau interuperi.
o Spatiul stivei nu se poate citi sau scrie
o Spatiul stivei nu face parte din spatial de memorie program sau memorie de date
o Stiva este golita in cazul aparitiei uneia din instructiunile return, retlw sau retfie
TRIS
o Bitii din registrul TRIS sunt suprascrisi in cazul anumitor periferice, cand acestea sunt validate.
o Trebuie evitate instructiuni de tip citeste-modifica-scrie (BSF, BCF, XORWF) care au ca destinatie
registrul TRIS.
o Registrul TRIS controleaza directia pinilor portului, chiar cand acestia sunt utilizati ca intrari
analogice
o Utilizatorul terbuie sa se asigure ca bitii TRIS se mentin setati tot timpul cand se utilizeaza acesti pini
ca intrari analogice.
PWM
o Fiecare modul CCP (comparare/captura/ PWM) contine un registru de 16 biti, care poate opera ca:
Registru de 16 biti de comparare
Registru de 16 biti de captura
Registru de 10 biti master/slave de factor de umplere pentru generare PWM
o Fiecare modul CCP are 3 registrii.
o Pot fi mai multe module CCP intr-un μC.
o Mai cauta
ADC
o MAI SUS