久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

紅外反射自動沖水程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2009年12月26日   【字體:

;二、 工作模式:
;1、間隙工作,即:每5秒電路工作一次,發16mS紅外線脈沖,同時對接收電路供電,
;    延時5mS等待接收電路工作穩定,詢問接收到反射信號,如沒有,返回延時5秒繼續。
;    如有反射信號便改為1秒詢問1次,連續5次收到反射信號便認為是有人在,
;    反之,認為是有人走過,有人在時,就開始詢問反射信號沒有了嗎?
;    連續2次沒有接收到反射信號,便認為此沒人在用,開始沖水。
;2、感應后立即沖水,直到檢測到人離去時,停止沖水,如果感應時間超過15秒,
;    啟動長流水模式,長流水在啟動3分鐘后自動結束。
;3、 2秒鐘預沖水,即每隔15分鐘預沖水一次,15分鐘內無人使用過,不沖水,
;    使能在使用人多時,不再每人使用前都預沖水,達到節水目地。
;4、感應距離5~80CM可調
;5、 以上工作模式可通過電路板跳線手動選擇。
;pb,0接收;pb,1發射;pb,2輸出
;
;
;
       LIST    P=12C508 ,F=INHX8M
  INCLUDE "P16C5X.INC"
;***********************
PSW     EQU     03H     ;狀態寄存器
;PA      EQU     05H      ;PA口
PB      EQU     06H     ;PB口
FSR EQU 04H
RTCC    EQU     01H     ;定時計數器
TEMP    EQU     09H
COUNT1  EQU     0AH
COUNT2  EQU     0BH
COUNT3  EQU     0CH
COUNT4  EQU     0DH
COUNT5  EQU     0EH
KEY_DEL EQU 0FH
DJ_DEL EQU 10H
R0 EQU 11H
R1 EQU 12H ;1S的發射間隔定時
R2 EQU 13H ;發射次數計數器
R3 EQU 14H
FLAG EQU 1FH

;**********
  ORG     0
  GOTO    START     ;開始
;***********************
;  ORG     000H
DISP    CLRWDT
  INCF    COUNT1,1
  MOVLW   0FH  ;15X16.32MS
  SUBWF   COUNT1,0
  BTFSS   PSW,0
  GOTO    DISP_OUT
  CLRF    COUNT1
;****定時3S
 MOVFW R1
 SKPZ
 DECF R1,1 
;***
DISP_1
 INCF    COUNT2,1  ;1秒到
  MOVLW   3CH ;3C
  SUBWF   COUNT2,0
  BTFSS   PSW,0
  GOTO    DISP_OUT
  CLRF    COUNT2
  INCF    COUNT3,1  ;1分到
  MOVLW   3CH        ;3C
  SUBWF   COUNT3,0
  BTFSS   PSW,0
  GOTO    DISP_OUT
  CLRF    COUNT3   ;60分鐘到
  NOP
 INCF COUNT4,1
 NOP
DISP_OUT
 RETLW   0

;****************************
START  
 CLRWDT
  MOVLW    08H   ;清F8-F1F的內容為0
  MOVWF    4     ;F8送F4=@R
QL      CLRF     0   
  INCF     4,1 
  CLRWDT        ;清WDT
  MOVFW    4    ;
  ANDLW    1FH 
  SKPZ    
  GOTO     QL  
  CLRF     4   
;*********************
  MOVLW   B'11101001'  ;PB口為輸出口
  TRIS    PB
  MOVLW   B'11111001'
 MOVWF   PB
; MOVLW   0FFH
;  TRIS    PA        ;定義PA口方向,為輸鍵盤口
;  MOVLW   0
;  MOVWF   PA
;**************************
MAIN
  CLRWDT
  MOVLW   01H
  MOVWF   1
  MOVLW   0C5H
  OPTION       ;64分頻
DSK
  CLRWDT   
  BTFSS    1,0
  GOTO     DSK
 NOP
WAIT    CLRWDT
 BTFSC    1,0   ;
  GOTO     WAIT  ;1/128秒檢查
  MOVFW    1 
  SKPZ  ;結果全0跳下   
  GOTO     DZJC      
  GOTO     HSZCL       ;整分處理16.32MS
;******************
DZJC    CLRWDT
  CALL KEYREM
  GOTO    DSK
;*******************
HSZCL   CLRWDT
  CALL    DISP
; CALL CL_OUT
  GOTO    MAIN
;********************
;*******************發射接收子程序
KEYREM    
 MOVFW R1 ;一秒定時是否到
 SKPZ 
 GOTO KEYREM_OUT
KEYREM_1
 MOVLW D'100'
 MOVWF R1 ;定時5MS,可以借R1用
;***開始發射40khz
KEYREM_2
 BSF PB,1
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
; NOP
; NOP
; NOP
 NOP
 NOP
 NOP
 NOP
 BCF PB,1
  NOP
; NOP
; NOP
; NOP
 NOP
 NOP
 NOP
 NOP
 MOVFW R1
 SKPNZ 
 GOTO KEYREM_3
 DECF R1,1
 GOTO KEYREM_2
KEYREM_3
 MOVLW 1
 MOVWF R1 ;重裝1S定時時間
 BSF PB,1 ;繼續40KHZ的發射
;****發射標志是否開
 BTFSS FLAG,2 ;是進入還是離開狀態 
 GOTO KCL_1   ;進入測試有沒有進入狀態
;***** 測試有沒有人離開狀態
 NOP
 BTFSS PB,0
 GOTO KEYREM_OUT ;有反射,繼續保持
 NOP
 INCF R2,1  ;發射次數記數
 MOVLW 3
 SUBWF R2,0
 BTFSS PSW,0
 GOTO KEYREM_OUT ;次數未到,還得繼續測
 CLRF R2
 BCF PB,2  ;是沒人,關輸出
 BCF FLAG,2 ;置無人標志
 GOTO KEYREM_OUT
;***
KCL_1
 NOP  ;測試有沒有人進入狀態
 BTFSC PB,0
 GOTO KEYREM_OUT ;無反射,繼續保持
 NOP
 INCF R2,1  ;發射次數記數
 MOVLW 3
 SUBWF R2,0
 BTFSS PSW,0
 GOTO KEYREM_OUT ;次數未到,還得繼續測
 CLRF R2
 BSF PB,2  ;是有人,開輸出
 BSF FLAG,2 ;置有人標志
 GOTO KEYREM_OUT
;**************
KEYREM_OUT
 NOP
 BCF PB,1
 NOP
 RETLW 0


;**********
  END

 

關閉窗口

相關文章

主站蜘蛛池模板: 鲁一鲁资源影视 | av大片| 日日夜夜操天天干 | 久久久久亚洲视频 | 国精产品一品二品国精在线观看 | 国产日韩欧美精品一区二区三区 | 亚洲精品一区二区在线观看 | 国产一区二区三区亚洲 | 中文字幕视频在线 | 久久精品国产一区二区 | 日本三级网站在线 | 日韩在线免费视频 | 亚洲国产成人精品久久久国产成人一区 | 中文字幕欧美一区二区 | 一区二区三区不卡视频 | 国产a级毛毛片 | 成人小视频在线观看 | 免费av一区二区三区 | 日韩成人免费av | 久久久精彩视频 | 欧美精品一区二区三 | 国产一区二区三区四区在线观看 | 国产高清一区二区三区 | 成人免费影院 | 91在线视频观看 | 中文字幕免费中文 | 欧美人妇做爰xxxⅹ性高电影 | 91色在线 | 日韩 欧美 二区 | 亚洲国产精品99久久久久久久久 | 久久毛片| 国产在线网站 | 久久久久国产 | 成人欧美一区二区三区色青冈 | 精品国产不卡一区二区三区 | 国产做a爱片久久毛片 | 国产精品一区二区在线观看 | 伊人久久免费 | www.久草.com| 国产区精品视频 | 欧美中文字幕一区二区三区亚洲 |