中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

        PIC16F877A控制DS18B20匯編程序

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

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

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

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

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

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

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

        ;***************************************************
        ;主程序區(qū)
        ;************************************************
        ORG 0005H
        MAIN
        NOP
        CALL INTIAL
        START BTFSS DQ ;數(shù)據(jù)線空閑狀態(tài)為高電平
        GOTO $-1
        CALL RESET ;復位
        MOVLW 0CCH ;跳過讀ROM命令
        CALL WR18B20
        MOVLW 44H ;溫度轉換
        CALL WR18B20
        CALL DELAY_750US ;延時750us
        CALL RESET ;復位
        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 ;定義當前體為體1,對方向寄存器進行修改
        MOVLW 07H
        MOVWF ADCON1 ;關閉A口的模擬通道
        MOVLW 00H
        MOVWF TRISC ;段碼顯示口為輸出口
        MOVLW 0F0H
        ANDWF TRISA,1 ;使位碼(RA0-RA3)為輸出口
        BSF DIR ;使數(shù)據(jù)線為輸入
        BCF STATUS,RP0 ;使當前體為體0
        MOVLW 0FFH ;關閉段碼
        MOVWF PORTC
        MOVLW 0FFH ;關閉位碼
        MOVWF PORTA
        BTFSS DQ ;數(shù)據(jù)線空閑狀態(tài)為高電平
        GOTO $-1
        CALL RESET ;復位DS18B20
        MOVLW 0CCH ;跳過讀ROM命令
        CALL WR18B20
        MOVLW 44H ;溫度轉換
        CALL WR18B20
        CALL DELAY_750US ;延時750us
        CALL RESET ;復位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 ;關閉十位顯示位碼
        MOVF GE,W
        ANDLW 0FH
        CALL TABLE ;調(diào)用查表指令
        MOVWF PORTC ;顯示個位段碼
        BCF PORTA,1 ;選通個位顯示位碼
        CALL DELAY
        BSF PORTA,1 ;關閉個位顯示位碼
        RETLW 00H


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