Программирование контроллера для управления часами на яозыке ассемблера
Заказать уникальную курсовую работу- 28 28 страниц
- 6 + 6 источников
- Добавлена 04.01.2024
- Содержание
- Часть работы
- Список литературы
1 Постановка задачи 4
1.1 Цель и задачи работы 4
1.2 Техническое задание 4
2 Описание используемых аппаратных средств 7
3 Разработка приложения по управлению часами с будильником 11
3.1 Общие сведения о программе 11
3.2 Алгоритм решения поставленной задачи 12
3.3 Структура программного обеспечения 14
3.4 Структура данных 16
4 Методика и результаты тестирования 18
ЗАКЛЮЧЕНИЕ 22
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23
ПРИЛОЖЕНИЕ А 24
Рисунок 8 – Окно Control Panel при срабатывании будильника (горит светодиод)На рисунке 9 показано окно регистров в процессе выполнения программы.Рисунок 9 – Окно Registers в процессе выполнения программыРазработанная программа полностью удовлетворяет аппаратным и программным требованиям для контроллера ATmega8.ЗАКЛЮЧЕНИЕВ результате проделанной работы: изучены особенности программирования на языке ассемблера для микроконтроллера ATmega8;разработан алгоритм для управления временем и будильником;написана и отлажена программа по управлению часами с будильником для микроконтроллера ATmega8;проведено тестирование разработанного программного обеспечения.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВЛарина Е.А., Леонидов В.В., Москалев Н.С. Методика проектирования цифровых систем управления на базе AVR-микроконтроллеров // МНИЖ. 2016. №6-2 (48).URL: http://cyberleninka.ru/article/n/metodika-proektirovaniya-tsifrovyh-sistem-upravleniya-na-baze-avr-mikrokontrollerov (дата обращения: 05.12.2023).Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы, 2-е издание. – М.: Издательство ДодэкаXXI. 2006.DataSheet ATmega8 /ATmega8L [electron sourse] / Atmel Corporation / -electron text data - USA, San Jose, 2006.URL: http://www.atmel.com/images/atmel-2486-8-bit-avr -microcontroller-atmega8_l_datasheet.pdf(датаобращения: 01.12.2023).Temirbekova Z. E. PROGRAMMING MICROCONTROLLER AVR ATMEGA8 //Инновационные технологии на транспорте: образование, наука, практика. – 2017. – С. 102-104.Подвишенский А. Д. Разработка программируемых часов-будильника на основе микроконтроллера ATMega8-16AU. – 2012.Панов С. А. Разработка микропроцессорной системы на основе микроконтроллера atmega8 //Научно-практические проблемы и направления их решения в области высоких технологий. – 2017. – С. 99-102.Мыльников В. А. Разработка цифровых часов на микроконтроллере //Старт в науку: актуальные вопросы техники и технологий. – 2018. – С. 66-70.Методические указания по изучению программного пакета “VisualMicroLab” для выполнения лабораторных работ по курсу «Цифровые устройства»для студентов направления: 6.050901 «Радиотехника»/Учред.: В.Л. Басецкий – Харь-ков: ХНУРЭ, 2010 – 37 с.ПРИЛОЖЕНИЕ АИсходный кодЛистинг А.1 – Определение переменных.deftemp = r16.def razr1 = r17.def razr2 = r18.def razr3 = r19.defsys = r20.deftry = r21.equhours = 12.equminutes = 0.equ ch0 = 0b11000000.equ ch1 = 0b11111001.equ ch2 = 0b10100100.equ ch3 = 0b10110000.equ ch4 = 0b10011001.equ ch5 = 0b10010010.equ ch6 = 0b10000010.equ ch7 = 0b11111000.equ ch8 = 0b10000000.equ ch9 = 0b10010000.dsegVisible:.byte 8.cseg.org 0rjmpReset.org $009 rjmp TIM0_OVF ; Timer0 OverflowHandlerЛистинг А.2 – Начало программы с метки ResetReset: ; записываем цифры в оперативную памятьlditemp, ch1stsVisible, templditemp, ch2sts Visible+1, templditemp, ch0sts Visible+2, templditemp, ch0sts Visible+3, templditemp, ch0sts Visible+4, templditemp, ch6sts Visible+5, templditemp, ch0sts Visible+6, templditemp, ch0sts Visible+7, temp ; Инициализация оперативной памяти для отображения нужных цифр изображения. ; инициализация стекаlditemp, high(RAMEND)outsph, templditemp, low(RAMEND)outspl, temp ; Инициализация стека для корректной работы программы. Указание верхнего и нижнего адреса стека. ; порты D и B на выходlditemp, 0xFFout DDRD, tempout DDRB, temp ; Настройка портов D и B на выход, используемых для управления периферийными устройствами. ; порт PС0 - на выход (светодиод), порты PC1-PC5 будут на входlditemp, 0b00000001out DDRC, templditemp, 0b00000010out PORTC, temp ; Настройка порта PC0 на выход (светодиод), а портов PC1-PC5 на вход для взаимодействия с другими устройствами.lditemp, FreqTWBR ; Записываем частоту TWI, за это отвечает регистр TWBRout TWBR, temp ; Задание частоты TWI. ; настройка таймераlditemp, 0b00000010out TCCR0, temp ; Настройка таймера для использования его в программе.lditemp, 0b00000001out TIFR, tempout TIMSK, temp ; Настройка регистров управления таймером для обеспечения работы программы с таймером.lditemp, 0xFEout TCNT0, temp ; Установка начального значения для таймера. ; начальное значене - ножка PD7ldisys, 0b10000000 ; Проверяем тикают ли часыrcallTWI_Start Стартуем ; Начальная установка для проверки тикают ли часы.sei ; разрешаем прерывания ; Разрешение прерываний для корректной работы программы.Листинг А.3 – основной цикл программыLoop:sbic PINC, 0b00000010; Проверяем, установлено ли состояние кнопки 1rjmpbutton_pressed Proga0:rcallProga_Otobr_TimercallCompare_timedalee:rcallDelayrjmpLoopЛистинг А.4 –Сравнение времени часов и будильникаCompare_time:lditemp, Visiblecpitemp, Visible+4brnedaleelditemp, Visible+1cpitemp, Visible+5brnedaleelditemp, Visible+2cpitemp, Visible+6brnedaleelditemp, Visible+3cpitemp, Visible+7brnedaleelditemp, 0b00000001out PORTC, temp ; Включаем светодиодrcall Delay_10seclditemp, 0b00000000out PORTC, temp ; Выключаем светодиодrcallDelay_minuteЛистинг А.5 – Реализация динамической индикацииTIM0_OVF: ; прерывание будет ~500 раз в секундуclilsrsyscpisys, 0b00000000 ; проверяем дошли ли мы до 8 сегментаbreqMaryout PORTD, sysldtemp, X+ldtemp, Xout PORTB, tempVix:lditemp, 0x00out TCNT0, tempseiretiMary: ; возвращаемся на ножку PD7ldisys, 0b10000000out PORTD, sys ; регистры косвенной адресацииldi XH, high(Visible)ldi XL, low(Visible)ldtemp, Xout PORTB, temprjmpVixЛистинг А.6 – Другие функции программыDelay:ldi razr1, 255ldi razr2, 255ldi razr3, 10PDelay:dec razr1brnePDelaydec razr2brnePDelaydec razr3brnePDelayretDelay_10sec:rcallDelayrcallDelayrcallDelayrcallDelayrcallDelayrcallDelayrcallDelayrcallDelayrcallDelayrcallDelayretDelay_minute:rcall Delay_10secrcall Delay_10secrcall Delay_10secrcall Delay_10secrcall Delay_10secrcall Delay_10secret
URL: http://cyberleninka.ru/article/n/metodika-proektirovaniya-tsifrovyh-sistem-upravleniya-na-baze-avr-mikrokontrollerov (дата обращения: 05.12.2023).
2.Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы, 2-е издание. – М.: Издательство Додэка XXI. 2006.
3.DataSheet ATmega8 / ATmega8L [electron sourse] / Atmel Corporation / -electron text data - USA, San Jose, 2006.
URL: http://www.atmel.com/images/atmel-2486-8-bit-avr -microcontroller-atmega8_l_datasheet.pdf (дата обращения: 01.12.2023).
4.Temirbekova Z. E. PROGRAMMING MICROCONTROLLER AVR ATMEGA8 //Инновационные технологии на транспорте: образование, наука, практика. – 2017. – С. 102-104.
5.Подвишенский А. Д. Разработка программируемых часов-будильника на основе микроконтроллера ATMega8-16AU. – 2012.
6.Панов С. А. Разработка микропроцессорной системы на основе микроконтроллера atmega8 //Научно-практические проблемы и направления их решения в области высоких технологий. – 2017. – С. 99-102.
7.Мыльников В. А. Разработка цифровых часов на микроконтроллере //Старт в науку: актуальные вопросы техники и технологий. – 2018. – С. 66-70.
Методические указания по изучению программного пакета “Visual Micro Lab” для выполнения лабораторных работ по курсу «Цифровые устройства» для студентов направления: 6.050901 «Радиотехника» /Учред.: В.Л. Басецкий – Харь-ков: ХНУРЭ, 2010 – 37 с.