⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 DSP中用MCBSP模拟I2C接口的程序.其中DSP的型号是C5416
💻 ASM
字号:

     .mmregs               
     .def start0
     .ref _INIT_PLL,_ODBYTECTR,_IDBYTECTR,_ODPTR
     .ref _init_gpio,_init_i2c,_write_i2c,_read_i2c
     .def _USER_FUNCTION
      		
			
LEN  .set	400         			;堆栈长度
BOS	 .usect "STK",LEN

;************************************************************************
; 主函数
;************************************************************************
     .text          
start0:    
	 STM	#BOS+LEN,SP             ;堆栈指针
     CALL	_INIT_PLL               ;初始化CPU时钟
     RSBX	SXM						
     NOP                
     CALL	_init_gpio              ;将 McBSP 配置成通用IO口
     CALL	_init_i2c               ;初始化I2C
;************************************************************************

;********填充发送数据(SAA7111A寄存器地址和配置的寄存器数据)*************    
     CALL	_init_i2c               ;初始化I2C
     STM	#_ODPTR+1,AR2          	
     ST		#1,*AR2+				;第一个寄存器地址
   ST     #00H,*AR2+				;连续写数据
    ST     #0C3H,*AR2+			 	
    ST     #33H,*AR2+				
    ST     #00H,*AR2+				
    ST     #00H,*AR2+				
    ST     #0EBH,*AR2+				
    ST     #0E0H,*AR2+
    ST     #88H,*AR2+
    ST     #01H,*AR2+
    ST     #80H,*AR2+
    ST     #47H,*AR2+
    ST     #40H,*AR2+
    ST     #00H,*AR2+
    ST     #01H,*AR2+
    ST     #00H,*AR2+
    ST    #00H,*AR2+ ;RGB565
    ;ST    #40H,*AR2+ ;YUV4:2:2
    ST     #1CH,*AR2+
    ST     #02H,*AR2+;ST     #0AH,*AR2+
    ST     #00H,*AR2+
    ST     #00H,*AR2+
    ST     #00H,*AR2+
    ST     #00H,*AR2+
    ST     #00H,*AR2+
    ST     #00H,*AR2+
    STM	   #_ODBYTECTR,AR1
    ST	   #19H,*AR1	    ;要发送的数据个数
	 CALL	_write_i2c 				;写数据并使能全局中断

     CALL	Delay                   

;*********发送SAA7111A	芯片地址*************************************
	 CALL	_init_i2c              
	 STM	#_ODPTR+1,AR1           
     ST		#1,*AR1+				
     NOP
     STM	#_ODBYTECTR,AR1
     ST		#1,*AR1					
	 CALL	_write_i2c	     		

	 CALL	Delay                   
     

;*********读寄存器值***************************************
	 CALL	_init_i2c               
	 STM	#_IDBYTECTR,AR1	        
    ; ST		#18H,*AR1
     ST		#1FH,*AR1		                    
     CALL	_read_i2c  				


;*********结束*************************************************
STOPSTOP:
		B	STOPSTOP                                
		
;************************************************************************	
;***延时*****************************************************************			
;************************************************************************			
Delay:     
		NOP
		PSHM	AR5
		PSHM	AR6
		NOP
		STM		#2000,AR5
LOOP1:	STM		#2000,AR6
LOOP2:  NOP
	    NOP
		BANZ	LOOP2,*AR6-
		BANZ	LOOP1,*AR5-	  
		NOP
		POPM	AR6
		POPM	AR5
		NOP
		RET
;************************************************************************	
;************************************************************************			
_USER_FUNCTION:
		NOP
		RET
			
      .end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -