- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二RS-232串口通信实验
昆明理工大学信息工程与自动化学院学生实验报告
( 2011 —2012 学年第 2 学期 )
课程名称:嵌入式技术基础与实验 开课实验室:信自楼234 2012 年 5 月 10 日
年级、专业、班 学号 姓名 成绩 实验项目名称 RS-232串口通信实验 指导教师 教师评语
教师签名:
年 月 日 注:报告内容按实验须知中七点要求进行。
一、实验目的
通过该实验实习,进一步熟悉CodeWarrior嵌入式开发系统环境、汇编和C语言以及调试方式;加强串口通信(SCI)基本原理及编程原理;理解课本中的程序代码;分别运用查询方式、中断方式实现通信。
二、实验原理及基本技术路线图(方框原理图)
AW60 MCU的SCI有2个,能接收其他设备信息供MCU处理,也能将MCU内部的信号输出给外部设备,显示数据或者控制对象。SCI的使用涉及波特率寄存器、控制寄存器、状态寄存器和数据寄存器。接收方和发送方必须在相同的波特率和模式的条件下接收和发送信息。引脚连接图如图4-1所示。
图4-1 SCI的连接图
三、所用仪器、材料(设备名称、型号、规格等)
飞思卡尔试验箱
四、实验方法、步骤
1、资源使用
SCI连接图雷同演示实验,即MCU的SCI发送引脚E口的1号引脚接MAX232的TTL电平接收引脚11号,MCU的SCI接收引脚E口的0号引脚接MAX232的TTL电平发送引脚12号。
另外,要讲SCI线一头接PC的COM1,一头接实验箱的COM1或COM2,小灯的连接是用D口的1号引脚和一个小灯接口连接。
波特率为19200bps,计算波特率寄存器的值,计算过程:
公式为
SCI1BD=fsys/(波特率*16)(其中fsys=sysclk*1000000)
SCI1BD(19200*16)=65
然后将其结果供后语句使用。
SCI1BDH=0x00;
SCI1BDL=0x41;
2、硬件设计
先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。
3、软件设计(主要的程序流程图)
MCU端程序流程图
4、编程(关键性程序段)
串行通信中断方式的主程序部分代码:
//-------------------------------------------------------------------------*
#include Includes.h
void main(void)
{
//1 关总中断
DisableInterrupt(); //禁止总中断
//2 芯片初始化
MCUInit();
//3 模块初始化
//3.1 指示灯初始化
Light_Init(Light_Run_PORT,Light_Run,Light_OFF);
//3.2 串行口初始化
//使用SCI1模块,使用系统时钟作为SCI的时钟源
//波特率为38400
SCIInit(SCI_NUM_1,SYSTEM_CLOCK,38400);
//4 开放中断
EnableSCIReInt(); //开放SCI接收中断
EnableInterrupt(); //开放总中断
//5 主循环
while (1)
{
}
}
2)、串行中断方式子程序部分代码:
interrupt void SCI1_Recv(void)
{
uint8 i;
uint8 SerialBuff[1]; //存放接收数据的数组
DisableInterrupt(); //禁止总中断
i = SCIReN(SCI_NUM_1,1,SerialBuff); //等待接收1个数据
if (i == 0) SCISendN(SCI_NUM_1,1,S
文档评论(0)