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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hi2c_asm.inc

?? LPC900單片機設計方案--自動響鈴實驗系統
?? INC
字號:
;			P89LPC932硬件I2C軟件包(主)
;
; 1  使用I2C總線軟件包時P1.2,P1.3切勿寫為0,并要設置為開漏輸出。
; 2  總線定義為P1.2=SCL,P1.3=SDA,需外接上拉電阻2-10k。
; 3  相應寄存器:
;    地址寄存器  I2ADR   用于存放自身從地址(從方式時才有用)
;    數據寄存器  I2DAT   接收/發送數據用
;    控制寄存器  I2CON   用于硬件I2C的設置、使能、啟動、結束,
;                        應答控制,中斷標志等。
;    狀態寄存器  I2STAT  指示I2C總線的操作狀態碼,高5位有效,
;                        若I2C中斷志置位,可查詢此寄存器判斷
;                        總線情況。
;    SCL占空比寄存器  I2SCLH、I2SCLL  設置SCL的頻率發生。
;                        
;    此軟件包是以查詢方式完成各種總線操作的,在使用前應對總線進行檢查,并
;使用看門狗,以防等待總線而造成死機。
;                                  更新時間:2002.11.05
;


;申請總線
;功能:進行I2C總線的初始化--包括時鐘選擇,I2C使能,發送起始信號等等。
;      I2EN為1,設置為主機;CRSEL位為0,使用內部SCL發生器。
GETBUS:
       MOV   	I2SCLH,#15	;設置SCL高電平的PCLK周期數
       MOV	I2SCLL,#15	;設置SCL低電平的PCLK周期數,6MHz時為100Kbit/S
       MOV   	I2CON,#64H   	;使用內部SCL發生器,I2EN和AA置位,起動總線
       JNB   	SI,$         	;等待起始信號的發送
       RET


;發送數據函數
;功能:用于向總線發送數據
;入口參數:ACC   待發送的數據
SENDBYTE:
       	MOV  	I2DAT,A     	;發送數據
       	MOV  	I2CON,#44H  	;清除SI位等等
      	JNB  	SI,$        	;等待數據的發送
       	RET



;===================================================================================
;		      用戶接口子程序

;進行無子地址寫單字節
;入口參數:寫入值在ACC
;出口參數:ACK為1時表明操作正確 
;占用ACC,一字節堆棧
IWRBYTE:
     	CLR   	ACK
      	ACALL 	GETBUS       	;啟動總線
       	PUSH  	ACC           	;先保護待發送的數據
       	MOV   	A,SLA         	;器件尋址        
       	ACALL 	SENDBYTE
        MOV   	A,I2STAT
        CJNE  	A,#18H,IWRBEND	;發送器件地址,若無應答則退出操作(18H是總線狀態碼)
        POP   	ACC           
        ACALL 	SENDBYTE      	;發送數據
        MOV   	A,I2STAT
        CJNE  	A,#28H,IWRBEND
        SETB  	ACK           	;設置出口標志位
IWRBEND:MOV   	I2CON,#54H   	;結束總線               
        RET        



;進行隨機地址多字節寫
;入口參數:器件從地址SLA 子地址SUBA  發送數據區MTD  讀入字節數NUMBYTE
;出口參數:ACK    為1時操作正確。
;占用R0,R1,ACC
IWRNBYTE: 
       	CLR   	ACK
       	MOV   	R0,#MTD
       	MOV   	R1,NUMBYTE
       	ACALL 	GETBUS         	;啟動總線
       	MOV   	A,SLA
       	ACALL 	SENDBYTE 
       	MOV   	A,I2STAT
       	CJNE  	A,#18H,IWRNEND
       	MOV   	A,SUBA
       	ACALL 	SENDBYTE
       	MOV   	A,I2STAT
        CJNE  	A,#28H,IWRNEND	;無應答則退出
         
IWRN_L1:MOV   	A,@R0
       	ACALL 	SENDBYTE       	;發送數據
        MOV   	A,I2STAT
        CJNE  	A,#28H,IWRNEND  ;無應答則退出
        INC   	R0
        DJNZ  	R1,IWRN_L1          
        SETB  	ACK             ;置標志位
IWRNEND:MOV	I2CON,#54H
        RET                  


;進行無子地址多字節寫
;入口參數:器件從地址SLA  發送數據區MTD  讀入字節數NUMBYTE
;出口參數:ACK    為1時操作正確。
;占用R0,R1,ACC
IWRNBYTEEXT: 
         CLR   	ACK
         MOV   	R0,#MTD
         MOV   	R1,NUMBYTE
         ACALL 	GETBUS        	;啟動總線
         MOV   	A,SLA
         ACALL 	SENDBYTE 
         MOV   	A,I2STAT
         CJNE  	A,#18H,IWRNEEND
         
IWRNE_L1:MOV   	A,@R0
         ACALL 	SENDBYTE        ;發送數據
         MOV   	A,I2STAT
         CJNE  	A,#28H,IWRNEEND	;無應答則退出
         INC   	R0
         DJNZ  	R1,IWRNE_L1          
         SETB  	ACK             ;置標志位
IWRNEEND:MOV   	I2CON,#54H
         RET                  



;進行立即地址單字節讀
;出口參數:讀出值在ACC
;出口參數:ACK    為1時操作正確。
;注:SLA要為寫的地址,因為此子程序會自動加1
IRDBYTE:
        CLR   	ACK
        ACALL 	GETBUS
        MOV   	A,SLA
        INC   	A               ;讀操作的器件尋址
        ACALL 	SENDBYTE
        MOV   	A,I2STAT
        CJNE  	A,#40H,IRDBEND
        MOV   	I2CON,#40H     	;接收一字節數據即發送非應答位
        JNB   	SI,$            ;等待接收數據
        MOV   	A,I2STAT
        CJNE  	A,#58H,IRDBEND
        MOV   	A,I2DAT         ;讀取數據
        SETB  	ACK
IRDBEND:MOV   	I2CON,#54H
        RET




;進行隨機地址多字節讀
;入口參數:器件從地址SLA 子地址SUBA  接收數據區MRD  讀入字節數NUMBYTE
;出口參數:ACK    為1時操作正確。
;占用R0,R1,ACC
IRDNBYTE:    
         CLR   	ACK
         MOV   	R0,#MRD
         MOV   	R1,NUMBYTE
         ACALL 	GETBUS
         MOV   	A,SLA
         ACALL 	SENDBYTE       	;器件尋址
         MOV   	A,I2STAT
         CJNE  	A,#18H,IRDNEND 	;無器件應答即退出
         MOV   	A,SUBA         	;寫入器件子地址
         ACALL 	SENDBYTE
         MOV   	A,I2STAT
         CJNE  	A,#28H,IRDNEND 	;總線出錯即退出
         MOV   	I2CON,#64H    	;重新啟動總線
         JNB   	SI,$
         MOV   	A,SLA
         INC   	A              	;讀操作的器件尋址
         ACALL 	SENDBYTE
         MOV   	A,I2STAT
         CJNE  	A,#40H,IRDNEND
         
IRDN_L1: DJNZ   R1,IRDN_L2
         MOV    I2CON,#40H   	;取最后一個數據后發送非應答位
         JNB    SI,$        
         MOV    A,I2STAT       	
         CJNE   A,#58H,IRDNEND
         MOV    A,I2DAT		;將數據取出
         MOV    @R0,A         	;數據存入MRD區中(R0指針指向MRD區)
         SETB   ACK
IRDNEND: MOV    I2CON,#54H
         RET           
IRDN_L2: MOV    I2CON,#44H   	;接收數據并發送應答位
         JNB    SI,$
         MOV    A,I2STAT
         CJNE   A,#50H,IRDNEND	;總線出錯即退出
         MOV    A,I2DAT       	;取數據
         MOV    @R0,A         	;數據存入MRD區
         INC    R0
         SJMP   IRDN_L1


;進行無子地址多字節讀
;入口參數:器件從地址SLA  接收數據區MRD  讀入字節數NUMBYTE
;出口參數:ACK    為1時操作正確。
;占用R0,R1,ACC
IRDNBYTEEXT:    
         CLR   	ACK
         MOV   	R0,#MRD
         MOV   	R1,NUMBYTE

         ACALL 	GETBUS
         MOV   	A,SLA
         INC   	A
         ACALL 	SENDBYTE       	;器件尋址
         MOV   	A,I2STAT
         CJNE  	A,#40H,IRDNEEND
         
IRDNE_L1:DJNZ   R1,IRDNE_L2
         MOV    I2CON,#40H   	;取最后一個數據后發送非應答位
         JNB    SI,$        
         MOV    A,I2STAT       	
         CJNE   A,#58H,IRDNEEND
         MOV    A,I2DAT
         MOV    @R0,A         	;數據存入MRD區中(R0指針指向MRD區)
         SETB   ACK
IRDNEEND:MOV   	I2CON,#54H
         RET           
IRDNE_L2:MOV    I2CON,#44H   	;接收數據并發送應答位
         JNB    SI,$
         MOV    A,I2STAT
         CJNE   A,#50H,IRDNEEND	;總線出錯即退出
         MOV    A,I2DAT       	;取數據
         MOV    @R0,A         	;數據存入MRD區
         INC    R0
         SJMP   IRDNE_L1
         
;使用前須在你的程序里要做以下定義:
;定義變量:  SLA 器件從地址  SUBA器件子地址  NUMBYTE讀/寫的字節數 ,位變量ACK 
;定義常量:  MTD 發送數據緩沖區首址    MRD 接收數據緩沖區首址
;
;定義LPC932的I2C相關寄存器的定義
;I2ADR	DATA	0DBH
;I2DAT	DATA	0DAH		
;I2CON	DATA	0D8H
;I2STAT	DATA	0D9H
;I2SCLH	DATA	0DDH
;I2SCLL	DATA	0DCH
;STA	BIT	I2CON.5
;SI	BIT	I2CON.3
;
;軟件包接口
;(1)IRDBYTE  立即地址讀單字節子程序
;       入口:器件從地址SLA
;       出口:讀出數據ACC,應答位ACK。
;       占用資源:ACC,CY
;       
;(2)IRDNBYTE 隨機地址讀多字節子程序
;       入口:器件從地址SLA,器件子地址SUBA,讀出字節數NUMBYTE
;       出口:讀出數據依次放在MRD區,應答位ACK。
;       占用資源:R0,R1,ACC,CY
;
;(3)IWRBYTE  立即地址寫單字節子程序
;      入口: 器件從地址SLA,寫入的數據ACC
;      出口: 應答位ACK。
;       占用資源:ACC,CY,一字節堆棧
;
;(4)IWRNBYTE 立即地址寫多字節子程序
;      入口: 器件從地址SLA,寫入的數據依次放在MTD區
;      出口: 應答位ACK。
;       占用資源:R0,R1,ACC,CY
;(ACK為調試/測試位,ACK為0時表示無器件應答或總線出錯)         

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美一区二区三区综合| 欧美一级日韩免费不卡| 精品一区二区免费视频| 男女男精品网站| 美女一区二区视频| 国产一区二区三区在线观看免费视频 | 美女性感视频久久| 蜜桃视频一区二区三区在线观看| 蜜桃视频一区二区三区| 激情丁香综合五月| 成人国产电影网| 日本高清不卡视频| 在线播放国产精品二区一二区四区| 欧美日韩久久久一区| 日韩欧美国产综合| 国产欧美日韩亚州综合| 亚洲欧美日韩系列| 亚洲国产精品影院| 久久丁香综合五月国产三级网站| 国产另类ts人妖一区二区| 成人免费va视频| 欧美日韩视频在线一区二区| 日韩视频一区二区三区在线播放| 精品成人一区二区三区四区| 国产精品妹子av| 亚洲午夜免费电影| 国产一区高清在线| 欧美三级中文字| 精品av综合导航| 亚洲欧洲成人精品av97| 午夜免费欧美电影| 不卡一区二区在线| 91精品国产欧美一区二区| 亚洲国产精品av| 男男视频亚洲欧美| 91亚洲精品乱码久久久久久蜜桃| 5566中文字幕一区二区电影| 中文字幕av一区二区三区高 | 亚洲综合一区二区精品导航| 老司机精品视频在线| 91在线视频在线| 精品91自产拍在线观看一区| 一区二区在线看| 国产精品性做久久久久久| 欧美日韩视频在线观看一区二区三区| 欧美精品一区二区三区蜜桃视频| 亚洲一区二区三区在线| 国产91精品在线观看| 91精品国产乱码| 一区二区三区国产豹纹内裤在线| 国产精品一区在线| 日韩欧美中文字幕精品| 一区二区高清视频在线观看| 国产ts人妖一区二区| 日韩欧美在线123| 亚洲自拍偷拍九九九| 99精品欧美一区| 国产精品美女久久久久aⅴ国产馆| 日韩成人一区二区三区在线观看| 成人ar影院免费观看视频| 久久久久久久精| 久久99精品久久久久久国产越南 | 蜜桃免费网站一区二区三区| 在线观看视频一区| 亚洲女与黑人做爰| 91在线观看地址| 亚洲欧美另类久久久精品| 91在线视频观看| 亚洲柠檬福利资源导航| 91麻豆蜜桃一区二区三区| 国产精品人人做人人爽人人添| 国产另类ts人妖一区二区| 久久精品男人的天堂| 国产成人综合亚洲91猫咪| www国产精品av| 国产高清精品网站| 欧美国产日韩在线观看| www.日韩在线| 亚洲乱码国产乱码精品精小说| 99久久综合色| 亚洲精品老司机| 欧美日韩精品二区第二页| 午夜视频在线观看一区二区| 欧美精品久久久久久久久老牛影院| 日韩精品国产欧美| 日韩视频一区二区三区在线播放| 久久99精品久久久久久国产越南| 国产亚洲婷婷免费| 9人人澡人人爽人人精品| 伊人婷婷欧美激情| 欧美一级欧美三级在线观看| 国产麻豆精品theporn| 国产精品国产自产拍在线| 波波电影院一区二区三区| 一区二区三区欧美| 日韩写真欧美这视频| 国产成人精品免费网站| 亚洲精品视频免费看| 欧美三级三级三级爽爽爽| 久草这里只有精品视频| 国产精品久久精品日日| 91久久精品网| 久久精品国产免费| 亚洲欧美自拍偷拍色图| 在线播放日韩导航| 成人精品视频网站| 午夜不卡av在线| 国产欧美日韩麻豆91| 欧美亚洲综合在线| 国产成人福利片| 亚洲综合色婷婷| 国产亚洲一区二区三区在线观看| 91视频在线看| 国产精品中文字幕日韩精品| 一区二区免费在线| 国产亚洲欧美日韩在线一区| 欧美做爰猛烈大尺度电影无法无天| 美女视频黄频大全不卡视频在线播放| 国产精品网曝门| 日韩精品在线一区二区| 色综合久久久网| 国产一级精品在线| 婷婷国产v国产偷v亚洲高清| 国产精品久久午夜夜伦鲁鲁| 日韩免费高清视频| 欧美视频一二三区| 91伊人久久大香线蕉| 国产激情视频一区二区在线观看| 视频在线在亚洲| 亚洲国产精品久久久久秋霞影院| 国产蜜臀97一区二区三区| 精品日韩欧美在线| 6080亚洲精品一区二区| 在线一区二区观看| 不卡的av网站| 国产69精品久久99不卡| 免费在线观看精品| 性感美女极品91精品| 国产精品每日更新在线播放网址| 久久一区二区视频| 精品国产乱码久久久久久老虎 | 日韩一区二区三区精品视频| 欧洲精品中文字幕| 91蜜桃在线免费视频| 成人国产一区二区三区精品| 韩国三级电影一区二区| 麻豆精品国产91久久久久久| 日韩成人精品视频| 首页亚洲欧美制服丝腿| 日韩国产一二三区| 日韩激情视频在线观看| 日韩精品成人一区二区在线| 午夜精品久久久久久久久久| 亚洲大片精品永久免费| 日韩电影在线看| 免费欧美在线视频| 精品亚洲成a人在线观看| 国产一区二区三区观看| 国产黄色精品网站| 91性感美女视频| 欧美三级蜜桃2在线观看| 欧美日韩中文字幕精品| 欧美午夜影院一区| 7777女厕盗摄久久久| 欧美一区二区三区视频在线观看| 欧美一区二区三区的| 久久夜色精品国产噜噜av| 国产人成一区二区三区影院| 国产精品久久久久一区二区三区 | 日本视频一区二区| 狠狠色丁香久久婷婷综合_中| 风流少妇一区二区| 一本一道波多野结衣一区二区| 欧美日韩中文国产| 2023国产精华国产精品| 1区2区3区精品视频| 亚洲h动漫在线| 国产酒店精品激情| 色噜噜狠狠成人中文综合 | 国产在线视频一区二区| 成人综合在线观看| 欧美亚洲国产一卡| 久久久久99精品一区| 亚洲日本中文字幕区| 伦理电影国产精品| 91免费在线播放| 精品久久久久久久久久久院品网| 国产精品网站一区| 欧美a一区二区| 91小视频在线| 精品国产免费人成电影在线观看四季| 中文字幕免费不卡在线| 日日夜夜精品视频免费| av成人免费在线观看| 精品国产髙清在线看国产毛片| 中文字幕视频一区二区三区久| 蜜臀国产一区二区三区在线播放 | 精品一区二区在线视频| 91福利在线看| 国产人久久人人人人爽|