ARM专辑-152M-pdf.zip

源代码在线查看: sendstr.s

软件大小: 74715 K
上传用户: QQ
关键词: M-pdf ARM 152 zip
下载地址: 免注册下载 普通下载 VIP

相关代码

				;****************************************************************************** 
				; 文件名:SENDSTR.S
				; 功能:向串口发送数据。
				; 说明:使用外部11.0592MHz晶振,系统时钟配置后Fpclk=11.0592MHz;
				;      通讯波特率115200,8位数据位,1位停止位,无奇偶校验。
				;****************************************************************************** 
							INCLUDE		LPC2294.INC
							EXPORT  	MAIN
							
				FPCLK		EQU		11059200				; 定义FPclk
				ART_BPS		EQU		115200					; 定义波特率
							
							AREA   	SENDSTRC,CODE,READONLY 	
							ENTRY							
						
				MAIN 		LDR		SP,=0x40003F00			; 设置堆栈指出针
							LDR		R0,=PINSEL0				; 设置IO口使用为UART0
							MOV		R1,#0x05
							STR		R1,[R0]
							
							; 设置系统时钟
							LDR		R0,=VPBDIV
							MOV		R1,#0x00
							STR		R1,[R0]					; VPBDIV=0x00
							
							LDR		R0,=PLLCFG
							MOV		R1,#0x23
							STR		R1,[R0]					; PLLCFG=0x23,设置M值为4,P值为2
							LDR		R0,=PLLCON
							MOV		R1,#0x01
							STR		R1,[R0]					; PLLCON=0x01
							LDR		R0,=PLLFEED
							MOV		R1,#0xAA
							STR		R1,[R0]					; PLLFEED=0xAA
							MOV		R1,#0x55
							STR		R1,[R0]					; PLLFEED=0x55
				WAIT_OK		LDR		R0,=PLLSTAT				
							LDR		R1,[R0]
							ANDS	R1,R1,#0x0400
							BEQ		WAIT_OK					; 等待PLL锁定
							
							LDR		R0,=PLLCON
							MOV		R1,#0x03
							STR		R1,[R0]
							LDR		R0,=PLLFEED
							MOV		R1,#0xAA
							STR		R1,[R0]
							MOV		R1,#0x55
							STR		R1,[R0]
							
							BL		UART0_INI				; 初始化串口UART0,设置波特率
				LOOP		LDR		R3,=HELLO
							BL		UART0_SENDSTR			; 发送字串,字串中以0x00结束
							BL		DELAYS					; 软件延时
							B		LOOP
				
				
				;******************************************************************************					
				; 名称:DELAYS
				; 功能:软件延时
				; 入口参数:无
				; 出口参数:无
				; 占用资源:R7
				;******************************************************************************
				DELAYS	
							MOV		R7,#0x0000FF00			; 延时参数
				DELAYS_L1	SUBS	R7,R7,#1				; R7 = R7-1
							BNE		DELAYS_L1               ; 判断R7-1结果是否为0,若不为0则跳转
							MOV		PC,LR					; 返回
							
							
				
				;******************************************************************************			
				; 名称:UART0_INI
				; 功能:初始化串口0。设置为8位数据位,1位停止位,无奇偶校验,波特率为9600
				; 入口参数:无
				; 出口参数:无
				; 占用资源:R0、R1
				;******************************************************************************
				UART0_INI			
							LDR		R0,=U0LCR			    ; 设置UART工作模式
							MOV		R1,#0x83				; DLAB = 1,可设置波特率
							STR		R1,[R0]
									
							LDR		R0,=U0DLL			    ; 设置波特率
							MOV		R1,#(FPCLK/16/ART_BPS):MOD:256				
							STR		R1,[R0]	
							LDR		R0,=U0DLM								
							MOV		R1,#(FPCLK/16/ART_BPS)/256	
							STR		R1,[R0]
								
							LDR		R0,=U0LCR				
							MOV		R1,#0x03	
							STR		R1,[R0]					; 8位数据位,1位停止位,无奇偶校验,DLAB = 0 
							
							MOV		PC,LR					; 返回		
				
				
				;******************************************************************************
				; 名称:UART0_SENDB
				; 功能:串口发送字节数据。向UART0发送一字节数据,并等待发送完毕
				; 入口参数:R1		要发送的数据,低8位有效
				; 出口参数:无
				; 占用资源:R0、R1			
				;******************************************************************************
				UART0_SENDB
							LDR		R0,=U0THR			
							STR		R1,[R0]					; 发送数据
				
							LDR		R0,=U0LSR			    ; 等待发送完毕
				UART0SD_L1	LDR		R1,[R0]
							ANDS	R1,R1,#0x40
							BEQ		UART0SD_L1
							
							MOV		PC,LR
							
							
				;******************************************************************************
				; 名称:UART0_SENDSTR
				; 功能:向UART0发送字符串。发送字串指针R3,字串中以0x00结束
				; 入口参数:R3		要发送字串指针
				; 出口参数:无
				; 占用资源:R0、R1
				;******************************************************************************
				UART0_SENDSTR
							STMFA 	SP!,{R0-R9, LR}
							
				UART0SR_L1	LDR		R1,[R3],#4
							CMP		R1,#0x00
							BEQ		UART0SR_L2				; 若数据为0x00,返回
						
							BL		UART0_SENDB
							B		UART0SR_L1
							
				UART0SR_L2	LDMFA	SP!,{R0-R9, LR}
							MOV		PC,LR				
															
							LTORG							; 在此声明文字池
							
							
				HELLO		DCD  'H', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\r','\n',0x0			
							
							END
				
				
							

相关资源