Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

на тему- Цифровой Генератор Аналоговых Сигналов на основе Микроконтроллера Выполнила.

Работа добавлена на сайт samzan.net:


Федеральное агентство по образованию РФ

Санкт-Петербургский Государственный Электротехнический университет

Кафедра БЭМиОС

Курсовая работа по дисциплине: Узлы и элементы медицинской техники

на тему:

«Цифровой Генератор Аналоговых Сигналов

на основе Микроконтроллера»

Выполнила: студентка гр.5503

Копанева А.К.

Проверил: Ахлаков М.К.

Санкт-Петербург 2009

Содержание

1. Задание                                                                                                             2

2. Введение                                                                                                           3

3. Разработка структурной схемы                                                                  4

4. Подбор элементов принципиальной схемы                                                  6

4.1 Выбор устройства ввода

45.2 Выбор дисплея

45.3 Выбор ЦАП и источника питания

4.4  Выбор МК

45.5 Выбор стабилизатора напряжения и инвертора

4.6 Выбор УМ                                                               

5. Блок-схемы                                                                                                       19

6. Программа                                                                                                        22

7. Заключение                                                                                                        32

8. Список литературы                                                                                         32

9. Приложение                                                                                                    28

1.Задание

          В данном курсовом проекте необходимо разработать цифровой генератор аналоговых сигналов, со следующими характеристиками:

Форма сигналов

Sin, Rest, Lin

Напряжение источника питания

±12 В

Погрешность формирования сигналов

не более 1%

Диапазон изменения амплитуды

1÷10 В с шагом 0.1 В

Диапазон изменения частоты

0÷100 кГц с шагом 1 Гц

Табл.1

Питание данного прибора осуществляется от батареек. В соответствии с исходными данными необходимо разработать функциональную и принципиальную электрическую схемы, алгоритм и  программу работы электронного генератора.

2.Введение

В последние годы получили развитие системы прямого цифрового синтеза сигналов, обеспечивающие высокую точность задания частоты и начальной фазы сигналов, а также высокую верность воспроизведения их формы. Более того, эти системы позволяют генерировать сигналы большого многообразия форм, в том числе и форм, задаваемых пользователем. Генератор синусоидального напряжения является одним из наиболее распространенных приборов в измерительной лаборатории. Генераторы промышленного производства имеют большие габариты и вес, а к тому же, немалую стоимость. Кроме того, аналоговые генераторы обладают целым рядом недостатков: недостаточной точностью установки и стабильностью частоты и амплитуды, относительно большим коэффициентом гармоник. 

Существуют цифровые методы синтеза сигнала и не только синусоидального. В связи с этим в данной курсовой работе будет разработан программный метод задания формы сигнала и изменение его некоторых параметров.

3. Разработка структурной схемы

Условные обозначения:

МК – микроконтроллер фирмы Analog devices

УВ – устройство ввода,  для задания формы и параметров сигнала

ПК – блок синхронизации интерфейса (БСИ): последовательный интерфейс связи с ПК необходим для передачи полученных данных в персональный компьютер;

ЦАП – цифро-аналоговый преобразователь,

УМ – усилитель мощности (буферный)

ИП – источник питания всех устройств

СН – стабилизатор напряжения, который стабилизирует напряжения до                      необходимого нам уровня.

Принцип работы генератора: Управляющим элементом системы является МК, в памяти программ которого хранится программа, реализующая определенную форму сигнала на выходе, с заданной амплитудой и частотой, также в ПЗУ хранится таблица синусов.

Амплитуда, частота и форма сигнала вводятся с запрограммированных кнопок. Изменение частоты будет происходить за счёт программно реализованной задержки между выдачей значений в ЦАП. По заданию диапазон изменения частоты лежит в пределах от 0 до 100кГц, а в таблице синусов находится 256 значений. Таким образом, на максимальной частоте задержка равна (1/100000)/256=390 мкс. Вывод табличных значений синуса осуществляется с помощью ЦАПа. Усилитель мощности необходим для обеспечения выхода по напряжению и требуемой нагрузочной способностью.

Для связи с пользователем используется компьютер, который подключается по средствам последовательного интерфейса RS232 и DB9. Так как амплитуда и частота и амплитуда изменяются дискретно, с заданным шагом, предусмотрены следующие кнопки: «амплитуда +», «амплитуда -»   и «частота +» , «частота -». Управление и сканирование кнопок осуществляется Микроконтроллером.

4. Подбор элементов принципиальной схемы           

