Устройство управления системой измерения веса

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

на кнопку сброса устройства или при переключении ключа.

Для такой схемы подходит включение транзистора, показанное на рисунке 2.2. Когда ключ открыт, транзистор находится в закрытом состоянии и на вход RESET AVR поступает сигнал логической единицы. Когда ключ замыкается, транзистор открывается и на вход сброса устройства поступает сигнал логического нуля.

 

Рис. 2.3 Схема формирования импульса сброса

 

2.4 Схема стабилизатора напряжения

 

В качестве стабилизатора напряжения в нашем устройстве используется импульсный понижающий стабилизатор LM2574, который обладает следующими характеристиками:

  1. входное напряжение - до 60 V (для HV версий)
  2. выходное напряжение - 3.3 V, 5 V, 12 V, 15V
  3. выходной ток - 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 Разработка алгоритма программы

 

Программа должна выполнять следующие функции:

  1. обработка нажатия кнопки Пуск;
  2. управление заслонками бункера и работой транспортера;
  3. обработку сигнала превышения заданного веса;
  4. выдачу количества отгрузок на 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), импульсы с внешнего вывода или быть остановлен соответствующими установками регист