Система регулирования дорожного движения
Проектирование системы регулирования дорожного движения на перекрестке (системы управления светофорами) на основе микроконтроллера группы 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