Умный дом

Три подпрограммы выполнения команд

; Подпрограмма включение реле по номеру. ; Запишем в регистр 30h (установить соответствующий номеру реле бит).

Cmdset: CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x0 ; Реле 0.

BTFSC STATUS, Z

BSF 0x30, 0

CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x1 ; Реле 1.

BTFSC STATUS, Z

BSF 0x30, 1

CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x2 ; Реле 2.

BTFSC STATUS, Z

BSF 0x30, 2

CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x3 ; Реле 3. BTFSC STATUS, Z

BSF 0x30, 3 CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x4 ; Реле 4.

BTFSC STATUS, Z

BSF 0x30, 4

CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x5 ; Реле 5.

BTFSC STATUS, Z

BSF 0x30, 5

CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x6 ; Реле 6.

BTFSC STATUS, Z

BSF 0x30, 6

CLRW

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x7 ; Реле 7.

BTFSC STATUS, Z

BSF 0x30, 7

RETURN

; Подпрограмма выключения реле по номеру.

; Запишем в регистр 30h (сбросить соответствующий номеру реле бит).

Cmdreset: CLRW

ADDWF 0x23,0

BCF STATUS, Z

XORLW 0x0 ; Реле 0.

BTFSC STATUS, Z

BCF 0x30, 0

CLRW

ADDWF 0x23,0 BCF STATUS, Z XORLW 0x1 ; Реле 1. BTFSC STATUS, Z BCF 0x30, 1

CLRW

ADDWF 0x23,О

BCF STATUS, Z

XORLW 0x2 ; Реле 2.

BTFSC STATUS, Z

BCF 0x30, 2

CLRW

ADDWF 0x23,0

BCF STATUS, Z

XORLW 0x3 ; Реле 3 .

BTFSC STATUS, Z

BCF 0x30, 3

CLRW

ADDWF 0x23,0

BCF STATUS, Z

XORLW 0x4 ; Реле 4.

BTFSC STATUS, Z

BCF 0x30, 4

CLRW

ADDWF 0x23,0

BCF STATUS, Z

XORLW 0x5 ; Реле 5.

BTFSC STATUS, Z

BCF 0x30, 5

CLRW

ADDWF 0x23,0

BCF STATUS, Z

XORLW 0x6 ; Реле 6.

BTFSC STATUS, Z

BCF 0x30, 6

CLRW

ADDWF 0x23,0

BCF STATUS, Z

XORLW 0x7 ; Реле 7.

BTFSC STATUS, Z

BCF 0x30, 7

RETURN

; Подпрограмма передачи статуса реле

Stat: BCF STATUS, RPl ; Выбор банка 0. BCF STATUS, RPO

CLRW ; Проверим реле 0.

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x0 BTFSC STATUS, Z CALL relO CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x1 BTFSC STATUS, Z CALL rell CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x2 BTFSC STATUS, Z CALL ГЄІ2 CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x3 BTFSC STATUS, Z CALL rel3 CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x4 BTFSC STATUS, Z CALL ГЄІ4 CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x5 BTFSC STATUS, Z CALL ГЄІ5 CLRW

ADDWF 0x23, 0 BCF STATUS, Z XORLW 0x6 BTFSC STATUS, Z CALL ГЄІ6 CLRW

Реле 0.

Проверим реле 1.

Реле 1.

Проверим реле 2.

Реле 2.

Проверим реле 3.

Реле 3.

Проверим реле 4.

Реле 4.

Проверим реле 5.

Реле 5.

Проверим реле 6.

Реле 6.

Проверим реле 7.

ADDWF 0x23, 0

BCF STATUS, Z

XORLW 0x7 ; Реле 7.

BTFSC STATUS, Z

CALL rel7

; теперь это все отправим в передатчик

BSF PORTB, 0 BCF STATUS, RPl BSF STATUS, RPO BSF TXSTA, TXEN BCF STATUS, RPl BCF STATUS, RPO MOVLW 0x52 MOVWF TXREG ; BCF STATUS, RPl BSF STATUS, RPO

Переключим драйвер RS485 на передачу. ; Выбор банка 1.

; Разрешаем передачу. ; Выбор банка 0.

Отправим символ модуля. ; Выбор банка 1.

OutdatO: BTFSS TXSTA, TXIF ; Ждем отправки символа. GOTO outdatO

BCF STATUS, RPl ; Выбор банка 0.

BCF STATUS, RPO

CLRW

ADDWF 0x21,0

MOVWF TXREG ; Отправим первый символ адреса. BCF STATUS, RPl ; Выбор банка 1. BSF STATUS, RPO

Outdatl: BTFSS TXSTA, TXIF ; Ждем отправки символа. GOTO outdatl

BCF STATUS, RPl ; Выбор банка 0.

BCF STATUS, RPO

CLRW

ADDWF 0x22,0

MOVWF TXREG ; Отправим второй символ адреса.

BCF STATUS, RPl ; Выбор банка 1. BSF STATUS, RPO

