Вы находитесь на странице: 1из 7

UNIVERSITATEA TEHNICĂ A MOLDOVEI

Facultatea Calculatoare Informatică și Microelectronică


Departamentul Microelectronică și Inginerie Biomedicală

RAPORT
la lucrarea de laborator nr. 2

Disciplina: Proiectarea Microsistemelor


Tema: Interfata

Elaborat de: st.gr.ISBM-161


Topa Vlad

Verificat de: asistent univ. Verjbitchi Valerii

Chișinău 2019
Interfata afisorului prezentat aici este una paralela. Orice afisor interfatat paralel care se poate gasi in prezent va avea la baza un
controller de tip Hitachi HD44780 sau unul compatibil cu acest cip.Ca regula afisorul are 14 pini de conexiune.

 D0 - D7 - Bus de date bidirectional.


 R/W - determina scrierea sau citirea pentru afisor
 RS - selectarea registrului pentru transfer. RS = 0 registrul de instructiuni este selectat, RS = 1 registrul de date este
selectat. Cu acest bit se poate configura ca prin bus-ul de date sa se transfere o camanda sau un caracter.
 E - Bit de activare al LCD. Cand E = 0, LCD nu este activ respectiv semnalale de pe D, RW si RS vor fi ignorate, Cand E
= 1, Afisorul este activat si va procesa datele de pe ceilalti pini de interfatare. De mentionat ca scriere datele sunt aplicate pe
frontul descrescator al semnalului E., iar la citire, datele vor fi valide odata cu frontul crescator si se vor pastra pana la urmatorul
front descrescator.
 Vo - Setarea contrastului pentru afisor.
 Vdd si Vss - pini de alimentare a Afisorului.
Tabelul 1:sistemul de comenzi
Code
Instruction
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1
Clear display
Curata ecranul afisorului si returneaza cursorul la pozitia initiala. (addresa 0).
0 0 0 0 0 0 0 0 1 *
Cursor home Returneaza cursorul la pozitia initiala (address 0). La fel si cu deplasamentul ferestrei de afisare. Continutul
DDRAM ramane neschimbat.
0 0 0 0 0 0 0 1 I/D S
Entry mode set Seteaza directia deplasarii cursorului (I/D), activeaza deplasarea ferestrei de afisare (S). aceste setari sunt
luate in consideratie in timpul operatiilor de citire/scriere.
0 0 0 0 0 0 1 D C B
Display On/Off
control Aprinde/Stinge ecranul (D), Aprinde/Stinge cursorul (C) si activeaza/deactiveaza licarirea caracterului la
pozitia cursorului (B).
0 0 0 0 0 1 S/C R/L * *
Cursor/display shift Deplasare cursor/deplasare ecran (S/C) in directia de deplasare (R/L). Continutul DDRAM ramane
neschimbat.
0 0 0 0 1 DL N F * *
Function set
Seteaza marimea interfetei (1-8bit/0-4bit) (DL), numarul de linii (N) si fontul (0 - 5x8 / 1 - 5x10) (F).

Set CGRAM 0 0 0 1 CGRAM address


address Seteaza adresa de citire/scriere pentru CGRAM.

Set DDRAM 0 0 1 DDRAM address


address Seteaza adresa de citire/scriere pentru DDRAM.
0 1 BF CGRAM / DDRAM address
Read busy-flag and Citeste indicatorul Busy-flag (BF) care indica ca dispoziticul este ocupat cu o operatie interna. totodata
address counter citeste contorul de adresa curenta a memorie CGRAM or DDRAM (in dependenta de care a fost selectata
cu o operatie precedenta).

Write to CGRAM or 1 0 write data


DDRAM Inscrie date in CGRAM or DDRAM.

Read from CGRAM 1 1 read data


or DDRAM Citeste date din CGRAM or DDRAM.

Широтно-импульсная модуляция (ШИМ)


Таймер T/C1 устроен сложнее T/C0 и содержит дополнительные регистры.

