Автор работы: Пользователь скрыл имя, 08 Сентября 2011 в 14:35, курсовая работа
В последнее время в нашей стране, да и, пожалуй, во всём мире стала наиболее актуальна проблема безопасности объекта, а также проблема информационной безопасности. Системы электронных охранных сигнализаций являются одним из главных препятствий на пути несанкционированного проникновения на объект.
Введение 3
1 Система охранной сигнализации на промышленном объекте: структура и спецификация 8
1.1 Алгоритм работы данной системы охранной сигнализации 12
1.2 Индикатор, мультиплексор, датчики: понятия, виды и характеристики 15
1.3 Микроконтроллер: его виды и характеристики 40
2 Монтаж системы сигнализации на охраняемом объекте для наилучшего функционирования 76
2.1 Планирование разводки кабеля и установка разнотипных датчиков 76
3 Разработка программного обеспечения для микроконтроллера 84
3.1 Выбор инструментальных средств (среда Ассемблер) 84
3.2 Подпрограмма для микроконтроллера 94
4 Результаты функционирование системы охранной сигнализации промышленного объекта 95
4.1 Пакет программного обеспечения для функционирования микроконтроллера 95
4.2 Экономическое обоснование 100
Заключение 103
Список используемых источников 104
Типичными командами языка ассемблера являются (большинство примеров даны для Intel-синтаксиса архитектуры x86):
Команды пересылки данных (mov, lea и др.)
Арифметические команды (add, sub, imul и др.)
Логические и побитовые операции (or, and, xor, shr и др.)
Команды управления ходом выполнения программы (jmp, loop, ret и др.)
Команды вызова прерываний (иногда относят к командам управления): int, into
Команды ввода/вывода в порты (in, out)
Для
микроконтроллеров и
cbne — перейти, если не равно
dbnz — декрементировать, и если результат ненулевой, то перейти
cfsneq — сравнить, и если не равно, пропустить следующую команду
Инструкции.
Типичный формат записи команд:
[метка:] опкод [операнды] [;комментарий]
где опкод (код операции) — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы (повторения, изменения типа адресации и пр.).
В качестве операндов могут выступать константы, адреса регистров, адреса в оперативной памяти и пр. Различия между синтаксисом Intel и AT&T касаются в основном порядка перечисления операндов и указания различных методов адресации.
Используемые мнемоники обычно одинаковы для всех процессоров одной архитектуры или семейства архитектур (среди широко известных — мнемоники процессоров и контроллеров x86, ARM, SPARC, PowerPC, M68k). Они описываются в спецификации процессоров. Возможные исключения:
если ассемблер использует кроссплатформенный AT&T-синтаксис (оригинальные мнемоники приводятся к синтаксису AT&T);
если изначально существовало два стандарта записи мнемоник (система команд была наследована от процессора другого производителя).
Например,
процессор Zilog Z80 наследовал систему
команд Intel i8080, расширил её и поменял
мнемоники (и обозначения регистров)
на свой лад. Процессоры Motorola Fireball наследовали
систему команд Z80, несколько её урезав.
Вместе с тем, Motorola официально вернулась
к мнемоникам Intel и в данный момент половина
ассемблеров для Fireball работает с мнемониками
Intel, а половина — с мнемониками Zilog.
Директивы Ассемблера.
Программа
на языке ассемблера может содержать
директивы: инструкции, не переводящиеся
непосредственно в машинные команды,
а управляющие работой
-определение данных (констант и переменных),
-управление организацией программы в памяти и параметрами выходного файла,
-задание режима работы компилятора,
-всевозможные абстракции (то есть элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования),
-макросы.
Пример программы
Примеры программы Hello, world! для разных платформ и разных диалектов:
Пример программы для Windows на диалекте MASM
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
.data
msg db "Hello, world", 13, 10
len equ $-msg
.data?
written dd ?
.code
start:
push -11
call GetStdHandle
push 0
push offset written
push len
push offset msg
push eax
call WriteFile
push 0
call ExitProcess
end
start
Пример программы для Linux/x86 на диалекте NASM.
SECTION .data
msg: db “Hello, world”,10
len: equ $-msg
SECTION .text
global _start
_start: ove ax, len
ove ax, msg
mov ebx, 1 ; stdout
ove ax, 4 ; write(2)
int 0x80
mov ebx, 0
ove ax, 1 ; exit(2)
Пример программы для MS-DOS на диалекте TASM.
.MODEL TINY
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
ORG 100h
START:
mov ah,9
mov dx,OFFSET Msg
int 21h
int 20h
Msg DB 'Hello World',13,10,'$'
CODE ENDS
END
START int 0x80
Происхождение и критика термина «язык ассемблера».
Данный тип языков получил своё название от названия транслятора (компилятора) с этих языков — ассемблера (англ. assembler — сборщик). Название обусловлено тем, что программа «автоматически собиралась», а не вводилась вручную покомандно непосредственно в кодах. При этом наблюдается путаница терминов: ассемблером нередко называют не только транслятор, но и соответствующий язык программирования («программа на ассемблере»).
Использование
термина «язык ассемблера»
В СССР язык ассемблера ранее называли «автокод».
Ассе́мблер (от англ. assembler — сборщик) — компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.
Как и сам язык (ассемблер), ассемблеры, как правило, специфичны конкретной архитектуре, операционной системе и варианту синтаксиса языка. Вместе с тем существуют мультиплатформенные или вовсе универсальные (точнее, ограниченно-универсальные, потому что на языке низкого уровня нельзя написать аппаратно-независимые программы) ассемблеры, которые могут работать на разных платформах и операционных системах. Среди последних можно также выделить группу кросс-ассемблеров, способных собирать машинный код и исполняемые модули (файлы) для других архитектур и ОС.
Ассемблирование
может быть не первым и не последним
этапом на пути получения исполняемого
модуля программы. Так, многие компиляторы
с языков программирования высокого уровня
выдают результат в виде программы на
языке ассемблера, которую в дальнейшем
обрабатывает ассемблер. Также результатом
ассемблирования может быть не исполняемый,
а объектный модуль, содержащий разрозненные
и непривязанные друг к другу части машинного
кода и данных программы, из которого (или
из нескольких объектных модулей) в дальнейшем
с помощью программы-компоновщика («линкера»)
может быть скомпонован исполнимый файл.
Архитектура x86.
Ассемблеры для DOS.
Наиболее
известными ассемблерами для операционной
системы DOS являлись Borland Turbo Assembler (TASM),
Microsoft Macro Assembler (MASM) и Watcom Assembler (WASM). Также
в своё время был популярен
простой ассемблер A86. Интерфейс представлен
на рисунке 22.
Windows. (рисунок 23)
При
появлении операционной системы Windows
появилось расширение TASM, именуемое
TASM32, позволившее создавать
Microsoft
поддерживает свой продукт под
названием Microsoft Macro Assembler. Она продолжает
развиваться и по сей день, последние
версии включены в наборы DDK. Но версия
программы, направленная на создание программ
для DOS, не развивается. Кроме того, Стивен
Хатчессон создал пакет для программирования
на MASM под названием «MASM32».
GNU и GNU/Linux.
В состав операционной системы GNU входит пакет binutils, включающий в себя ассемблер gas (GNU Assembler), использующий AT&T-синтаксис, в отличие от большинства других популярных ассемблеров, которые используют Intel-синтаксис.
На
рисунке 24 представлен
GNU Assembler.
Переносимые ассемблеры.
Также существует открытый проект ассемблера, версии которого доступны под различные операционные системы и который позволяет получать объектные файлы для этих систем. Называется этот ассемблер NASM (Netwide Assembler).
Yasm — это переписанная с нуля версия NASM под лицензией BSD (с некоторыми исключениями).
flat
assembler (fasm) — молодой ассемблер
под модифицированной для
Архитектуры RISC.
MCS-51 (Intel 8051) — классическая архитектура микроконтроллера. Для неё существует кросс-ассемблер ASM51, выпущенный корпорацией MetaLink.
Кроме того, многие фирмы — разработчики программного обеспечения, такие как IAR или Keil, представили свои варианты ассемблеров. В ряде случаев применение этих ассемблеров оказывается более эффективным благодаря удобному набору директив и наличию среды программирования, объединяющей в себе профессиональный ассемблер и язык программирования Си, отладчик и менеджер программных проектов.
AVR.
На данный момент существуют 2 компилятора производства Atmel (AVRStudio 3 и AVRStudio4). Вторая версия — попытка исправить не очень удачную первую.
В рамках проекта AVR-GCC (он же WinAVR) существует компилятор avr-as (это портированный под AVR ассемблер GNU as из GCC).
Также существует свободный минималистический компилятор avra
Ассемблирование и компилирование
Процесс
трансляции программы на языке ассемблера
в объектный код принято называть ассемблированием.
В отличие от компилирования, ассемблирование
— более или менее однозначный и обратимый
процесс. В языке ассемблера каждой мнемонике
соответствует одна машинная инструкция,
в то время как в языках программирования
высокого уровня за каждым выражением
может скрываться большое количество
различных инструкций. В принципе, это
деление достаточно условно, поэтому иногда
трансляцию ассемблерных программ также
называют компиляцией.
3.2
Подпрограмма для
Информация о работе Система охранной сигнализации промышленного объекта на базе разнотипных датчиков