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

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

?? hi2c_asm.inc

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


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


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



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

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



;進行隨機地址多字節(jié)寫
;入口參數(shù):器件從地址SLA 子地址SUBA  發(fā)送數(shù)據(jù)區(qū)MTD  讀入字節(jié)數(shù)NUMBYTE
;出口參數(shù):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       	;發(fā)送數(shù)據(jù)
        MOV   	A,I2STAT
        CJNE  	A,#28H,IWRNEND  ;無應答則退出
        INC   	R0
        DJNZ  	R1,IWRN_L1          
        SETB  	ACK             ;置標志位
IWRNEND:MOV	I2CON,#54H
        RET                  


;進行無子地址多字節(jié)寫
;入口參數(shù):器件從地址SLA  發(fā)送數(shù)據(jù)區(qū)MTD  讀入字節(jié)數(shù)NUMBYTE
;出口參數(shù):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        ;發(fā)送數(shù)據(jù)
         MOV   	A,I2STAT
         CJNE  	A,#28H,IWRNEEND	;無應答則退出
         INC   	R0
         DJNZ  	R1,IWRNE_L1          
         SETB  	ACK             ;置標志位
IWRNEEND:MOV   	I2CON,#54H
         RET                  



;進行立即地址單字節(jié)讀
;出口參數(shù):讀出值在ACC
;出口參數(shù):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     	;接收一字節(jié)數(shù)據(jù)即發(fā)送非應答位
        JNB   	SI,$            ;等待接收數(shù)據(jù)
        MOV   	A,I2STAT
        CJNE  	A,#58H,IRDBEND
        MOV   	A,I2DAT         ;讀取數(shù)據(jù)
        SETB  	ACK
IRDBEND:MOV   	I2CON,#54H
        RET




;進行隨機地址多字節(jié)讀
;入口參數(shù):器件從地址SLA 子地址SUBA  接收數(shù)據(jù)區(qū)MRD  讀入字節(jié)數(shù)NUMBYTE
;出口參數(shù):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   	;取最后一個數(shù)據(jù)后發(fā)送非應答位
         JNB    SI,$        
         MOV    A,I2STAT       	
         CJNE   A,#58H,IRDNEND
         MOV    A,I2DAT		;將數(shù)據(jù)取出
         MOV    @R0,A         	;數(shù)據(jù)存入MRD區(qū)中(R0指針指向MRD區(qū))
         SETB   ACK
IRDNEND: MOV    I2CON,#54H
         RET           
IRDN_L2: MOV    I2CON,#44H   	;接收數(shù)據(jù)并發(fā)送應答位
         JNB    SI,$
         MOV    A,I2STAT
         CJNE   A,#50H,IRDNEND	;總線出錯即退出
         MOV    A,I2DAT       	;取數(shù)據(jù)
         MOV    @R0,A         	;數(shù)據(jù)存入MRD區(qū)
         INC    R0
         SJMP   IRDN_L1


;進行無子地址多字節(jié)讀
;入口參數(shù):器件從地址SLA  接收數(shù)據(jù)區(qū)MRD  讀入字節(jié)數(shù)NUMBYTE
;出口參數(shù):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   	;取最后一個數(shù)據(jù)后發(fā)送非應答位
         JNB    SI,$        
         MOV    A,I2STAT       	
         CJNE   A,#58H,IRDNEEND
         MOV    A,I2DAT
         MOV    @R0,A         	;數(shù)據(jù)存入MRD區(qū)中(R0指針指向MRD區(qū))
         SETB   ACK
IRDNEEND:MOV   	I2CON,#54H
         RET           
IRDNE_L2:MOV    I2CON,#44H   	;接收數(shù)據(jù)并發(fā)送應答位
         JNB    SI,$
         MOV    A,I2STAT
         CJNE   A,#50H,IRDNEEND	;總線出錯即退出
         MOV    A,I2DAT       	;取數(shù)據(jù)
         MOV    @R0,A         	;數(shù)據(jù)存入MRD區(qū)
         INC    R0
         SJMP   IRDNE_L1
         
;使用前須在你的程序里要做以下定義:
;定義變量:  SLA 器件從地址  SUBA器件子地址  NUMBYTE讀/寫的字節(jié)數(shù) ,位變量ACK 
;定義常量:  MTD 發(fā)送數(shù)據(jù)緩沖區(qū)首址    MRD 接收數(shù)據(jù)緩沖區(qū)首址
;
;定義LPC932的I2C相關(guān)寄存器的定義
;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  立即地址讀單字節(jié)子程序
;       入口:器件從地址SLA
;       出口:讀出數(shù)據(jù)ACC,應答位ACK。
;       占用資源:ACC,CY
;       
;(2)IRDNBYTE 隨機地址讀多字節(jié)子程序
;       入口:器件從地址SLA,器件子地址SUBA,讀出字節(jié)數(shù)NUMBYTE
;       出口:讀出數(shù)據(jù)依次放在MRD區(qū),應答位ACK。
;       占用資源:R0,R1,ACC,CY
;
;(3)IWRBYTE  立即地址寫單字節(jié)子程序
;      入口: 器件從地址SLA,寫入的數(shù)據(jù)ACC
;      出口: 應答位ACK。
;       占用資源:ACC,CY,一字節(jié)堆棧
;
;(4)IWRNBYTE 立即地址寫多字節(jié)子程序
;      入口: 器件從地址SLA,寫入的數(shù)據(jù)依次放在MTD區(qū)
;      出口: 應答位ACK。
;       占用資源:R0,R1,ACC,CY
;(ACK為調(diào)試/測試位,ACK為0時表示無器件應答或總線出錯)         

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产有无不卡 | 欧美精选在线播放| 欧美一级精品大片| 国产精品久久久久久久久免费樱桃 | 亚洲人成网站色在线观看| 免费美女久久99| 在线看日韩精品电影| 国产午夜精品久久| 日韩av一二三| 99re视频精品| 久久精品一区二区三区不卡| 婷婷国产在线综合| 色综合天天综合网国产成人综合天 | 久久99精品久久久久久动态图 | 久久久久久亚洲综合| 日本不卡视频一二三区| 91久久精品一区二区| 国产精品久久毛片av大全日韩| 老司机精品视频导航| 日韩美女视频在线| 蜜臀精品久久久久久蜜臀 | 日本不卡123| 欧美老女人第四色| 日韩国产欧美在线观看| 在线视频你懂得一区| 亚洲色欲色欲www| 99热这里都是精品| 亚洲精品国产视频| 欧美在线制服丝袜| 亚洲国产精品视频| 欧美日韩成人在线| 日韩av一二三| 亚洲精品一区二区三区福利| 久久精品国产亚洲高清剧情介绍 | 欧美日韩1区2区| 午夜精品久久久久久久久久| 欧美色电影在线| 午夜激情一区二区三区| 日韩一级免费观看| 国产综合一区二区| 国产色产综合产在线视频| 国产成人无遮挡在线视频| 国产色爱av资源综合区| 99精品热视频| 亚洲成av人片在线| 日韩欧美资源站| 久久99精品国产| 中文字幕一区二区三区精华液| av不卡免费电影| 亚洲综合一区二区三区| 日韩欧美黄色影院| 国产成人免费在线视频| 亚洲精品一二三| 欧美高清视频在线高清观看mv色露露十八 | 午夜视频一区在线观看| 日韩午夜激情av| 国产99一区视频免费| 最新欧美精品一区二区三区| 精品视频1区2区3区| 久久精品国产亚洲高清剧情介绍| 久久久精品影视| 欧洲精品一区二区| 黑人巨大精品欧美黑白配亚洲| 国产精品黄色在线观看| 欧美日韩国产高清一区二区三区 | 青青草97国产精品免费观看| 精品av综合导航| 91麻豆免费看| 国产呦萝稀缺另类资源| 亚洲精品亚洲人成人网在线播放| 日韩欧美亚洲一区二区| 95精品视频在线| 麻豆成人91精品二区三区| 国产精品视频免费看| 欧美高清激情brazzers| 成人综合婷婷国产精品久久免费| 亚洲综合色婷婷| 国产精品丝袜91| 日韩午夜激情视频| 欧洲精品一区二区三区在线观看| 国产高清视频一区| 三级久久三级久久久| 综合激情成人伊人| 久久久久久久久久久久久夜| 欧美日韩一区二区在线观看| 国产高清精品网站| 看片网站欧美日韩| 五月天久久比比资源色| 伊人婷婷欧美激情| 国产精品进线69影院| 久久久久久久久久久久久女国产乱 | 欧美一区二区精美| 91黄视频在线| av成人老司机| 高清成人免费视频| 国产一区二区看久久| 蜜臀久久久99精品久久久久久| 亚洲国产cao| 一区二区成人在线观看| 国产婷婷色一区二区三区在线| 欧美一级黄色大片| 欧美一区二区三区系列电影| 欧美性大战久久久久久久蜜臀 | 成人黄色av网站在线| 国产乱码精品一区二区三区忘忧草| 日韩精品视频网| 婷婷亚洲久悠悠色悠在线播放| 亚洲一区二区3| 一区二区三区在线观看动漫| 亚洲欧洲国产日韩| 亚洲欧洲日韩综合一区二区| 国产精品免费视频一区| 亚洲欧洲三级电影| 樱桃视频在线观看一区| 夜夜亚洲天天久久| 亚洲国产综合91精品麻豆| 亚洲永久免费av| 日韩精品亚洲一区二区三区免费| 视频在线观看一区| 免费观看一级欧美片| 久久爱另类一区二区小说| 精品一区二区免费| 国产成人免费在线| 99国产精品99久久久久久| 欧美亚洲一区三区| 宅男噜噜噜66一区二区66| 日韩一区二区三区免费观看| 欧美不卡激情三级在线观看| 欧美精品一区二区久久久| 国产视频一区二区三区在线观看| 国产三级一区二区三区| 国产精品国产精品国产专区不片| 亚洲欧美精品午睡沙发| 亚洲国产精品久久久久秋霞影院| 免费三级欧美电影| 粉嫩aⅴ一区二区三区四区| 色综合久久久久综合99| 欧美日韩一区二区三区免费看| 欧美久久久一区| 国产视频一区二区在线| 亚洲国产综合91精品麻豆| 麻豆精品视频在线观看视频| 国产不卡一区视频| 欧美午夜视频网站| www欧美成人18+| 综合av第一页| 国内欧美视频一区二区| 91网站黄www| 日韩欧美一二三| 亚洲精品视频在线| 精品一区二区三区免费毛片爱| 成人综合在线观看| 欧美一级国产精品| 一区二区三区中文在线| 韩国成人在线视频| 欧美无砖专区一中文字| 久久亚洲捆绑美女| 性久久久久久久久| yourporn久久国产精品| 91精品国产欧美一区二区成人| 欧美国产激情一区二区三区蜜月 | 日韩亚洲电影在线| 亚洲精品欧美在线| 国产成人精品在线看| 在线观看91av| 一区二区三区蜜桃网| 国产大陆a不卡| 在线综合+亚洲+欧美中文字幕| 国产日产精品一区| 美女一区二区久久| 欧美午夜精品一区二区三区 | 亚洲chinese男男1069| 成人免费毛片a| 欧美成人a∨高清免费观看| 亚洲国产一区二区视频| caoporen国产精品视频| 久久久青草青青国产亚洲免观| 婷婷丁香久久五月婷婷| 91同城在线观看| 亚洲国产岛国毛片在线| 国产在线日韩欧美| 日韩一区二区三区三四区视频在线观看| 亚洲欧洲av在线| 成人a区在线观看| 亚洲国产激情av| 成人美女视频在线看| 久久久电影一区二区三区| 久久9热精品视频| 日韩久久久精品| 久久国产精品第一页| 欧美一区二区啪啪| 奇米精品一区二区三区四区| 欧美日韩亚洲综合一区二区三区| 亚洲综合色在线| 欧美三级资源在线| 天堂成人国产精品一区| 欧美老年两性高潮| 丝瓜av网站精品一区二区 | 欧美精品黑人性xxxx| 日韩精品视频网站|