亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vi2c_asm.inc

?? 單片機(jī)經(jīng)典例程,包含一百多個(gè)經(jīng)典的例子,其中既有程序,又有仿真
?? INC
字號:
;--------------------------------------------------------------------------------------------------------
;		  MCS-51單片機(jī)模擬I2C軟件包(V1.1)
;    文件名:VI2C_ASM.INC
;    功能說明:本模擬I2C軟件包包含了I2C操作的底層子程序,使用前要定義
;好SCL和SDA。在標(biāo)準(zhǔn)8051模式(12 Clock)下,對主頻要求是不高于12MHz(即1個(gè)
;機(jī)器周期1us);若Fosc>12MHz則要增加相應(yīng)的NOP指令數(shù)。(總線時(shí)序符合I2C標(biāo)
;準(zhǔn)模式,100Kbit/S)
;    版本說明:本版新增了兩個(gè)子程序,IWRNBYTEEXT,IRDNBYTEEXT兩個(gè)子程序,
;這兩個(gè)子程序用于主從通訊上及一此特殊器件的讀寫操作較為方便.
;					  更新時(shí)間:2002.06.04
;--------------------------------------------------------------------------------------------------------

;啟動I2C總線子程序      
START:    SETB  SDA
          NOP
          SETB  SCL     			;起始條件建立時(shí)間大于4.7us
          NOP
          NOP
          NOP
          NOP
          NOP
          CLR   SDA      
          NOP           		 	;起始條件鎖定時(shí)大于4us
          NOP
          NOP
          NOP
          NOP
          CLR   SCL     		 	;鉗住總線,準(zhǔn)備發(fā)數(shù)據(jù)
          NOP
          RET

;結(jié)束總線子程序
STOP:     CLR    SDA
          NOP
          SETB   SCL    			;發(fā)送結(jié)束條件的時(shí)鐘信號
          NOP           			;結(jié)束總線時(shí)間大于4us
          NOP            
          NOP
          NOP
          NOP
          SETB  SDA    			        ;結(jié)束總線
          NOP          			      	;保證一個(gè)終止信號和起始信號的空閑時(shí)間大于4.7us
          NOP
          NOP
          NOP
          RET

;發(fā)送應(yīng)答信號子程序
MACK:     CLR  	SDA      			;將SDA置0 
          NOP
          NOP
          SETB 	SCL
          NOP            			;保持?jǐn)?shù)據(jù)時(shí)間,即SCL為高時(shí)間大于4.7us
          NOP
          NOP
          NOP
          NOP
          CLR  	SCL
          NOP
          NOP
          RET

;發(fā)送非應(yīng)答信號
MNACK:    SETB 	SDA          			;將SDA置1 
          NOP
          NOP
          SETB 	SCL
          NOP
       	  NOP               			;保持?jǐn)?shù)據(jù)時(shí)間,即SCL為高時(shí)間大于4.7us
          NOP
          NOP
          NOP
          CLR   SCL
          NOP
          NOP
          RET

;檢查應(yīng)答位子程序
;返回值,ACK=1時(shí)表示有應(yīng)答
CACK:	SETB  SDA
        NOP
        NOP
        SETB  SCL
        CLR   ACK
        NOP
        NOP
        MOV   C,SDA
        JC    CEND
        SETB  ACK           		 	;判斷應(yīng)答位
CEND:	NOP
        CLR   SCL
        NOP
        RET

;發(fā)送字節(jié)子程序
;字節(jié)數(shù)據(jù)放入ACC       
;每發(fā)送一字節(jié)要調(diào)用一次CACK子程序,取應(yīng)答位            
WRBYTE: MOV   R0,#08H
WLP: 	RLC   A              			;取數(shù)據(jù)位
        JC    WR1
        SJMP  WR0            			;判斷數(shù)據(jù)位
WLP1:   DJNZ  R0,WLP
        NOP
        RET
