Микропроцессорный термометр с подключением к ПК

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Проектирование приборов и систем
  • 28 28 страниц
  • 7 + 7 источников
  • Добавлена 28.12.2019
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
СОДЕРЖАНИЕ

ВВЕДЕНИЕ 4
ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ 5
1 ОПИСАНИЕ РАБОТЫ УСТРОЙСТВА ПО ФУНКЦИОНАЛЬНОЙ СХЕМЕ 7
2 РАЗРАБОТКА АЛГОРИТМА ВЫЧИСЛЕНИЙ 9
2.1 Вывод расчетной формулы 9
2.2 Определение разрядности переменных 11
3 РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ 14
3.1 Схема питания 14
3.2 Преобразователь уровней 15
3.3 Схема включения микроконтроллера 16
3.4 Преобразователь интерфейсов 17
4 НАПИСАНИЕ ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕР 18
ЗАКЛЮЧЕНИЕ 21
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 22
ПРИЛОЖЕНИЕ А ЛИСТИНГ ПРОГРАММЫ 23

Фрагмент для ознакомления

Измерение завершено, переходим к обработке результатов. Обнуляем регистр-флаг r24.Выполняем первую расчетную операцию: загружаем из переменных NH:NL результаты измерения N. Младший байт числа N в r16, старший в r17.Вторая операция: вычитание N1=N-a0/2. Младшие байты вычитаем командой subi (без учета займа), старшие – командой sbci – с учетом состояния флага займа от предыдущей операции.Третья операция: деление N2=N1/a1. Вызовом подпрограммы div16_8 выполняем деление двухбайтового числа N2, расположенного в регистрах r17:r16 на однобайтовое a0 в регистре r20. Результат выполнения операции – частное остается в паре r17:r16. Передаем рассчитанное значение температуры двумя байтами (младший, старший) в формате дробного числа с фиксированной запятой в ПК. Возвращаемсяк началу бесконечного циклаДалее переходим к описанию обработчика прерывания по совпадению таймера Т0. При входе в подпрограмму запрещаем прерывания, сохраняем в стеке содержимое регистров, которые модифицируется при работе подпрограммы: r16 и регистр состояния SREG [6].Измерительный период0,5с формируется 20 циклами переполнения таймера Т0. Счетчик циклов переполнения Т0 организован в регистре r23. Первые девятнадцать пропускаем – переходим к стадии завершения работы обработчика прерываний.Двадцатый цикл – рабочий. Обнуляем регистр счетчика циклов.Считываем результат замера из Т/С1. Для этого переносим содержимое регистровой пары счетчика Т/С1 TCNT1H: TCNT1L в переменные NH:NL.Обнуляем счетчик T/C1 – регистровую пару TCNT1H: TCNT1L.Передаем основной программе информацию о том, что измерение произведено, в ячейках памяти данных NH:NL находится результат. Для этого в регистр-флаг r24 записываем единицу.Завершающая стадия работы обработчика прерываний. Восстанавливаем из стека сохраненные при входе в подпрограмму обработчикарегистры SREG и r16, разрешаем прерывания, выходим из подпрограммы обработчика.Подпрограмма деления двухбайтного числа на однобайтноеdiv16_8 предоставленаисточником [7]. Используемые подпрограммой div16_8 ресурсы:1) r17:r16 - делимое при входе и частное на выходе;2) r20 – делитель;3) r18 - целочисленный остаток;4) r21,r22 - вспомогательные регистры.ЗАКЛЮЧЕНИЕВ рамках курсового проекта выполнена разработка микропроцессорного термометра с передачей измерительной информации в персональный компьютер (ПК) по последовательному каналу связи RS-232.В качестве первичного преобразователя использован датчик температуры (ДТ) с частотным выходным сигналом. Схема триггера Шмитта, реализованная на базе компаратора, выполняет согласование уровней выходного сигнала датчика с входными КМОП логическими уровнями микроконтроллера (МК). МК производит расчет значения температуры и последовательно, в двоичном коде, через интерфейс RS-232 передает полученную информацию в ПК.В процессе работы над проектом решены следующие задачи:1) Выполнено описание работы устройства по его функциональной схеме.2) Составлен алгоритм вычислений.3) Разработана принципиальная электрическая схема устройства.4) Написана управляющая программа встроенного контроллера измерительного устройства на языке Ассемблер.Цель курсового проекта – закрепление, расширение и углубление полученных навыков и знаний в области проектирования измерительной техники на базе микроконтроллера достигнута.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВL78L33 Техническая документация[интернет ресурс] http://pdf1.alldatasheet.com/datasheet-pdf/view/22618/STMICROELECTRONICS/L78L33AB.html (дата обращения 30.10.19).MAX986ESA Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/73918/MAXIM/MAX986ESA.html - (дата обращения 30.10.19).ATmega8515L-8PIТехническая документация[интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/80276/ATMEL/ATMEGA8515.html (дата обращения 30.10.19).ADM8324WCA29ARТехническая документация[интернет ресурс]https://pdf1.alldatasheet.com/datasheet-pdf/view/572721/AD/ADM8324.html(дата обращения 30.10.19).ADM3232ARU Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/166285/AD/ADM3232E.html(дата обращения 30.10.19).Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. — М.: Издательский дом «Додэка-ХХ1», 2007. — 592 с: ил. (Серия «Программируемыесистемы»).Техническая документация[интернет ресурс] http://cxem.net/mc/book30.php (дата обращения 30.10.19).ПРИЛОЖЕНИЕАЛИСТИНГ ПРОГРАММЫ.include "m8515def.inc" ; Загрузить файл с именами; регистров ввода-вывода для МК ATmega8515.EQUNL = 0x200.EQUNH = 0x201.cseg.org $0rjmpreset ;векторсброса.org $0ErjmpT0_comp ;вектор прерывания при совпадении Т0reset:;Инициализациястекаldir16,HIGH(RAMEND)outsph,r16ldir16,LOW(RAMEND)outspl,r16;Инициализация порта D (PD1 на вывод, остальные на ввод)ldir16,0x02outDDRD,r16;Инициализация таймера 0;обнуляем счетный регистр T0clrr16outTCNT0,r16; записываем в регистр сравнения OCR0 число 195ldi r16,195outOCR0,r16;запуск таймера Т0 с предделителем CLK/1024;режим CTC (сброс при совпадении)ldir16,0x0DoutTCCR0,r16;Инициализация таймера/счетчика 1clrr16outTCCR1A,r16ldir16,0x08outTCCR1B,r16;Инициализация UART, асинхронный;2400бод, 8 Data, 1 Stop, No Parityclrr16outUCSRA,r16outUBRRH,r16ldir16,0x08outUCSRB,r16ldir16,0x86out UCSRC,r16ldir16,0x33outUBRRL,r16;Маскирование прерывания по совпадению Т0ldir16,0x01outTIMSK,r16clrr23; обнулить счетчик цикловclrr24; Обнулить признак наличия рез.измеренияsei;разрешение прерываний;Начало бесконечного циклаmain:;цикл ожидания результатов измеренияcpir24,1 ; проверяем, прерывание обработано?brnemain ; нет, вернуться;даclrr24; обнуляем регистр-флаг;Первая операция: загрузка результатов измерения Nldsr16,NLldsr17,NH;Вторая операция: вычитание N1=N-a0/2subir16,LOW(14000/2) ; a0/2 млsbcir17,HIGH(14000/2) ; a0/2 ст;Третья операция: деление N2=N1/a1ldir20,325/2 ;a1rcalldiv16_8 ;обращение к подпрограмме деления;Передача результата в ПКlab02: sbisUCSRA,UDRE; ожидание готовности UART на передачуrjmplab02outUDR, r16; передача мл.байтаlab03: sbisUCSRA,UDRE; ожидание готовности UART на передачуrjmplab03outUDR, r17; передача ст. байта;Переход на начало бесконечного циклаrjmpmain;Обработчик прерывания по совпадению Т0T0_comp:cli;запрет прерыванийpushr16; сохранение r16inr16,SREG;сохранение регистра SREGpushr16;Проверка закончен ли измерительный интервал 0,5с?incr23;инкремент счетчика циклов r23;цикл крайний?cpir23,20brnelab01 ; нет;да, измерительный цикл 0,5с завершенclrr23 ; обнулить счетчик циклов;считать результат замера из Т/С1;запись содержимого TCNT1L в ячейку памятиin r16, TCNT1Lsts NL,r16;запись содержимого TCNT1H в ячейку памятиin r16, TCNT1Hsts NH,r16;очистка содержимого счетного регистра T/C1clr r16out TCNT1H,r16out TCNT1L,r16;установка признака наличия результата измеренияldi r24,1 ; запись 1 в регистр-флаг ;восстановление регистров, завершение обр. прерыванияlab01:popr16outSREG,r16;восстановление регистра SREGpopr16;восстановление r16sei;разрешение прерыванийreti;Подпрограмма деления;[r17:r16]+{r18}=r17:r16/r20;r17:r16 - делимое при входе и частное на выходе;r20 - делитель;r18 - целочисленный остаток;r21,r22 - вспомогательные регистрыdiv16_8:clrr18clrr19clrr21ldir22,16dv1:lslr16rolr17rolr18rolr19subr18,r20sbcr19,r21orir16,0x01brccdv2addr18,r20adcr19,r21andir16,0xFEdv2:decr22brnedv1clcret

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1 L78L33 Техническая документация [интернет ресурс] http://pdf1.alldatasheet.com/datasheet-pdf/view/22618/STMICROELECTRONICS/L78L33AB.html (дата обращения 30.10.19).
2 MAX986ESA Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/73918/MAXIM/MAX986ESA.html - (дата обращения 30.10.19).
3 ATmega8515L-8PI Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/80276/ATMEL/ATMEGA8515.html (дата обращения 30.10.19).
4 ADM8324WCA29AR Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/572721/AD/ADM8324.html (дата обращения 30.10.19).
5 ADM3232ARU Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/166285/AD/ADM3232E.html (дата обращения 30.10.19).
6 Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. — М.: Издательский дом «Додэка-ХХ1», 2007. — 592 с: ил. (Серия «Программируемые системы»).
7 Техническая документация[интернет ресурс] http://cxem.net/mc/book30.php (дата обращения 30.10.19).