
- •Тестер уровня заряда аккумуляторов
- •С одержание
- •Введение
- •1 Описание используемого микроконтроллера
- •1.1 Микроконтроллеры семейства tinyAvr
- •МикроконтроллерATtiny13
- •2 Описание устройства
- •3 Структурная схема устройства
- •4 Электрическая принципиальная схема
- •5 Схема алгоритма программы
- •6 Описание программы для микроконтроллера
- •7 Испытание разработанного устройства
- •Заключение
- •Список использованных источников
- •Приложение a Листинг программы
- •Приложение а
- •Ведомость документов
6 Описание программы для микроконтроллера
Для написания программы микроконтроллера для разрабатываемого устройства был выбран язык высокого уровня Basic.
Написание программы, ее отладка и компиляция осуществляется с помощью интегрированной среды Bascome-AVR.
Bascom-AVR –это интегрированная среда разработки программ для микроконтроллеров семейства Atmel AVR на языке высокого уровня (Basic).
Основой программы является бесконечный цикл, в котором сверяются целые значения, преобразованные с аналогового сигнала напряжения со значениями, необходимыми для включения подсветки определённых светодиодов. Листинг кода программы представлен в приложении А.
7 Испытание разработанного устройства
Для испытания разработанного устройства в среде автоматизированного проектирования Proteus была собрана схема.
В качестве источника напряжения аккумулятор – B1. Напряжение регулируется с помощью потенциометра RV1.
На рисунках 8 и 9 изображена демонстрация работы программы.
Рисунок 8 –Демонстрация работы программы
Рисунок 9 –Демонстрация работы программы
Заключение
В ходе проделанной работы была достигнута цель курсового проектирования – разработать устройство на базе микроконтроллера, тестирующий уровень заряда аккумуляторов.
Для реализации проекта были разработаны структурная схема устройства, схема электрическая принципиальная и алгоритм работы программы.
Файл прошивки для программирования микроконтроллера был создан в интегрированной среде разработки Bascome-AVR.
Проверка работоспособности программы и разработанного устройства в целом производилась с помощью системы автоматизированного проектирования Proteus от компании LabcenterElectronics, позволяющая моделировать работу электронных схем.
Разработанное устройство может применяться как в составе различных устройств, так и самостоятельно.
Список использованных источников
[1]Wikipedia[Электронный ресурс]. –Режим доступа: https://ru.wikipedia.org
[2]Техническое описание микроконтроллера ATtiny13, AtmelCorporation 2004. [Электронный ресурс] –Режим доступа:http://www.microchip.com/.
[3]Схемы радиолюбителей [Электронный ресурс]. – Режим доступа: http://sxem.org/.
[4]AtmelStudio[Электронныйресурс] –Режим доступа:http://www.atmel.com/
[5] «Цифровые и микропроцессорные устройства. Микроконтроллеры AVR. Лабораторный практикум», Петров С.Н., 2016 г.
[6]Белов, А.В. Разработка устройств на микроконтроллерах AVR / А.В. Белов. – М. : Наука и техника, 2012. – 528 с.
[7]Хартов, В.Я. Микроконтроллеры AVR. Практикум для начинающих [Текст] / В.Я. Хартов. – М. : Изд-во МГТУ им. Н.Э. Баумана, 2012. – 240 с.
Приложение a Листинг программы
$regfile = "attiny13.dat"
'Исспользуем Мк Attiny13
$crystal = 100000
'Сообщает компилятору на какой частоте будет работать микроконтроллер
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Конфигурирум АЦП (АDC - режим считывания,Prescaler выбираем частоту дискретизации, в данном случае компилятор сам выбирает подходящую работу АЦП Reference - выбираем источник опорного напряжения, в данном случае напряжение питания схемы )
Config Portb.0 = Output
'Конфигурируем Порт B0 На Выход - Полключаем Красный Светодиод
Config Portb.1 = Output
'Конфигурируем Порт B1 На Выход - Подкючаем Жёлтый Светодиод
Config Portb.2 = Output
'Конфигурируем Порт B2 На Выход - Подключаем Зелёный Светодиод
Start Adc
'запускаем пребразователь, этой командой на преобразователь поступает питание
Do
'бесконечный цикл
If Getadc(2) >= 805 Then
'командой Getadc(2) считываем второй канал АЦП и записываем в переменную
Portb.0 = 1
Else
Portb.0 = 0
End If
If Getadc(2) >= 845 Then
Portb.1 = 1
Else
Portb.1 = 0
End If
If Getadc(2) >= 890 Then
Portb.2 = 1
Else
Portb.2 = 0
End If
If Getadc(2) <= 805 Then
Toggle Portb.0
‘Изменяет состояние Portb.0
Waitms 100
‘Задержка 100 миллисекунд
Reset Portb.0
‘СбрасываетPortb.0
Waitms 500
End If
Loop
Return
End