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

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

?? csi24wc02.s

?? 基于ARM的I2C協議實現
?? S
字號:
;******************************************************************************	
; File:CSI24WC02.S
; 功能:使用LPC210x模擬EEPROM器件CSI24WC02。LPC210x具有硬件I2C接口,使用其從方式進行
;      I2C器件模擬,本例使用了256字節的RAM作為存儲單元。
; 說明:將跳線器JP12斷開,然后與主機連接。
;******************************************************************************	
		        INCLUDE     LPC2106.INC
		
CSI24WC02       EQU 	0xA1                            ; 定義從要地址,忽略通用地址
EEPROM          EQU     0x40003000                      ; 定義EEPROM存儲單元,地址為0x40003000--0x400030FF
ADRPOINT        EQU     0x40003100                      ; 定義EEPROM讀寫操作指針
SLARCV          EQU     0x40003104                      ; 定義子地址接收標志,為1時表示己接收從機地址

		
		        AREA   	EEPROMC,CODE,READONLY 
		        ENTRY		
		    
                ; 異常向量   
Vectors         LDR     PC, ResetAddr
                LDR     PC, UndefinedAddr
                LDR     PC, SWI_Addr
                LDR     PC, PrefetchAddr
                LDR     PC, DataAbortAddr
                NOP
                LDR     PC, IRQ_Addr
                LDR     PC, FIQ_Addr

ResetAddr       DCD     Reset
UndefinedAddr   DCD     Undefined
SWI_Addr        DCD     SoftwareInterrupt
PrefetchAddr    DCD     PrefetchAbort
DataAbortAddr   DCD     DataAbort
Nouse           DCD     0
IRQ_Addr        DCD     IRQ_Handler
FIQ_Addr        DCD     FIQ_Handler

; 中斷服務程序
Undefined
SoftwareInterrupt
PrefetchAbort
DataAbort
FIQ_Handler
                B       .


; IRQ中斷處理(I2C中斷處理)
IRQ_Handler
                STMFD   SP!,{R0-R12,LR}                 ; 現場保護
                
                ; 讀取狀態碼,然后進行分析及控制
                LDR     R0,=I2C_BASE
                LDR     R1,[R0,#0x04]
                AND     R1,R1,#0xF8
                
                CMP     R1,#0x60                        ; 判斷是否接收到自身SLA+W                                             
                CMPNE   R1,#0x68                       
                BEQ     SLAWR                           ; 接收到自身SLA+W 
                
                CMP     R1,#0xA8                        ; 判斷是否接收到自身SLA+R
                CMPNE   R1,#0xB0
                BEQ     SLARD                           ; 接收到自身SLA+R
                
                CMP     R1,#0x80
                BEQ     RCV_DAT                         ; 前一次尋址接收到自身SLA+W,己接收數據,并返回ACK
                
                CMP     R1,#0xB8
                BEQ     SEND_DAT
                
                CMP     R1,#0xC0                        ; 己發送數據,并接收到非應答信號  
                BEQ     STOP_BUS
                
                CMP     R1,#0xA0                        ; 接收到停止條件或重復起動條件A0H
                BEQ     STOP_BUS
                 
                ; 接收其它狀態值,則設置SI=0,AA=1,然后退出
OTHER_STA       MOV     R1,#0x04
                STR     R1,[R0]                         ; 設置AA=1
                B       EXIT_IRQ                        ; 退出中斷(會清除SI位)
                
;******************************************************************************		
; 從接收狀態,即接收到SLA+W。
; 將子地址接收標志置0,然后退出。
;****************************************************************************** 
SLAWR           MOV     R1,#0
                LDR     R2,=SLARCV
                STR     R1,[R2]                         ; 子地址接收標志置0
                MOV     R1,#0x04
                STR     R1,[R0]                         ; 設置AA=1
                B       EXIT_IRQ                        ; 退出中斷(會清除SI位)      
                
;******************************************************************************		
; 從發送狀態,即接收到SLA+R,或已發送數據并接收到ACK位。
; 發送當前讀寫指針的一字節數據,并將讀寫指針自動加1。
;******************************************************************************                
SLARD           
SEND_DAT        LDR     R1,=EEPROM                      ; 取得E2PROM操作實際地址
                LDR     R2,=ADRPOINT
                LDR     R2,[R2]
                ADD     R2,R2,R1
                LDRB    R1,[R2]                         ; 讀出數據
                AND     R1,R1,#0xFF
                STR     R1,[R0,#0x08]                   ; 發送數據
                LDR     R2,=ADRPOINT                    ; 讀寫指針加1
                LDR     R1,[R2]
                ADD     R1,R1,#1
                AND     R1,R1,#0xFF
                STR     R1,[R2] 
                MOV     R1,#0x04
                STR     R1,[R0]                         ; 設置AA=1
                B       EXIT_IRQ                        
 
 
;******************************************************************************		
; 接收主要發送的數據。
; 程序先判斷是否接收子地址,若沒有接收,則接收并設置讀寫指針及該標志;
; 若程序已接收子地址,則開始接收數據,并將讀寫指針自動加1。
;******************************************************************************  
RCV_DAT         LDR     R2,=SLARCV                      ; 判斷SLARCV是否為0
                LDR     R1,[R2]
                CMP     R1,#0
                BEQ     RCVSLA                          ; 若是,則接收子地址  
                
RCVDATA         LDR     R1,=EEPROM                      ; 取得E2PROM操作實際地址
                LDR     R2,=ADRPOINT
                LDR     R2,[R2]
                ADD     R2,R2,R1
                LDR     R1,[R0,#0x08]                   ; 接收數據,寫入模擬E2PROM
                AND     R1,R1,#0xFF
                STRB    R1,[R2]
                LDR     R2,=ADRPOINT                    ; 讀寫指針加1
                LDR     R1,[R2]
                ADD     R1,R1,#1
                AND     R1,R1,#0xFF
                STR     R1,[R2] 
                MOV     R1,#0x04
                STR     R1,[R0]                         ; 設置AA=1
                B       EXIT_IRQ                        ; 退出中斷
                
                
RCVSLA          LDR     R1,[R0,#0x08]                   ; 讀取接收到的數據I2DAT
                LDR     R2,=ADRPOINT
                STR     R1,[R2]                         ; 設置讀寫指針ADRPOINT
                MOV     R1,#1
                LDR     R2,=SLARCV                     
                STR     R1,[R2]                         ; 設置SLARCV標志為1
                MOV     R1,#0x04
                STR     R1,[R0]                         ; 設置AA=1
                B       EXIT_IRQ                        ; 退出中斷
                
;******************************************************************************		
; 結束總線,設置SI=0,AA=1。
;******************************************************************************
STOP_BUS        MOV     R1,#0x04
                STR     R1,[R0]                         ; 設置AA=1
                B       EXIT_IRQ                        ; 退出中斷(會清除SI位)                 
                                
EXIT_IRQ        MOV     R1,#0x38
                STR     R1,[R0,#0x18]                   ; 清除標I2C標志位,STA、STO、SI
                LDMFD   SP!,{R0-R12,LR}                 ; 恢復現場
                SUBS    PC,LR,#4



;******************************************************************************		
; 主程序,進行I2C從機設置,并初始化EEPROM操作指針。
;******************************************************************************
Reset           MSR     CPSR_c,#0xd2                    ; 切換到IRQ模式
                LDR     R0,=0x40003F00                  ; 設置IRQ模式的堆棧,0x40003E00-0x40003EFF
                MOV     SP,R0                           
                MSR     CPSR_c,#0x53                    ; 切換到管理模式并開放IRQ中斷                
                LDR     R0,=0x40003FFF                  ; 設置管理模式的堆棧,0x40003F00-0x40003FFF
                MOV     SP,R0
                
                LDR     R0,=MEMMAP                      ; REMAP操作。(若使用0地址寫入到FLASH,則不要使用REMAP)                                     
                MOV     R1,#0x02
                STR     R1,[R0]
                          
                LDR     R0,=ADRPOINT          
                MOV     R1,#0
                STR     R1,[R0]                         ; 初始化讀寫指針為0
                LDR     R0,=SLARCV
                STR     R1,[R0]                         ; 子地址接收標志置0
                
                ; 設置為從機方式
                LDR	    R0,=PINSEL0		                ; 設置I2C控制口有效
		        MOV	    R1,#0x50		
		        STR	    R1,[R0] 
		        
		        LDR     R0,=I2C_BASE	        
		        MOV     R1,#CSI24WC02
		        STR     R1,[R0,#0x0C]                   ; 設置從機地址,I2ADR=CSI24WC02
		        
		        MOV     R1,#0x44
		        STR     R1,[R0]                         ; I2C配置為從機模式,I2CONSET=0x44
		        
		        ; 允許I2C中斷(設置為非向量IRQ)
		        LDR     R0,=VIC_BASE_ADDR
		        MOV     R1,#0x00
		        STR     R1,[R0,#0x0C]                   ; 所有中斷設置為IRQ中斷,VICIntSelect=0x00
		        MOV     R1,#0x0200
		        STR     R1,[R0,#0x10]                   ; 允許I2C中斷,VICIntEnable=0x0200
		        
		        B       .                               ; 等待I2C中斷
		                              
                END
                
                
                
                
		    
		    
		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一精品在线| 国产欧美日韩三级| 一区二区三区在线观看网站| 91色九色蝌蚪| 一区二区三区在线观看网站| 91久久精品国产91性色tv| 伊人开心综合网| 欧美日韩中文字幕一区| 日韩精品五月天| 亚洲精品在线观看视频| 成人久久久精品乱码一区二区三区| 亚洲视频免费看| 欧美日韩一区高清| 国产一区高清在线| 亚洲日本乱码在线观看| 欧美久久久久久久久| 韩日av一区二区| 中文字幕一区二区三区蜜月 | 国产精品久久久久久久久搜平片 | 欧美日韩专区在线| 奇米888四色在线精品| 国产欧美一区二区精品秋霞影院| 色狠狠色狠狠综合| 久久激五月天综合精品| 综合网在线视频| 欧美精品久久久久久久多人混战 | 欧美96一区二区免费视频| 国产午夜亚洲精品理论片色戒| 波多野结衣精品在线| 午夜精品一区二区三区三上悠亚| 欧美成人在线直播| 97久久超碰精品国产| 免费成人你懂的| 国产精品久线在线观看| 日韩一区二区三区观看| 97se亚洲国产综合自在线| 免费成人在线观看| 亚洲乱码国产乱码精品精小说| 日韩欧美在线观看一区二区三区| 99久久99久久综合| 狠狠色丁香久久婷婷综合丁香| 亚洲自拍都市欧美小说| 国产人妖乱国产精品人妖| 欧美日韩一区精品| 99久久免费视频.com| 国内不卡的二区三区中文字幕 | 国产女人aaa级久久久级| 欧美日韩国产美女| 97久久久精品综合88久久| 国内精品伊人久久久久av一坑| 亚洲激情校园春色| 国产精品另类一区| 精品国产1区二区| 7777精品伊人久久久大香线蕉经典版下载| 国产精品99久久不卡二区| 日韩av电影一区| 亚洲国产人成综合网站| 国产精品午夜久久| 久久色中文字幕| 日韩一区二区三区av| 欧美日韩国产在线播放网站| 日本韩国视频一区二区| 成人高清av在线| 成人国产精品免费观看动漫| 国产九九视频一区二区三区| 免费精品视频在线| 美洲天堂一区二卡三卡四卡视频| 亚洲国产欧美在线| 亚洲一区二区三区四区的| 一区二区三区四区中文字幕| 1024国产精品| 中文字幕一区日韩精品欧美| 中文字幕欧美激情| 欧美国产精品劲爆| 国产精品久久久久aaaa樱花 | 日韩欧美一二三区| 欧美日韩一区不卡| 欧美日韩另类国产亚洲欧美一级| 在线精品视频免费播放| 欧美性淫爽ww久久久久无| 91豆麻精品91久久久久久| 91在线观看美女| 色猫猫国产区一区二在线视频| 99久久精品国产毛片| 色综合久久88色综合天天6| 91视频91自| 欧美天堂一区二区三区| 欧美日韩亚洲综合| 5858s免费视频成人| 日韩美女视频在线| 精品国产乱码久久久久久久久| 2023国产精品自拍| 欧美激情在线观看视频免费| 中文字幕一区视频| 亚洲综合精品自拍| 男人操女人的视频在线观看欧美| 国内精品伊人久久久久影院对白| 国产精品1024久久| 91亚洲午夜精品久久久久久| 91国产免费看| 欧美一区二视频| 国产亚洲欧洲997久久综合| 国产精品亲子乱子伦xxxx裸| 夜夜操天天操亚洲| 免费精品99久久国产综合精品| 国产一区二区女| 9人人澡人人爽人人精品| 欧美性大战xxxxx久久久| 欧美一区二区成人| 国产精品美女久久久久久2018| 国产精品夫妻自拍| 一区二区视频在线看| 日本亚洲电影天堂| 高清国产一区二区三区| 91一区一区三区| 欧美一区二区视频在线观看 | 中文字幕五月欧美| 香港成人在线视频| 国产精品一区二区三区网站| 色婷婷久久久综合中文字幕 | 日韩精品欧美成人高清一区二区| 韩国女主播成人在线| 91黄色免费版| 久久午夜国产精品| 亚洲电影欧美电影有声小说| 国产乱码精品一区二区三区av| 91久久一区二区| 国产午夜精品一区二区| 亚洲国产成人高清精品| 成人在线视频一区| 欧美一级理论片| 亚洲另类春色校园小说| 国产成人午夜精品5599| 欧美一区二区视频在线观看| 亚洲欧美另类图片小说| 狠狠久久亚洲欧美| 欧美高清性hdvideosex| 国产精品久久久久久久久久免费看| 日本欧美一区二区| 在线精品视频一区二区| 亚洲欧美综合色| 国产精品一区不卡| 精品奇米国产一区二区三区| 亚洲自拍另类综合| 不卡一区二区在线| 欧美成人三级在线| 日韩av在线免费观看不卡| 一本一本大道香蕉久在线精品 | 成人网页在线观看| 精品少妇一区二区三区在线播放 | 欧美天堂亚洲电影院在线播放| 日本一区二区成人| 久久91精品国产91久久小草| 欧美精品三级在线观看| 亚洲一区二区三区视频在线| 一本色道久久综合亚洲aⅴ蜜桃| 久久久久久免费网| 精品系列免费在线观看| 日韩一区二区免费视频| 日韩av一级片| 日韩一区二区三区电影在线观看| 首页国产丝袜综合| 欧美视频一二三区| 亚洲自拍偷拍图区| 欧美亚洲综合另类| 亚洲线精品一区二区三区八戒| 国产毛片精品视频| 蜜桃视频在线一区| 成人看片黄a免费看在线| 久久众筹精品私拍模特| 久久 天天综合| 精品国产乱码久久久久久浪潮| 精品亚洲成a人在线观看| 欧美草草影院在线视频| 精品一区二区日韩| 久久久精品tv| 成人免费高清在线观看| 亚洲欧美日韩一区| 一本久久a久久精品亚洲| 亚洲精品日韩专区silk | 色久综合一二码| 一区二区三区免费在线观看| 欧美专区在线观看一区| 亚洲一区欧美一区| 91精品国产综合久久久久| 日本欧美加勒比视频| 久久久久久黄色| 91色综合久久久久婷婷| 亚洲电影一级黄| 欧美电影精品一区二区| 国产69精品久久久久777| 最近日韩中文字幕| 欧美午夜精品免费| 麻豆国产91在线播放| 国产日产欧产精品推荐色| 色嗨嗨av一区二区三区| 日韩高清不卡一区二区三区| 久久一夜天堂av一区二区三区| 成人av在线资源网| 婷婷久久综合九色综合绿巨人|