Устройство управления системой измерения веса
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
на кнопку сброса устройства или при переключении ключа.
Для такой схемы подходит включение транзистора, показанное на рисунке 2.2. Когда ключ открыт, транзистор находится в закрытом состоянии и на вход RESET AVR поступает сигнал логической единицы. Когда ключ замыкается, транзистор открывается и на вход сброса устройства поступает сигнал логического нуля.
Рис. 2.3 Схема формирования импульса сброса
2.4 Схема стабилизатора напряжения
В качестве стабилизатора напряжения в нашем устройстве используется импульсный понижающий стабилизатор LM2574, который обладает следующими характеристиками:
- входное напряжение - до 60 V (для HV версий)
- выходное напряжение - 3.3 V, 5 V, 12 V, 15V
- выходной ток - 0.5 А
Схема включения стабилизатора для преобразования +10 V - +5 V приведена на рисунке 2.4.
Рис. 2.4 - Схема включения стабилизатора напряжения LM2574
2.5 Входные и выходные устройства
Входными устройствами в данном проекте являются весовой индикатор WE2108, который имеет вывод превышения заданного уровня срабатывания и датчики положения заслонки бункера (открыт/закрыт). На выводе превышения заданного уровня срабатывания формируется уровень лог. 0, когда превышен заданный вес, предварительно занесенный в память прибора WE2108.
Весовой индикатор WE2108 является измерительным усилителем для подключения 4х датчиков веса. Сигнал датчиков веса усиливается и преобразуется прибором в цифровую форму и отображается на встроенном дисплее. WE2108 является полностью самостоятельным устройством со встроенным микропроцессором и позволяет выполнять широкий спектр задач связанных с измерением веса. Допустимое напряжение питания для прибора составляет от +10В до +35В постоянного тока.
Выходные устройства сигналы управления задвижками бункера и транспортером выдаваемые через порты микроконтроллера ATmega16. Также предусмотрена индикация количества отгрузок на 4х разрядном 7-ми сегментном индикаторе.
3. Разработка программного обеспечения микроконтроллера
3.1 Разработка алгоритма программы
Программа должна выполнять следующие функции:
- обработка нажатия кнопки Пуск;
- управление заслонками бункера и работой транспортера;
- обработку сигнала превышения заданного веса;
- выдачу количества отгрузок на 4х разрядный 7-ми сегментный индикатор.
Выполнение этих операций происходит по следующему алгоритму:
Рис. 3.1 Алгоритм программы.
3.2 Проектирование функций микроконтроллера
Процедура инициализации микроконтроллера должна состоять из процедур или операторов инициализации всех узлов самого микроконтроллера и всех периферийных устройств, и установить все начальные значения для их регистров..
Порт А работает на вывод данных, а порт С работает на прием сигналов. Поэтому при их настройке необходимо в соответствующие биты регистров DDRx, которые управляют направлением передачи данных, записать значение 0 или 1, тем самым, настроив их выводы на прием или передачу данных.
3.2.1 Инициализация таймера/счетчика0
8-разрядный таймер/счетчик может получать импульсы тактовой частоты СК с предварительного делителя (СК/8, СК/64, СК/8256, СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR0. Флаг переполнения таймера находится в регистре TIFR. Разрешение и запрещение прерываний от таймера управляется регистром TIMSK.
SREG регистр состояния
76543210ITHSVNZCR/WR/WR/WR/WR/WR/WR/WR/WРис 3.2 - регистр состояния SREG
I общее разрешение прерываний, 1 разрешено.
Т хранение копируемого бита.
Н флаг половинного переноса.
S бит знака.
V флаг переполнения дополнения до двух.
N флаг отрицательного результата.
Z флаг нулевого результата.
C флаг переноса.
TCCR0 - данный регистр служит для управления частотой и источником тактовых импульсов таймера (см. таблицу)
76543210-----CS02CS01CS00RRRRRR/WR/WR/WРис. 3.3 Регистр управления таймером/счетчиком0 TCCR0
Биты 7…3 зарезервированы и всегда читаются как 0.
Биты 2, 1, 0 выбор коэффициента деления предварительного делителя.
CS02CS01CS00Значение000Стоп001СК010СК/8011СК/64100СК/256101СК/1024110Вн. Сигнал Т0, нар. фронт111Вн. Сигнал Т0, спад. фронтРис. 3.4Выбор коэффициента деления предварительного делителя.
TCNT0 данный регистр служит для загрузки и считывания показаний счетчика/таймера0.
76543210MSBLSBR/WR/WR/WR/WR/WR/WR/WR/WРис. 3.5 регистр текущего значения счетчика TCNT0
TIMSK данный регистр служит для установки и сброса флагов разрешения работы прерываний таймеров.
76543210OCIE2TOIE2TICIE1OCIE1AOCIE1BTOIE1OCIE0TOIE0R/WR/WR/WR/WR/WR/WR/WR/WРис. 3.6 регистр масок прерываний таймеров
TOIE1 разрешение прерывания по переполнению таймера/счетчика 0
OCIE1A - разрешение прерывания по совпадению таймера/счетчика 1
TIFR - данный регистр содержит флаги прерываний таймеров
76543210OCF2TOV2ICF1OCF1AOCF1BTOV1OCF0TOV0R/WR/WR/WR/WR/WR/WR/WR/WРис. 3.7 регистр флагов прерываний таймеров.
TOV1 флаг переполнения таймера/счетчика 0. 1 произошло переполнение
OCF1A флаг выхода совпадения 1А. 1 произошло совпадение значения таймера/счетчика 1 и данных в регистре OCR1A.
3.2.2 Инициализация таймера/счетчика1
16-разрядный таймер/счетчик может получать импульсы тактовой частоты СК с предварительного делителя (СК/8, СК/64, СК/8256, СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регист