Автоматическая система управления железнодорожным переездом

Автор работы: Пользователь скрыл имя, 10 Декабря 2012 в 13:21, курсовая работа

Краткое описание

В данной курсовой работе для построения автоматизированной системы управления использовались: Микроконтроллер PIC 16F84A, устройство световой сигнализации, контактные датчики, оптрон. Устройство будет работать на микроконтроллере PIC16F84А, в системе виртуального моделирования Proteus и как следствие возможностью действия в реальном времени, без использования физических аппаратных частей системы управления.

Содержание

Введение…………………………………………………………………………………………………………………..8
1. Анализ систем управления железнодорожным переездом………………………9
1.1 Обзор переездных систем………………………………………...............................9
1.2 Устройство и основные элементы……………………………………………………10
1.3 Виды переездов и их техническое оснащение……………………………..11
2. Разработка автоматической системы управления………… ……………………13
2.1 Разработка функциональной схемы автоматической системы управления…………….13
2.2 Компоненты автоматической системы управления……………………..15
3. Разработка программного кода системы управления…………...................26
3.1 Разработка схемы системы управления……………………………………..27
3.2 Разработка программного кода для PIC 16F84A………………………...27
3.3 Описание программного кода для PIC 16F84A……………………………..32
Заключение………………………………………………………………………………………………………………35
Литература…………………………………………………………………………………………………………….36

Прикрепленные файлы: 1 файл

ТСАУ_.docx

— 1.26 Мб (Скачать документ)

                  movlw       .30                                          

                  movwf       Reg_2                                        

                  movlw       .1                                          

                  movwf       Reg_3                                        

wr2              decfsz        Reg_1, F                                     

                  goto           wr2                                          

                  decfsz        Reg_2, F                                     

                  goto          wr2                                          

                  decfsz       Reg_3, F                                     

                  goto          wr2                                          

                  nop                                                      

                  nop                                                      

;----------------------------------------------------------------------------------

                  bcf             Status,2         ;;;СЧЕТЧИК

                  decf           Sch,F           

                  btfsc          Status,2        

                  goto          m2              

                  goto          m1

;----------------------------------------------------------------------------------          

m2              bcf             PortB,2         

                  bsf             PortB,1         

                  movlw       .169            

                  movwf       Reg_1

                  movlw       .69

                  movwf       Reg_2

                  movlw       .2

                  movwf       Reg_3

wr3              decfsz        Reg_1, F

                  goto           wr3

                  decfsz        Reg_2, F

                  goto           wr3

                  decfsz        Reg_3, F

                  goto           wr3

                  nop

                  nop

                  bcf             PortB,1         

                  bsf             PortB,0         

                  movlw       .169            

                  movwf       Reg_1

                  movlw       .69

                  movwf       Reg_2

                  movlw       .2

                  movwf       Reg_3

wr4              decfsz        Reg_1, F

                  goto           wr4

                  decfsz        Reg_2, F

                  goto           wr4

                  decfsz        Reg_3, F

                  goto           wr4

                  nop

                  nop

;----------------------------------------------------------------------------------

m5               btfsc           PortA,3        

                  goto           m4              

                  goto           m5              

m4               bcf              PortB,3         

                  bsf              PortB,4        

                  btfsc           PortA,2         

                  goto           ms

                  goto           m4             

;----------------------------------------------------------------------------------

ms               clrw

                  clrf              Sch

                  btfss           PortA,2          

                  goto           m6

                  goto           ms

;----------------------------------------------------------------------------------

m6              movlw       .186             

                  movwf       Reg_1

                  movlw       .4

                  movwf       Reg_2

                  movlw       .2

                  movwf       Reg_3

wr5              decfsz        Reg_1, F

                  goto           wr5

                  decfsz        Reg_2, F

                  goto           wr5

                  decfsz        Reg_3, F

                  goto           wr5

                  nop

                  bcf              PortB,4

                  bsf              PortB,3         

                  movlw       .186

                  movwf       Reg_1

                  movlw       .4

                  movwf       Reg_2

                  movlw       .2

                  movwf       Reg_3

wr6              decfsz        Reg_1, F

                  goto           wr6

                  decfsz       Reg_2, F

                  goto          wr6

                  decfsz       Reg_3, F

                  goto          wr6

                  nop

                  bsf             PortB,2          

                  goto          start

;--------------------------------------------------------------------------------

                  end

 

 

Assembler — язык программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком.

Данный  тип языков получил свое название от названия транслятора (компилятора) с этих языков — ассемблера (англ. assembler — сборщик). Название последнего обусловлено тем, что на первых компьютерах не существовало языков более высокого уровня, и единственной альтернативой созданию программ с помощью ассемблера было программирование непосредственно в кодах.

Язык  ассемблера в русском языке часто  называют «ассемблером» (а что-то связанное  с ним — «ассемблерный»), что, согласно английскому переводу слова, неправильно, но вписывается в правила русского языка. Однако, сам ассемблер (программу) тоже называют просто «ассемблером», а не «компилятором языка ассемблера» и т. п.

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

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

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

Каждая  модель процессора, в принципе, имеет  свой набор команд и соответствующий  ему язык (или диалект) ассемблера.

Достоинства языка ассемблера:

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

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

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

Последние технологии безопасности, внедряемые в операционные системы, не позволяют  делать самомодифицирующегося кода, так как исключают одновременную  возможность исполнения инструкций и запись в одном и том же участке памяти (технология W^X в BSD-системах, DEP в Windows).

Недостатки  языка ассемблера:

Большие объёмы кода и большое число дополнительных мелких задач, что приводит к тому, что код становится очень сложно читать и понимать, а следовательно  усложняется отладка и доработка  программы, а также трудность  реализации парадигм программирования и любых других соглашений. что  приводит к сложности совместной разработки.

Меньшее количество доступных библиотек, их малая совместимость между собой.

Непереносимость на другие платформы (кроме двоично  совместимых).

 

Применение:

Напрямую  вытекает из достоинств и недостатков.

Поскольку большие программы на ассемблере писать крайне неудобно, их пишут на языках высокого уровня. На ассемблере же пишут небольшие фрагменты  или модули, для которых критически важны:

быстродействие (драйверы);

размер кода (загрузочные сектора, программное  обеспечение для микроконтроллеров  и процессоров с ограниченными  ресурсами, вирусы, программные защиты);

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

Код программы  для прошивки микроконтроллера PIC16F84A,

написанный  на языке программирования assembler, представлен  на страницах…….

При включение  схемы, система находится в состояние  «отсутствие опасности». То есть шлагбаум поднят, на светофоре отображается разрешающий сигнал, движение автомобилей  через ж/д переезд разрешен. При приближение поезда с датчика D1, расположенного на расстоянии одного километра от переезда, в микроконтроллер поступает сигнал, сигнализирующий о приближении поезда. Микроконтроллер  посылает исполнительному устройству сигнал о закрытие переезда: Срабатывает световая сигнализация, с помощью фотодатчика проверяется отсутствие помехи (автомобиля) в зоне опускания шлагбаума, если помеха отсутствует, шлагбаум опускается. Переезд закрыт.

После прохода  последнего вагона состава, срабатывает  датчик D2 и на микроконтроллер посылается сигнал об открытие переезда.

Через заданный промежуток времени поднимается  шлагбаум и загорается разрешающий  сигнал светофора. Проезд открыт.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.3 Описание программного  кода для PIC 16F84A

 

start         bsf            Status,5       

                  movlw      .0

                  movwf       TrisB         

                  bcf             Status,5

                  movlw       .7             

                  movwf       Sch            

                  clrw  

С данного участка кода, начинается выполнение программы.

Работа порта В устанавливается  на выход.

Значение переменной Sch =7

-----------------------------------------------------------------------------------------------

m1       bcf         PortB,4         ;

             bsf         PortB,3         ;вывод порта В3 уст. в 1. шлагбаум поднят

             bcf         PortB,0         ;Красный свет не горит

             bcf         PortB,1         ;Желтый  свет не горит

             bsf         PortB,2          ;Зеленый свет горит

             btfsc       PortA,1         ;Проверка условия. Если на порт А0 (датчик D1) подается 1

             goto        m3               

             goto        start 

Состояние «Опасность отсутствует»

------------------------------------------------------------------------------------------------

m3      bcf            PortB,2         ;Зеленый свет не горит       

             movlw       .179             ;Задержка на 0.22 сек            

             movwf       Reg_1                                                             

             movlw       .30                                                                   

             movwf       Reg_2                                                             

             movlw       .1                                           

             movwf       Reg_3                                        

wr1      decfsz      Reg_1, F                                     

             goto        wr1                                          

             decfsz      Reg_2, F                                     

             goto        wr1                                          

             decfsz      Reg_3, F                                     

             goto        wr1                                          

             nop                                                      

             nop                                                      

             bsf         PortB,2              ;Зеленый свет горит         

             movlw       .179               ;Задержка на 0.22 сек       

             movwf       Reg_1                                        

             movlw       .30                                          

             movwf       Reg_2                                        

             movlw       .1                                         

             movwf       Reg_3                                        

wr2     decfsz      Reg_1, F                                     

             goto        wr2                                          

             decfsz      Reg_2, F                                     

             goto        wr2                                          

             decfsz      Reg_3, F                                     

Информация о работе Автоматическая система управления железнодорожным переездом