Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Противопожарная система 
:(
    Опции темы
CNN91
Дата 7.12.2011, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.12.2011

Репутация: нет
Всего: нет



Помогите пожалуйста с написанием программы для обработки сигнала, поступающего на мк8051 с двух датчиков (датчик задымленности и датчик температуры).
PM MAIL   Вверх
UniBomb
Дата 8.12.2011, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



CNN91, ты хочешь, что бы за тебя написали бесплатно или за вознаграждение?
PM MAIL ICQ Skype   Вверх
Mazzi
Дата 8.12.2011, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



А что у тебя не получается? Выложи свой код.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
CNN91
Дата 8.12.2011, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.12.2011

Репутация: нет
Всего: нет



  DQ       BIT P3.7 ; 1 wire line
   swpH     equ  0d2H
   swpL     equ  0ffH
   WDLSB    DATA 30H ;
   WDMSB    DATA 31H ;
;***************************************************************
   ORG 0000H
   LJMP MAIN
   ORG 000BH
   LJMP TMR0   ; Timer0 isr

;********************************************************
; Timer0 Interrupt Service Routine
TMR0:    MOV   TH0,#swpH 
         MOV   TL0,#swpL
         JB    21H,DSL
         MOV   P0,42H
         ORL   P0,#00100000B
         SJMP  EXIT
DSL:  
         MOV   P0,43H
         ORL   P0,#00010000B
EXIT: 
         CPL   21H
         RETI

; Main program
MAIN:    
TOINIT: 
         CLR   EA
         MOV   TMOD,#01H
         MOV   TH0,#swpH
         MOV   TL0,#swpL
         SETB  EA
         SETB  ET0
         SETB  TR0

;***********************************************************       
;
         MOV   R2,#2
         MOV   R0,#42H ;
OVER:
         MOV   @R0,#00H; 
         INC   R0
         DJNZ  R2,OVER
   
LOOP: 
         LCALL DSWD ;      
         SJMP  LOOP

;**********************************************************
; Read a temperature from the DS18B20
DSWD:
         LCALL RSTSNR      ; Init of the DS18B20 
         JNB   F0,KEND     
         MOV   R0,#0CCH
         LCALL SEND_BYTE    
         MOV   R0,#44H     
         LCALL SEND_BYTE   ; Send a Convert Command   
         SETB  EA
         MOV   48H,#1      
SS2: 
         MOV   49H,#255
SS1:
         MOV   4AH,#255
SS0: 
         DJNZ  4AH,SS0
         DJNZ  49H,SS1
         DJNZ  48H,SS2
         CLR   EA
         LCALL RSTSNR
         JNB   F0,KEND
         MOV   R0,#0CCH       
         LCALL SEND_BYTE
         MOV   R0,#0BEH         
         LCALL SEND_BYTE      ; Send Read Scratchpad command 
         LCALL READ_BYTE      ; Read the low byte from scratchpad 
         MOV   WDLSB,A        ; Save the temperature (low byte)
         LCALL READ_BYTE      ; Read the high byte from scratchpad
         MOV   WDMSB,A        ; Save the temperature (high byte)
         LCALL TRANS12
KEND:    
         SETB  EA
         RET
;**********************************************************
;
TRANS12:
         MOV   A,30H
         ANL   A,#0F0H
         MOV   3AH,A
         MOV   A,31H
         ANL   A,#0FH
         ORL   A,3AH
         SWAP  A
         MOV   B,#10
         DIV   AB
         ;MOV 42H,A
         MOV   43H,B ;
         MOV   b,#10
         DIV   ab
         MOV   42H,B
         MOV   41H,A
         RET
;*************************************************
; Send a byte to the 1 wire line
SEND_BYTE: ;
         MOV   A,R0
         MOV   R5,#8
SEN3:    CLR   C
         RRC   A
         JC    SEN1
         LCALL WRITE_0
         SJMP  SEN2
SEN1:    LCALL WRITE_1
SEN2:    DJNZ  R5,SEN3 ; 
         RET
;*************************************************
; Read a byte from the 1 wire line
READ_BYTE: 
         MOV   R5,#8
READ1:   LCALL READ
         RRC   A
         DJNZ  R5,READ1 ; 
         MOV   R0,A
         RET
;*************************************************
; Reset 1 wire line
RSTSNR:  SETB  DQ
         NOP
         NOP
         CLR   DQ
         MOV   R6,#250 ;
         DJNZ  R6,$
         MOV   R6,#50
         DJNZ  R6,$
         SETB  DQ ;
         MOV   R6,#15
         DJNZ  R6,$
         CALL  CHCK ;
         MOV   R6,#60
         DJNZ  R6,$
         SETB  DQ
         RET


;*************************************************
; low level subroutines
CHCK:    MOV   C,DQ
         JC    RST0
         SETB  F0 ;
         SJMP  CHCK0
RST0:    CLR   F0 ;
CHCK0:   RET

;*************************************************
WRITE_0: 
         CLR   DQ
         MOV   R6,#30
         DJNZ  R6,$
         SETB  DQ
         RET
;*************************************************
WRITE_1: 
         CLR   DQ 
         NOP
         NOP
         NOP
         NOP
         NOP
         SETB  DQ
         MOV   R6,#30
         DJNZ  R6,$
         RET

;*************************************************
READ:    SETB  DQ ;
         NOP
         NOP
         CLR   DQ
         NOP
         NOP
         SETB  DQ ;
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         MOV   C,DQ
         MOV   R6,#23
         DJNZ  R6,$
         RET

;**********************************************
DELAY10: MOV   R4,#20
D2:      MOV   R5,#30
         DJNZ  R5,$
         DJNZ  R4,D2
         RET

         end


Здесь как я понимаю только с датчика температуры принимаюстя значения и выводятся на дисплей. В этом коде я немного разбираюсь, позже добавлю сравнение температуры. А вот что сделать с датчиком дыма??? Насколько я понимаю он будет посылать на контроллер какой-то единичный импульс а вот как его обработать я не понимаю. 
PM MAIL   Вверх
daemonaz
Дата 25.4.2012, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Датчик дыма по умолчанию в нормально разомкнутом состоянии, срабатывает на дым и удерживеатся в замкнутом состоянии до момента сброса питания, если используете 1 Wire -шину, то к датчику дыма подключается схема с DS2408, и удаленно им управляешь а также считываешь оттуда состояния входов DS240x.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0422 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.