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

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            1-wire總線匯編程序

            作者: 時(shí)間:2013-01-07 來(lái)源:網(wǎng)絡(luò) 收藏

            ;**************匯編程**************************
            ;文件:1-wire.asm
            ;功能:接口程序
            ;器件:AT90S2313,DS1821
            ;時(shí)鐘:4.0MHz
            ;****************************************

            ;過程名:w1_init
            ;功能:1_wire總線
            ;入口參數(shù):無(wú)
            ;出口參數(shù):R30 1:有器件應(yīng)答 0:無(wú)器件應(yīng)答
            ;影響資源:R24,R25
            ;***************匯編程**************************
            w1_init:
            clr R30
            cbi w1_port, w1_bit ;輸出清零
            sbi w1_portd, w1_bit ;設(shè)置為輸出,將總線置為低電平
            ldi R24, 0xE0 ;延時(shí)480us
            ldi R25, 0x01
            d1:
            sbiw R24, 0x01
            brne d1
            cbi w1_portd, w1_bit ;設(shè)置為輸入,放開總線
            ldi R24, 0x5D ;延時(shí)70us
            d2:
            dec R24
            brne d2
            sbis w1_pin, w1_bit ;總線為高電平,沒有器件應(yīng)答
            inc R30 ;總線為低電平,有器件應(yīng)答,置輸出R30=1
            ldi R24, 0xC2 ;延時(shí)450us,等待復(fù)位周期完成
            ldi R25, 0x01
            d3:
            sbiw R24, 0x01
            brne d3
            ret
            ;****************1-wire總線匯編程*************************
            ;過程名:w1_write
            ;功能:寫入一個(gè)字節(jié)數(shù)據(jù)
            ;入口參數(shù):R23
            ;出口參數(shù):無(wú)
            ;影響資源:R22,R24,R25
            ;*****************1-wire總線匯編程************************
            w1_write:
            ldi R22, 0x08 ;置計(jì)數(shù)器
            write_next:
            rcall w1_write_bit ;寫入一位
            ror R23 ;要寫入的數(shù)據(jù)位移入最低位
            dec R22
            brne write_next ;8位未完,繼續(xù)下一位
            ret
            ;*****************************************
            ;過程名:w1_read
            ;功能:讀取一個(gè)字節(jié)數(shù)據(jù)
            ;入口參數(shù):無(wú)
            ;出口參數(shù):R30 讀取的8位數(shù)據(jù)存在R30中
            ;影響資源:R22,R24,R25
            ;*****************************************
            w1_read:
            ldi R22, 0x08 ;置計(jì)數(shù)器
            read_next:
            rcall w1_read_bit ;從總線上讀取一位
            dec R22
            brne read_next ;8位未完,繼續(xù)讀取下一位
            ret
            ;***************1-wire總線匯編程**************************
            ;過程名:w1_write_bit
            ;功能:寫入一位數(shù)據(jù)
            ;入口參數(shù):R23.0
            ;出口參數(shù):無(wú)
            ;影響資源:R24
            ;*****************************************
            w1_write_bit:
            sbi w1_portd, w1_bit ;設(shè)置為輸出,將總線置為0
            ldi R24, 0x11
            d4:
            dec R24 ;延時(shí)12us
            brne d4
            sbrc R23, 0 ;要輸出0,則跳過下一行,總線保持為0
            cbi w1_portd, w1_bit ;設(shè)置為輸入,釋放總線,輸出1
            ldi R24, 0x64
            d5:
            dec R24 ;延時(shí)75us
            brne d5
            cbi w1_portd, w1_bit ;寫入結(jié)束,設(shè)置為輸入,釋放總線
            ldi R24, 0x03 ;延時(shí)2us
            d6:
            dec R24
            brne d6
            ret
            ;*****************************************
            ;過程名:w1_read_bit
            ;功能:讀取一位數(shù)據(jù)
            ;入口參數(shù):無(wú)
            ;出口參數(shù):R30 讀取的1位數(shù)據(jù)存在R30中最高位,同時(shí)R30種原有的數(shù)據(jù)右移1位
            ;影響資源:C,R24
            ;*****************************************
            w1_read_bit:
            sbi w1_portd, w1_bit ;輸出0,把總線拉低
            ldi R24, 0x03 ;延時(shí)2us
            d7:
            dec R24
            brne d7
            cbi w1_portd, w1_bit ;設(shè)置為輸入,釋放總線
            ldi R24, 0x0F ;延時(shí)10us
            d8:
            dec R24
            brne d8
            clc
            sbic w1_pin, w1_bit ;總線為低電平,跳過下一行,C保持為0
            sec ;總線為高電平,C置1
            ror R30 ;C移入R30最高位
            ldi R24, 0x6B ;延時(shí)80us,等待周期結(jié)束
            d9:
            dec R24
            brne d9
            ret
            ;****************1-wire總線匯編程*************************
            ;This is the end



            關(guān)鍵詞: 1-wire總線 匯編程序 初始化

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