У вас вопросы?
У нас ответы:) SamZan.net

Курсовой проект по дисциплине- Микропроцессорные информационноуправляющие системы

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 29.12.2024

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧЕРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

Кафедра «Автоматика, телемеханика и связь на железнодорожном транспорте»

Курсовой проект

по дисциплине:

«Микропроцессорные информационно-управляющие системы»

Выполнил: студент гр.394

                                                                                                  

                                                                          Проверил: преподаватель

Белоногов А.С.                   

Самара 2013

                                            Содержание                                                    стр.

Введение……………………………………………………………………….

Исходные данные……………………………………………………………..

Постановка задачи…………………………………………………………….

Описание и характеристики микроконтроллера AT90S2313………………

Таймер/счётчик общие сведения…………………………………………….

  Назначение выводов таймеров/счетчиков…………………………………

  Таймер/счетчик T1………………………………………………………….

Программа инициализации таймер/счётчика на AT90S2313………………

  Отладка программы в среде AVR Studio 4………………………………..

Программа на Ассемблере -  периодомер…………………………………..

  Отладка программы в среде AVR Studio 4………………………………..

Программа на Ассемблере -  деление……………………………………….

  Отладка программы в среде AVR Studio 4………………………………..

LED – индикатор фирмы KingBright………………………………………..

Программирование динамической индикации……………………………..

Программа на Ассемблере – динамическая  индикация……………………

Отладка программы в среде AVR Studio 4………………………………….

Заключение……………………………………………………………………

Библиографический список…………………………………………………


Введение.


Постановка задачи.

   Разработать устройство для определения скорости движения отцепов на базе микроконтроллера, в процессе проектирования научиться работать с AVR Studio  и сопутсвующими средствами для достижения задачи. Воспользуемся микроконтроллером AT90S2313  так как для нашей задачи он подходит и про него есть достаточное количество информации.

 Датчики скорости или скоростемеры предназначены для измерения скорости движущихся отцепов на сортировочной горке и передачи этой информации в систему регулирования скорости скатывания отцепов для окончательного определения ступени торможения.

        Принцип действия устройств подобного класса основан на эффекте Доплера, состоящий в том, что при перемещении источника СВЧ-колебаний по отношению к наблюдателю и наоборот частота колебаний в месте наблюдения отличается от собственной частоты источника колебаний. Приращение частоты пропорционально радиальной составляющей скорости движения.

Радиолокационный измеритель скорости РИС-В3М

Принцип действия: Эффект Доплера.

Преимущества: Интеллектуальная обработка сигнала, частотный выход, непрерывное самотестирование, дистанционный контроль работоспособности и диагностика.

       Устройствами РИС-В3М оборудуются тормозные позиции и зона вершины горки. Частота излучения 37,5ГГц.

       Устойчиво работает в условиях сильно флуктуирующего  входного сигнала и вибрационных нагрузок при неблагоприятных климатических условиях: дождь, туман, иней, роса. Дальность действия до 250м,  диапазон измеряемых скоростей 1,5-35 км/ч, погрешность измерения до 2%.

Производитель:

НПО « Исток »

Московская область 

г. Фрязино

Начальный интервал времени измерения для оценки скорости при въезде отцепа в зону действия РИС-В3М  и автоматического выбора рабочего интервала измерения (время поиска и захвата) не более 0,12 с.

  Наше устройство может быть использовано как разновидность устройства для определения скорости или в дополнение к существующему


Описание и характеристики микроконтроллера
AT90S2313.

Данные представлены в виде таблиц для простоты восприятия, без нумерации.


 


В таблицах использованы следующие обозначения:

I — вход;

O — выход;

I/O — вход/выход;

P — выводы питания.

Микроконтроллеры AVR семейства Classic являются 8 разрядными микроконтроллерами с RISC архитектурой. Они имеют электрически стираемую память программ (FLASH) и данных (EEPROM), а также разнообразные периферийные устройства. Состав этих устройств меняется от

модели к модели, более того, одно и то же устройство в разных моделях использует различные ресурсы микроконтроллера (в частности, различные выводы). Разумеется, существует ряд периферийных устройств, присутствующих во всех микроконтроллерах семейства: сторожевой таймер, 8 разрядный таймер/счетчик реального времени (таймер T0) и, естественно, порты ввода/вывода.

Структурная схема микроконтроллера AT90S2313 приведена на Рисунке 1.

Его отличительные особенности:

- 2 порта ввода/вывода: B (8 разрядный) и D (7 разрядный);

- встроенный тактовый кварцевый генератор;

- 16 разрядный таймер/счетчик (таймер T1);