TCNT1 - счётный регистр

TCCR1A - регистр управления, определяет поведение выводов OC1A и OC1B (биты 1 и 2 порта B) при совпадении значений в регистре с TCNT1A и

регистрах сравнения OCR1A/OCR1B, а также для выборов режимов ШИМ

TCCR1B - регистр управления

ICR1 - в этот регистр записывается текущее состояние счётчика при появлении активного входного сигнала на выводе ICP (бит 0 порта B)

OCR1A,OCR1B - содержимое этих регистров постоянно сравнивается с содержимым счётного регистра TCNT1. В случае совпадения выполняются

действия, определённые регистром TCCR1A

Регистр TCCR1A
7 6 5 4 3 2 1 0

COM1A1 COM1A0 COM1B1 COM1B0 - - PWM11 PWM10

Биты COM1A1/COM1A0 и COM1B1/COM1B0 определяют поведение выводов OC1A/OC1B при совпадении значений регистров сравнения

OCR1A/OCR1B со значением счётного регистра TCNT1. Возможные состояния битов показаны в таблице (случай для отключённого ШИМ)
COM COM
Действие при совпадении
1x1 1x0

0 0 нет реакции

Состояние на выходе OC1x меняется на


0 1
противоположное

1 0 На выходе OC1x установится лог.0

1 1 На выходе OC1x установится лог.1

Если в регистре TCCR1A включён широтно-импульсный модулятор, то счётчик Т/C1 работает как суммирующий и вычитающий счётчик, выполняя

циклические переходы от значения 0x0000 до значения MAX и обратно до 0x0000. Число MAX рассчитывается по формуле:

MAX=2N-1,

где N - разрешающая способность ШИМ, заданная битами PWM10 и PWM11 регистра TCCR1A.

Частота fшим, с которой повторяются циклы ШИМ рассчитывается по формуле:

fшим=ft/c1/(MAX)

Частота ft/c1 выбирается при помощи битов CS10-CS12 регистра TCCR1B

Регистр TCCR1B
7 6 5 4 3 2 1 0

ICNC1 ICES1 - - CTC1 CS12 CS11 CS10

Биты 0-2 используются для выбора частоты тактирования (см. таблицу в разделе таймеры atmega8).

Если CTC1=1, то таймер возвращается в состояние 0x0000 по импульсу, следующему после совпадения счётчика и регистра сравнения OCR1A

Регистр ICES1 определяет каким образом должно передаваться состояние счётчика в регистр захвата ICR1 - по нарастающему (ICES1=1) или

ниспадающему фронту сигнала (ICES1=0).

Бит ICNC1 активирует подавление помех.

PWM1 Разрешающая Значение Частота


PWM10
1 способность MAX ШИМ

0 0 Режим ШИМ выключен

0 1 8 бит 255 ft/c1/255

1 0 9 бит 511 ft/c1/511

1 1 10 бит 1023 ft/c1/1023

ADMUX - ADC Multiplexer Selection Register


Bit 7 6 5 4 3 2 1 0

ADMUX REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0


This register is used to select reference voltage source, how the result should be stored (either left adjusted or right adjusted),
analog port channel to be used for conversion.

Reference Selection Bits (REFS): There are three different ways of selecting reference voltage for AD conversion by ADC.
REFS1 and REFS0 bits are used to determine what reference voltage source to be used for AD conversion.It can be either
internal 2.56V or through external AREF pin (Analog Reference voltage).
REFS1 REFS0 Vref Selection

AREF used as VRef and internal VRef is turned


0 0
off

AVCC with external capacitor at the AREF pin is


0 1
used as VRef

1 0 This is a reserved bit

Internal reference voltage of 2.56V is used with


1 1
an external capacitor at AREF pin for VRef