4.1 Выбор устройства ввода

Клавиатуру можно было бы выбрать из готовых, однако это не целесообразно экономически. В готовых клавиатурах предусмотрено большое количество клавиш, что в нашем случае ненужно, можно обойтись гораздо меньшим числом. Так как нам нужно задавать только два параметра ( амплитуду и частоту), причем каждый из них может изменяться только с определенным шагом (амплитуда от0до 100 кГц с шагом – 1Гц, частота от 1 до 10В с шагом – 0.1В), то вполне достаточно наличие 5 кнопок, одна из которых будет определять вид сигнала, а остальные 4 соответственно: «амплитуда», «частота», «больше», «меньше».

Для того чтобы при замыкании кнопки МК нормально работал, необходимо уменьшить подаваемое напряжение до уровня логической единицы. Для выполнения этой цели поставим сопротивления R1,R2,R3,R4,R5.

4.2 Выбор связи с компьютером

Для  связи  с  компьютером  используем последовательный интерфейс RS232  реализованный на SP202 и DB9.

Последовательный интерфейс RS232:

Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Изначально создавался для связи компьютера с терминалом. В настоящее время используется в самых различных применениях.

Интерфейс RS-232-C соединяет два устройства. Линия передачи первого устройства соединяется с линией приема второго и наоборот (полный дуплекс) Для управления соединенными устройствами используется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем организации дополнительных RS-232 линий для обеспечения функций определения статуса и управления.

Скорость передачи

115 Кбит/с (максимум)

Расстояние передачи

15 м (максимум)

Характер сигнала

несимметричный по напряжению

Количество драйверов

1

Количество приемников

1

Схема соединения

полный дуплекс, от точки к точке

Компьютер имеет 9-контактный (DB9P) разъем для подключения RS-232C.

Назначение сигналов следующее.
FG - защитное заземление (экран).
-TxD - данные, передаваемые компьютером в последовательном коде (логика отрицательная).
-RxD - данные, принимаемые компьютером в последовательном коде (логика отрицательная).
RTS - сигнал запроса передачи. Активен во все время передачи.
CTS - сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника.
DSR - готовность данных. Используется для задания режима модема.
SG - сигнальное заземление, нулевой провод.
DCD - обнаружение несущей данных (детектирование принимаемого сигнала).
DTR - готовность выходных данных.
RI - индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети.

Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис.1.3.). Отметим, что данные передаются в инверсном коде (лоической единице соответствует низкий уровень, логическому нулю - высокий уровень).

Формат передачи данных RS-232

4.3. Выбор ЦАП и источника питания

Так как МК выдает последовательность импульсов, который можно принять за сигнал, квантованный как по уровню, так и по времени, то для преобразования этой последовательности в аналоговый непрерывный сигнал требуется Цифро-аналоговый преобразователь (ЦАП). Важной областью применения ЦАП является синтез аналоговых сигналов необходимой формы. Аналоговые генераторы сигналов - синусоидальной, треугольной и прямоугольной форм - имеют низкую точность и стабильность, не могут управляться от ЭВМ. В последние годы получили развитие системы прямого цифрового синтеза сигналов, обеспечивающие высокую точность задания частоты и начальной фазы сигналов, а также высокую верность воспроизведения их формы. Более того, эти системы позволяют генерировать сигналы большого многообразия форм, в том числе и форм, задаваемых пользователем.

Следовательно, в ЦАПах мы имеем не достаточно большую мощность, для усиления которой нам необходим усилитель мощности (УМ), для которого питание должно быть биполярным ±12В. Значит, одной батареи на 5В нам не достаточно. Этот вопрос я решила с помощью батарей на 12В. Возьмем 4 батарейки типа GR2025, литиевые с напряжением по 3В. Также нам необходим инвертор, с помощью которого можно получить -12В и стабилизатор напряжения на 5В, чтобы питать МК и ЦАП.  Подсчитаем необходимую нам разрядность: число возможных значений амплитуд  N=10/0.1=100  отсюда  разрядность ЦАП  n=7, следовательно, можно взять 10 разрядный ЦАП. В данном случае нам подходит ЦАП AD5310.

4.4 Выбор МК

При выборе МК следует учитывать такие параметры, как наличие опыта работы с применением данного МК, соответствие МК поставленной задаче и др. В качестве управляющего микроконтроллера был выбран МК MEGA 8. ATmega8, ATmega8L: 8-разрядные микроконтроллеры с 8 Кбайтами внутрисистемно программируемой Flash памятью.

