Вивчення принципу роботи аналого-цифрового перетворювача на прикладі мікроконтролера PIC16C71, страница 5

Z                                 00000002

__16C71                           00000001

an1                               00000012

an2                               00000013

analog                            00000033

counter_h                         00000010

counter_l                         0000000C

del                               0000000E

delay                             0000001A

initAD                            00000011

k                                 0000000E

k1                                0000000F

k2                                00000040

m1                                0000001C

m2                                00000028

m3                                00000045

m4                                00000043

m5                                00000048

n1                                00000038

n2                                0000003D

n3                                00000035

proc_B                            00000025

proc_E                            0000002A

start                             00000002

t_32mc                            0000003E

test                              00000011

MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

0040 : XXXXXXXXX------- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:    73

Program Memory Words Free:   951

MPASM 02.20 Released             LAB6.ASM   5-25-2004  19:46:50         PAGE  6

Errors   :     0

Warnings :     0 reported,     0 suppressed

Messages :     0 reported,     0 suppressed

Методика перевірки працездатності програми:

1. Для перевірки працездатності програми необхідно її спочатку відкомпілювати та після того як всі помилки було виправлено треба запустити програму на виконання, але перед цим для моделювання роботи АЦП нам потрібно створити текстовий файл (наприклад adcres.reg) у якому будуть записані зачення результатів перетворення АЦП та підключити файл. Зміст цього файлу приведено нижче:

Зміст файлу adcres.reg:

21

25

2A

13

35

35

Для того, щоб його підключити треба відкрити вікно Register Stimulus через меню: Debug->Simulator Stimulus->Register Stimulus->Enable... та вибрати цей файл. У полі Program Memory Address вказати адресу команди в пам'яті програм, а саме “delay”, у полі Register Address вказуємо символьне ім'я регістра ADRES.

Після скидання мікроконтролера, щораз, коли значення лічильника команд PC співпаде з указаною адресою ares, у регістр ADRES буде занесене значення з файлу adcres.reg. При досягненні кінця файлу adcres.reg підстановка почнеться з початку файлу, тобто буде виконуватися циклічно.

2. Далі запостивши програму на виконання покроково перевіряємо її процездатність: а саме ввод аналогового сигналу та по результату зрівняння їх перевіряємо чи викликається відповідна підпрограма у кожному випадку результату зрівняння.

На рис.1. забражено фрагмент тестування програми та підключення файлу у якому записані зачення результатів перетворення АЦП.

Рис.1. Фрагмент тестування програми.

Результати роботи програми:

З результатів вище описаної перевірки ми бачимо, що програма, яку ми написали - дійсно вірно працює та виконує усі дії які були описані у індівідуальному завданні для виконання, а саме: виконує ввод двох аналогових сигнали та по результату їх зрівняння, якщо U1 <= U2 виконує підпрограму E – формування позитивного імпульсу тривалістю ti = 5 · tц на виводі RB0, а якщо U1 > U2 виконує підпрограму В – декремент 16-розрядного лічильника в пам'яті даних. А також на виводі RB4 мікроконтролера формує сигнал з періодом повторення T=32 мс і числом рівнів квантування N=256.

Висновок:  Під час виконання лабораторної роботи вивчили принцип роботи аналого-цифрового перетворювача на прикладі мікроконтролера PIC16C71. Навчилися вводити аналогові сигнали. Розглянули способи виводу аналогових сигналів. Навчилися формувати широтно-модульовані сигнали.