WR1:    SETB  SDA            			;發(fā)送1
        NOP
        SETB  SCL
        NOP
        NOP
        NOP
        NOP
        NOP

	CLR   SCL
        SJMP  WLP1
WR0:  	CLR   SDA            			;發(fā)送0
        NOP
        SETB  SCL
        NOP
        NOP
        NOP
        NOP
        NOP


        CLR   SCL
        SJMP  WLP1

;讀取字節(jié)子程序                    
;讀出的值在ACC
;每取一字節(jié)要發(fā)送一個(gè)應(yīng)答/非應(yīng)答信號 
RDBYTE: MOV   R0,#08H
RLP:    SETB  SDA
        NOP
	NOP
	NOP
	NOP
        SETB  SCL         		 	;時(shí)鐘線為高,接收數(shù)據(jù)位
        NOP   
     	NOP
	NOP					;+1
	NOP					;+1
	NOP					;+1
	NOP					;+1
	NOP					;+1


        MOV   C,SDA        		 	;讀取數(shù)據(jù)位
        MOV   A,R2
        CLR   SCL          		 	;將SCL拉低,時(shí)間大于4.7us
        RLC   A            		 	;進(jìn)行數(shù)據(jù)位的處理
        MOV   R2,A
        NOP
        NOP
	NOP
        NOP					;+1
	NOP					;+1
	NOP					;+1
	NOP
	NOP
        NOP					;+1
	NOP
	NOP					;+1
	NOP					;+1


        DJNZ  R0,RLP        		 	;未夠8位,再來一次
        RET



;========================================================================================
;========================================================================================
;       以下是用戶接口子程序
;

;無子地址器件寫字節(jié)數(shù)據(jù)
;入口參數(shù): 數(shù)據(jù)為ACC、器件從地址SLA              
;占用:  A、R0、CY
IWRBYTE: PUSH   ACC
IWBLOOP: LCALL  START      			;起動總線
         MOV    A,SLA  
         LCALL  WRBYTE     			;發(fā)送器件從地址 
         LCALL  CACK
         JNB    ACK,RETWRB      		;無應(yīng)答則跳轉(zhuǎn)
         POP    ACC       			;寫數(shù)據(jù)
         LCALL  WRBYTE
         LCALL  CACK
         LCALL  STOP
         RET
RETWRB:  POP    ACC
         LCALL  STOP
         RET

;無子地址器件讀字節(jié)數(shù)據(jù)
;入口參數(shù): 器件從地址SLA
;出口參數(shù): 數(shù)據(jù)為ACC    
;占用: A 、R0、R2 、CY
IRDBYTE: LCALL  START
         MOV    A,SLA        			;發(fā)送器件從地址
         INC    A
         LCALL  WRBYTE
         LCALL  CACK
         JNB    ACK,RETRDB             
         LCALL  RDBYTE       			;進(jìn)行讀字節(jié)操作
         LCALL  MNACK          			;發(fā)送非應(yīng)信號
RETRDB:  LCALL  STOP             		;結(jié)束總線
         RET

;向器件指定子地址寫N字節(jié)數(shù)據(jù)
;入口參數(shù):  器件從地址SLA、器件子地址SUBA 、發(fā)送數(shù)據(jù)緩沖區(qū)MTD、發(fā)送字節(jié)數(shù)NUMBYTE
; 占用:  A 、R0 、R1 、R3 、CY 
IWRNBYTE: MOV    A,NUMBYTE
          MOV    R3,A
          LCALL  START        			;起動總線
          MOV    A,SLA
          LCALL  WRBYTE       			;發(fā)送器件從地址      
          LCALL  CACK
          JNB    ACK,RETWRN	 		;無應(yīng)答則退出
          MOV    A,SUBA       	 		;指定子地址 
          LCALL  WRBYTE
          LCALL  CACK
          MOV    R1,#MTD
WRDA:     MOV    A,@R1
          LCALL  WRBYTE       			;開始寫入數(shù)據(jù)
          LCALL  CACK
          JNB    ACK,IWRNBYTE
          INC    R1
          DJNZ   R3,WRDA      			;判斷寫完沒有
RETWRN:   LCALL  STOP
          RET

;向器件指定子地址讀取N字節(jié)數(shù)據(jù)
;入口參數(shù):  器件從地址SLA、器件子地址SUBA、接收字節(jié)數(shù)NUMBYTE
;出口參數(shù):  接收數(shù)據(jù)緩沖區(qū)MTD
;占用:A、 R0、 R1、 R2、 R3、 CY               
IRDNBYTE:  MOV    R3,NUMBYTE
           LCALL  START
           MOV    A,SLA
           LCALL  WRBYTE        		;發(fā)送器件從地址
           LCALL  CACK
           JNB    ACK,RETRDN
           MOV    A,SUBA        		;指定子地址    
           LCALL  WRBYTE
           LCALL  CACK  
           LCALL  START         		;重新起動總線
           MOV    A,SLA
           INC    A             		;準(zhǔn)備進(jìn)行讀操作 
           LCALL  WRBYTE
           LCALL  CACK
           JNB    ACK,IRDNBYTE           
           MOV    R1,#MRD
RDN1:      LCALL  RDBYTE      			;讀操作開始
           MOV    @R1,A
	   ;NOP					;+1
	   ;NOP					;+1	
           DJNZ   R3,SACK
           LCALL  MNACK       			;最后一字節(jié)發(fā)非應(yīng)答位               
RETRDN:    LCALL  STOP 				;并結(jié)束總線
           RET
SACK:      LCALL  MACK
           INC    R1
           SJMP   RDN1


;無子地址器件寫N字節(jié)數(shù)據(jù)
;入口參數(shù):  器件從地址SLA、發(fā)送數(shù)據(jù)緩沖區(qū)MTD、發(fā)送字節(jié)數(shù)NUMBYTE
; 占用:  A 、R0 、R1 、R3 、CY 
;不發(fā)送子地址SUBA,直接發(fā)送多個(gè)數(shù)據(jù).
IWRNBYTEEXT:
          MOV    A,NUMBYTE
          MOV    R3,A
          LCALL  START        			;起動總線
          MOV    A,SLA
          LCALL  WRBYTE       			;發(fā)送器件從地址      
          LCALL  CACK
          JNB    ACK,RETWRNE	 		;無應(yīng)答則退出
          MOV    R1,#MTD
WRDAE:    MOV    A,@R1
          LCALL  WRBYTE       			;開始寫入數(shù)據(jù)
          LCALL  CACK
          JNB    ACK,RETWRNE
          INC    R1
          DJNZ   R3,WRDAE      			;判斷寫完沒有
RETWRNE:  LCALL  STOP
          RET


;無子地址器件讀取N字節(jié)數(shù)據(jù)
;入口參數(shù):  器件從地址SLA、器件子地址SUBA、接收字節(jié)數(shù)NUMBYTE
;出口參數(shù):  接收數(shù)據(jù)緩沖區(qū)MTD
;占用:A、 R0、 R1、 R2、 R3、 CY  
;說明:此函數(shù)不發(fā)送子址,也不重新啟動總線,而是直接讀取多個(gè)數(shù)據(jù).
IRDNBYTEEXT:
           MOV    R3,NUMBYTE
           LCALL  START
           MOV    A,SLA
           INC    A  
           LCALL  WRBYTE        		;發(fā)送器件從地址
           LCALL  CACK
           JNB    ACK,RETRDNE
           MOV    R1,#MRD
RDNE1:     LCALL  RDBYTE      			;讀操作開始
           MOV    @R1,A
           DJNZ   R3,SACKE
           LCALL  MNACK       			;最后一字節(jié)發(fā)非應(yīng)答位               
RETRDNE:   LCALL  STOP 				;并結(jié)束總線
           RET
SACKE:     LCALL  MACK
           INC    R1
           SJMP   RDNE1



;*********************************************************************************************
;                        	請注意
;
;    占用內(nèi)部資源:         R0,R1,R2,R3,ACC,Cy。
;    在你的程序里要做以下定義:
;    1、定義變量:  SLA 器件從地址  SUBA器件子地址  NUMBYTE讀/寫的字節(jié)數(shù) ,位變量ACK 
;    2、定義常量:  SDA SCL 總線位  MTD 發(fā)送數(shù)據(jù)緩沖區(qū)首址    MRD 接收數(shù)據(jù)緩沖區(qū)首址
;
;   (ACK為調(diào)試/測試位,ACK為0時(shí)表示無器件應(yīng)答或總線出錯(cuò))
;
;    在使用本軟件包時(shí),請?jiān)谀愕某绦虻奈次布尤?INCLUDE (VI2C_ASM.INC)即可。VI2C_ASM.INC文件
;復(fù)制到IDE包含文件所要求的目錄(如:工作目錄或INC目錄)
;
;    用戶可以對"用戶接口子程序"進(jìn)行裁減,即把自已不使用的接口子程序刪掉,以節(jié)省程序空間。
;**********************************************************************************************






?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区电影| 7777精品伊人久久久大香线蕉| 精品久久一区二区| 捆绑调教一区二区三区| 日韩欧美美女一区二区三区| 激情小说欧美图片| 欧美精品一区二区在线观看| 国产成人av一区二区| 中文字幕+乱码+中文字幕一区| kk眼镜猥琐国模调教系列一区二区 | 91丨九色porny丨蝌蚪| 国产精品久久久久久久久晋中 | 午夜精品久久久| 日韩欧美国产一区二区在线播放 | 亚洲制服丝袜av| 91精品国产综合久久久久久 | 欧美浪妇xxxx高跟鞋交| 免费在线一区观看| 欧美国产欧美亚州国产日韩mv天天看完整 | 中文一区在线播放| 在线观看欧美精品| 韩国视频一区二区| 国产精品久久久久影院| 欧美日韩一区二区三区在线| 热久久一区二区| 中文字幕在线一区二区三区| 欧美在线观看视频在线| 九色|91porny| 亚洲免费色视频| 精品国产sm最大网站| 色婷婷激情综合| 激情亚洲综合在线| 亚洲已满18点击进入久久| 精品国产乱码久久久久久闺蜜 | 亚洲一区在线观看免费观看电影高清 | 91社区在线播放| 日本 国产 欧美色综合| 国产精品国产成人国产三级| 欧美精品亚洲二区| 99久久伊人精品| 国内精品久久久久影院一蜜桃| 一区二区三区在线影院| 久久青草国产手机看片福利盒子| 在线观看网站黄不卡| 国产精品亚洲视频| 日韩av电影天堂| 亚洲日穴在线视频| 久久精品一区八戒影视| 7777精品伊人久久久大香线蕉完整版| jlzzjlzz欧美大全| 国产在线精品不卡| 免费一级片91| 婷婷激情综合网| 亚洲综合另类小说| 国产精品国产三级国产aⅴ入口 | 91精品国产色综合久久| 99re成人精品视频| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲免费毛片网站| 国产精品欧美精品| 久久精品亚洲国产奇米99| 在线成人免费观看| 欧美一级日韩免费不卡| 欧美日韩亚州综合| 色婷婷综合五月| 91片黄在线观看| 不卡视频一二三| 成人免费的视频| 国产精品一级在线| 国产一区二区三区在线看麻豆| 日本一不卡视频| 五月天丁香久久| 天堂久久久久va久久久久| 亚洲一区在线视频| 亚洲国产裸拍裸体视频在线观看乱了| 中文字幕制服丝袜一区二区三区 | 中文字幕av一区二区三区免费看| 精品免费99久久| 精品国产一二三区| 欧美电影免费提供在线观看| 日韩欧美一二三区| 精品理论电影在线观看| 精品嫩草影院久久| 精品国产一区二区国模嫣然| 精品免费99久久| 国产日产欧美精品一区二区三区| 国产色一区二区| 中文字幕在线不卡视频| 国产精品卡一卡二| 亚洲综合一区二区| 日韩黄色免费电影| 久久91精品久久久久久秒播| 久久不见久久见中文字幕免费| 国产一区二区三区av电影| 国产成人综合视频| 91在线小视频| 欧美图片一区二区三区| 欧美日韩dvd在线观看| 制服丝袜亚洲网站| 日韩一区二区三区免费看| 日韩精品中文字幕一区二区三区| 久久先锋影音av| 亚洲欧洲精品一区二区三区不卡| 日韩伦理免费电影| 婷婷久久综合九色综合绿巨人| 蜜臀av性久久久久蜜臀aⅴ流畅| 韩国精品久久久| 99久久精品国产麻豆演员表| 91搞黄在线观看| 日韩女同互慰一区二区| 中文字幕精品—区二区四季| 亚洲男人天堂一区| 丁香婷婷综合色啪| 色综合久久久久综合99| 欧美一区二区三区小说| 国产欧美日韩中文久久| 亚洲国产成人91porn| 精品一区二区在线视频| 91在线视频网址| 欧美成人猛片aaaaaaa| 综合自拍亚洲综合图不卡区| 五月激情丁香一区二区三区| 国产激情一区二区三区| 欧美午夜片在线观看| 欧美经典一区二区三区| 午夜精品免费在线| 不卡的电影网站| 精品美女在线播放| 亚洲第一激情av| 成人avav在线| 欧美成人乱码一区二区三区| 一区二区视频免费在线观看| 国产精品综合av一区二区国产馆| 91日韩一区二区三区| 久久综合九色综合97婷婷| 一区二区三区四区不卡在线| 国产永久精品大片wwwapp| 欧美精品1区2区| 日韩一区在线免费观看| 狠狠色狠狠色综合日日91app| 欧美在线观看一二区| 国产精品免费视频观看| 久久激情五月婷婷| 在线91免费看| 一区二区三国产精华液| 成人激情校园春色| 久久久精品人体av艺术| 日韩制服丝袜先锋影音| 色菇凉天天综合网| 日韩一区有码在线| 成人av免费网站| 国产午夜三级一区二区三| 免费在线观看日韩欧美| 欧美猛男男办公室激情| 亚洲欧美日韩久久精品| 波多野结衣亚洲| 国产视频一区在线播放| 麻豆国产精品官网| 日韩欧美你懂的| 日韩成人精品在线| 欧美高清一级片在线| 一区二区三区丝袜| 日本精品免费观看高清观看| 国产精品毛片久久久久久久| 成人99免费视频| 国产精品久久久久久久久久免费看| 国产成人午夜电影网| 日本一区二区综合亚洲| 国产精品66部| 日本一区二区视频在线观看| 丁香网亚洲国际| 亚洲欧洲日韩在线| 99国产精品国产精品毛片| 中文字幕一区二区在线观看| 国产91丝袜在线播放| 中文字幕视频一区二区三区久| 成人免费精品视频| 亚洲精品视频在线观看免费| 91影视在线播放| 亚洲一区二区精品视频| 欧美日本一区二区| 天天影视网天天综合色在线播放| 欧美一区二区三区四区在线观看| 日韩av午夜在线观看| 亚洲精品一区在线观看| 国产黄人亚洲片| 国产精品福利在线播放| 欧美亚洲一区二区在线| 人禽交欧美网站| 国产校园另类小说区| 97精品久久久久中文字幕 | 国产一区二区三区四区在线观看| 国产亚洲精品超碰| 91看片淫黄大片一级在线观看| 亚洲在线视频网站| 欧美一区二区精品久久911| 国产成人在线视频网址| 亚洲欧美国产三级| 欧美一区二区精品久久911| 国产成人精品亚洲午夜麻豆|