Outdat2: BTFSS TXSTA, TXIF ; Ждем отправки символа. GOTO outdat2

BCF STATUS, RPl ; Выбор банка 0. BCF STATUS, RPO MOVLW 0x23

MOVWF TXREG ; Отправим символ статуса. BCF STATUS, RPl ; Выбор банка 1. BSF STATUS, RPO

Outdat3: BTFSS TXSTA, TXIF ; Ждем отправки символа. GOTO ou t da t З

BCF STATUS, RPl ; Выбор банка 0.

BCF STATUS, RPO

CLRW

ADDWF 0x23,0 ADDLW 0x30

MOVWF TXREG ; Отправим символ номера реле. BCF STATUS, RPl ; Выбор банка 1. BSF STATUS, RPO

Outdat4: BTFSS TXSTA, TXIF ; Ждем отправки символа. GOTO outdat4

BCF STATUS, RPl ; Выбор банка 0.

BCF STATUS, RPO

CLRW

ADDWF 0x25,0

MOVWF TXREG ; Отправим символ статуса реле. BCF STATUS, RPl ; Выбор банка 1. BSF STATUS, RPO

Outdat5: BTFSS TXSTA, RCIF ; Ждем отправки символа. GOTO outdat5

BCF TXSTA, TXEN ; Запрещаем передачу. BCF STATUS, RPl ; Выбор банка 0. BCF STATUS, RPO

BCF PORTB, 0 ; Переключим драйвер RS485 на прием. RETURN

; Подпрограмма обработки статуса реле.

RelO: BTFSC 0x30, 0 CALL sostn BTFSS 0x30, 0 CALL sostf RETURN rells BTFSC 0x30, 1 CALL sostn BTFSS 0x30, 1 CALL sostf

RETURN rel2: BTFSC 0x30, CALL sostn BTFSS 0x30, CALL sostf RETURN ГЄІЗ: BTFSC 0x30, CALL sostn BTFSS 0x30, CALL sostf RETURN rel4: BTFSC 0x30, CALL sostn BTFSS 0x30, ■ CALL sostf RETURN rel5: BTFSC 0x30, ! CALL sostn BTFSS 0x30, і CALL sostf RETURN rel6: BTFSC 0x30, і CALL sostn BTFSS 0x30, ( CALL sostf RETURN ГЄІ7: BTFSC 0x30, ; CALL sostn BTFSS 0x30, 1 CALL sostf RETURN

; Подпрограммы образования символов состояний.

Sostn: MOVLW 0x4E ; Состояние - включено. MOVWF 0x25 RETURN

Sostf: MOVLW 0x46 ; Состояние - выключено. MOVWF 0x25 RETURN

Если теперь соединить все представленные части граммы, программирование контроллера завершится.

Вставки и примечания, которые я привел выше, появи­лись позже, при наладке модуля, но я решил привести их «досрочно». Очень часто у меня не хватает терпения дочи­тать что-то до конца, мне не терпится начать работу. Я пред­ставил, что подобной чертой характера могу отличаться не только я, и привел все примечания на случай, если и вы уже начали работу за компьютером. Мне очень не хотелось, что­бы вы полностью разочаровались во всем преждевременно.

Мы написали программу для контроллера. Постараемся ее проверить и отладить в программе MPLAB.

Умный дом

Программа для компьютера в KDevelop

Причина, по которой я хочу рассказать о другой среде про­граммирования, именно KDevelop, работающей с операци­онной системой Linux, - в ее большей доступности для мно­гих, чем Visual Basic. Эта среда программирования …

Условные выражения

Условия выражения if должны быть записаны в круглых скобках. Если они истинны, выражение, непосредственно следующее за if, выполняется: // #5 If (usr_rsp == "N" II usr_rsp == V) go_for_.it = …

Вторая версия основной программы на языке С++

/****************^ * TOC o "1-3" h z Copyright (С) 2006 by Vladimir Gololobov * * vgololobov@yandex. ru * * * * This program is free software; you can redistribute it …

Как с нами связаться:

Украина:
г.Александрия
тел. +38 05235 7 41 13 Завод
тел./факс +38 05235  77193 Бухгалтерия
+38 067 561 22 71 — гл. менеджер (продажи всего оборудования)
+38 067 2650755 - продажа всего оборудования
+38 050 457 13 30 — Рашид - продажи всего оборудования
e-mail: msd@inbox.ru
msd@msd.com.ua
Скайп: msd-alexandriya

Схема проезда к производственному офису:
Схема проезда к МСД

Представительство МСД в Киеве: 044 228 67 86
Дистрибьютор в Турции
и странам Закавказья
линий по производству ПСВ,
термоблоков и легких бетонов
ооо "Компания Интер Кор" Тбилиси
+995 32 230 87 83
Теймураз Микадзе
+90 536 322 1424 Турция
info@intercor.co
+995(570) 10 87 83

Оперативная связь

Укажите свой телефон или адрес эл. почты — наш менеджер перезвонит Вам в удобное для Вас время.