- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP实验报告汇编
2015届研究生课程
《DSP原理与嵌入式系统》实验报告
实验名称:串口通讯实验,PWM波形产生实验,外部中断实验
串口通讯实验
一、实验目的
1.学习RS232串口通讯原理;
2.学习C2000系列DSP的RS232串行口模块的操作方法;
二、实验设备
计算机,CCS 2.0版软件,EXP4实验箱、DSP仿真器
三、实验步骤
1、学习RS232串口通讯原理;
2、阅读实验提供的程序;
3、运行样例程序,观察实验结果;
4、填写实验报告。
5、样例程序实验操作说明
实验前连接:
开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;将实验箱所配的交叉串口电缆连接电脑的串口1和实验箱“RS232”串口单元的串行接口;并检查计算机、DSP仿真器、实验箱是否正确连接;启动CCS 2.0,用Project/Open打开 “useruart.pjt”工程文件;双击“useruart.pjt”及“Source”可查看各源程序;并加载“useruart .out”;
运行“…\exp4_18_useruart(cpu2)\ 串口调试助手V2.2.exe”。
点击RUN运行程序;同时点击串口调试软件界面的“选择发送文件”按钮,选择要发送的文件。
点击“打开”按钮后,点击调试工具窗口的“发送文件”按钮,这时在调试窗口的接收数据区可以观察到接收的数据。
同时可看到实验箱“RS232接口单元”的串口数据接收指示灯D38和数据发送指示灯D39闪烁,LED1~8也不断闪烁。
在发送数据时,也可以选择十六进制发送的“手动发送”或“自动发送”,具体操作如下,在发送数据区输入十六进制数1111 2222 3333 4444 ,选择自动发送模式,在接收数据区循环接收到发送数据区发送的数据。
同时也可看到实验箱“RS232接口单元”的串口数据接收指示灯D38和数据发送指示灯D39闪烁,LED1~8也不断闪烁。
关闭所有相关程序,该实验结束。
程序启用了TMS320LF2407的串行口接收数据中断,当DSP通过串口接收到数据后在中断子程序中将接收到的数据原样通过RS232串口发送出。故此通过电脑端的串口测试程序发送一个数据,然后通过DSP传回,如果数据没变,则通讯成功。
实验改进部分说明:
通过串口工具向DSP发送数字或者字符,将接受到的字符显示在液晶显示屏上。实验效果图如下所示:
左图为串口工具发送的数据,有图为液晶显示屏显示的字符,目前存在的问题是每次只能发送一个数字或者字符,不能同时发送两个及以上的字符。
改进后主要程序如下:
/********************全局变量定义与初始化*********************/
/*************************************************************/
ioport unsigned port8002; //写lcd指令地址
ioport unsigned port8003; //写lcd数据地址
char data[2] = 00;
unsigned int getFlag = 0;
int i=0;
unsigned int a;
void delay_ms() //延时40ms
{
unsigned int k;
for(k=0;k10000;k++);
}
void delay_us() //延时100us
{
unsigned int k;
for(k=0;k25;k++);
}
void lcd_ini()
{
delay_ms(); //延时40ms
port8002=0x0030; //8位控制界面,基本指令集
delay_us();
port8002=0x0030; //8位控制界面,基本指令集
delay_us();
port8002=0x000C; //整体显示,显示游标 ,显示游标位置
delay_us();
port8002=0x0001; //清除显示
delay_ms();
port8002=0x0006; //光标右移
delay_us();
}
/*****************中断服务子程序声明与定义********************/
interrupt void nothing() //哑中断子程序
{
文档评论(0)