ADC Left Adjust Result (ADLAR): Once the conversion is complete, result is stored in two ADC data registers ADCH and ADCL.
This result can be either left justified or right justified. If ADLAR bit is set, then it is left adjusted, and clearing it will right justify
the result. By default, bit is cleared and right justified.
MUX3:0: Analog Channel Selection Bits
These bits are used to select particular analog input channel. The table ADPS2 ADPS1 ADPS0 Division Factor
shows bits to be set to enable any particular pin.
0 0 0 2
MUX3 MUX2 MUX1 MUX0 Single Ended Input
0 0 1 2
0 0 0 0 ADC0
0 1 0 4
0 0 0 1 ADC1
0 1 1 8
0 0 1 0 ADC2
1 0 0 16
0 0 1 1 ADC3
1 0 1 32
0 1 0 0 ADC4
1 1 0 64
0 1 0 1 ADC5
1 1 1 128
0 1 1 0 ADC6 *

0 1 1 1 ADC7 *
ADCSRA Register
This register is responsible for enabling ADC, start ADC converting, prescaler selection and interrupt control.
ADCSRA bit definition:
Bit 7 6 5 4 3 2 1 0

ADCSRA ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0


ADC Enable (ADEN): ADC is turned on by setting this bit to logic 1 and turned off by writing logic 0.
ADC Start Conversion (ADSC): Setting this bit to logic 1 tells ADC to start the conversionADC Free Running Select (ADFR)
(ADATE): This bit can be used to toggle ADC into free running mode or single conversion mode. Setting it to 1 activates ADC in
free running mode and clearing it sets it to single conversion mode.
ADC Interrupt Flag (ADIF): This is an interrupt bit which is set to 1 by hardware once conversion is complete
ADIE: ADC Interrupt Enable: When this bit is written a 1 and the I-bit in SREG is set, the ADC Conversion Complete Interrupt
is activated.
ADC Prescaler Select Bits (ADPS): ADPS2, ADPS1 and ADPS0 bits are used to set circuit clock frequency
Regiştrii folosiţi în ATMega8 pentru comunicarea serială sunt următorii:
-Registrul UDR care are rolul de a stoca datele necesare pentru transmisie sau recepţie:
Dacă se realizează transmisia, datele sunt stocate în TXB iar dacă se realizează recepţia datele se găsesc în RXB.
-Registrul UCSRA:

Bitul 7 –RXC- indică starea registrului de recepţiei.Dacă încă se mai primesc date valoarea lui este 1 iar dacă recepţia
a fost efectuată complet valoarea lui este 0.
Bitul 6 –TXC- indică starea registrului de transmisiei.Dacă încă se mai transmit date valoarea lui este 1 iar dacă
transmisia a fost efectuată complet valoarea lui este 0.
Bitul 5 – UDRE – indică dacă UDR poate fi citit sau scris.Dacă este 1 UDR poate fi scris, dacă este 0 nu se pot efectua
operaţii cu acest registru.
Aceşti 3 biţi pot genera întreruperi care pot fi tratate în rutine speciale .
Bitul 4 – FE – Detectează dacă există erori la transmiterea cuvântului verificând bitul/biţii de final.Dacă acest/aceşti
biţi au o valoare diferită de 1 atunci bitul FF ia valoarea 1.Dacă totul este în regulă atunci valoarea lui FE va fi 0.
Bitul 3 –DOR - Detectează dacă există erori de suprascrierea USAR-tului.De exemplu la recepţie poate apărea o astfel
de eroare dacă UDR şi registrul serial este plin şi alt caracter este pe cale de a fi primit.FE este 1 dacă s-a semnalat o
astfel de eroare şi 0 dacă nu avem o eroare de acest fel.
Bitul 2 – PE – are rolul de a detecta eroarea de paritate.Dacă s-a detectat o astfel de eroare ia valoarea 1 iar dacă nu
valoarea lui va fi 0.
Bitul 1 – U2X – Acest bit este 1 dacă dorim să dublăm viteza de transmisie în modul asicron şi 0 dacă se foloseşte
viteza normală.Acest bit trebuie să aibă întotdeauna valoarea 0 dacă este folosit modul sincron.
Bitul 0 – U2X- Se setează 1 dacă se foloseşte comunicarea multiprocesor şi 0 dacă se foloseşte comunicarea
uniprocesor.
-Registrul UCSRB:

