Микропроцессорный термометр с подключением к ПК
Заказать уникальную курсовую работу- 24 24 страницы
- 6 + 6 источников
- Добавлена 13.01.2020
- Содержание
- Часть работы
- Список литературы
ВВЕДЕНИЕ 4
ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ 5
1 ОПИСАНИЕ РАБОТЫ УСТРОЙСТВА ПО ФУНКЦИОНАЛЬНОЙ СХЕМЕ 7
2 РАЗРАБОТКА АЛГОРИТМА ВЫЧИСЛЕНИЙ 9
3 РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ 14
3.1 Схема питания 14
3.2Преобразователь уровней 15
3.3Схема включения микроконтроллера 15
3.4Преобразователь интерфейсов 17
4 НАПИСАНИЕ ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕР 18
ЗАКЛЮЧЕНИЕ 22
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23
ПРИЛОЖЕНИЕ А ТЕКСТ ПРОГРАММЫ 24
Ждем окончания процесса измерения. Для этого циклически проверяем содержимое регистра zamer. Единица в zamerбудет означать, что процесс измерения завершен, есть результат.Измерение завершено, переходим к обработке результатов. Обнуляем регистр-флаг zamer.Загружаемиз ячеек памяти NL:NH результаты измерения N. Выполняем первую расчетную операцию – умножение и вторую расчетную операцию – сложение.Передаемрассчитанное значение температуры двумя байтами (младший, старший) в формате вещественного числас фиксированной запятой в дополнительном коде в ПК. Возвращаемсяк началу бесконечного циклаОбработчик прерывания по совпадению таймераТ0. При входе в подпрограмму запрещаем все прерывания, сохраняем в стеке содержимое регистров, которые модифицируется при работе подпрограммы: tempи регистр состояния SREG [7].При подсчете временных интервалов измерительный период 1 секунда формируется 20 циклами переполнения таймера Т0. Счетчик циклов переполнения Т0 организован в регистре cycle_counter. Первые девятнадцать пропускаем – переходим к стадии завершения работы подпрограммы обработчика прерываний.Двадцатый цикл – рабочий. Обнуляем регистр счетчика циклов.Считываем результат замера из Т/С1. Для этого переносим содержимое регистровой пары счетчикаТ/С1TCNT1H: TCNT1L в ячейки памяти данных NL:NH.Обнуляем счетчик T/C1 – регистровую пару TCNT1H: TCNT1L.Передаем основной программе информацию о том, что измерение произведено, в ячейках памяти данных NL:NHнаходится результат. Для этого в регистр-флаг zamerзаписываем единицу.Завершающая стадия работы обработчика прерываний. Восстанавливаем из стека сохраненные при входе в подпрограмму обработчика регистры SREGи temp, разрешаем прерывания, выходим из подпрограммы обработчика.ЗАКЛЮЧЕНИЕВ рамках курсового проекта выполнена разработка микропроцессорного термометра с передачей измерительной информации в персональный компьютер (ПК) по последовательному каналу связи RS-232.В качестве первичного преобразователя использован датчик температуры (ДТ) с частотным выходным сигналом. Схема триггера Шмитта, реализованная на базе компаратора, выполняет согласование уровней выходного сигнала датчика с входными КМОП логическими уровнями микроконтроллера (МК). МК производит расчет значения температуры и последовательно, в двоичном коде, через интерфейс RS-232 передает полученную информацию в ПК.В процессе работы над проектом решены следующие задачи:1)выполнено описание работы устройства по его функциональной схеме;2) составлен алгоритм вычислений;3) разработана принципиальная электрическая схема устройства;4) написана управляющая программа встроенного контроллера измерительного устройства на языке Ассемблер.Цель курсового проекта – закрепление, расширение и углубление полученных навыков и знаний в области проектирования измерительной техники на базе микроконтроллера достигнута.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВL78L33 Техническая документация[интернет ресурс] http://pdf1.alldatasheet.com/datasheet-pdf/view/22618/STMICROELECTRONICS/L78L33AB.html (дата обращения 17.11.19).LM2901D Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/3073/MOTOROLA/LM2901D.html - (дата обращения 17.11.19).ATmega8535L-8PIТехническая документация[интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/175182/ATMEL/ATMEGA8535L-8PI.html (дата обращения 17.11.19).MXD1816_XR29Техническая документация[интернет ресурс]https://pdf1.alldatasheet.com/datasheet-pdf/view/90221/MAXIM/MXD1816XR.html(дата обращения 17.11.19).MAX563CPN Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/73559/MAXIM/MAX563CPN.html(дата обращения 17.11.19).Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. — М.: Издательский дом «Додэка-ХХ1», 2007. — 592 с: ил. (Серия «Программируемые системы»).ПРИЛОЖЕНИЕ А ТЕКСТ ПРОГРАММЫ.include "m8535def.inc"; Загрузить файл с именами; регистров ввода-вывода для МК ATmega8535.EQUNL = 0x100.EQUNH = 0x101.DEFtemp = r16.DEFcycle_counter = r17.DEFzamer = r18.cseg.org $0rjmpreset ;векторсброса.org $0ErjmpT0_comp;вектор прерывания при совпадении Т0reset:;Инициализациястекаlditemp,HIGH(RAMEND)outsph,templditemp,LOW(RAMEND)outspl,temp;Инициализация порта D (PD1 на вывод, остальные на ввод)lditemp,0x02outDDRD,temp;Инициализация таймера 0;обнуляем счетный регистр T0clrtempoutTCNT0,temp; записываем в регистр сравнения OCR0 число 195lditemp,195outOCR0,temp;запуск таймера Т0 с предделителем CLK/1024;режим CTC (сброс при совпадении)lditemp,0x0DoutTCCR0,temp;Инициализация таймера/счетчика 1clrtempoutTCNT1H,tempoutTCNT1L,tempoutTCCR1A,templditemp,0x08outTCCR1B,temp;Инициализация UART, асинхронный;2400бод, 8 Data, 1 Stop, No ParityclrtempoutUCSRA,tempoutUBRRH,templditemp,0x08outUCSRB,templditemp,0x86outUCSRC,templditemp,0x33outUBRRL,temp;Маскирование прерывания по переполнению Т0lditemp,0x01outTIMSK,tempclrcycle_counter; обнулитьсчетчикцикловclrzamer; Обнулить признак наличия рез.измеренияsei;разрешение прерываний;Начало бесконечного циклаmain:;цикл ожидания результатов измеренияcpizamer,1 ; проверяем, прерывание обработано?brnemain; нет, вернуться;даclrzamer; обнуляем регистр-флаг;Первая операция: умножение N1=К'* N;[r0:r1]*[r20:r21:r22:r23:r24:r25]=[r10:r11:r12:r13:r14:r15];Загрузка результатов измерения Nldsr0,NH ; стldsr1,NL ; мл;Загрузка K'clrr20clrr21ldir22,0x06 ;стldir23,0x06ldir24,0x0Fldir25,0xE4 ;мл;Начальное значение результата clrr10clrr11clrr12clr r13clrr14clrr15;Установить счетчик сдвиговlditemp,16OBRAT:lsrr0rorr1 ;показать значение младшего разряда множителя в СbrccNO_SUMMIR ; если С=0, пропустить суммирование; С=1 суммировать значение множимого с частичным результатомSUMMIR:addr15,r25adcr14,r24adc r13,r23adcr12,r22adcr11,r21adc r10,r20NO_SUMMIR:lslr25rol r24rolr23rolr22rolr21rolr20dectempbrneOBRAT; результат: N1=[r10:r11:r12:r13:r14:r15];Вторая операция: сложение N2=N1+B';[r20:r21:r22:r23:r24:r25]=[r20:r21:r22:r23:r24:r25]+[r10:r11:r12:r13:r14:r15];Загрузка В'ldir25,0xFDldir24,0x78ldir23,0xF0ldir22,0xF0ldir21,0XF0ldir20,0XF1;Сложениеaddr20,r10addr21,r11addr22,r12addr23,r13addr24,r14addr25,r15; ПередачарезультатавПКlab02: sbisUCSRA,UDRE; ожиданиеготовностиUARTнапередачуrjmplab02outUDR, r21; передачаст. байтаlab03: sbisUCSRA,UDRE; ожидание готовности UART на передачуrjmplab03outUDR, r22; передача мл. байта;Переход на начало бесконечного циклаrjmpmain;Обработчик прерывания по совпадению Т0T0_comp:cli;запрет прерыванийpushtemp; сохранение tempintemp,SREG;сохранение регистра SREGpushtemp;Проверка закончен ли измерительный интервал 1сек?inccycle_counter;инкрементсчетчикацикловcycle_counter;циклкрайний?cpicycle_counter,25brnelab01; нет;да, измерительный цикл 1сек завершенclrcycle_counter; обнулить счетчик циклов;считать результат замера из Т/С1;запись содержимого TCNT1L в ячейку памятиintemp, TCNT1LstsNL,temp;запись содержимого TCNT1H в ячейку памятиintemp, TCNT1HstsNH,temp;очисткасодержимогосчетногорегистра T/C1clrtempoutTCNT1H,tempoutTCNT1L,temp;установкапризнаканаличиярезультата измеренияldizamer,1 ; запись 1 в регистр-флаг ;восстановление регистров,завершениеобработки прерыванияlab01:poptempoutSREG,temp;восстановление регистра SREGpoptemp;восстановление tempsei;разрешение прерыванийreti
1. L78L33 Техническая документация [интернет ресурс] http://pdf1.alldatasheet.com/datasheet-pdf/view/22618/STMICROELECTRONICS/L78L33AB.html (дата обращения 17.11.19).
2. LM2901D Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/3073/MOTOROLA/LM2901D.html - (дата обращения 17.11.19).
3. ATmega8535L-8PI Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/175182/ATMEL/ATMEGA8535L-8PI.html (дата обращения 17.11.19).
4. MXD1816_XR29 Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/90221/MAXIM/MXD1816XR.html (дата обращения 17.11.19).
5. MAX563CPN Техническая документация [интернет ресурс] https://pdf1.alldatasheet.com/datasheet-pdf/view/73559/MAXIM/MAX563CPN.html (дата обращения 17.11.19).
6. Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. — М.: Издательский дом «Додэка-ХХ1», 2007. — 592 с: ил. (Серия «Программируемые системы»).
ПРИЛОЖЕНИЕ А ТЕКСТ ПРОГРАММЫ