48017 (588515), страница 11

Файл №588515 48017 (Охранная система с дистанционным управлением) 11 страница48017 (588515) страница 112016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 11)

BRA intr

INT1_INMOVFF ALARM_DEL,TMR2

BCF INTCON3,0

BRA intr

TM1_INTMOVLW .25

ADDWF ALARM_DEL

MOVLW .250

CPFSEQ ALARM_DEL

BRA rut

CLRF ALARM_DEL

rutDECF TIME_DEL

BTFSS EVENTS,5

BRA sens

DECFSZ UART_DEL

BRA $+4

BSF EVENTS,4;Set flag "CONNECT ERROR"

;Switch HL1..HL3-------------------------------

rtBTFSC HL_STAT,0;

BSF PORTC,0;Apply changes

BTFSC HL_STAT,1;on flag HL_STAT

BSF PORTC,1;

BTFSC HL_STAT,2;(active)

BSF PORTC,2;

BTFSS HL_STAT,0;

BCF PORTC,0;

BTFSS HL_STAT,1;(desactive)

BCF PORTC,1;

BTFSS HL_STAT,2;

BCF PORTC,2;

BCF PIR1,TMR1IF

intrMOVFF BSR_TEMP2,BSR

MOVF W_TEMP2,W

MOVFF STATUS_TEMP2,STATUS

RETFIE

;-------Coder for digits printing----------------------

CODERRLNCF WREG;WREG=WREG*2

ADDWF PCL,F;Step

RETLW 30;'0'

RETLW 31;'1'

RETLW 32;'2'

RETLW 33;'3'

RETLW 34;'4'

RETLW 35;'5'

RETLW 36;'6'

RETLW 37;'7'

RETLW 38;'8'

RETLW 39;'9'

;-------Interrupt subroutines-------------------------

INTMOVWF W_TEMP

MOVFF STATUS,STATUS_TEMP

MOVFF BSR,BSR_TEMP

MOVFF TMR0L,PERIOD;capture timer value

CLRF TMR0L

;-------

anothBTFSC FLAG,2;If parity bit will be received...

BRA PARITY;

BTFSC FLAG,1;If start bit was received...

BRA BIT_AN;

BTFSC FLAG,0;If "begin bit" set,then

BRA RES_AN;goto to analizing bit.

;

BTFSC INTCON,TMR0IF

LFSR FSR1,IRDA1

MOVLW B'00000001';set "begin receiving",

MOVWF FLAG;Reset flag "timer overflow"

CLRF COM_BUF;clear variables

BCF INTCON,TMR0IF

CLRF BIT;

BRA int_end;

RES_ANBTFSC INTCON,TMR0IF;If TMR0 overflow then error

BRA err

;Verifing...

MOVLW 0x6D;4 ms13 ms

CPFSGT PERIOD;normal 15 ms

BRA err;error if time is short

MOVLW 0xCB;6 ms17 ms

CPFSLT PERIOD;

BRA err;error if time is long

BSF FLAG,1;Set flag "START BIT"

BRA int_end

BIT_ANBTFSC INTCON,TMR0IF

BRA err

MOVLW 0x46;23-2.3 ms

CPFSLT PERIOD;12 ms

BRA err;error if time>H1 (normal 10 ms)

MOVLW 0x1A;old=43

CPFSGT PERIOD;0A-0.7 ms3 ms

BRA err;error if time

;END of verifing

RLNCF COM_BUF;

MOVLW 0x30;14

CPFSLT PERIOD;

BSF COM_BUF,0;if time>H0 then bit is "1"

CPFSGT PERIOD;

BCF COM_BUF,0;if time

INCF BIT,F;

MOVLW .8

CPFSLT BIT

BSF FLAG,2;Next bit will be parity

BRA int_end;

PARITYBTFSC INTCON,TMR0IF

BRA err

MOVLW 0x46;23-2.3 ms

CPFSLT PERIOD;12 ms

BRA err;error if time>H1 (normal 10 ms)

MOVLW 0x1A;0A-0.7 msold=43

CPFSGT PERIOD;3 ms

BRA err;error if time

MOVLW 0x30

CPFSLT PERIOD;

BSF FLAG2,0;if time>H0 then bit is "1"

CPFSGT PERIOD;

BCF FLAG2,0;if time

;create received byte

MOVFF IRDA2,COMMAND

MOVFF IRDA3,PASS1

MOVFF IRDA4,PASS2

MOVFF IRDA5,PASS3

MOVFF IRDA6,PASS4

BSF REM_FLAG,3;Set flag "COMMAND" not executed

int_endBCF INTCON,INT0IF

MOVFF BSR_TEMP,BSR

MOVF W_TEMP,W

MOVFF STATUS_TEMP,STATUS

RETFIE

;-------Start of program----------------------------

STARTCLRF PORTA;

CLRF PORTB;Clear

CLRF PORTC;I/O ports

CLRF PORTD;

CLRF PORTE;

MOVLW B'00001111';

MOVWF TRISA;

SETF TRISB;

MOVLW B'11011000';

MOVWF TRISC;

CLRF TRISD;

CLRF TRISE;

MOVLW B'11010101';TMR0 16-bit counter

MOVWF T0CON;subdivider 1:64

;interrupts

MOVLW B'11010000';

MOVWF INTCON;

MOVLW B'10000000';INT1 fall_pulse

MOVWF INTCON2;

MOVLW B'00001000';Enable INT1 interrupt

MOVWF INTCON3;

MOVLW B'00000011';

MOVWF PIE1;interrupt TMR1,TMR2 enable

MOVLW B'00000000';All interrupts low priority

MOVWF IPR1;

MOVLW B'00000000';

MOVWF IPR2;

BSF RCON,7;Приоритетная система прерываний вкл.

;TMR1 setup

MOVLW B'00000001';TMR1 is active

MOVWF T1CON;subdivider 1:1

;TMR2 setup

MOVLW B'00001111';Enable, subdivider 1:16

MOVWF T2CON;

;A/D setup

MOVLW B'00000001';A/D enable

MOVWF ADCON0;CLK is Fosc/4

MOVLW B'01001110';Left justify;0 analog channels

MOVWF ADCON1;VDD and VSS references

;MSSP setup

MOVLW 0x0A;100 kHz

MOVWF SSPADD;Set speed

MOVLW B'00101000';MSSP enabled,

MOVWF SSPCON1;I2C Master mode

;Usart setup

MOVLW B'00100000';Asynchronic,8bit transfer

MOVWF TXSTA;low speed mode

MOVLW B'10010000';UART on

MOVWF RCSTA

MOVLW B'00011001';2400 baud,error +1.67%

MOVWF SPBRG

CLEARLFSR FSR0,00;

clCLRF POSTINC0;

MOVLW .100;

CPFSEQ FSR0L;

BRA cl;

;-------Main program block------------------------------

PROGALFSR FSR1,IRDA1

RCALL I2C_STOP_

MOVLW B'10010000'

MOVWF SLAVE_TRM

MOVFF SLAVE_TRM,I2C_ADDR

MOVLW 0xEE

MOVWF I2C_DATA

RCALL I2C_COM;Command 'start converting'

RCALL LCD_INIT;

CLRF TBLPTRU;Set message adress 7000

MOVLW B'01110000';

MOVWF TBLPTRH;

CLRF TBLPTRL;

RCALL LCD_LD1;

RCALL LCD_LD2;

RCALL LCD_PR1;

RCALL LCD_PR2;Приветствие

RCALL DELL;Pause

RCALL LCD_CLR1

RCALL LCD_CLR2

BSF EVENTS,4

;-------Start program---------------------------------------

CONNECTRCALL M_NO_CONN;Show message "Нет подлючения!"

MOVLW B'00100000';

MOVWF TBLPTRL;Show message "Температура"

RCALL LCD_LD2;

RCALL TERM_DISP;Measure and display temperature

RCALL ADC_CONV

RCALL LCD_PR2

begBTFSC EVENTS,4

RCALL UART_ST

RCALL TERM_DISP;Measure and display temperature

RCALL ADC_CONV

;1-----Start receiving!-----------------

LFSR FSR0,PACK1

PACK_RXRCALL UART_RD

BTFSC EVENTS,4;If CONNECT ERROR then restart

BRA CONNECT

MOVFF UART_DATA,POSTINC0

MOVLW 0x4B

CPFSEQ FSR0L

BRA PACK_RX

MOVFF PACK2,HL_STAT

MOVFF PACK3,TERMAL_L

MOVFF PACK4,TERMAL_H

MOVFF PACK5,AD_VREF

MOVFF PACK6,SENSOR_MODE

;-Transmite-----------------------------------------

PACK_TXMOVLW .16;Set address of device

MOVWF PACK_OUT1;

MOVFF SENS1_STAT,PACK_OUT2;

MOVFF SENS2_STAT,PACK_OUT3;

MOVFF AD,PACK_OUT4;

MOVFF TERMAL,PACK_OUT5;

MOVFF ADD_BYTE,PACK_OUT6

LFSR FSR0,PACK_OUT1;Write data to terminal

txMOVF POSTINC0,W;

RCALL UART_WRT;

RCALL M_DEL;6 bytes...

MOVLW 0x55;

CPFSEQ FSR0L;

BRA tx;

asddRCALL LCD_PR1

RCALL LCD_PR2

;+++++++++++Place for main subroutine+++++++++++++++

BTFSS HL_STAT,7

BRA m_block

BCF SENS1_STAT,5;Reset flag "Change status HL1"

BCF SENS1_STAT,6;Reset flag "Change status HL2"

BCF SENS1_STAT,7;Reset flag "Change status "HL3"

BCF SENS2_STAT,6;Reset flag "Was command from IRDA"

BCF SENS2_STAT,7;Reset flag "Change security mode"

sens_vrCLRF PASS1

CLRF PASS2

CLRF PASS3

CLRF PASS4

BTFSC SENS1_STAT,0;Set flag "perimetr error"

BSF EVENTS,1;if sensors unlock

BTFSC SENS1_STAT,1;

BSF EVENTS,1;

BTFSC SENS1_STAT,2;

BSF EVENTS,1

re2MOVF AD_VREF,W

CPFSLT AD

BSF EVENTS,1

re3MOVF TERMAL_H,W

CPFSLT TERMAL

BSF EVENTS,2;if TERMAL>TERMAL_H

MOVF TERMAL_L,W;

CPFSGT TERMAL;if TERMAL

BSF EVENTS,3;

BTFSS EVENTS,2;

BRA re4

RCALL M_FIRE;FIRE CONTROL

BSF REM_FLAG,5

BRA gym2

re4BTFSS HL_STAT,3;if mode=off then ok

BRA gym

RCALL M_ACES_NO;

BTFSC EVENTS,1;If sensors unlock,

RCALL M_PERIM;Show message "Периметр нарушен"

BTFSC EVENTS,1

BSF REM_FLAG,5

BTFSC EVENTS,3

BSF REM_FLAG,5

BTFSC EVENTS,3

RCALL M_COLD;Show message "Переохлаждение!"

BRA gym2

;+++++++++++End of place for main subroutine+++++++++++++++++++

gymRCALL M_ACES_OK

gym2BTFSS HL_STAT,4;Verifying reset command from PC

BRA main_end

BCF EVENTS,1;Reset perimetr

BCF EVENTS,2;Reset fire

BCF EVENTS,3;Reset cold

BCF EVENTS,4;Reset connect error

BCF PORTC,5;Reset ALARM_LIGHT

BCF PORTA,5;Reset flag for external system

BCF ADD_BYTE,0

BCF REM_FLAG,5;Reset flag ALARM_LIGHT

CLRF PASS_ERR

main_endBRA beg

;++++++++++++++++++++++++++++++++++++++++++++++++++++++

GOTO FINAL

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

;Different subroutines

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

M_DELMOVLW .49

MOVWF CYC2

mdl1DECF CYC2,F

MOVLW .255

MOVWF CYC

mdlDECF CYC,F

TSTFSZ CYC

BRA mdl

TSTFSZ CYC2

BRA mdl1

RETURN

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

UART_WRTMOVWF TXREG

BTFSS PIR1,4

BRA $-2

BCF PIR1,4

RETURN

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

UART_STBCF EVENTS,0

BCF EVENTS,1

BCF EVENTS,2

BCF EVENTS,3

BCF EVENTS,5

BCF PIR1,5

BCF EVENTS,4

BCF RCSTA,4

BSF RCSTA,4

ur_stBTFSS PIR1,5

BRA $-2

BCF PIR1,5

MOVFF RCREG,UART_DATA

MOVLW .238

CPFSEQ UART_DATA

BRA ur_st

RETURN

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

UART_RDRCALL UART_WAIT

MOVFF RCREG,UART_DATA

RETURN

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

DELLMOVLW .8;8-Time delay.

MOVWF TIME_DEL;Variable LSD is

tmdTSTFSZ TIME_DEL

BRA tmd

RETURN

;--------Sub-zero termo-correction-------------------------

TERM_CORRMOVLW 2D;"-"

MOVWF MSD;MSD used temporary

BCF SENS1_STAT,3

MOVF I2C_BYTE1,W

SETF I2C_BYTE1

SUBWF BYTE1

RETURN

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

TERMOSCANMOVFF SLAVE_TRM,I2C_ADDR;Slave-address DS1621

MOVLW 0xAA;Command "Read temperature"

MOVWF I2C_DATA

RCALL I2C_2RD

RETURN

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

M_NO_CONNMOVLW B'1110000';

MOVWF TBLPTRL;Show message "Нет подключения!"

RCALL LCD_LD1;

RCALL LCD_PR1

RETURN

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

M_ACES_OKMOVLW B'00110000';

MOVWF TBLPTRL;Show message "Доступ разрешен"

RCALL LCD_LD1;

RCALL LCD_PR1

RETURN

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

M_FIREMOVLW B'01000000';

MOVWF TBLPTRL;Show message "Пожарная тревога!"

RCALL LCD_LD1;

RCALL LCD_PR1

BSF PORTA,5;Set flag for external system

RETURN

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

M_PERIMMOVLW B'01010000';

MOVWF TBLPTRL;Show message "Периметр нарушен!"

RCALL LCD_LD1;

RCALL LCD_PR1

BSF PORTA,5;Set flag for external system

RETURN

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

M_COLDMOVLW B'10000000';

MOVWF TBLPTRL;Show message "Переохлаждение!"

RCALL LCD_LD1;

RCALL LCD_PR1;

BSF PORTA,5;

RETURN

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

M_ACES_NOMOVLW B'01100000';

MOVWF TBLPTRL;Show message "Доступ запрещен!"

RCALL LCD_LD1;

RCALL LCD_PR1

RETURN

;-----------A/D Converting----------------------------------

ADC_CONVMOVLW D'20'

MOVWF DEL_ADC

DECFSZ DEL_ADC,F

BRA $-2

BSF ADCON0,GO;Start A/D conversion

WaitBTFSS PIR1,ADIF;Wait for conversion to complete

BRA $-2

BCF PIR1,ADIF

MOVFF ADRESH,AD

RETURN

;-------Looped end of program----------------------------

FINALNOP

BRA FINAL

END

Характеристики

Тип файла
Документ
Размер
56,56 Mb
Учебное заведение
Неизвестно

Список файлов ВКР

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее