嵌入式系统课程设计-ARM9串行接收发送驱动程序设计

上传人:aa****6 文档编号:29989841 上传时间:2018-01-26 格式:DOC 页数:17 大小:82.50KB
返回 下载 相关 举报
嵌入式系统课程设计-ARM9串行接收发送驱动程序设计_第1页
第1页 / 共17页
嵌入式系统课程设计-ARM9串行接收发送驱动程序设计_第2页
第2页 / 共17页
嵌入式系统课程设计-ARM9串行接收发送驱动程序设计_第3页
第3页 / 共17页
嵌入式系统课程设计-ARM9串行接收发送驱动程序设计_第4页
第4页 / 共17页
嵌入式系统课程设计-ARM9串行接收发送驱动程序设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《嵌入式系统课程设计-ARM9串行接收发送驱动程序设计》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计-ARM9串行接收发送驱动程序设计(17页珍藏版)》请在金锄头文库上搜索。

1、1X 学校课 程 设 计 报 告课程名称: 嵌入式系统 设计题目:ARM9 串行接收发送驱动程序设计院 系: 电气信息学院 班 级: 姓 名: 学 号: 指导教师: 设计时间: 2目 录一、设计题目 .2二、设计内容 .2三、硬件原理 .2四、程序流程图 .21 接收程序流程图 .42、发送程序流程图 .43、收发程序流程图 .5五、程序设计 .61、基于 ARM9 微处理器的串行接收驱动程序设计 .62、基于 ARM9 微处理器的串行发送驱动程序设计 .73、基于 ARM9 微处理器的串行接收发送驱动程序设计 .10六、心得体会 .163七、参考文献 .16一、设计题目(1)基于 ARM9

2、微处理器的串行接收驱动程序设计(2)基于 ARM9 微处理器的串行发送驱动程序设计(3)基于 ARM9 微处理器的串行接收发送驱动程序设计二、设计内容1 (1)基于 ARM9 微处理器的串行接收驱动程序设计初始化程序设计串行接收程序设计(2)基于 ARM9 微处理器的串行发送驱动程序设计初始化程序设计串行发送程序设计(3)基于 ARM9 微处理器的串行接收发送驱动程序设计初始化程序设计串行接收发送程序设计2 实现 PC 机与 EL-ARM-830 开发系统的串行通讯,具体通讯方式与内容:(1) 帧 格 式 : 正 常 模 式 ,无 奇 偶 校 验 ,一 个 停 止 位 ,8个 数 据 位(2)

3、串行发送:每过一定时间,隔 2 行发送字符串“HOW ARE YOU!”,通过 PC 机的串口调试助手接收。(3) 串行接收:将接收到的 5 个字符存储到以 0XC 为首地址的 SDRAM中,通过串口调试助手发送字符.(4)当接收到串口调试助手界面发送的“1”,发送第 1 屏信息;当接收到串口调试助手界面发送的“2”,发送第 2 屏信息;当接收到串口调试助手界面发送的“3”,发送第 3 屏信息设计要求(1)流程图设计,流程图上每个任务的文字说明。4(2)完整的程序清单。(3 )通过在 PC 机和 EL-ARM-830 开发平台上的调试。三、硬件原理硬件原理如图所示,U2 MAX232 是 RS

4、-232C 的接口电路,实现电平转换作用。能将来自 S3C44B0X 一侧的 0V3.3V 正逻辑电平转换为符合 EIA标准的负逻辑电平输出,既当 S3C44B0X 发出 0V 电平时,经过 MAX232 转换为 3V15V 电平,当 S3C44B0X 发出 3.3V 电平时,经过 MAX232 转换为-3V-15V 电平;能将来自 PC 机一侧的标准 RS-232 电平,转换为 TTL 电平输出,既当 MAX232 接收到 3V15V 电平时,能转换为 0V 电平传向S3C44B0X 一侧,当 MAX232 接收到-3V-15V 电平时,能转换为 5V 电平传向 S3C44B0X 一侧。通过

5、这种电平转换,实现 S3C44B0X 与标准 RS-232C设备通讯。图 10-8 中 R1、R2 是限流电阻,起保护作用。原因是,MAX232 向 S3C44B0X 一侧的电平信号是 05V,而 S3C44B0X 仅能发出/接收 03.3V 电平,逻辑高电平不匹配,通过限流电阻,简单实现两种电平的接口。串行通讯原理图5四、程序流程图1 接收程序流程图2、发送程序流程图开始初始化检测接收寄存器是否有有效数据读出数据结束YESNO开始初始化63、收发程序流程图检测发送寄存器是否为空发送数据结束YESNO开始初始化检测是否有有效数据YESNO检测有效数据是否为 1检测有效数据是否为 2检测有效数据

6、是否为 3发送第 1 屏数据发送第 2 屏数据YESYESNONOYES7五、程序设计1、基于 ARM9 微处理器的串行接收驱动程序设计ULCON0 EQU 0x01d00000 ;/0x03 无校验,一个停止位;UCON0 EQU 0x01d00004 ;/0x0c;UFCON0 EQU 0x01d00008 ;/0x01;UMCON0 EQU 0x01d0000C ;/0x00;URXH0 EQU 0x01d00024 ;/数据寄存器UBIRDIV0 EQU 0x01d00028 ;/波特率设置UTRSTAT0 EQU 0x01d00010 ;/状态寄存器CNT EQU 5PCONE EQ

7、U 0X01D20028PUPE EQU 0X01D20030WDTCON EQU 0X01D30000 ;WDTCONAREA T_TXD,CODE,READONLYENTRY LDR R13,=0XCBL INITLDR R4,=0XCLDR R5,=CNTLOOP LDR R3,=UTRSTAT0LDR R2,R3TST R2,#0x01BEQ LOOPLDR R0,=URXH0 发送第 3 屏数据NO8LDRB R1,R0STRB R1,R4,#1SUBS R5,R5,#1BNE LOOPLOOP1 B LOOP1DELAYLDR R6,=0XFFFFDELAY1SUBS R6,R6,

8、#1BNE DELAY1MOV PC,R14INITLDR R1,=WDTCONLDR R0,=0X0STR R0,R1LDR R1,=PCONELDR R0,=0x28STR R0,R1 LDR R1,=PUPELDR R0,=0XFFSTR R0,R1LDR R1,=ULCON0LDR R0,=0x03STR R0,R1LDR R1,=UCON0LDR R0,=0x245STR R0,R1LDR R1, = UFCON0LDR R0, = 0x0STR R0, R1LDR R1, = UMCON0LDR R0, = 0x0STR R0, R1LDR R1, = UBIRDIV0 ;频率 6

9、0MLDR R0, = 0x20 ;(取整)(/16/)-1STR R0, R19MOV PC,LREND2、基于 ARM9 微处理器的串行发送驱动程序设计ULCON0 equ 0x01d00000 ; UART 线控制器地址UCON0 EQU 0x01d00004 ; UART 控制器地址UFCON0 EQU 0x01d00008 ; UART FIFO 控制器地址UMCON0 EQU 0x01d0000C ; UART Modem 控制器地址UTXH0 EQU 0x01d00020 ; 发送数据寄存器地址URXH0 EQU 0x01d00024 ; 接收数据寄存器UBIRDIV0 EQU

10、0x01d00028 ; 波特率除数寄存器UTRSTAT0 EQU 0x01d00010 ; UART 发送/接收状态寄存器地址PCONE EQU 0X01D20028 ; 通用 E 口配置寄存器地址PUPE EQU 0X01D20030 ; 通用 E 口上拉电阻配置寄存器地址WDTCON EQU 0X01D30000 ; WDT 控制器地址AREA T_TXD,CODE,READONLY ;欢宕攵?T_TXDENTRY ;程序入口LDR R13,=0X ;设置堆栈指针BL INIT ;调用初始化子程序子程序M1LDR R0,=S1_L1 ;发送 1 行字符BL TXD_LINELDR R1,

11、=0XFFFFF ;延时BL DELAYB M1 ;重复发送;-DELAY SUB.-DELAY ;延时子程序SUBS R1,R1,#1BNE DELAYMOV PC,R14;-INIT SUB.-INIT ;初始化子程序LDR R1,=WDTCON ;关闭 WDT,以免影响程序调试10LDR R0,=0X0STR R0,R1LDR R1,=PCONE ;配置通用 I/O 口,使 PE2为 RxD0,PE1 为 TxD0LDR R0,=0x28STR R0,R1 LDR R1,=PUPE ;配置 E 口无上挂电阻LDR R0,=0XFFSTR R0,R1LDR R1,=ULCON0 ;配置 U

12、ART 线控制器:正常模式,无奇偶校验,一个停止位 ,8个数据位LDR R0,=0x03STR R0,R1LDR R1,=UCON0 ;配置 UART 控制器:RX 边沿触发,TX电平触发,;禁用延时中断,使用 RX 错误中断,正常操作;模式,中断请求或表决模式LDR R0,=0x245STR R0,R1LDR R1, = UFCON0 ;配置 UART FIFO 控制器:禁用 FIFOLDR R0, = 0x0STR R0, R1LDR R1, = UMCON0 ;配置 UART Modem 控制器:禁止使用 AFCLDR R0, = 0x0STR R0, R1LDR R1, = UBIRD

13、IV0 ;配置波特率,系统主频为频率60MLDR R0, = 0x20 ;(取整)(/16/)-1=32STR R0, R111MOV PC,LR ;子程序返回;-TXD_LINE SUB.-TXD_LINE ;发送 1 行字符串子程序MOV R4,LR ;保存堆栈指针TXD_LINE1LDRB R1,R0,#1ANDS R1,R1,#0XFFMOVEQ PC,R4BL TXD_BYTEB TXD_LINE1;-TXD_BYTE SUB.-TXD_BYTE ;发送 1 字符子程序MOV R5,LRLDR R3,=UTRSTAT0LDR R2,R3TST R2,#0X02BEQ TXD_BYTELDR R2,=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号