资源描述:
《电子科技大学微机实验报告(含思考题)河畔下的哈】实验3》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三
ARM汇编实现串口通信实验
1.掌握ARM的串行口工作原理。
2.学习编程实现ARM和PC机的UART通信。
3.掌握ARM裸机下汇编语言编程方法。
1.学习串行通信原理,了解串行通信控制寄存器。
2.编程实现ARM和计算机之间的串行通信。
1、ARM汇编基础
2、ARM处理器通用IO口的操作
?硬件:ARM嵌入式开发平台,PC机一台,并口线,串口线,JTAG板
?软件:RVDS,H-JTAG
1.异步串行I/O
异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据
2、的各
不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线(输
入,输出)即可进行。
2.串口通信流程
串口通信就是读写寄存器的操作,通过配置相关寄存器,查询寄存器就可以操作串口通信。
需要配置的寄存器有系统时钟,UART行控制寄存器,UART控制寄存器,UARTFIFO控制寄
存器,UARTMODEM控制寄存器,UART波特率控制寄存器;需要查询的寄存器是发送/接收状
态寄存器。
1.打开CodeWarriorforRVDS,建立一个工程,通过查S3C2440处理器手册的UART通信
3、寄存器,serialcommutication.s文件中添加代码实现串口通信传输
2.设置工程配置选项,LanguageSetting->RealviewAssembler和RealviewCompiler中的
Architecture设置为ARM920T,配置RVDS下的连接器Linker->RealviewLinker中的ROBase
为0x30000000
3.
编译和调试工程。
4.连接PC和实验板的并口,串口;并口连接至ARM的JTAG口,串口连接至COMPORT
口;打开电源;打开H-JTAG程序(。
5
4、.点击调试器Dubeg->Run,运行程序,打开超级终端,在开始->程序->附件->通讯里打开
超级终端,使用COM1,设置波特率115200,8位数据位,无奇偶校验,1位停止位,无数
据流控制。
6.从键盘输入数据,观察超级终端是否打印出字符。如有正确的字符打印,则通信成功。
实验程序:
;**************SerialCommunicationExperiment*****************
;相关寄存器地址定义
CLKDIVNEQU0x4C000014;CLKDIVNforPCLKandFC
5、LK
CAMDIVNEQU0x4C000018;CANDIVN
ULCON0EQU0x50000000;UARTlinecontrolregister0
UCON0EQU0x50000004;UARTcontrolregister0
UFCON0EQU0x50000008;UARTFIFOcontrolregister0
UMCON0EQU0x5000000C;UARTmodemcontrolregister0
UBRDIV0EQU0x50000028;UARTbaudratedivisorregister0
UTR
6、STAT0EQU0x50000010;UARTTX/RXstatusregister0
UTXH0EQU0x50000020;UARTtransmitbufferregister0
URXH0EQU0x50000024;UARTreceivebufferregister0
MPLLCONEQU0x4C000004;MPLLcontrolregister
GPHCONEQU0x56000070;GPIOFcontrolregister
GPHUPEQU0x56000078;GPIOFpull-upregister
A
7、REASerialCommunication,CODE,READONLY
ENTRY
ldrr2,=MPLLCON;设置MPLL为0x00076022FCLK=Mpll=(2*m*Fin)/(p*(2的
s次方)),Fin=16.9344MHz
;m=(MDIV+8),p=(PDIV+2),
s=SDIV
movr3,#0x22
movr4,#0x00076000
ADDr3,r3,r4
strr3,[r2]
ldrr2,=CLKDIVN;CLKDIVN设置为0x03,PCLK=FCLK/4
movr3,#0
8、x03
strr3,[r2]
ldrr2,=CAMDIVN;CLKDIVN设置为0x0200,PCLK=FCLK/4
movr3,#0x200
strr3,[r2]
ldrr2,=ULCON0;ULCON0设置为0x03,含义是正常操作模式,无校验,停止位1,8
个数据位
movr3,#0x03
strr3,[r2]
ldrr2,=UCO