Система регулирования дорожного движения

Проектирование системы регулирования дорожного движения на перекрестке (системы управления светофорами) на основе микроконтроллера группы PIC 16F84. Принцип действия устройства, функциональная схема и описание ее элементов. Алгоритм и листинг программы.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 24.12.2012
Размер файла 361,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Содержание

Техническое задание

1. Объект автоматизации

1.1 Описание и анализ функций, выполняемых МПС устройством

1.1 Причины выбора микроконтроллера PIC 16F84

2. Принцип действия устройства

2.1 Функциональная схема

2.2 Описание элементов схемы

3. Программное обеспечение

3.1 Алгоритм программы

3.2 Листинг программы

Приложение

Техническое задание

Спроектировать систему регулирования дорожного движения на перекрестке, т. е. систему управления светофорами. Также создать программное обеспечение для этой системы. Система должна реализовываться на основе микроконтроллера группы PIC 16F84. Основным инструментом для разработки программного обеспечения использовать язык ассемблера контроллера данной группы.

В системе должен, предусмотрен 8 - разрядных параллельных порт CENTRONICS. Через этот порт должно осуществляться управление со стороны компьютера.

регулирование светофор программа

1. Объект автоматизации

1.1 Описание и анализ функций, выполняемых МПС устройством

У данной системы две основные задачи:

1) Управление светофорами в обычном режиме.

2) Прием данных от компьютера и анализируя эти данные выполнять определенные действия в управлении (например: включить во всех направлениях красный свет или зеленый).

1.2 Причины выбора микроконтроллера PIC 16F84

Микроконтроллер PIC16F8X относятся к семейству 8-разрядных КМОП микроконтроллеров группы PIC16CXXX, для которых характерны низкая стоимость, полностью статическая КМОП - технология и высокая производительность.

Микроконтроллер PIC16F8X использует гарвардскую архитектуру с RISC-процессором, обладающую следующими основными особенностями:

используются только 35 простых команд;

все команды выполняются за один цикл (400 нс при частоте 10 МГц), кроме команд перехода, которые требуют 2 циклов;

рабочая частота 0 Гц ... 10 МГц;

раздельные шины данных (8 бит) и команд (14 бит);

512 х 14 или 1024 х 14 память программ, выполненная на ПЗУ или электрически перепрограммируемой Flash- памяти;

15 восьмиразрядных регистров специальных функций (SFR);

восьмиуровневый аппаратный стек;

прямая, косвенная и относительная адресация данных и команд;

36 или 68 восьмиразрядных регистров общего назначения (GPR) или ОЗУ;

четыре источника прерывания:

внешний вход RB0/INT;

переполнение таймера TMR0;

изменение сигналов на линиях порта B;

завершение записи данных в память EEPROM;

64 x 8 электрически перепрограммируемая EEPROM память данных с возможностью выполнения 1000000 циклов стирания/записи;

сохранение данных в EEPROM в течение как минимум 40 лет.

Упрощенная структурная схема МК подгруппы PIC16F8X приведена на рис. 1.

Рис. 1. Структурная схема МК подгруппы PIC16F8X.

Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.

Микроконтроллеры PIC16F83 и PIC16CR83 адресуют 512х14 памяти программ, а PIC16F84 и PIC16CR84 - 1Кх14 памяти программ. Вся память программ является внутренней.

Микроконтроллер может прямо или косвенно обращаться к регистрам или памяти данных. Все регистры специальных функций, включая счетчик команд, отображаются на память данных. Ортогональная (симметричная) система команд позволяет выполнять любую команду над любым регистром с использованием произвольного метода адресации. Ортогональная архитектура и отсутствие специальных исключений делает программирование МК группы PIC16F8X простым и эффективным.

Назначение выводов МК подгруппы PIC16F8X приведено в табл. 1

Табл. 1 Назначение выводов МК подгруппы PIC16F8X.

Обозначение

Тип

Буфер

Описание

OSC1/CLKIN

I

ТШ/КМОП3)

Вход кристалла генератора, RC-цепочки или вход внешнего тактового сигнала

OSC2/CLKOUT

O

-

Выход кристалла генератора. В RC-режиме - выход 1/4 частоты OSC1

/MCLR

I/P

ТШ

Сигнал сброса/вход программирующего напряжения. Сброс низким уровнем.

RA0

RA1

RA2

RA3

RA4

/T0CKI

I/O

I/O

I/O

I/O

I/O

ТТЛ

ТТЛ

ТТЛ

ТТЛ

ТШ

PORTA - двунаправленный порт ввода/вывода

RA4/T0CKI может быть выбран как тактовый вход таймера/счетчика TMR0. Выход с открытым стоком.

RB0/INT

RB1

RB2

RB3

RB4

RB5

RB6

RB7

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

ТТЛ/ТШ1)

ТТЛ

ТТЛ

ТТЛ

ТТЛ

ТТЛ

ТТЛ/ТШ 2)

ТТЛ/ТШ 2)

PORTB - двунаправленный порт ввода/вывода. Может быть запрограммирован в режиме внутренних активных нагрузок на линию питания по всем выводам. Вывод RB0/INT может быть выбран как внешний вход прерывания. Выводы RB4...RB7 могут быть программно настроены как входы прерывания по изменению состояния на любом из входов. При программировании МК RB6 используется как тактовый, а RB7 как вход/выход данных.

1) Этот буфер имеет вход триггера Шмитта, когда конфигурируется в качестве входа внешнего прерывания.

2) Этот буфер имеет вход триггера Шмитта, когда используется в режиме последовательного программирования.

3) Этот буфер имеет вход триггера Шмитта, когда конфигурируется в режиме RC-генератора и КМОП-вход в остальных случаях.

Табл.1 Назначение выводов МК подгруппы PIC16F8X

Обозначение

Тип

Буфер

Описание

Vdd

P

-

Положительное напряжение питания

Vss

P

-

Общий провод (земля)

В таблице использованы следующие обозначения: I -- вход; O -- выход; I/O -- вход/выход; P -- питание; - -- не используется; ТТЛ -- ТТЛ вход; ТШ -- вход триггера Шмитта.

Микроконтроллер содержит 8-разрядное АЛУ и рабочий регистр W. АЛУ является арифметическим модулем общего назначения и выполняет арифметические и логические функции над содержимым рабочего регистра и любого из регистров контроллера. АЛУ может выполнять операции сложения, вычитания, сдвига и логические операции. Если не указано иное, то арифметические операции выполняются в дополнительном двоичном коде.

В зависимости от результата операции, АЛУ может изменять значения бит регистра STATUS: C (Carry), DC (Digit carry) и Z (Zero).

Все перечисленные выше особенности данного микроконтроллера удовлетворяют требованиям для реализации системы светофоров.

2. Принцип действия устройства

2.1 Функциональная схема

Система управления

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

нормальный режим

все красные

все зеленые

2.2 Описание элементов схемы

Схема питается от источника стабилизированного напряжения +5В. Тактовая частота микроконтроллера задается RC - цепью и составляет около 2 МГц. Порты RA0 - RA4 и RB0 используются для синхронизации с компьютером. Порты RA0 - RA3 (используются на вход) принимают данные от компьютера. Порт RA4 (используется на выход) выдает сигнал подтверждения приема данных. Порт RB0 (используется на вход) строб данных от компьютера. К линиям RB2 - RB7 посредствам транзисторов подключены 12 лампочек, которые имитируют светофоры. Лампочка загорается при низком уровне сигнала на выходе RB2 - RB7.

3. Программное обеспечение

3.1 Алгоритм программы

Словесное изложение алгоритма

Программа включает в себя бесконечный цикл в котором выполняется подпрограммы. Первая подпрограмма отвечает за инициализацию портов ввода/вывода. Вторая подпрограмма отвечает за нормальный режим работы системы. В ней выполняется включение лампочек светофоров через определенный промежуток времени. Задержка - вложенные циклы и выполняются они указанное количество раз. Третья подпрограмма отвечает за работу светофоров, учитывая информацию поступившую от компьютера. В ней анализируется полученная информация и выбирается вариант работы системы.

3.2 Листинг программы с комментариями

;******************************************************

;*листинг исходной программы

;******************************************************

list p=16c84, r=hex ;директива, определяющая тип

;процессора и систему счисления

;по умолчанию

;

;******************************************************

;*описание используемых переменных и назначения адресов

;*ячеек для хранения переменных пользователя

;******************************************************

PCL EQU 0x02

STATUS EQU 0x03

RP0 EQU 5

PORTA EQU 0x05

PORTB EQU 0x06

TRISA EQU 0x05

TRISB EQU 0x06

W EQU 0

F EQU 1

TEMPA EQU 0x0C

TEMPB EQU 0x0D

COUNT1 EQU 0x0E

COUNT2 EQU 0x0F

COUNT3 EQU 0x10

;

;******************************************************

;*определение меток замены текста

;******************************************************

;

#DEFINE Z STATUS,2 ;бит нулевого результата

#DEFINE VD1 PORTB,2 ;красный светодиод

#DEFINE VD2 PORTB,3 ;желтый светодиод

#DEFINE VD3 PORTB,4 ;зеленый светодиод

#DEFINE VD4 PORTB,5 ;красный светодиод

#DEFINE VD5 PORTB,6 ;желтый светодиод

#DEFINE VD6 PORTB,7 ;зеленый светодиод

#DEFINE KONT PORTB,0 ;подтверждение приема данных

#DEFINE KOMP PORTA,4 ;строб данных от компьютера

#DEFINE D0 PORTA,0 ;данные от компьютера

#DEFINE D1 PORTA,1 ;данные от компьютера

#DEFINE D2 PORTA,2 ;данные от компьютера

#DEFINE D3 PORTA,3 ;данные от компьютера

;

;******************************************************

;*исполняемая программа

;******************************************************

;

ORG 0x000 ;установка начального адреса по сбросу

GOTO START ;переход на начало программы

ORG 0x005 ;установка начального адреса размещения программы

START

CALL INIT_PORTS ;вызов подпрограммы инициализации портов МК

LOOP

CLRWDT ;сброс сторожевого таймера

CALL SVETOFOR

BTFSS TEMPA,0

CALL PROCESSING_DATA

GOTO LOOP ;переход к метке LOOP для повторения процесса

INIT_PORTS ;подпрограмма инициализации портов

MOVLW 0xFF ;установка линий портов

MOVWF PORTA ;A и B в единичное

MOVWF PORTB ;состояние

BSF STATUS,RP0 ;переход на банк 1

MOVLW 0xFF ;установка RB0-RB7

MOVWF TRISB ;на выход

BCF STATUS,RP0 ;возврат в банк 0

RETURN ;возврат из подпрограммы

SVETOFOR

;************************ горит VD1 и VD6 (красный и зеленый) ******************

BSF VD1 ;зажечь красный свет

BSF VD6 ;зажечь зеленый свет

MOVLW H'32' ;пересылка константы 50 в W

MOVWF COUNT2 ;загрузка 50 в COUNT2

MOVWF COUNT1 ;загрузка 50 в COUNT1

LOOPD

DECFSZ COUNT1,F ;декремент COUNT1

CALL INPUT_DATA

BTFSS TEMPA,0 ; пропустить команду если (TEMPA,0) = 1

GOTO END_P

GOTO LOOPD ;

CLRWDT ;сброс сторожевого таймера

MOVWF COUNT1

DECFSZ COUNT2,F ;декремент COUNT2

GOTO LOOPD

;

;******* горит VD2 (желтый где горит красный) **********

;

BSF VD2 ;зажечь желтый свет

MOVLW H'A' ;пересылка константы 50 в W

MOVWF COUNT2 ;загрузка 50 в COUNT2

MOVWF COUNT1 ;загрузка 50 в COUNT1

LOOPD1

DECFSZ COUNT1,F ;декремент COUNT1

CALL INPUT_DATA

BTFSS TEMPA,0 ; пропустить команду если (TEMPA,0) = 1

GOTO END_P

GOTO LOOPD1 ;

CLRWDT ;сброс сторожевого таймера

MOVWF COUNT1

DECFSZ COUNT2,F ;декремент COUNT2

GOTO LOOPD1

;

;****** гаснет красный, желтый и зеленый ***********

;

BCF VD2

BCF VD1

BCF VD6

;

;***** горят другой красный и зеленый **************

;

BSF VD3

BSF VD4

MOVLW H'32' ;пересылка константы 50 в W

MOVWF COUNT2 ;загрузка 50 в COUNT2

MOVWF COUNT1 ;загрузка 50 в COUNT1

LOOPD2

DECFSZ COUNT1,F ;декремент COUNT1

CALL INPUT_DATA

BTFSS TEMPA,0 ; пропустить команду если (TEMPA,0) = 1

GOTO END_P

GOTO LOOPD2 ;

CLRWDT ;сброс сторожевого таймера

MOVWF COUNT1

DECFSZ COUNT2,F ;декремент COUNT2

GOTO LOOPD2

;

;***** горит желтый где горит красный **********

;

BSF VD5 ;зажечь желтый свет

MOVLW H'A' ;пересылка константы 50 в W

MOVWF COUNT2 ;загрузка 50 в COUNT2

MOVWF COUNT1 ;загрузка 50 в COUNT1

LOOPD3

DECFSZ COUNT1,F ;декремент COUNT1

CALL INPUT_DATA

BTFSS TEMPA,0 ; пропустить команду если (TEMPA,0) = 1

GOTO END_P

GOTO LOOPD3 ;

CLRWDT ;сброс сторожевого таймера

MOVWF COUNT1

DECFSZ COUNT2,F ;декремент COUNT2

GOTO LOOPD3

;

;***** гаснут красный, желтый и зеленый ***********

;

BCF VD5

BCF VD4

BCF VD3

END_P

RETURN

INPUT_DATA ;подпрограмма проверки порта А

MOVF PORTA,W ;чтение состояния порта А в W

MOVWF TEMPA ;пересылка W в TEMPA

RETURN

PROCESSING_DATA ;подпрограмма анализирования принятых данных

BEGIN

MOVF PORTA,W ;чтение состояния порта А в W

MOVWF TEMPA ;пересылка W в TEMPA

ANDLW 0x7 ;наложение на W маски b'00000111'

SUBWF TEMPA,W ;вычитание W из TEMPA

BTFSC Z ;пропустить команду, если результат нулевой

GOTO TWO

GOTO END_PP

;

;************красный свет во всех направлениях*************

;

TWO

CLRF COUNT1 ;обнуление регистра COUNT1

MOVWF COUNT1 ;пересылка W в COUNT1

INCF COUNT1 ;инкрементирование COUNT1

MOVF COUNT1,W

SUBWF TEMPA,W

BTFSC Z

GOTO THREE

BSF VD1

BSF VD4

V1

CALL INPUT_DATA

BTFSS TEMPA,0

GOTO BEGIN

GOTO V1

;

;**********зеленый свет во всех направлениях************

;

THREE

CLRF COUNT1

MOVWF COUNT1

INCF COUNT1

MOVF COUNT1,W

SUBWF TEMPA,W

BTFSC Z

NOP ;пустая команда предназначение здесь т. к. все варианты проверены)

BSF VD3

BSF VD6

V2

CALL INPUT_DATA

BTFSS TEMPA,0

GOTO BEGIN

GOTO V2

END_PP

RETURN

END ;конец программы

Приложение

Размещено на www.allbest.


Подобные документы

  • Разработка микропроцессорной системы на основе микроконтроллера. Методы и средства совместной отладки аппаратных и программных средств. Структурная схема и функциональная спецификация устройства - регулятора яркости ламп накаливания. Алгоритм управления.

    дипломная работа [1,4 M], добавлен 15.07.2010

  • Функциональная схема микропроцессорной системы управления, алгоритм ее работы. Инициализация микроконтроллера и листинг соответствующей программы. Преобразование напряжения от датчика температуры. Обработка прерываний. Расчет электрических параметров.

    дипломная работа [1,7 M], добавлен 23.05.2012

  • Краткое описание микроконтроллера, периферийные устройства. Структура управления бит ADCCON1. Принцип действия устройства, описание структурной схемы. Краткая функциональная схема, функции блоков. Схема пульт дистанционного управления, спецификация.

    курсовая работа [184,7 K], добавлен 25.12.2012

  • Проектирование микроконтроллера системы управления холодильника, разработка принципиальной электрической и общей функциональной схемы устройства. Описание работы специальной прикладной программы. Программа устройства на Ассемблере. Блок-схема программы.

    курсовая работа [47,6 K], добавлен 14.07.2009

  • Описание принципа действия выбранной системы автоматического регулирования. Выбор и расчет двигателя, усилителя мощности ЭМУ, сравнивающего устройства. Определение частотных характеристик исходной САР. Оценка качества регулирования системы по ее АЧХ.

    курсовая работа [1,2 M], добавлен 06.10.2011

  • Техническая характеристика микроконтроллера ADuC812 – интегральной 12-разрядной системы сбора информации, включающей в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП. Описание алгоритма работы устройства и листинг программы.

    курсовая работа [442,3 K], добавлен 25.12.2012

  • Порядок описания и разработки структурной и функциональной схемы микропроцессорной системы на основе микроконтроллера К1816ВЕ31. Обоснование выбора элементов, разработка принципиальной схемы данной системы, программы инициализации основных компонентов.

    курсовая работа [260,4 K], добавлен 16.12.2010

  • Функциональная спецификация и преимущества термометрического датчика. Структурная схема микроконтроллера РIС16F84A. Алгоритм работы программы, описание функциональных узлов, выбор элементной базы и принципиальная схема терморегулятора для аквариума.

    курсовая работа [4,7 M], добавлен 27.12.2009

  • Разработка микропроцессорной системы на основе микроконтроллера. Проектирование аппаратных средств. Характеристика этапов разработки многофункциональных астрономических часов: функциональная схема, алгоритм управления, описание и расчет элементной базы.

    дипломная работа [6,9 M], добавлен 14.07.2010

  • Микропроцессорная система (МПС) сбора и обработки информации от объекта, характеризуемого непрерывными (аналоговыми) сигналами. Исходные данные для разработки МПС. Функциональная схема системы, характеристика ее основных элементов, листинг программы.

    курсовая работа [961,2 K], добавлен 21.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.