-Bitul 7-RXCIE – 1 setează generarea unei întreruperi la terminarea recepţiei,0 întreruperea nu este flosită.
-Bitul 6-RXCIE – 1 setează generarea unei întreruperi la terminarea transmisiei,0 întreruperea nu este flosită.
-Bitul 5-RXCIE – 1 setează generarea unei întreruperi atunci când registrul UDRIE poate fi folosit,0 întreruperea nu
este folosită.
-Bitul 4- RXEN – 1 setează USART-ul ca receptor.
-Bitul 3- TXEN – 1 setează USART-ul ca Transmiţător.
-Bitul 2- UCSZ2 – se foloseşte împreună cu o parte din biţii registrului UCSRC după cum vom vedea mai jos.
-Bitul 1 – RXB8 – este al 9-lea bit din schimbul de date pe 9 biţi şi se foloseşte la recepţie.
-Bitul 0 – TXB8 – este al 9-lea bit din schimbul de date pe 9 biţi şi se foloseşte la transmisie.

-Registrul UCSRC:
-Bitul 7 –URSEL- se foloseşte pentru selecţia regiştrilor astfel:1 dacă se lucrează cu registrul UCSRC şi 0 dacă se
lucrează cu registrul UBBRH.
-Bitul 6 –UMSEL-Prin acest bit se setează modul de funcţionare al USART-ului:1 dacă funcţionează în modul sincron şi
0 dacă nu funcţionează în modul sincron.
-Bitul 5 şi 4 –UPM1 şi UPM0 – Se folosesc pentru selecţia parităţii:
UPM1 UPM0
00 - Nu se foloseşte bitul de paritate.
01 - Combinaţie rezervată.
10 - Se foloseşte bitul de paritete ca bit par.
11 - Se foloseşte bitul de paritete ca bit impar.
-Bitul 3 –USBS- se foloseşte pentru a seta numărul biţilor care reprezintă sfârşitul cuvântului: 1- se setează doi biţi de
stop,0-se setează un singur bit de stop.
-Biţii 2 şi 1– UCSZ1 şi UCSZ0- se folosesc împreună cu UCSZ2 din UCSRB pentru a seta lungimea cunvântului de date:

UCSZ2 UCSZ1 UCSZ0 Lungimea Cuvântului

000 – 5 biţi;
001 – 6 biţi;
010 – 7 biţi;
011 – 8 biţi;
100 – Combinaţie rezervată;
101 – Combinaţie rezervată;
110 – Combinaţie rezervată;
111 – 9 biţi;
-Bitul 0 – UCPOL-Se foloseşte pentru modul sincron şi setează ce front al semnalului de pe linia XCK va fi folosit în
transmisie.În modul asincron acesta se setează 0.Valorile pe care le poate lua sunt următoarele:0 – se foloseşte
frontul crescător, 1 se foloseşte frontul descrescător.
-Registrul UBRR – Acest registru se foloseşte pentru a seta viteza de transmisie a datelor.

-Bitul 15 – URSEL – trebuie să fie 0 atunci când se efectuează operaţii cu acest registru.
-Biţii 12,13,12 sunt nişte biţi rezervaţi nefolosiţi în acest microcontroler.
-Biţii 11:0 sunt folosiţi pentru a seta viteza de transmisie a datelor.Totuşi setarea se face doar cu biţii cei mai
semnificativi, 11:8.Viteza de transmisie a datelor se calculează după formula:

Unde BAUD reprezintă viteza de transmisie măsurată în Baud,f_int reprezită frecvenţa internă a procesorului iar
UBBR este valoarea setată în registru.
Eroarea la transmisie se calculează după formula:

Вам также может понравиться