Автор: Пользователь скрыл имя, 11 Сентября 2011 в 13:18, курсовая работа
Целью данной курсовой работы является разработка устройства аналого-цифрового преобразования, использующего микроконтроллер. Областью применения результатов данной работы может быть любое устройство, анализирующее или обрабатывающее аналоговый сигнал в цифровом представлении.
Введение 4
1 Описание принципов работы объекта 5
1.1 АЦП параллельного приближения 6
1.2 АЦП последовательного приближения 7
1.3 АЦП последовательно-параллельного приближения 8
2 Разработка функциональной схемы АЦП 9
2.1 Алгоритм аналого-цифрового преобразования 9
2.2 Описание работы программы. 10
3 Обоснование выбора МК и схем сопряжения с внешними устройствами 10
3.1 Обоснование выбора МК 10
3.1.1 Микроконтроллеры семейства Mcs51 фирмы Intel 10
3.1.2 Микроконтроллеры семейства С500 фирмы Siemens 11
3.1.3 Семейство Microconverter фирмы Analog Devices 11
3.1.4 Микроконтроллеры Xemics. Семейство XE8000 11
3.1.5 PIC микроконтроллеры компании MICROCHIP 12
3.1.6 Микроконтроллеры Scenix Sem. SX 13
3.1.7 Микроконтроллеры Ангстрем, выпускаемые ОАО "АНГСТРЕМ" 14
3.1.8 Микроконтроллеры фирмы Atmel 15
3.1.9 Описание выбранного микроконтроллера 16
3.2 Обоснование выбора схемы сопряжения 19
3.3 Возможности доработки и развития данной схемы 20
3.4 Разработка фрагмента программы для выбранного МК 20
Заключение 23
Приложение
Восьмиразрядный двоичный код, поданный на ЦАП, масштабирует опорный ток () от 0 до 255, который преобразуется в ток на выходе ЦАП () от 0 до . Напряжение на выходе определяется как ток на выходе ЦАП () умноженный на значение резистора () преобразователя тока в напряжение. Номинальное значение напряжения на выходе: .
Поскольку при напряжении питания AT90S8535 равном В потребление тока составляет , номинальное значение R1 составит .
Для подавления помех в цепи питания как можно ближе к выводам питания микроконтроллера следует подсоединять керамический (лучше танталовый) конденсатор емкостью 0,01-0,1 мкФ.
Использование
кварцевого резонатора – наиболее
распространённый способ включения
внешней схемы тактового
3.3 Возможности доработки и развития данной схемы
Одной из причин, по
которой была выбрана именно эта
серия микроконтроллеров, является
наличие встроенного АЦП
4 Разработка фрагмента программы для выбранного МК
Разработанная программа работает со следующими регистрами: ACSR (регистр статуса и управления аналогового компаратора) и WDTCR (регистр управления сторожевым таймером). Биты регистров представлены на рисунке 7 (ACSR) и рисунке 8 (WDTCR).
Рисунок
7 – Регистр ACSR
Рисунок 8 – Регистр WDTCR
На рисунках обозначены:
Таблица 2 – Выбор коэффициента предварительного деления тактовой частоты сторожевого таймера
Сторожевой
таймер используется для предотвращения
возникновения ситуации «зависания»
программы. Таймер тактируется отдельным
встроенным генератором, работающем на
частоте 1 МГц. Установкой коэффициента
предварительного деления тактовой
частоты сторожевого таймера
можно изменить длительность интервала
до сброса от 16 до 2048 мс. Поскольку задержка
аналогового компаратора
Промежуточные значения переменных хранятся в регистрах 22-24.
Ключевым моментом в алгоритме преобразования аналогового сигнала в двоичный код является функция последовательного установления бит на порте вывода и сравнения уровня входного сигнала с уровнем сигнала на выходе ЦАП. При этом важную роль играет правильное установление режимов работы портов, таймеров и компараторов.
Для более подробного рассмотрения приводятся функция реализации алгоритма последовательного пересчёта.
START_BIT:
mov A,N ;занесение в переменную A номера тестируемого бита
or A,D ;А=А or D
ldi temp,A ;занесение в переменную Temp результата А or D
sbi ACSR,ACD ;включение аналогового компаратора
rcall wait ;ожидание срабатывание аналогового компаратора
cbi ACSR,ACD ;отключение аналогового компаратора
mov SC, C ;сохранение значение C, N и D
mov SN, N
mov SD, D
ror N ;циклический сдвиг вправо с переносом -
;– переход на следующий бит
inc C ;увеличение на единицу C – подсчёт количества
;
cpi C,$08 ;сравнение C c 8 – конец байта
brne
START_BIT ;если не равно (не конец байта), то
переход на START_BIT.
Заключение
В ходе работы была разобрана классификация АЦП и разработан АЦП последовательного приближения на микроконтроллере AT90S8535 фирмы Atmel. Подробно разобраны архитектура МК, назначение выводов и основные режимы его работы для возможной дальнейшей модернизации устройства. Приведен фрагмент программы управления микроконтроллером на языке Assembler. Микроконтроллеры семейства AVR поставляются в очищенном состоянии – содержимое и Flash памяти программ и ЭСППЗУ данных находится в состоянии FF и готово к программированию. Семейство обеспечено комплектом программ и системами отладки, включающими: макро-ассемблеры, отладчики/симуляторы программ, внутрисхемные эмуляторы, и отладочные устройства, без которых управление МК невозможно, т.к. оно определяет алгоритм и режим работы всего устройства преобразования.
Основными достоинствами блока являются относительная простота реализации, хорошие технико-экономические показатели, высокая скорость преобразования и широкая область применения. Продолжением данной темы может стать разработка устройств не только преобразования аналогового сигнала, но и некоторого его анализа. Возможна замена МК на аналог, т.к. приборы семейства AVR совместимы по исходным кодам и тактированию.
Приложение А
(справочное)
Алгоритм аналого-цифрового преобразования
Приложение Б
(обязательное)
Схема электрическая принципиальная
Приложение В
(справочное)
Текст программы
include "8535def.inc" ; подключение файла описания МК
.device AT90S8535 ; задание конкретного МК
.def C = r16 ; назначение регистру r16 символического имени C
.def A = r17 ; назначение регистру r17 символического имени A
.def N = r18 ; назначение регистру r18 символического имени N
.def
D = r19 ; назначение регистру r19 символического
имени D
.def SC = r22 ; назначение регистру r22 символического имени SC
.def SN = r23 ; назначение регистру r23 символического имени SN
.def
SD = r24 ; назначение регистру r24 символического
имени SD
.def
Temp = r20 ; назначение регистру r20 символического
имени Temp
.cseg ;
установка адреса памяти программ
.org 0 ; прерывание номер 0 – сброс по выводу и прерывание от сторожевого таймера
rjmp RESET ; переход на метку RESET
rjmp START_BIT ; переход на метку START_BIT
reti ;
возврат из прерывания
.org 002E ; прерывание номер 2Е - от аналогового компаратора
rjmp Ana_Comp ; переход на метку Ana_Comp
reti ;
возврат из прерывания
--------------------------
MAIN: ; основная процедура
Mov SC,$00 ; установка начальных значений
Mov SN,$07
Mov SD,$00
sbr WDTCR,WDTOE ; настройка сторожевого таймера (описана в пункте 4)
cbr WDTCR,WDE ; сброс бита WDE регистра WDTCR
sbr WDTCR,WDE ; установка бита WDE регистра WDTCR
sbr WDTCR,WDP0 ; установка WDP0 регистра WDTCR
sbr WDTCR,WDP1 ; установка WDP1 регистра WDTCR
sbr WDTCR,WDP2 ; установка WDP2 регистра WDTCR
rcall
RESET ; вызов процедуры RESET
START_BAIT: ; процедура обработки байта
clr C ; установка начальных значений
ldi N,$07
clr D
START_BIT: ; процедура обработки бита
mov A,N ; занесение в переменную A номера тестируемого бита
or A,D ; А=А or D
ldi temp,A ; занесение в переменную temp результата операции А or D
сbi ACSR,ACD ; включение аналогового компаратора
rcall wait ; ожидание срабатывание аналогового компаратора
sbi ACSR,ACD ; отключение аналогового компаратора
mov SC,C ; сохранение значения C
mov SN,N ; сохранение значения N
mov SD,D ; сохранение значения D
ror N ; циклический сдвиг вправо с переносом – переход на следующий бит
inc C ; увеличение на единицу C – подсчёт количества обработанных бит
cpi C, $08 ; сравнение C c 8 – конец байта
brne START_BIT ; если не равно (не конец байта), то переход на START_BIT
rjmp
START_BAIT
--------------------------
RESET: