Система охранной сигнализации промышленного объекта на базе разнотипных датчиков

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Пояснительная записка Сидоренко.doc

— 1.32 Мб (Скачать файл)

         15    А. Д. Шишкин. Методическое пособие для выполнения дипломного и курсового проектирования. СПб,-2008. изд. РГГМУ.  

     Приложение  А

     Система команд микроконтроллера семейства 8051.

 
Название  команды Мнемокод КОП Т Б Ц Операция
Пересылка в аккумулятор из регистра (n=0÷7) MOV A, Rn 11101rrr 1 1 1 (A) ¬ (Rn)
Пересылка в аккумулятор прямоадресуемого байта MOV A, ad 11100101 3 2 1 (A) ¬ (ad)
Пересылка в аккумулятор байта из РПД   (i=0,1) MOV A, @Ri 1110011i 1 1 1 (A) ¬ ((Ri))
Загрузка  в аккумулятор константы MOV A, #d 01110100 2 2 1 (A) ¬ #d
Пересылка в регистр из аккумулятора MOV Rn, A 11111rrr 1 1 1 (Rn) ¬ (A)
Пересылка в регистр прямоадресуемого байта MOV Rn, ad 10101rrr 3 2 2 (Rn) ¬ (ad)
Загрузка  в регистр константы MOV Rn, #d 01111rrr 2 2 1 (Rn) ¬ #d
Пересылка по прямому адресу аккумулятора MOV ad, A 11110101 3 2 1 (ad) ¬ (A)
Пересылка по прямому адресу регистра MOV ad, Rn 10001rrr 3 2 2 (ad) ¬ (Rn)
Пересылка прямоадресуемого байта по прямому  адресу MOV add, ads 10000101 9 3 2 (add) ¬ (ads)
Пересылка байта из РПД по прямому адресу MOV ad, @Ri 1000011i 3 2 2 (ad) ¬ ((Ri))
Пересылка по прямому адресу константы MOV ad, #d 01110101 7 3 2 (ad) ¬ #d
Пересылка в РПД из аккумулятора MOV @Ri, A 1111011i 1 1 1 ((Ri)) ¬ (A)
Пересылка в РПД прямоадресуемого байта MOV @Ri, ad 0110011i 3 2 2 ((Ri)) ¬ (ad)
Пересылка в РПД константы MOV @Ri, #d 0111011i 2 2 1 ((Ri)) ¬ #d
Загрузка  указателя данных MOV DPTR, #d16 10010000 13 3 2 (DPTR) ¬ #d16
Пересылка в аккумулятор байта из ПП MOVC A, @A+DPTR 10010011 1 1 2 ¬ ((A) +(DPTR))
Пересылка в аккумулятор байта из ПП MOVC A, @A+PC 10000011 1 1 2 (PC) ¬ (PC)+1,

(A) ¬ ((A)+(PC))

Название  команды Мнемокод КОП Т Б Ц Операция
Пересылка в аккумулятор байта из ВПД MOVX A, @Ri 1110001i 1 1 2 (A) ¬ ((Ri))
Пересылка в аккумулятор байта из расширенной ВПД MOVX A,@DPTR 11100000 1 1 2 (A) ¬ ((DPTR))
Пересылка в ВПД из аккумулятора MOVX @Ri, A 1111001i 1 1 2 ((Ri)) ¬ (A)
Пересылка в расширенную ВПД из аккумулятора MOVX @DPTR,A 11110000 1 1 2 ((DPTR)) ¬ (A)
Загрузка  в стек PUSH ad 11000000 3 2 2 (SP) ¬ (SP) + 1, ((SP)) ¬ (ad)
Извлечение  из стека POP ad 11010000 3 2 2 (ad) ¬ (SP),

(SP) ¬ (SP) - 1

Обмен аккумулятора с регистром XCH A, Rn 11001rrr 1 1 1 (A) ↔ (Rn)
Обмен аккумулятора с прямоадресуемым байтом XCH A, ad 11000101 3 2 1 (A) ↔ (ad)
Обмен аккумулятора с байтом из РПД XCH A, @Ri 1100011i 1 1 1 (A) ↔ ((Ri))
Обмен младших тетрад аккумулятора и байта  РПД XCHD A, @Ri 1101011i 1 1 1 (A0…3) ↔((Ri)0…3)
Сложение  аккумулятора с регистром (n=0÷7) ADD A, Rn 00l01rrr 1 1 1 (A) ¬ (A) + (Rn)
Сложение  аккумулятора с прямоадресуемым  байтом ADD A, ad 00100101 3 2 1 (A) ¬ (A) + (ad)
Сложение  аккумулятора с байтом из РПД (i = 0,1) ADD A, @Ri 0010011i 1 1 1 (A) ¬ (A) + ((Ri))
Сложение  аккумулятора с константой ADD A, #d  00100100 2 2 1 (A) ¬ (A) + #d
Сложение  аккумулятора с регистром и переносом ADDC A, Rn 00111rrr 1 1 1 (A) ¬ (A) + (Rn) + (C)
Сложение  аккумулятора с прямоадресуемым  байтом и переносом ADDC A, ad 00110101 3 2 1 (A) ¬ (A) + (ad) + (C)
Сложение  аккумулятора с байтом из РПД и переносом ADDC A, @Ri 0011011i 1 1 1 (A) ¬ (A) + ((Ri)) + (C)
Сложение  аккумулятора с константой и переносом ADDC A, #d 00110100 2 2 1 (A) ¬ (A) + # d + (C)
Десятичная  коррекция аккумулятора DA A 11010100  1 1 1 Если (А0…3)>9 или ((AC)=1),то(А0…3)¬0…З) + 6, затем если (А4…7) >9 или ((С)=1), то (А4…7) ¬4…7) + 6
Вычитание из аккумулятора регистра и заёма SUBB A, Rn 10011rrr 1 1 1 (A) ¬ (A) - (C) - (Rn)
Вычитание из аккумулятора прямоадресуемого байта  и заема SUBB A, ad 10010101 3 2 1 (A) ¬ (A) - (C) - ((ad))
Вычитание из аккумулятора байта РПД и заема SUBB А, @Ri  1001011i 1 1 1 (A) ¬ (A) - (C) - ((Ri))
Вычитание из аккумулятора константы и заема SUBB А, d 10010100 2 2 1 (A) ¬ (A) - (C) - #d
Инкремент аккумулятора INC А 00000100 1 1 1 (A) ¬ (A) + 1
Инкремент регистра INC Rn 00001rrr 1 1 1 (Rn) ¬ (Rn) + 1
Инкремент прямоадресуемого байта INC ad 00000101 3 2 1 (ad) ¬ (ad) + 1
Инкремент байта в РПД INC @Ri 0000011i 1 1 1 ((Ri)) ¬ ((Ri)) + 1
Инкремент указателя данных INC DPTR 10100011 1 1 2 (DPTR ) ¬ (DPTR) + 1
Декремент аккумулятора DEC A 00010100 1 1 1 (A) ¬ (A) – 1
Декремент регистра DEC Rn 00011rrr 1 1 1 (Rn) ¬ (Rn) – 1
Декремент прямоадресуемого байта DEC ad 00010101 3 2 1 (ad) ¬ (ad) – 1
Декремент байта в РПД DEC @Ri 0001011i 1 1 1 ((Ri)) ¬ ((Ri)) - 1
Умножение аккумулятора на регистр В MUL AB 10100100 1 1 4 (B)(A) ¬ (A)*(В)
Деление аккумулятора на регистр В DIV AB 10000100 1 1 4 (B).(A) ¬ (A)/(В)
 
     Логическое  И аккумулятора и регистра      ANL A, Rn      01011rrr      1      1      1      (A) ¬ (A) AND (Rn)
     Логическое И аккумулятора и прямоадресуемого байта      ANL A, ad      01010101      3      2      1      (A) ¬ (A) AND (ad)
     Логическое  И аккумулятора и байта из РПД      ANL A, @Ri      0101011i      1      1      1      (A) ¬ (A) AND ((Ri))
     Логическое  И аккумулятора и константы      ANL A, #d      01010100      2      2      1      (A) ¬ (A) AND #d
     Логическое  И прямоадресуемого байта и аккумулятора      ANL ad, A      01010010      3      2      1      (ad) ¬ (ad) AND (A)
     Логическое  И прямоадресуемого байта и константы      ANL ad, #d      01010011      7      3      2      (ad) ¬ (ad) AND #d
     Логическое  ИЛИ аккумулятора и регистра      ORL A, Rn      01001rrr      1      1      1      (A) ¬ (A) OR (Rn)
     Логическое  ИЛИ аккумулятора и прямоадресуемого байта      ORL A, ad      01000101      3      2      1      (A) ¬ (A) OR (ad)
     Логическое  ИЛИ аккумулятора и байта из РПД      ORL A, @Ri      0100011i      1      1      1      (A) ¬ (A) OR ((Ri))
     Логическое  ИЛИ аккумулятора и константы      ORL A, #d      01000100      2      2      1      (A) ¬ (A) OR #d
     Логическое  ИЛИ прямоадресуемого байта и  аккумулятора      ORL ad, A      01000010      3      2      1      (ad) ¬ (ad) OR (A)
     Логическое  ИЛИ прямоадресуемого байта и  константы      ORL ad, #d      01000011      7      3      2      (ad) ¬ (ad) OR #d
     Исключающее ИЛИ аккумулятора и регистра      XRL A, Rn      01101rrr      1      1      1      (A) ¬ (A) XOR (Rn)
     Исключающее ИЛИ аккумулятора и прямоадресуемого байта      XRL A, ad      01100101      3      2      1      (A) ¬ (A) XOR (ad)
     Исключающее ИЛИ аккумулятора и байта из РПД      XRL A, @Ri      0110011i      1      1      1      (A) ¬ (A) XOR ((Ri))
     Исключающее ИЛИ аккумулятора и константы      XRL A, #d      01100100      2      2      1      (A) ¬ (A) XOR #d
     Исключающее ИЛИ прямоадресуемого байта и  аккумулятора      XRL ad, A      01100010      3      2      1      (ad) ¬ (ad) XOR (A)
     Исключающее ИЛИ прямоадресуемого байта и  константы      XRL ad, #d      01100011      7      3      2      (ad) ¬ (ad) XOR #d
     Сброс аккумулятора      CLR A      11100100      1      1      1      (A) ¬ 0
     Инверсия  аккумулятора      CPL A      11110100      1      1      1      (A) ¬ NOT(A)
     Сдвиг аккумулятора влево циклический      RL A      00100011      1      1      1      (An+1) ¬ (An), n=0÷6, (A0) ¬ (A7)
     Сдвиг аккумулятора влево через перенос      RLC A      00110011      1      1      1      (An+1) ¬ (An), n=0÷6

     (A0) ¬ (C), (C) ¬(A7)

     Сдвиг аккумулятора вправо циклический      RR A      00000011      1      1      1      (An) ¬ (An+1), n=0÷6, (A7) ¬ (A0)
     Сдвиг аккумулятора вправо через перенос      RRC A      00010011      1      1      1      (An) ¬ (An+1), n=0÷6

     (A7) ¬ (C), (C) ¬(A0)

     Обмен местами тетрад в аккумуляторе      SWAP A      11000100      1      1      1      (A0…3) ↔ (A4…7)
 
     Сброс переноса      CLR С      11000011      1      1      1      (C) ¬ 0
     Сброс бита      CLR bit      11000010      4      2      1      (b) ¬ 0
     Установка переноса      SETB С      11010011      1      1      1      (C) ¬ 1
     Установка бита      SETB bit      11010010      4      2      1      (b) ¬ 1
     Инверсия  переноса      CPL С      10110011      1      1      1      (C) ¬ NOT(C)
     Инверсия  бита      CPL bit      10110010      4      2      1      (b) ¬ NOT(b)
     Логическое  И бита и переноса      ANL С, bit      10000010      4      2      2      (C) ¬ (C) AND (b)
     Логическое  И инверсии бита и переноса      ANL С, /bit      10110000      4      2      2      (C) ¬ (C) AND (NOT(b))
     Логическое  ИЛИ бита и переноса      ORL С, bit      01110010      4      2      2      (C) ¬ (C) OR (b)
     Логическое  ИЛИ инверсии бита и переноса      ORL С, /bit      10100000      4      2      2      (C) ¬ (C) OR (NOT(b))
     Пересылка бита в перенос      MOV С, bit      10100010      4      2      1      (C) ¬ (b)
     Пересылка переноса в бит      MOV bit, С      10010010      4      2      2      (b) ¬ (C)
     Длинный переход в полном объеме ПП      LJMP ad16      00000010      12      3      2      (PC) ¬ ad16
     Абсолютный  переход внутри страницы в 2 Кб      AJMP ad11      a10a9a800001      6      2      2      (PC) ¬ (PC) + 2, (PC0-10) ¬ ad11
     Короткий  относительный переход внутри 
страницы в 256 байт
     SJMP rel      10000000      5      2      2      (PC) ¬ (PC) + 2, (PC) ¬ (PC) +rel
     Косвенный относительный переход      JMP @A+DPTR      01110011      1      1      2      (PC) ¬ (A) + (DPTR)
     Переход, если аккумулятор равен нулю      JZ rel      01100000      5      2      2      (PC)¬(PC)+2, если (A)=0, то (PC)¬(PC)+rel
     Переход, если аккумулятор не равен нулю      JNZ rel      01110000      5      2      2      (PC)¬(PC)+2, если (A)≠0, то (PC)¬(PC)+rel
     Переход, если перенос равен единице      JC rel      01000000      5      2      2      (PC)¬(PC)+2, если (С)=1, то (PC)¬(PC)+rel
     Переход, если перенос равен нулю      JNC rel      01010000      5      2      2      (PC)¬(PC)+2, если (С)=0, то (PC)¬(PC)+rel
     Переход, если бит равен единице      JB bit, rel      00100000      11      3      2      (PC)¬(PC)+3, если (b)=l, то (PC)¬(PC)+rel
     Переход, если бит равен нулю      JNB bit, rel      00110000      11      3      2      (PC)¬(PC)+3, если (b)=0, то (PC)¬(PC)+rel
     Переход, если бит установлен, с последующим  сбросом бита      JBC bit, rel      00010000      11      3      2      (PC) ¬ (PC) + 3, если (b)=1, 
то (b)
¬ 0 и (PC)¬ (PC) + rel
     Декремент регистра и переход, если не нуль      DJNZ Rn, rel      11011rrr      5      2      2      (PC) ¬ (PC) + 2, (Rn) ¬ (Rn) - 1,

     если (Rn) ≠ 0, то (PC) ¬ (PC) + rel

     Декремент прямоадресуемого байта и переход, если не нуль      DJNZ ad, rel      11010101      8      3      2      (PC) ¬ (PC) + 2, (ad) ¬ (ad) - 1, 
если (ad) ≠ 0, то (PC)
¬ (PC) + rel
     Сравнение аккумулятора с прямоадресуемым  байтом и переход, если не равно      CJNE A, ad, rel      10110101      8      3      2      (PC) ¬ (PC) + 3,если (A) ≠ (ad), то (PC) ¬ (PC) + rel,если (A) < (ad), то (C) ¬ 1, иначе (C) ¬ 0
     Сравнение аккумулятора с константой и 
переход, если не равно
     CJNE A, #d, rel      10110100      10      3      2      (PC) ¬ (PC) + 3,если (A) ≠ #d, то (PC) ¬ (PC) + rel,если (A) < #d, то (C) ¬ 1, иначе (С) ¬ 0
     Сравнение регистра с константой и переход, если не равно      CJNE Rn, #d, rel      10111rrr      10      3      2      (PC) ¬ (PC) + 3,если (Rn) ≠ #d, то (PC) ¬ (PC) + rel,если (Rn) < #d, то (C) ¬ 1, иначе (С) ¬ 0
     Сравнение байта в РПД с константой и  переход, если не равно      CJNE @Ri,#d,rel      1011011i      10      3      2      (PC) ¬ (PC) + 3,если ((Ri)) ≠ #d, то (PC) ¬ (PC) + rel,если ((Ri)) < #d, то (C) ¬ 1, иначе (C) ¬ 0
     Длинный вызов подпрограммы      LCALL adl6      00010010      12      3      2      (PC) ¬ (PC) + 3, (SP) ¬ (SP) +1,

     ((SP)) ¬ (PC0…7), (SP) ¬ (SP) + 1,

     ((SP)) ¬ (PC8…15), (PC) ¬ ad16

     Абсолютный  вызов подпрограммы в пределах страницы в 2 Кб      ACALL ad11      a10a9a810001      6      2      2      (PC) ¬ (PC) + 2, (SP) ¬ (SP) + 1,

     ((SP)) ¬ (PC0…7), (SP) ¬ (SP) + 1,

     ((SP)) ¬ (PC8…15), (PC0-10) ¬ ad11

     Возврат из подпрограммы      RET      00100010      1      1      2      (PC8…15) ¬ ((SP)), (SP) ¬ (SP) - 1,

     (PC0…7) ¬ ((SP)), (SP) ¬ (SP) – 1

     Возврат из подпрограммы обработки 
прерывания
     RETI      00110010      1      1      2      (PC8…15) ¬ ((SP)), (SP) ¬ (SP) - 1,

     (PC0…7) ¬ ((SP)), (SP) ¬ (SP) – 1

     Пустая  операция      NOP      00000000      1      1      1      (PC) ¬ (PC) + 1
 
 
 

 

     Приложение Б 

     Подпрограмма  основного опроса датчиков, передача сигнала на последовательный порт (модем) адреса датчика при его ;срабатывании.

     OPROS:               

     в P1.0..P1.3 записывается адресующий код  мультиплексора – код

     проверяемого  датчика

     ADDRESS_BIT0 EQU P1.0 ;адрес бита порта P1.0

     ADDRESS_BIT1 EQU P1.1 ;адрес бита порта P1.1

     ADDRESS_BIT2 EQU P1.2 ;адрес бита порта P1.2

     ADDRESS_BIT3 EQU P1.3 ;адрес бита порта P1.3

     TEMP EQU R1 ;адрес регистра R1

     P0.0, P0.1 – биты выходного сигнала  мультиплексоров №1 и №2 соответственно

     BIT_Q_MUX1 EQU P0.0 ;адрес бита порта P0.0

     BIT_Q_MUX2 EQU P0.1 ;адрес бита порта P0.1 

     CLR A ;сброс аккумулятора

     CLR P1.4 ;разрешение работы мультиплексора №1  

     CLR P1.5 ;разрешение работы мультиплексора №2  

     CALL INIT ;вызов подпрограммы инициализации последовательного ;порта  

     START_OPROS:

     MOV C,ACC.0 ;запись адреса проверяемого ;датчика

     MOV ADDRESS_BIT0,С

     в порты P1.0..P1.3 через бит ;переноса

     MOV C,ACC.1

     MOV ADDRESS_BIT1,C

     MOV C,ACC.2

     MOV ADDRESS_BIT2,C

     MOV C,ACC.3

     MOV ADDRESS_BIT3,C

     JNB BIT_Q_MUX1,NOT_ERR

     если  не сработал датчик

     подсоединенный  к 1-му

     мультиплексору, то проверить

     датчик  по такому же адресу 2-го

     мультиплексора

     CLR TEMP ;очищаем регистр, для временного     хранения адреса датчика

     MOV TEMP,A ;заносим адрес сработавшего датчика

     ORL A,#00010000B

     4-й  бит аккумулятора    обозначает  1-й мультиплексор

     CALL SP_OUT ;вызов подпрограммы передачи ;данных о сработавшем датчике через последовательный порт

     MOV A,TEMP ;восстанавливаем значение адреса ;датчика

     NOT_ERR:

     JNB BIT_Q_MUX2,END_OPROS

     если  не сработал датчик ;подсоединенный ко 2-му ;мультиплексору, то продолжить сканирование

     CLR TEMP ;очищаем регистр, для временного ;хранения адреса датчика

     MOV TEMP,A ;заносим адрес сработавшего ;датчика

     ORL A,#00100000B

     5-й  бит аккумулятора обозначает  ;2-й мультиплексор

     CALL SP_OUT ;вызов подпрограммы передачи ;данных о сработавшем датчике через последовательный порт

     MOV A,TEMP ;восстанавливаем значение адреса ;датчика

     END_OPROS:

     CJNE A,#00001111B,NOT_EXIT

     если  была опрошена последняя ;пара датчиков, то

     RET ;возвращение из подпрограммы ;опроса датчиков

     NOT_EXIT:

     INC A ;увеличение аккумулятора на 1, для опроса следующей пары датчиков

     JMP START_OPROS

     продолжаем  опрос

       Подпрограмма инициализации последовательного  порта в режиме 3 со скоростью передачи данных 2400 бод.

     INIT: MOV SCON,#00100010B

           MOV TMOD,#00100000B

           ;настройка Т/С1

     MOV PCON,#0 ;сброс бита SMOD

     MOV TH1,#<.NOT.13+1

     K=f/(12*32*0.0024)= 13, где ;f=12МГц есть частота синхронизации  микроконтроллера

           SET TR1 ;включить Т/С1

           RET ;вернуться из подпрограммы

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

     SP_OUT: MOV C,P ;пересылка контрольного бита

Информация о работе Система охранной сигнализации промышленного объекта на базе разнотипных датчиков