在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC16F877A控制DS18B20匯編程序

      PIC16F877A控制DS18B20匯編程序

      作者: 時間:2012-11-27 來源:網(wǎng)絡(luò) 收藏

      ;***********************************************
      ;功能實現(xiàn):通過來讀取溫度,顯示在2位LED上,精確到1度
      ;硬件連接:(1)RC0-RC7接共陽數(shù)碼管的段碼A-H
      ; RA0-RA3接共陽數(shù)碼管的位碼DIG0-DIG3
      ;***************************************************

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

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

      #DEFINE DQ PORTB,2
      #DEFINE DIR TRISB,2

      CBLOCK 20H
      Y1
      Y2
      COUNT1
      COUNT2
      COMD
      DATE
      BIN_L ;要進(jìn)行轉(zhuǎn)換的字節(jié)
      GE ;轉(zhuǎn)換后的個位
      SHI ;轉(zhuǎn)換后的十位
      DATE_L
      DATE_H
      ENDC

      ;*****************************************************
      ;復(fù)位矢量定義(對于16F877A)
      ;***************************************************
      ORG 0000H ;復(fù)位矢量地址
      GOTO MAIN ;程序跳轉(zhuǎn)到MAIN主程序
      ;----------------------------------------------------------------------

      ;***************************************************
      ;主程序區(qū)
      ;************************************************
      ORG 0005H
      MAIN
      NOP
      CALL INTIAL
      START BTFSS DQ ;數(shù)據(jù)線空閑狀態(tài)為高電平
      GOTO $-1
      CALL RESET ;復(fù)位
      MOVLW 0CCH ;跳過讀ROM命令
      CALL WR18B20
      MOVLW 44H ;溫度轉(zhuǎn)換
      CALL WR18B20
      CALL DELAY_750US ;延時750us
      CALL RESET ;復(fù)位
      MOVLW 0CCH ;跳過讀ROM命令
      CALL WR18B20
      MOVLW 0BEH ;讀內(nèi)部RAM中的9字節(jié)內(nèi)容
      CALL WR18B20
      NOP
      CALL RE18B20 ;讀數(shù)據(jù)
      MOVF DATE,W
      MOVWF DATE_L ;讀低8位
      CALL RE18B20 ;讀數(shù)據(jù)
      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 ;調(diào)用數(shù)碼管顯示程序
      GOTO START

      ;=================================================

      ;************************************************
      ;初始化和消影
      ;***********************************************************
      INTIAL BSF STATUS,RP0 ;定義當(dāng)前體為體1,對方向寄存器進(jìn)行修改
      MOVLW 07H
      MOVWF ADCON1 ;關(guān)閉A口的模擬通道
      MOVLW 00H
      MOVWF TRISC ;段碼顯示口為輸出口
      MOVLW 0F0H
      ANDWF TRISA,1 ;使位碼(RA0-RA3)為輸出口
      BSF DIR ;使數(shù)據(jù)線為輸入
      BCF STATUS,RP0 ;使當(dāng)前體為體0
      MOVLW 0FFH ;關(guān)閉段碼
      MOVWF PORTC
      MOVLW 0FFH ;關(guān)閉位碼
      MOVWF PORTA
      BTFSS DQ ;數(shù)據(jù)線空閑狀態(tài)為高電平
      GOTO $-1
      CALL RESET ;復(fù)位DS18B20
      MOVLW 0CCH ;跳過讀ROM命令
      CALL WR18B20
      MOVLW 44H ;溫度轉(zhuǎn)換
      CALL WR18B20
      CALL DELAY_750US ;延時750us
      CALL RESET ;復(fù)位DS18B20
      MOVLW 0CCH ;跳過讀ROM命令
      CALL WR18B20
      MOVLW 0BEH ;讀內(nèi)部RAM中的9字節(jié)內(nèi)容
      CALL WR18B20
      NOP
      NOP
      CALL RE18B20 ;讀數(shù)據(jù)
      CALL RE18B20 ;讀數(shù)據(jù)
      CALL DELAY_MAX ;延時600ms
      CALL DELAY_MAX
      CALL DELAY_MAX
      RETLW 00H
      ;===================================================

      ;**************************************************
      ;顯示所測得的溫度子程序
      ;**********************************************
      DISPLAY
      CALL _BCD
      MOVF SHI,W
      ANDLW 0FH
      CALL TABLE ;調(diào)用查表指令
      MOVWF PORTC ;顯示十位段碼
      BCF PORTA,0 ;選通十位顯示位碼
      CALL DELAY
      BSF PORTA,0 ;關(guān)閉十位顯示位碼
      MOVF GE,W
      ANDLW 0FH
      CALL TABLE ;調(diào)用查表指令
      MOVWF PORTC ;顯示個位段碼
      BCF PORTA,1 ;選通個位顯示位碼
      CALL DELAY
      BSF PORTA,1 ;關(guān)閉個位顯示位碼
      RETLW 00H


      上一頁 1 2 下一頁

      關(guān)鍵詞: PIC16F877A DS18B20 匯編程序

      評論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