Отличительные особенности:

  •  Прогрессивная RISC архитектура 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл,8-разрядных рабочих регистра общего назначения.
  •  Полностью статическая работа
  •   Приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность
  •      Встроенный 2-цикловый перемножитель
  •  Энергонезависимая память программ и данных
  •        Обеспечивает 1000 циклов стирания/записи
  •            Обеспечен режим одновременного чтения/записи (Read-While-Write)
  •      512 байт EEPROM       
  •      1 Кбайт встроенной SRAM
  •      Программируемая блокировка, обеспечивающая защиту программных средств пользователя
  •  Встроенная периферия
  •      Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
  •      Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения
  •      Счетчик реального времени с отдельным генератором
  •      Три канала PWM
  •      8-канальный аналого-цифровой преобразователь (в корпусах TQFP и      MLF)
  •        6 каналов с 10-разрядной точностью
  •       2 канала с 8-разрядной точностью
  •      6-канальный аналого-цифровой преобразователь (в корпусе PDIP)
  •        4 канала с 10-разрядной точностью
  •        2 канала с 8-разрядной точностью
  •      Байт-ориентированный 2-проводный последовательный интерфейс
  •      Программируемый последовательный USART
  •      Последовательный интерфейс SPI (ведущий/ведомый)
  •      Программируемый сторожевой таймер с отдельным встроенным генератором
  •      Встроенный аналоговый компаратор
  •  Специальные микроконтроллерные функции
  •  Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
  •      Встроенный калиброванный RC-генератор

      Рабочие напряжения                                      Рабочая частота

   2,7 - 5,5 В (ATmega8L)                                0 - 8 МГц (ATmega8L)

    4,5 - 5,5 В (ATmega8)                                  0 - 16 МГц (ATmega8)

Расположение выводов:

Блок-схема:

Описание выводов модели ATmega 8:

Название вывода

Назначение

Порт В.

PB0(ICP)

Вход захвата таймера/счётчика

PB1(OC1A)

Выход А таймера/счётчика Т1

PB2 (SS/OC1B)

Выбор Slave-устройства в канале SPI /выход  В таймера / счётчика Т1

PB3(MOSI/OC2)

Выход (Master) или вход (Slave) данных канала SPI/ Выход таймера/счётчика Т2

PB4(MISO)

Вход (Master) или выход (Slave) данных канала SPI)

PB5(SCK)

Выход (Master) или вход (Slave) тактового сигнала SPI

PB6(XTAL1/TOSC1)

Вход тактового генератора/Вывод для подключения резонатора к таймеру/счётчику Т2

PB7(XTAL2/TOSC2)

Выход тактового генератора/ Вывод для подключения резонатора к таймеру/счётчику Т2

Порт С.

PC0(ADC0)

Вход АЦП

PC1(ADC1)

           Вход АЦП

PC2(ADC2)

Вход АЦП

PC3(ADC3)

Вход АЦП

PC4(ADC4/SDA)

Вход АЦП/Линия данных модуля TWI

PC5(ADC5/SCL)

Вход АЦП/Тактовый сигнал модуля TWI

PC6(RESET)

Вход сброса

ADC6

Вход АЦП

ADC7

Вход АЦП

Порт D.

PD0(RXD)

Вход USART

PD1(TXD)

Выход USART

PD2(INT0)

Вход внешнего прерывания

PD3(INT1)

Выход внешнего прерывания

PD4(T0/XCK)

Вход внешнего тактового сигнала таймера/счётчика Т0/Вход/выход внешнего тактового сигнала USART 

PD5(T1)

Вход внешнего тактового сигнала таймера/счётчика Т1

PD6(AIN0)

Положительный вход компаратора

PD7(AIN1

Отрицательный вход компаратора

AREF

Вход опорного напряжения для АЦП

AGND

Аналоговый общий вывод

AVcc

Вывод источника питания АЦП

GND

Общий вывод

Vcc

Вывод источника питания

4.5 Выбор Стабилизатора напряжения и Инвертора

Для обеспечения питания микросхем  используем  стабилизатор  напряжения компенсационного типа с отрицательной обратной связью - 142ЕН5, который стабилизирует подаваемое напряжение 12В в напряжение 5В, необходимое для питания микросхем генератора.

Инвертор возьмём 3-фазный мостовой MiniSKiiP 2:

  •  Температура корпуса ограничивается значением TC = 125°C 
  •  Характеристики надежности действительны для Tj = 150°C 
  •  SC-данные: tp 6 мкс; VGE 15В; Tj = 150°C; VCC = 360В
  •  VCEsat , VF - значения на уровне кристалла (без учета потерь на контактах)

Рабочие характеристики (если не указано прочее значение, то полагается Tc = 25 °C)

Обозначение

Наименование

Условия снятия характеристики

мин.

ном.

макс.

Единица измерения

IGBT-транзистор инвертора

VCE(sat)

напряжение насыщения коллектора-эмиттера

ICnom = 100 A, Tj = 25 (150) °C

1,05

1,45 (1,65)

1,85 (2,05)

В

VGE(th)

пороговое напряжение затвор-эмиттер

VGE = VCE, IC = 2 мА

 

5,8

 

В

VCE(TO)

Пороговое напряжение коллектора-эмиттера (статическое)

Tj = 25 (150) °C

 

0,9 (0,8)

1,1 (1)

В

rT

Дифференциальное сопротивление во включенном состоянии

Tj = 25 (150) °C

 

5,5 (8,5)

7,5 (10,5)

мОм

Cies

Входная емкость при закороченном выходе

VGE = 25, VCE = 0 В, f = 1 МГц

 

6,15

 

нФ

Coes

выходная емкость при закороченном входе

VGE = 25, VCE = 0 В, f = 1 МГц

 

1,12

 

нФ

Cres

Обратная передаточная емкость (емкость Миллера)

VGE = 25, VCE = 0 В, f = 1 МГц

 

0,9

 

нФ

RCC'+EE'

сопротивление пружинный контакт-кристалл

Ts = 25 (150 )°C

 

 

 

мОм

Rth(j-s)

Тепловое сопротивление

для одного IGBT

 

0,6

 

K/Вт

 

td(on)

длительность задержки включения

VCC = 300 В, VGE = -8/+15В ICnom = 100 A, Tj = 125 °C RGon = RGoff = 8,2 Ом индуктивная нагрузка

 

40

 

нс

tr

время нарастания

 

40

 

нс

td(off)

длительность задержки выключения

 

410

 

нс

tf

время спада

 

50

 

нс

Eon(Eoff)

рассеиваемая энергия в процессе включения (выключения)

 

3,4 (3,5)

 

мДж

Обратный диод инвертора

VF = VEC

прямое напряжение, равное напряжению на эмиттере-коллекторе

IFnom = 100 A; Tj = 25 (150) °C

 

1,3 (1,3)

1,5 (1,5)

В

V(TO)

пороговое напряжение

Tj = 25 (150) °C

 

0,9 (0,8)

1 (0,9)

В

rT

прямое дифференциальное сопротивление

Tj = 25 (150) °C

 

4 (5)

 

мОм

Rth(j-s)

Тепловое сопротивление

для одного диода

 

0,8

 

K/Вт

 

IRRM

максимальный ток обратного восстановления

IIFnom = 100 A, VR = 300 В VGE = 0В, Tj = 125 °C diF/dt = 2560 A/мкс

 

102

 

A

Qrr

заряд восстановления

 

15,5

 

мкКл

Err

Рассеиваемая энергия в процессе обратного восстановления

 

3,3

 

мДж

Датчик температуры

Rts

сопротивление

3 %, Tr = 25 (100) °C

 

1000 (1670)

 

Ом

Механические данные

Ms

монтажный вращающий момент

 

2

 

2.5

Н · м

M

масса

 

 

 

65

грамм

  •  
  •  

IC - ток коллектора;

VGE - напряжение затвор-эмиттер;

VCE - напряжение коллектор-эмиттер;

Tj - температура перехода;

ICnom - номинальный ток коллектора;

VCC - напряжение питания коллектора-эмиттера;

RGon (RGoff)- внешнее последовательное сопротивление с затвором во время включения (выключения);

IFnom - номинальный прямой ток.

Внешний вид модулей семейства SKIIP 2:

Схема модуля:

Типовая схема включения:

4.6 Выбор УМ

Входное напряжение подается на свободный вывод резистора обратной связи ЦАП, размещенного на кристалле ИМС. В этой схеме выходной ток ЦАП

что при выполнении условия Rос=R дает

Следует отметить, что при коде "все нули" обратная связь размыкается. Предотвратить этот режим можно, либо запретив такой код программно, либо включив между выходом и инвертирующим входом ОУ резистор с сопротивлением, равным R·2N+1.

Схема делителя на основе ЦАП с выходом в виде напряжения, построенном на инверсной резистивной матрице и включающем буферный ОУ. Выходное и входное напряжения этой схемы связаны уравнением

Отсюда следует

В данной схеме усилитель охвачен как положительной, так и отрицательной обратными связями. Для преобладания отрицательной обратной связи (иначе ОУ превратится в компаратор) необходимо выполнение условия D<2N-1 или MD<1/2. Это ограничивает значение входного кода нижней половиной шкалы. Резисторы на отрицательной обратной связи нужны для компенсации смещения, вызванного входным током. Так же с их помощью рассчитан коэффициент усиления.

 Для выполнения поставленной задачи будем использовать усилитель AD 718. 

5. Блок-схемы

Блок-схемы подпрограммы ввода/вывода:

6. Программа

; включаем файл определний символических имен для процессора AT90Mega8

.include "m8def.inc"

; объявляем адреса расположения пользовательских переменных в ОЗУ

.equ  MyTIrqCntr = $100

.equ  MyADC_resLO = $101

.equ  MyADC_resHI = $102

.equ  MyADC_ReadyFlag = $103

; таблица векторов прерываний:

;#################################################

.org 0  ; - расположить следующие инструкции начиная с этого абсолютного адреса FLASH ПЗУ

 rjmp RESET ;переход на RESET

; reti

; reti

; reti

.org OVF1addr ; == то же, что и .org 8 - Overflow1 Interrupt Vector Address

rjmp    MyIntTimerOVF ;

.org ADCCaddr ;   =$00e - ADC Interrupt Vector Address

rjmp    MyIntADCsampleReady

;

;#################################################

RESET:

;1***** Инициализация указателя стека

;* Инициализация стека по старшему адресу внутренней SRAM

;* Комментарий для устройст без SRAM

ldi r16,high(RAMEND) ;старший байт требует только если

out SPH,r16          ;RAM больше чем 256 байт

 ldi r16,low(RAMEND)  

out SPL,r16

;2***** Конфигурации таймера 1 - 100 Гц Режим работы:

; - нормальный способ действия, prescaler Fosc/256

ldi r16, (0<<ICNC1 | 0<<ICES1 | 0<<WGM13 | 0<<WGM12 | 1<<CS12 | 0<<CS11 | 0<<CS10)  ;== ldi r16, 0x07  ; == 00000100b

 out TCCR1B, r16

 ldi r16, (0<<COM1A1 | 0<<COM1A0 | 0<<COM1B1 | 0<<COM1B0 | 0<<FOC1A | 0<<FOC1B | 0<<WGM11 | 0<<WGM10)  ;== ldi r16, 0x00

 out TCCR1A, r16

in  r16, TIMSK ;прывание по переполнению

 ori r16,1<<TOIE1 ; == 0000 0100 == 7

   ;andi r16,~(1<<TOIE1) ; == 1111 1011 == 0xFB

 out TIMSK, r16

;

;#################################################

;3***** Инициализация АЦП

;ADMUX регистр

 ldi r16, 0b10000101;   REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0

                                ;    REFS1,REFS0  = b10 => выбор источника опорного напряжения

          ;     ADLAR = b0 => выравнивание результата преобразования

          ;     MUX3..0    = b0101 => выбор входного канала ADC5

out ADMUX, r16

;ADCSRA регистр

ldi r16, 0b10001111;  ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

   ;ADEN - разрешение АЦП

   ;ADSC - запуск преобразования (однократно)

   ;ADFR - выбор режима работы АЦП

   ;ADIF - флаг прерывания от компаратора (только чтение)

   ;ADIE - разрешение прерывания от компаратора

   ;ADPS2..0 - выбор частоты преобразования (b111 => 1/128)

 out ADCSRA, r16

rcall Init_uart

 sei   ;

;ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ

;в нем анализируется флаг готовности данных АЦП (установит прерывание)

;по готовности данных происходит подготовка и передача по последовательному порту RS-232

main_prog_loop:

;АЦП данные готовы?

lds r16, MyADC_ReadyFlag ; устанавливается в прерываниии АЦП

cpi r16, 1   ; сравнить с числом 1 (== ДА)

brne main_prog_loop ; если не готовы.. ждем

 ldi r16, 0    

 sts MyADC_ReadyFlag, r16  ; сбрасываем флаг готовности данных    

;Подготовить входные данные для вызова подпрограммы преобразования чисел в BCD (двоично-десятичный) формат

 ;fbinL   =r16            ;двоичное значение, младший байт

 ;fbinH   =r17            ;двоичное значение, старший байт

 lds r16, MyADC_resLO ;

 lds r17, MyADC_resHI ;   

 ;ldi r16, low(12345) ; проверка преобразования и передачи известного числа

 ;ldi r17, high(12345)

 rcall bin16BCD5   ; вызов подпрограммы BIN->BCD  

;Результат BCD - теперь в регистрах:

 ;tBCD0   =r17            ;BCD значение, цифры 1 и 0

 ;tBCD1   =r18            ;BCD значение, цифры 3 и 2

 ;tBCD2   =r19            ;BCD значение, цифра 4

     ;ldi r20,'0'   ;для преобразование в символ ASCII

 mov  r16,r19 ;BCD значение, цифра 4

 andi r16, 0x0f ;для маскирования старших бит

 add r16, r20

 rcall Send

 mov  r16,r18 ;BCD значение, цифра 3

 swap r16 ; поменять местами 4 старшие бита с 4-мя младшими

 andi r16, 0x0f ;для маскирования старших бит

 add r16, r20

 rcall Send

 mov  r16,r18 ;BCD значение, цифра 2

 andi r16, 0x0f ;для маскирования старших бит

 add r16, r20

 rcall Send

 mov  r16,r17 ;BCD значение, цифра 1

 swap r16 ; поменять местами 4 старшие бита с 4-мя младшими

 andi r16, 0x0f ;для маскирования старших бит

 add r16, r20

 rcall Send

 mov  r16,r17 ;BCD значение, цифра 0

 andi r16, 0x0f ;для маскирования старших бит

 add r16, r20

 rcall Send

 ldi r16, 13 ; символ - возврат каретки

 rcall Send

rjmp main_prog_loop;

;Запустить цикл преобразования АЦП

ldi r16, 0b11001111;  ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

     ;ADEN - ADC Enable

     ;ADSC - ADC Start Conversion (однократно)

     ;ADFR - ADC Free Running Select

     ;ADIF - ADC Interrupt Flag (только чтение)

     ;ADIE - ADC Interrupt Enable

     ;ADPS2..0 - ADC Prescaler Select Bits (b111 => 1/128)

out ADCSRA, r16

pop r16

out SREG,r16

pop r17

pop r16

reti

;#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

MyIntADCsampleReady:

;#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

push r16                            ;сохранить знак

in r16, SREG  ;сохранить значение

 push r16                      ;сохранить указатель строки  результата                                  

; Результат преобразования АЦП сейчас в паре регистров ADCH:ADCL

; Когда читаем ADCL, возможность обновления самим блоком АЦП регистра ADCH аппартно блокируется.

; Поэтому важно считывать результат в таком порядке - сначала ADCL, затем ADCH

in r16, ADCL

sts MyADC_resLO, r16   ; сохраняем результат в ячейки ОЗУ

 in r16, ADCH

sts MyADC_resHI, r16

ldi r16, 1 ; активируем ячейку   

 sts MyADC_ReadyFlag, r16  ; устанавливаем для основного цикла флаг готовности данных  

 pop r16  ;загрузить адрес строки

 out SREG,r16

 pop r16

 reti

Работа с прерываниями:

; включаем файл определний символических имен для процессора AT90Mega8

.include "m8def.inc"

; объявляем адреса расположения пользовательских переменных в ОЗУ

.equ  MyTIrqCntr = $100

.equ  MyADC_resLO = $101

.equ  MyADC_resHI = $102

.equ  MyADC_ReadyFlag = $103

; таблица векторов прерываний:

;#################################################

.org 0  ; - расположить следующие инструкции начиная с этого абсолютного адреса FLASH ПЗУ

 rjmp RESET ;переход на RESET

; reti

; reti

; reti

.org OVF1addr ; == то же, что и .org 8 - Overflow1 Interrupt Vector Address

rjmp    MyIntTimerOVF ;

.org ADCCaddr ;   =$00e - ADC Interrupt Vector Address

rjmp    MyIntADCsampleReady

;

;#################################################

RESET:

;1***** Инициализация указателя стека

;* Инициализация стека по старшему адресу внутренней SRAM 

;* Комментарий для устройст без SRAM

 ldi r16,high(RAMEND)  ;старший байт требуется, так как

 out SPH,r17             

ldi r16,low(RAMEND)  ;RAM больше чем 256 байт

out SPL,r16

;2***** Конфигурации таймера 1 - 100 Гц Режим работы:

; - нормальный способ действия, prescaler Fosc/256

 ldi r16, (0<<ICNC1 | 0<<ICES1 | 0<<WGM13 | 0<<WGM12 | 1<<CS12 | 0<<CS11 | 0<<CS10)  ;== ldi r16, 0x07  ; == 00000100b

 out TCCR1B, r16

 ldi r16, (0<<COM1A1 | 0<<COM1A0 | 0<<COM1B1 | 0<<COM1B0 | 0<<FOC1A | 0<<FOC1B | 0<<WGM11 | 0<<WGM10)  ;== ldi r16, 0x00

 out TCCR1A, r16

 in  r16, TIMSK ; прывание по переполнению

 ori r16,1<<TOIE1 ; == 0000 0100 == 7

;andi r16,~(1<<TOIE1) ; == 1111 1011 == 0xFB

 out TIMSK, r16

;

;#################################################

;3***** Запись таблицы синусов

; ***** EEPROM ***********************

; EEDR - EEPROM Data Register

; EECR - EEPROM Control Register

.equ EERE = 0             ; EEPROM Read Enable

.equ EEWE = 1             ; EEPROM Write Enable

.equ EEMWE= 2      ; EEPROM Master Write Enable

.equ EEWEE= EEMWE ; For compatibility

.equ EERIE = 3             ; EEPROM Ready Interrupt Enable

;****AVR studio: View        New Memory View(Alt+4)         EEPROM записываем туда таблицу ;синусов

Ram:

   in R16, EEDR

sts MyADC_resLO, R16   ; сохраняем результат в ячейки ОЗУ

in R16, EEDR

sts MyADC_resHI, R16

; *****Настраиваем таймер

; ******разрешаем прерывания

loop:

; Define pull-ups and set outputs high

; Define directions for port pins

                  ldi r16, 1<<PB1

                  ldi r17, 1<<DDB1

;init port b

                  out PORTB,r16

                  out DDRB,r17

mainloop:

; Read port pins

                  in r16,PINB

;invert bit 1 state

                 ldi r17, 1<<PB1

                 eor r16,r17

; wr to port

                out PORTB,r16

  

rcall delay1

rcall delay1

 rcall delay1

 rcall delay1

 rcall delay1

rjmp mainloop;

;########################## передача данных из ОЗУ

;по готовности данных происходит подготовка и передача по последовательному порту SPI

delay1:  

;  готов??

lds r16, My ADC _ReadyFlag       ; устанавливается в прерывании и АЦП

 cpi r16, 1                   ; сравнить с числом 1 (== ДА)

 brne delay1                                    ; если пока не готовы.. ждем

lds  temp, Low                                ; загрузить в SPI младший байт ОЗУ

out MyADC_resLO, temp

out SPI, temp                                   ; вывод в порт

delay2:  

;  готов??

ldi r16, My ADC _ReadyFlag       ; устанавливается в прерывании и АЦП

 cpi r16, 1                   ; сравнить с числом 1 (== ДА)

 brne delay2                                    ; если пока не готовы.. ждем

ldi temp, High                                   ; загрузить в SPI старший байт ОЗУ

out MyADC_resHI, temp

out SPI, temp                                     ; вывод в порт

rjmp delay1;

7. Заключение

В ходе данной курсовой работы по проектированию цифрового генератора аналоговых сигналов  были разработаны структурная, электрическая и функциональные схемы устройства. Разработана блок-схема опроса кнопок и работы генератора, а также написана программа

8.Список литературы

1.Д.Гивоне.Р.Россер «Микропроцессоры и микрокомпьютеры»  Москва «Мир» 1983

2.А.В.Евстифеев  «Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel» Москва, «Додэка-     XXI»,2005

3.М.Гук «Энциклопедия «Аппаратные средства IBM PC», С-Пб, «Питер»  2003

4.www.atmel.com

5.www.analog.com

6.www.eltech.ru

7.www.chip-dip.ru

8.www.radiokot.ru

9.www.gaw.com




Изм.

Лист

№ докум.

Подпись

Дата

Лист

1

Содержание

программа

Программа

21

Дата

Подпись

докум.

Лист

Изм.

RET

call  DBNC

call WAITOP

call Scan

dec R17

inc R16

call  PRINT

Jmp Start IO

Да           Start IO: R17=0         Нет

Пуск таймера

Разрешение прерываний

Установка начального режима таймера Т0

Конец

Загрузка начального адреса данных синуса

Преобразование частоты в задержку, коррекция с учётом длины прерывания Т0 и сохранение в регистры

Преобразование амплитуды в байт и сохранение в регистр

Литература

27

Дата

Подпись

докум.

Лист

Изм.

Блок - схемы

20

Дата

Подпись

докум.

Лист

Изм.

Нет          Введено значение           Да

                         0,1..100?

Вызов программы ввода/вывода

Загрузка в регистр количества символов для ввода

Загрузка в регистр начального адреса для записи  кнопок

Перевод строки

Да          Введено значение           нет

                         1..10?

Вызов программы ввода/вывода

Загрузка в регистр количества символов для ввода

Загрузка в регистр начального адреса для записи нажатых кнопок

Инициализация таймера

Запрет всех прерываний

Инициализация порта

Инициализация стека

Инициализация всех устройств

   Начало

Блок -схемы

19

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

17

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

16

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

15

Дата

Подпись

докум.

Лист

Изм.

Разработка микропроцессорного измерителя пульса.

12

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Разработка микропроцессорного измерителя пульса.

7

Лист

Дата

Подпись

№ докум.

Лист

Изм.

азработка микропроцессорного измерителя пульса.

9

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Разработка микропроцессорного измерителя пульса.

11

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Подбор элементов принципиальной схемы

18

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

14

Дата

Подпись

докум.

Лист

Изм.

Разработка микропроцессорного измерителя пульса.

10

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Подбор элементов принципиальной схемы

6

Лист

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

13

Лист

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

8

Лист

Дата

Подпись

докум.

Лист

Изм.

Подбор элементов принципиальной схемы

6

Лист

Дата

Подпись

докум.

Лист

Изм.

Рис.1  Упрощеная структурная схема цифрового генератора аналоговых сигналов

Структурная схема

5

Лист

Дата

Подпись

докум.

Лист

Изм.

ИП

СН

УМ

ЦАП

ПК

УВ

МК

Задание

2

Лист

Дата

Подпись

докум.

Лист

Изм.

Введение

3

Лист

Дата

Подпись

докум.

Лист

Изм.

Структурная схема

4

Лист

Дата

Подпись

докум.

Лист

Изм.

Передача данных на RS-232

25

Дата

Подпись

докум.

Лист

Изм.

Программа

23

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

22

Программа

Изм.

Лист

№ докум.

Подпись

Дата

Лист

24

программа

Заключение

26

Дата

Подпись

докум.

Лист

Изм.

1

В

12В

Батарея

1

R7

МЛТ-0.25-1.4кОм±5%

1

R6

МЛТ-0.25-1кОм±5%

5

R1,2,3,4,5

МЛТ-0.25-10 ОМ±5%

Резисторы

3

С1,С2,С3

КЛС - 12нФ ± 0.1%

Конденсаторы

1

Z

11МГЦ

Кварцевый резонатор

1

D

ATmega8

Микроконтроллер

Кол.

Примечание

Наименование

Поз.

обозн.

Спецификация

Лист

Дата

Подпись

№ докум.

Лист

Изм.




1. Философская концепция Чаадаева
2. то неизвестный и Шаченкова Татьяна тренер НЛП Набор и верстка- Басов Дмитрий Оковитова Маша Чекулаев Иго
3. Вступ Впровадження автоматизації приносить значний економічний ефект за рахунок заощадження енергети
4. Уголовноправовой анализ халатности
5. з курсу Історія сучасного світу для студентів усіх форм навчання спеціальності Соціологія рівня ба.
6. Роль игры в развитии эмоций у детей дошкольного возраста Выполнила- Сту
7. р экон наук проф
8.  RU 2249125 С1 27032005
9. Тема 1 Лексикологія Тести Варіант 5 Які частини мови мають лише граматичне значення службові;
10. Для любого целого а и целого существуют и единственные целые q и r такие что
11. Критический анализ работ Фромма
12. Да у нас с тобой бывало разное.
13. Ответственность по вакцинам и их безопасность
14. по теме Международная торговля Ставки налога на добавленную стоимость косвенный налог фор.html
15. Дистанционное сканирование земной коры
16. Історія української культури Зміст понять культура і цивілізація
17. 30х гг поставил проблему организации рационального управления как в масштабах страны так и в рамках отдельн
18. Тема 1 Предмет метод и основные этапы становления экономической науки Экономика- сущность и значение
19. Контроль качества и стандартизация в флексографской печати
20. Мысль др филос