Практическое занятие №7

АНАЛИЗ ПРОГРАММЫ ДЛЯ «УЧЕБНОГО» МИКРОКОНТРОЛЛЕРА (АНАЛОГО-ЦИФРОФОЙ ПРЕОБРАЗОВАТЕЛЬ)

Аналого-цифровой преобразователь (АЦП) преобразует непрерывную аналоговую величину (напряжение или ток) в цифровой код, соответствующий этой величине. Для простоты понимания будем считать, что в данном примере на вход АЦП подается постоянное напряжение U, которое может находится в пределах от 0 до 2,55В (2550мВ), а на выходе будет формироваться восьмиразрядный двоичный код, находящийся соответственно в пределах от 0 до 255 (двоичный вид: от 00000000В до 11111111В), т.е. единице выходного кода соответствует 10 мВ входного напряжения (рис.4).

U (0÷2550 мВ)      АЦП      8       N (0÷255)

 

 

Рис.4 - Структурная схема АЦП

           На рис.5 изображена функциональная схема АЦП на базе микроконтроллера, реализующего метод последовательных приближений. На этом рисунке: МК – микроконтроллер; ЦАП – цифроаналоговый преобразователь, который преобразует цифровой код в аналоговую величину (в данном случае в напряжение); К – компаратор (устройство сравнения), имеющий два входа: прямой "+" и инверсный "-", причем на выходе компаратора будет логическая единица, если напряжение на прямом входе больше чем на инверсном, и логический ноль в обратном случае.

                                             U<UЦАП                 

                                                "1"

     U           _  U>UЦАП                  МК                                       

                        К           "0"                            

                         +                                 Т0               

                                                         BUS   8     N                  

 

                                         Nп

UЦАП      ЦАП               8           P1

 

 

Рис.5 - Функциональная схема АЦП

 

АЦП по методу последовательных приближений работает следующим образом. Допустим, на вход АЦП подано напряжение U=1652 мВ. На первом цикле МК формирует промежуточный код Nп=27=128. Этот код выдается микроконтроллером через порт P1 на вход ЦАП, который преобразует его в соответствующее напряжение UЦАП=1280 мВ (для данного АЦП). Компаратор К сравнивает входное напряжение U и напряжение UЦАП. Для первого цикла U>UЦАП (1652 мВ > 1280 мВ), поэтому на выходе компаратора формируется логический ноль. МК через вход Т0 анализирует результат сравнения и если (Т0)=0 (U>UЦАП), то сохраняет сформированный промежуточный код Nп, и не сохраняет при (Т0)=1 (U<UЦАП). В данном случае МК сохраняет промежуточный код Nп. На втором цикле МК формирует промежуточный код Nп =Nп+26=128+64=192. Этот код через порт P1 подается на вход ЦАП, который преобразует его в соответствующее напряжение UЦАП=1920 мВ. Компаратор К сравнивает входное напряжение U и напряжение UЦАП: U<UЦАП (1652 мВ < 1920 мВ), поэтому на выходе компаратора формируется логическая единица. МК через вход Т0 анализирует результат сравнения и в данном случае не сохраняет полученный промежуточный код Nп, т.е. остается предыдущий промежуточный код Nп=128 и т.д. все восемь циклов. Последний сохраненный промежуточный код Nп будет выходным кодом N, который в конце измерительного цикла выдается через порт BUS. Табл. 7 поясняет процесс формирования кода N.

Таблица 7 – Формирование выходного кода N при U=1652 мВ

№ цикла 2i Промежуточный код Nп=Nп+2i UЦАП, мВ Т0 N
1 27=128 128 - сохранен 1280 0 1
2 26=64 128+64=192 – не сохранен 1920 1 0
3 25=32 128+32=160 - сохранен 1600 0 1
4 24=16 160+16=176 – не сохранен 1760 1 0
5 23=8 160+8=168 – не сохранен 1680 1 0
6 22=4 160+4=164 - сохранен 1640 0 1
7 21=2 164+2=166 – не сохранен 1660 1 0
8 20=1 164+1=165 - сохранен 1650 0 1

                                      N=10100101B=A5H=165

 

               

Таким образом, выходной код N формируется в двоичном виде поразрядно, начиная со старшего.

     На рис.6 приведена блок-схема алгоритма, реализующего метод последовательных приближений, а пример программы по данной теме – см. лабораторную работу №8. Следует заметить, что процесс формирования 2i осуществляется путем "проталкивания" единицы из признака С в "пустой" аккумулятор и дальнейшим ее "продвижением" с помощью команды RRC. Еще одно замечание – программа будет выполняться бесконечно, пока на микроконтроллер подано питание. Такое зацикливание характерно для работы реальных измерительных устройств, имеющих в своем составе микропроцессор.

                                                                                                                  

 

   

Рис.6.  Блок-схема алгоритма, реализующего метод последовательных приближений

Задания к практическому занятию №7:

1) для программы АЦП сформировать таблицу аналогичную табл. 5 при следующих входных напряжениях: 527 мВ; 960 мВ; 1213 мВ; 2322 мВ;

2) подсчитать время выполнения одного измерительного цикла для каждого значения входного напряжения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: