日本久久久久曰精品免费,国产精品一级二级三级,乱子伦av无码中文字幕s,国产成人精品一区免费视频

技術熱線: 4007-888-234

技術支持

DS18B20在16F877A上的實現

更新時間: 2019-03-26

;************************************************************************
;<<溫度計-基于DS18B20>>
;時間:2006.3.6
;程序文件名:“DS18B20.asm”
;功能實現:通過DS18B20來讀取溫度,顯示在2LED上,精確到1
;硬件連接:(1)RC0-RC7接共陽數碼管的段碼A-H
;             RA0-RA3接共陽數碼管的位碼DIG0-DIG3
;***********************************************************************

 

;***********************************************************************
;定義單片機型號為PIC16F877A
;程序包含文件:P16F877A.INC
;定義配置字
;***********************************************************************
LIST   P=16F877A                  ;定義本程序所使用的芯片為PIC16F877A
#INCLUDE "P16F877A.INC"            ;定義本程序包含該文件

__CONFIG  3F72H                   ;晶振配置HS,看門狗禁止,上電延時使能,掉電復位使能
                                  ;低電壓編程禁止,代碼不保護

 

#DEFINE   DQ         PORTB,2
#DEFINE   DIR        TRISB,2
         
CBLOCK    20H
      Y1
      Y2
      COUNT1
      COUNT2
      COMD
      DATE
      BIN_L                       ;要進行轉換的字節
      GE                          ;轉換后的個位

__CONFIG  3F72H                   ;晶振配置HS,看門狗禁止,上電延時使能,掉電復位使能
                                  ;低電壓編程禁止,代碼不保護

 

#DEFINE   DQ         PORTB,2
#DEFINE   DIR        TRISB,2
         
CBLOCK    20H
      Y1
      Y2
      COUNT1
      COUNT2
      COMD
      DATE
      BIN_L                       ;要進行轉換的字節
      GE                          ;轉換后的個位

__CONFIG  3F72H                   ;晶振配置HS,看門狗禁止,上電延時使能,掉電復位使能
                                  ;低電壓編程禁止,代碼不保護

 

#DEFINE   DQ         PORTB,2
#DEFINE   DIR        TRISB,2
         
CBLOCK    20H
      Y1
      Y2
      COUNT1
      COUNT2
      COMD
      DATE
      BIN_L                       ;要進行轉換的字節
      GE                          ;轉換后的個位


 MOVLW     0BEH           ;讀內部RAM中的9字節內容
         CALL      WR18B20
         NOP
         CALL      RE18B20        ;讀數據   
         MOVF      DATE,W        
         MOVWF     DATE_L         ;讀低8
         CALL      RE18B20        ;讀數據   
         MOVF      DATE,W        
         MOVWF     DATE_H         ;讀高8
         MOVF      DATE_L,W
;------------------------顯示處理--------------------------------------
         RRF       DATE_H,F
         RRF       DATE_L,F
         RRF       DATE_H,F
         RRF       DATE_L,F
         RRF       DATE_H,F

 RRF       DATE_L,F
         RRF       DATE_H,F
         RRF       DATE_L,F
         MOVF      DATE_L,W
         MOVWF     BIN_L          ;把高8位的低4位和低8位的高4位組合起來
         CALL      DISPLAY        ;調用數碼管顯示程序
         GOTO      START
        
;=======================================================================

 

;***********************************************************************
;初始化和消影
;***********************************************************************
INTIAL   BSF       STATUS,RP0     ;定義當前體為體1,對方向寄存器進行修改
         MOVLW     07H
         MOVWF     ADCON1         ;關閉A口的模擬通道   
         MOVLW     00H
         MOVWF     TRISC          ;段碼顯示口為輸出口
         MOVLW     0F0H
         ANDWF     TRISA,1        ;使位碼(RA0-RA3)為輸出口     
         BSF       DIR             ;使數據線為輸入

 RRF       DATE_L,F
         RRF       DATE_H,F
         RRF       DATE_L,F
         MOVF      DATE_L,W
         MOVWF     BIN_L          ;把高8位的低4位和低8位的高4位組合起來
         CALL      DISPLAY        ;調用數碼管顯示程序
         GOTO      START
        
;=======================================================================

 

;***********************************************************************
;初始化和消影
;***********************************************************************
INTIAL   BSF       STATUS,RP0     ;定義當前體為體1,對方向寄存器進行修改
         MOVLW     07H
         MOVWF     ADCON1         ;關閉A口的模擬通道   
         MOVLW     00H
         MOVWF     TRISC          ;段碼顯示口為輸出口
         MOVLW     0F0H
         ANDWF     TRISA,1        ;使位碼(RA0-RA3)為輸出口     
         BSF       DIR             ;使數據線為輸入

      BSF       STATUS,RP0     ;使當前體為體1
         BSF       DIR            ;使數據位為輸入
         BCF       STATUS,RP0     ;使當前體為體
         NOP
         BTFSS     DQ             ;如果數據線為高電平,則C=1
         BCF       STATUS,C
         BTFSC     DQ             ;如果數據線為低電平,則C=0
         BSF       STATUS,C
         RRF       DATE,1          ;數據依次存在DATE
         MOVLW     D'20'           ;延時60us
         MOVWF     COUNT1
RE2      DECFSZ    COUNT1,1
         GOTO      RE2
         DECFSZ    COUNT2,1
         GOTO      RE0
         BSF       DQ
         RETLW     00H
;=======================================================================       
      

 

;=======================================================================
         END                      ;程序結束


404
返回首頁 |  返回上一頁
主站蜘蛛池模板: 新宾| 贡山| 大邑县| 茌平县| 张北县| 江孜县| 敦煌市| 博爱县| 石景山区| 大石桥市| 拉萨市| 潼南县| 丽水市| 东平县| 宾阳县| 武平县| 阿城市| 青岛市| 周至县| 长沙市| 夏河县| 苍溪县| 内乡县| 厦门市| 罗山县| 东宁县| 玉溪市| 湖口县| 永嘉县| 胶州市| 泰安市| 富裕县| 藁城市| 墨脱县| 温宿县| 京山县| 班玛县| 旅游| 凤山市| 木里| 平凉市|