- аналоговый компаратор;

- универсальный асинхронный приемопередатчик - UART.

Таймер/счётчик общие сведения.

   Микроконтроллеры семейства Classic, в зависимости от модели, имеют в своем составе от одного до трех таймеров/счетчиков общего назначения (см. Таблица .1).

Таблица 1 Таймеры/счетчики реального времени.

   Первый таймер (T0, 8разрядный), имеющийся во всех моделях, может использоваться только для отсчета и измерения временных интервалов или как счетчик внешних событий. При переполнении счетного регистра таймера генерируется запрос на прерывание. Два других таймера (16разрядный T1 и 8разрядный T2) вводят дополнительные по отношению к таймеру T0 функции. Оба таймера могут генерировать запрос на прерывание не только при переполнении счетного регистра, но и при наступлении ряда других событий. Также оба таймера могут использоваться в качестве широтноимпульсных модуляторов. Таймер T2, кроме того, может работать в асинхронном (относительно тактового сигнала микроконтроллера) режиме. А вот для модели AT90C8534 сказанное не совсем справедливо. Дело в том, что оба таймера/счетчика этого микроконтроллера (8разрядный T0 и 16разрядный T1) функционально идентичны и к тому же могут использоваться только для формирования временных интервалов.

   В составе всех микроконтроллеров семейства имеется также сторожевой таймер, который является непременным атрибутом всех современных микроконтроллеров. Этот таймер используется для предотвращения зацикливания программы.


Назначение выводов таймеров/счетчиков
.

   Kаждый таймер/счетчик (кроме таймеров/счетчиков в AT90C8534) использует один или более выводов микроконтроллера. Kак правило, эти выводы - линии портов ввода/вывода общего назначения, а функции, реализуемые этими выводами при работе совместно с таймерами/счетчиками, являются их альтернативными функциями.

   Все выводы микроконтроллеров, относящиеся к таймерам/счетчикам общего назначения, сведены в Таблица 2. Также в этой таблице приводятся функции этих выводов.

Таблица 2 Выводы, используемые таймерами/счетчиками общего назначения

   Не забывайте о том, что при использовании альтернативных функций линий портов ввода/вывода необходимо, как правило, самостоятельно сконфигурировать эти выводы в соответствии с их функциональным назначением (вход/выход).


Таймер/счетчик T1
.

Таймер/счетчик T1 (16разрядный) имеет гораздо больше функций, чем таймер/счетчик T0 (во всех моделях, кроме AT90C8534).

   Прежде всего, как и таймер/счетчик T0, он может использоваться для:

 - формирования временных интервалов или для подсчета числа внешних событий.

- может по внешнему сигналу сохранять свое текущее состояние в отдельном РВВ.

- выполняет определенные действия при равенстве содержимого счетного регистра заданному значению.

-  может работать как широтноимпульсный модулятор.

   Причем генерация сигнала с ШИМ «вынесена» в отдельный режим работы таймера/счетчика, в котором недоступны остальные функции (кроме генерации прерываний). Режим генерации сигнала с ШИМ будем называть «режим ШИМ», а режим, в котором доступны остальные функции таймера/счетчика, — «режим таймера».

   Из рисунка 2 видно, что в состав таймера/счетчика входят:

- три 16разрядных регистра (счетный регистр TCNT1, регистр захвата ICR1 и регистр сравнения OCR1 или OCR1A),

- 16разрядный компаратор,

- один  8разрядный управляющий регистр TCCR1A.

- а также блок управления таймером.

   Счетный регистр таймера/счетчика T1 реализован как суммирующий (в режиме ШИМ — как суммирующий/вычитающий) счетчик и доступен в любой момент времени как для чтения, так и для записи.

   При записи в регистр TCNT1 во время работы таймера счет будет продолжен по следующему за операцией записи импульсу тактового сигнала таймера/счетчика. После подачи напряжения питания в регистре TCNT1 находится нулевое значение.

Рисунок 2. Структурная схема таймера/счетчика T1 моделей AT90S2313, AT90S/LS2333 и AT90S/LS4433.

Запись в регистр TCNT1.

При записи старшего байта значения в регистр TCNT1H он помещается в регистр TEMP. Далее, при записи младшего байта в регистр TCNT1L он объединяется с содержимым регистра TEMP и оба байта записываются в регистр TCNT1 одновременно. Из сказанного видно, что для выполнения полного цикла записи в 16разрядный регистр первым должен быть загружен старший байт (регистр TCNT1H).

Чтение регистра TCNT1.

   При чтении регистра TCNT1L (младший байт) содержимое регистра TCNT1H пересылается в регистр TEMP. А при последующем чтении регистра TCNT1H возвращается значение, сохраненное в регистре TEMP. Следовательно, для выполнения полной операции чтения 16 разрядного регистра первым должен быть прочитан младший байт (регистр TCNT1L).

   Управление таймером/счетчиком T1 осуществляется с помощью двух регистров управления TCCR1A и TCCR1B (в модели AT90C8534 — с по мощью одного регистра TCCR1). Эти регистры расположены по адресам

$2F ($4F) (регистр TCCR1A) и $2E ($4E) (регистры TCCR1B, TCCR1).

   Формат регистра TCCR1A приведен на Рисунок 3, а регистров TCCR1B  на Рисунок 4 . Значение отдельных разрядов этих регистров будет описано далее в этой главе. Неиспользуемые разряды регистров доступны только для чтения и содержат «0».

Рисунок  3  Формат регистра TCCR1A

Рисунок 4  Формат регистра TCCR1B


Выбор источника тактового сигнала.

   По отношению к тактовому сигналу таймер/счетчик T1 может работать в двух режимах:

1. Режим таймера. В этом режиме на вход таймера/счетчика поступают импульсы тактового сигнала микроконтроллера (непосредственно или через предделитель).

2. Режим счетчика событий. В этом режиме инкремент содержимого счетного регистра производится по активному фронту сигнала на входе T1 микроконтроллера. В модели AT90C8534 данный режим отсутствует.

   Выбор источника тактового сигнала, а также запуск и остановка таймера/счетчика осуществляются с помощью разрядов CS12…CS10 регистра управления таймером TCCR1B. Соответствие между состоянием этих разрядов и режимом работы таймера/счетчика приведено в Таблица 3

Таблица 3. Выбор источника тактового сигнала для таймера/счетчика T1

   При использовании внешнего тактового сигнала необходимо помнить, что он синхронизируется с частотой тактового генератора микроконтроллера (состояние вывода T1 считывается по нарастающему фронту внутреннего тактового сигнала). Поэтому для обеспечения корректной работы таймера от внешнего сигнала промежуток времени между соседними импульсами должен быть больше периода тактового сигнала микроконтроллера.

Обратите внимание, что при использовании внешнего тактового сигнала инкремент содержимого счетного регистра таймера/счетчика производится даже в том случае, если вывод T1 сконфигурирован как выход. Эта особенность дает пользователю возможность программно управлять процессом счета.


Режим таймера.

Принцип работы таймера/счетчика T1 в этом режиме такой же, как и таймера/счетчика T0. По каждому импульсу, поступающему на тактовый вход таймера/счетчика, производится инкремент содержимого счетного регистра TCNT1. При переходе таймера/счетчика из состояния «$FFFF» в состояние «$0000» устанавливается флаг TOV1 регистра TIFR и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в «1» разряда TOIE1 регистра TIMSK (разумеется, флаг общего разрешения прерываний I регистра SREG также должен быть установлен в «1»). Однако, как уже было сказано, для всех моделей, кроме AT90C8534, в этом режиме таймера/счетчика T1 доступны и дополнительные функции.

Функция захвата (Capture).

Данная функция заключается в сохранении в определенный момент времени состояния таймера/счетчика в регистре захвата ICR1. Это действие может производиться либо по активному фронту сигнала на выводе ICP микроконтроллера, либо по сигналу от аналогового компаратора (см. описание аналогового компаратора в главе 7). При этом устанавливается флаг ICF1 регистра TIFR и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в «1» разряда TICIE1 регистра TIMSK. Упрощенная структурная схема узла, выполняющего данную функцию, приведена на Рис. 6.8.

   Для управления схемой захвата используются два разряда регистра TCCR1B: ICNC1 и ICES1. Разряд ICNC1 управляет схемой подавления помех. Если этот разряд сброшен в «0», схема подавления помех выключена и захват производится по первому же активному фронту на выводе ICP микроконтроллера. Если же этот разряд установлен в «1», то при появлении активного фронта на выводе ICP производится 4 выборки с частотой, равной

тактовой частоте микроконтроллера. Захват будет выполнен только в том случае, если все выборки имеют уровень, соответствующий активному фронту сигнала (лог. «1» для нарастающего и лог. «0» для спадающего).

Активный фронт сигнала, т.е. фронт, по которому будет выполнено со хранение содержимого счетного регистра в регистре захвата, определяется состоянием разряда ICES1. Если этот разряд сброшен в «0», то активным является спадающий фронт. Если же этот разряд установлен в «1», то активным является нарастающий фронт. Разумеется, вывод ICP должен быть сконфигурирован как входной, т.е. разряд регистра управления портом DDRx, соответствующий данному выводу, должен быть сброшен в «0».

   Физически регистр захвата ICR1 размещен в двух регистрах ICR1H:ICR1L, расположенных по адресам $27:$26 (адреса в адресном пространстве ОЗУ соответственно $47:$46) и доступных только для чтения. Поскольку регистр захвата является 16разрядным, при его чтении, как уже было сказано, используется специальный временный регистр TEMP. При чтении регистра ICR1L (младший байт) содержимое этого регистра пере сылается в ЦПУ, а содержимое регистра ICRH (старший байт) сохраняется в регистре TEMP. При чтении регистра ICR1H возвращается значение, сохраненное в регистре TEMP. Следовательно, при чтении регистра ICR1 первым должен быть прочитан регистр ICR1L. Прерывания на время обращения к регистру ICR1 должны быть запрещены.

Функция сравнения (Compare).

   Данная функция заключается в непрерывном (каждый машинный цикл) сравнении содержимого счетного регистра таймера/счетчика с числом, находящемся в регистре сравнения. При совпадении содержимого этих регистров устанавливается флаг соответствующего прерывания, а также могут выполняться другие действия.

   Kоличество регистров сравнения, а также их названия отличаются в различных моделях микроконтроллеров (см. Таблица 4). Причем в моделях, имеющих по два регистра сравнения, операция сравнения производится независимо для каждого регистра.

Таблица 4  Регистры сравнения таймера/счетчика T1

   Если состояние таймера/счетчика становится равным числу, находящемуся в регистре сравнения, то в следующем машинном цикле устанавливается соответствующий этому регистру флаг прерывания в регистре TIFR (для регистра OCR1 — флаг OCF1, для регистра OCR1A — флаг OCF1A, для регистра OCR1B — флаг OCF1B) и генерируется запрос на прерывание. Разрешение прерываний осуществляется установкой в «1» соответствующих флагов регистра TIMSK (OCIE1, OCIE1A и OCIE1B для регистров OCR1, OCR1A и OCR1B соответственно). Наряду с установкой флага в регистре TIFR при равенстве счетного регистра и регистра сравнения могут выполняться и другие действия:

- сброс таймера/счетчика (только для регистров OCR1 и OCR1A);

- изменение состояния определенного вывода микроконтроллера

(для всех регистров).

Выполнение или невыполнение указанных действий, определяется несколькими разрядами регистров управления TCCR1A и TCCR1B. Названия этих разрядов и их описание приведены в Таблица 5.

Таблица 5 Управление работой схемы сравнения таймера/счетчика T1

   Каждый регистр сравнения физически размещается в двух регистрах вводавывода РВВ:

OCR1 — OCR1H:OCR1L, адреса $2B:$2A ($4B:$4A);

OCR1A — OCR1AH:OCR1AL, адреса $2B:$2A ($4B:$4A);

   Поскольку регистры сравнения являются 16разрядными, при их чтении и записи используется специальный временный регистр TEMP. Подробно процесс записи и чтения 16разрядных регистров описан выше на примере регистра TCNT1. Здесь повторим только, что при записи регистра сравнения первым должен записываться регистр OCR1xH (старший байт), а при чтении первым должен считываться регистр OCR1xL (младший байт). Прерывания на время обращения к регистру сравнения должны быть запрещены.


Программа инициализации таймер/счётчика на
AT90S2313.

.include "2313def.inc"

.def temp=r18

ldi temp,high(62500)

out OCR1AH,temp

ldi temp,low(62500)

out OCR1AL,temp

ldi temp,(1<<COM1A0)

out TCCR1A,temp    

ldi temp,0b00001000

out DDRB,temp

ldi temp,0b00001011

out TCCR1B,temp



Программа на Ассемблере -  периодомер.

.include "2313def.inc"

.def temp=r18

.def count0=r19

.def count1=r20

.def count2=r21

ldi temp,(1<<TICIE1)|(1<<TOIE1)

out TIMSK,temp

clr temp

out TCNT1H,temp

out TCNT1L,temp

clr count0

clr count1

clr count2

ldi temp,0b01000010

out TCCR1B,temp

sei



Программа на Ассемблере -  деление.

.include "2313def.inc"

.def rezTL=r16

.def rezTM=r17

.def rezTH=r18

.def rezHH=r19

.def schetTL=r20

.def schetTM=r21

.def schetTH=r22

.def schetHH=r23

.def cykle=r24

clr rezTL

clr rezTM

clr rezTH

clr rezHH

clr r25

clr r26

clr r27

div:

       sub schetTL,cykle

       sbc schetTM,r25

       sbc schetTH,r26

       sbc schetHH,r27

       brcs end_div;если перенос в минус, то выход

       inc rezTL;иначе увеличиваем результат на 1 младший байт

       brne div;---если не было переноса, то обратно

       inc rezTM;иначе следующий байт на 1

       brne div;---если не было переноса, то обратно

       inc rezTH;иначе следующий байт на 1

       brne div;---если не было переноса, то обратно

       inc rezHH;иначе следующий байт на 1

rjmp div

end_div:



LED – индикатор фирмы KingBright.

   Для общего представления рассмотрим сдвоенный семисегментный индикатор фирмы  KingBright с общим анодом. Конечно существуют индикаторы которые в одном корпусе содержат три, четыре семисегментныx индикатора. Далее представлены чертёж элемента, токи и напряжения, цвет свечеия и сила свечения и другие параметры.


 




Программа на Ассемблере – динамическая  индикация.

.include "2313def.inc"

.equ DdH=0x66

.equ DeH=0x67

.equ DdM=0x68

.equ Dem=0x69

.def razr=r18

.def temp=r16

            inc razr ; счётчик разрядов

   cpi razr,4 ; всего 4 разряда

   brne set_razr

    clr razr ; если равен 4 то очищаем

set_razr:

                    clr YH ; старший разряд адреса  = 0

  mov YL,razr+DdH ; установка текущего адреса

  ld temp,Y ; в temp -  значение дес. цифры

  ldi ZH,HIGH(mask*2) ; адрес констант в памяти Z

                    ldi ZL,LOW(mask*2)  

  add ZL,temp ; адрес маски цифры равной Z 

  lpm ; в r0 -  маска

  in temp,PortB ; загружаем состояние порта в temp

  bst temp,3 ; сохраняем бит 3 из флага T

  mov temp,r0  ; загружаем маску в temp

  bld temp,3 ; загружаем бит 3 из флага T

  out PortB,temp ; установили сегменты

        cpi razr,0

  brne set1

  sbr temp,1 ; устанавливаем разряд PD0

  out PortD,temp

  reti ;выход

set1:

    cpi razr,1

 brne set2

 sbr temp,2 ; устанавливаем разряд PD1

 out PortD,temp

 reti ;выход

set2:

    cpi razr,2

 brne set3

  sbr temp,4 ; устанавливаем разряд PD2

 out PortD,temp

 reti ;выход

set3:

    sbr temp,8

 out PortD,temp

 reti ;выход

mask:

.db 0b01110111,0b000110,0b10110011,0b10010111,

     0b11000110,0b11010101,0b11110101,0b00000111,0b11110111,0b11010111



Заключение.


Библиографический список.

Евстифеев А.В.

Е263 Микроконтроллеры AVR семейства Classic фирмы ATMEL —

3_е изд., стер. — М.: Издательский дом «Додэка_XXI», 2006. —

288 с.: ил. (Серия «Мировая электроника»)

ISBN 5_94120_127_3


Отладка программы в среде
AVR Studio 4.

Отладка программы в среде AVR Studio 4.

Отладка программы в среде AVR Studio 4.

Отладка программы в среде AVR Studio 4.

Рисунок 1 - Структурная схема микроконтроллера AT90S2313

Рисунок 5 Упрощенная структурная схема узла захвата




1. Збагачення активного словника учнів початкових класів засобами дидактичних ігор у процесі вивчення української граматики
2. Абсолютная власть папской церкви полный диктат не только над толпой но и над правителями тоже;развитие реме
3. Тема- Літні канікули Підтема- У селі
4. Геополитика России
5. НАУКА МОСКВА 1985
6. Дунаевский Исаак Осипович
7. Ставка для защиты от PokerStrtegy
8. Система управления персоналом на примере японского менеджмента
9. Анализ состава и структуры выручки от продажи товаров, продукции, работы, услуг
10. Без расслоения нет прогресса контроля качества Стратификация расслоение один из наиболее простых стат
11. тема взаимодействующая с внешней средой
12. Реферат- Алкилирующие агенты
13. Реферат- Программы и процедуры допинг-контроля
14. вариант с прилагательным употреблённым в переносном значении
15. 11 л л л л л пр пр
16. Социальная реабилитация детей-инвалидов
17. экономическая эффективность.html
18. Масштаб определяется системой членений соотношением частей и целого и является средством повышения эмоцио
19. Поява найдавнішої людини сучасного типу на нинішній території України1 млн
20. Политология для студентов 4го курса социальнопедагогического факультета Объект и предмет политол