DSP实验

合集下载

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结DSP(Digital Signal Processing)数字信号处理是利用数字技术对信号进行处理和分析的一种方法。

在本次实验中,我们探索了DSP的原理和应用,并进行了一系列实验以验证其在实际应用中的效果。

以下是对实验结果的总结与分析。

实验一:数字滤波器设计与性能测试在本实验中,我们设计了数字滤波器,并通过性能测试来评估其滤波效果。

通过对不同类型的滤波器进行设计和实现,我们了解到数字滤波器在信号处理中的重要性和应用。

实验二:数字信号调制与解调本实验旨在通过数字信号调制与解调的过程,了解数字信号的传输原理与方法。

通过模拟调制与解调过程,我们成功实现了数字信号的传输与还原,验证了调制与解调的可行性。

实验三:数字信号的傅里叶变换与频谱分析傅里叶变换是一种重要的信号分析方法,可以将信号从时域转换到频域,揭示信号的频谱特性。

本实验中,我们学习了傅里叶变换的原理,并通过实验掌握了频谱分析的方法与技巧。

实验四:数字信号的陷波滤波与去噪处理陷波滤波是一种常用的去除特定频率噪声的方法,本实验中我们学习了数字信号的陷波滤波原理,并通过实验验证了其在去噪处理中的有效性。

实验五:DSP在音频处理中的应用音频处理是DSP的一个重要应用领域,本实验中我们探索了DSP在音频处理中的应用。

通过实验,我们成功实现了音频信号的降噪、均衡和混响处理,并对其效果进行了评估。

实验六:DSP在图像处理中的应用图像处理是另一个重要的DSP应用领域,本实验中我们了解了DSP在图像处理中的一些基本原理和方法。

通过实验,我们实现了图像的滤波、边缘检测和图像增强等处理,并观察到了不同算法对图像质量的影响。

通过以上一系列实验,我们深入了解了DSP的原理与应用,并对不同领域下的信号处理方法有了更深刻的认识。

本次实验不仅加深了我们对数字信号处理的理解,也为日后在相关领域的研究与实践提供了基础。

通过实验的结果和总结,我们可以得出结论:DSP作为一种数字信号处理的方法,具有广泛的应用前景和重要的实际意义。

DSP实验报告6

DSP实验报告6

DSP第六、七次实验报告1. 实验目的:(1)进一步熟悉Matlab实验环境和语言。

(2)熟悉各种滤波器的结构及Matlab实现语言。

(3)掌握用冲击响应不变法和双线性变换法设计IIR滤波器的方法。

(4)掌握用窗函数法和频率抽样法设计FIR滤波器的方法。

2. 实验内容及总结:1.滤波器结构:(1)IIR滤波器各种结构1、直接型结构例如直接型滤波器系统函数, 则有系数向量a=[1,a1,a2,a3],b=[b0,b1,b2], 利用:Y=filter[b,a,x]求信号x(n)通过此滤波器的输出。

2、由系统函数或差分方程求系统的二阶分式(含一阶分式)的级联结构将例如的系统函数重写为二阶分式节的级联型, 利用:[sos,G]=tf2sos(b,a)3、由二阶分式的级联结构转换成系统函数的直接结构是第二步的逆运算, 调用函数:[b,a] = sos2tf(sos)可以求得系数向量a,b, 从而得到H(z)4、由系统函数求部分分式展开(留数及其极点计算)即求z反变换的部分分式展开法, 利用:[r,p,c]=residuez(b,a)其中极点为p, 留数为r, 直接项系数为c。

5、由r,p,c求系统函数即第4步的逆运算, 利用:[b,a]=residuez(r,p,c)6、由直接型结构转换为并联型结构需开发函数:[C,B,A]=tf2par(b,a)其中, b,a为直接型的系数向量, C,B,A为并联型实系数向量, 基本思想是: 1.反复调用[r,p,c]=residuez(b,a)求出极点及留数;2.利用cplxpair函数把极点、留数对按复共轭极点-留数对, 实极点-留数对的顺序排列;3.开发cplxcomp函数, 保证极点和留数相互对应;4.调用[b,a]=residuez(r,p,c)计算并联二阶节的分子分母。

7、由并联型结构转换成直接型结构开发函数:[b,a]=par2tf(C,B,A)为[C,B,A]=tf2par(b,a)的逆函数。

DSP实验报告+心得体会

DSP实验报告+心得体会
// For this example use the following configuration:
Gpio_select();
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
GpioMuxRegs.GPAQUAL.all=var3;// Set GPIO input qualifier values
GpioMuxRegs.GPBQUAL.all=var3;
GpioMuxRegs.GPDQUAL.all=var3;
GpioMuxRegs.GPEQUAL.all=var3;
四、实验步骤
1.把2812模块小板插到大板上;
2.在CCS2000环境中打开本实验工程编译Example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;
3.运行程序;数码管会显示1~8的数字。
4.参考源代码自行修改程序改变显示样式。
五、实验心得体会
通过本次实验中,基本掌握了2812的指令系统的特点,并能够了解并熟悉74HC573的使用方法,进一步加深了对DSP的认识。同时,通过实验操作DSP的IO操作使用方法,对于DSP的IO操作可以熟悉的运用,学到更多的知识。
void delay_loop(void);
void Gpio_select(void);
// Global variable for this example
short codetab[17]=
{0x4020,0x6cc0,0x5800,0x4840,0x6440,0xC040,0xC000,0x4cc0,

DSP实验报告

DSP实验报告

姓名:班级:自动化15 学号:2015实验一数据存储实验一实验目的1。

掌握TMS320F2812程序空间的分配;2。

掌握TMS320F2812数据空间的分配;3。

能够熟练运用TMS320F2812数据空间的指令。

二实验步骤与内容实验步骤1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON;其余OFF3.E300底板的开关SW4的第2位置ON,其余位置OFF.其余开关设置为OFF.4.上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。

5.运行CCS程序1)待计算机启动成功后,实验箱220V电源置“ON",实验箱上电2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300TechV-2812\normal ;6.成功运行CCS5.5程序后,出现如下图所示界面:7.右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择“Open Project"命令打开该工程,如下图所示,可以双击才看左侧源文件;8.点击菜单栏Project/Build All命令编译整个工程,编译完成后点击按钮进入仿真模式,完全进入后如下图所示:9.用“View"下拉菜单中的“Memory/Browser”查看内存单元,参数设置如下图:注意:下面的参数设置都是以16进制。

此时可以观测到以0x003F9020为起始地址的存储单元内的数据;10.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运行,0x003F9020H~ 0x3F902FH单元的数据的变化,如下图所示:11.关闭Memory Browser窗口,点击按钮,退出仿真模式。

DSP实验报告

DSP实验报告

DSP实验报告⼀、综合实验内容和要求1. 实验⽬的(1) 学习掌握CCS3.3编译器的使⽤;(2) 通过实验学习掌握TMS320F28335的GPIO ,浮点计算; (3) 学习并掌握A/D 模块的使⽤⽅法;(4) 学习并掌握中断⽅式和查询⽅式的串⼝通信; (5) 学习并掌握28335DSP 的定时器相关的设置与运⽤; (6) 学习信号时域分析的⽅法,了解相关波形参数的计算⽅法; (7) 了解数字滤波的⼀些基本⽅法; (8) 学习数码管的驱动及运⽤。

(9) 学习MATLAB 串⼝以及画图的运⽤。

2. 实验设计内容与要求:(1) 对给定的周期波形信号采⽤TI 公司的TMS320F28335DSP ,利⽤试验箱上的相关资源计算出波形的周期T ,波形的有效值rms V ,平均值avg V 。

其中,有效值和平均值的计算公式(数字量的离散公式)如下:rms V =1()NavgiV u i N=∑式中N 为⼀个周期采样点数,()u i 为采样序列中的第i 个采样点。

(2) 通过算法计算出波形的有效值和平均值,利⽤串⼝通信把测得的数据发送到串⼝助⼿查看,或者在MATLAB 上编写上位机程序,把发送的数据在MATLAB 上画出来。

(3) 把测得的数据实时显⽰在数码管上。

⼆、硬件电路图1为试验系统的硬件图,硬件电路主要包括TMS320F28335DSP 实验箱,SEED-XDS510仿真器,数码管,SCI,信号发⽣器,电脑,串⼝线等。

图1 硬件电路图三、实验原理本试验主要是通过程序去测量⼀个周期波形的有效值、平均值、峰值等相关参数。

计算离散数据的有效值可⽤公式rms V =平均值可⽤公式1()N avgiV u i N=∑。

所以⾸先需要测出波形的周期,然后确定每个周期需要采样的点数N ,最后去计算平均值和有效值。

v mv 1图2 理想输⼊采样波形如图2所⽰为⼀个正弦输⼊波形,m V 为输⼊波形的峰值,1V 是介于0~ m V 的⼀个值。

DSP实验报告_6

DSP实验报告_6

实验一: 闪灯实验熟悉DSP 软硬件测试系统实验目的1.了解SHARC 系列高性能数字信号处理器的程序开发过程和编程语言;2.熟悉集成开发工具VisualDSP++, 学会使用VisualDSP++进行SHARC 系列ADSP 的程序开发、编译与调试;3.掌握SHARC 系列ADSP 的程序加载设计和加载过程。

实验内容利用波形产生信号板, 结合FPGA 编程技术和程序编程器, 编写测试ADSP21065L 和FPGA 之间硬件连接的应用程序, 同时完成应用程序的加载和脱机操作, 在信号指示灯“HL2”上产生可调周期的脉冲信号, “点亮”与“熄灭”指示灯HL2。

实验要求通过DSP 编程, 在其FLAG11引脚上模拟如下波形的周期信号:要求:(1) 500H T ms >,500L T ms >. (2) 并用示波器查看波形, 测量信号周期。

实验步骤1. 熟悉电路图, 清楚波形产生电路板ADSP21065L 与可编程FPGA 器件之间的连接关系;2. 编写FPGA 程序。

在FPGA 内部将ADSP21065L 的标志引脚FLAG11(引脚号26)设置为输出, 作为FPGA 的输入信号, 在FPGA 内部编程将该信号直接输出在发FPGA 的37引脚号上, 设置37引脚为输出信号, 驱动板上的HL2 LED 指示灯;3. 启动VisualDsp++4.5,选择project 工程选项菜单, 创建一个名称为Test.dpj 的工程文件, 选择处理器的型号为ADSP-21065L ;4.弹出一个对话框, 选择是否需要加入VDSP kernel ,选择“NO ”;5. 在工程中加入以下参考源文件:\exp1\test(boot)\ boot1.asm 和boot1.ldf 6.编译, 链接调试, 生成可执行文件。

7.运行程序, 可以看到波形发生电路板上的指示灯“HL2”不断闪动。

8. 利用示波器观测系统时钟,并测量产生信号的波形和周期。

DSP实验报告(综合)

DSP实验报告(综合)

实验报告||实验名称 D SP课内系统实验课程名称DSP系统设计||一、实验目的及要求1. 掌握用窗函数法设计FIR数字滤波器的原理和方法。

熟悉线性相位FIR 数字滤波器特性。

了解各种窗函数对滤波器特性的影响。

2. 掌握设计IIR数字滤波器的原理和方法。

熟悉IIR数字滤波器特性。

了解IIR数字滤波器的设计方法。

3.掌握自适应数字滤波器的原理和实现方法。

掌握LMS自适应算法及其实现。

了解自适应数字滤波器的程序设计方法。

4.掌握直方图统计的原理和程序设计;了解各种图像的直方图统计的意义及其在实际中的运用。

5.了解边缘检测的算法和用途,学习利用Sobel算子进行边缘检测的程序设计方法。

6.了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。

7.了解取反的算法和用途,学习设计程序实现图像的取反运算。

8.掌握直方图均衡化增强的原理和程序设计;观察对图像进行直方图均衡化增强的效果。

二、所用仪器、设备计算机,dsp实验系统实验箱,ccs操作环境三、实验原理(简化)FIR:有限冲激响应数字滤波器的基础理论,模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。

数字滤波器系数的确定方法。

IIR:无限冲激响应数字滤波器的基础理论。

模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。

数字滤波器系数的确定方法。

、自适应滤波:自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。

e(n)=z(n)-y(n)=s(n)+d(n)-y(n)直方图:灰度直方图描述了一幅图像的灰度级内容。

灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标是该灰度出现的频率(像素个数与图像像素总数之比)。

图像边缘化:所谓边缘(或边沿)是指其周围像素灰度有阶跃变化。

经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律,用简单的方法检测边缘。

数字信号处理实验报告

数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握离散时间信号的基本运算和变换方法。

3. 熟悉数字滤波器的设计和实现。

4. 培养实验操作能力和数据分析能力。

二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。

本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。

2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。

3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。

4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。

三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。

(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。

2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。

(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。

3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。

(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。

4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。

(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。

四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一:实验项目名称:TMS320F2812的GPIO实验二:实验目的:学会使用ccs5.3开发环境以及GPIO的基本操作,通过实验学习使用TMS320F2812的通用输入输出管脚直接控制外围设备的方法。

实验环境:pc一台,CCS5.3软件三:实验原理:四:实验步骤:1:打开ccs5.3软件。

2依次单击File->New->CCS Project建立工程3 在弹出的New Project对话框中单击Code Composer Studio,选择CCS Project,然后点击Next4 在弹出的对话框中,输入工程名字Led.c,在Family里选择C2000,在Variant的第二个复选框里选择TMS320F2812,在里选择empty project点击Finish完成5 将inc、source和F2812_nonBIOS_flash.cmd、rts2800_ml.lib拷贝到工程目录下;6 在project面板里右键,New->Target Configuration File,在connect里面选择,然后在选择框中选择TMS320F2812;7 在main.c中编辑代码8 连接好仿真器与开发板,按F11,下载并在线仿真五:记录与处理:#include"DSP281x_Device.h"#include"System.h"void main(void){InitSysCtrl();EALLOW;GpioMuxRegs.GPBDIR.all |=0x00FF;EDIS;GpioDataRegs.GPBDAT.all = 0x0000;DelayUs(60000);GpioDataRegs.GPBDAT.all = 0x00f0;while(1) {}}六:思考题F2812有哪些外设?•三个32位CPU定时器•两个事件管理器模块(EV A,EVB)•增强型模数转换器(ADC) 模块•增强型控制器局域网络(eCAN)模块•多通道缓冲串行端口(McBSP)模块•串行通信接口模块(SCI-A,SCI-B)•串行外设接口(SPI) 模块•数字I/O 和共用引脚功能七:实验小结一:实验项目名称:TMS320F2812的Timer实验二:实验目的:学会使用ccs5.3开发环境以及Timer的配置,通过实验学习使用TMS320F2812 Timer的使用方法。

实验环境:pc一台,CCS5.3软件三:实验原理:在F281x器件上有三个32位CPU定时器(CPU-TIMER0/1/2),定时器2为DSP/BIOS预留。

可以在用户应用程序中使用CPU定时器0和定时器1。

这些定时器与出现在事件管理器模块(EV A,EVB)中的通用(GP)定时器不同。

定时器的通常操作如下:32位计数器寄存器“TIMH:TIM”装入周期寄存器“PRDH:PRD”中的值。

计数器寄存器按C28x的SYSCLKOUT频率递减。

当计数器到达0时,一个定时器中断输出信号生成一个中断脉冲。

四:实验步骤:1:打开ccs5.3软件。

2依次单击File->New->CCS Project建立工程3 在弹出的New Project对话框中单击Code Composer Studio,选择CCS Project,然后点击Next4 在弹出的对话框中,输入工程名字Timer.c,在Family里选择C2000,在Variant的第二个复选框里选择TMS320F2812,在里选择empty project点击Finish完成5 将inc、source和F2812_nonBIOS_flash.cmd、rts2800_ml.lib拷贝到工程目录下;6 在project面板里右键,New->Target Configuration File,在connect里面选择,然后在选择框中选择TMS320F2812;7 在main.c中编辑代码8 连接好仿真器与开发板,按F11,下载并在线仿真五:记录与处理:#include"DSP281x_Device.h"#include"System.h"void InitTimer2();void InitIo();void interrupt Timer2Int();void main(void){InitSysCtrl();InitIo();InitTimer2();GpioDataRegs.GPBDAT.all = 0x0000; //Ledwhile(1){}}void InitIo(){EALLOW;GpioMuxRegs.GPBMUX.all = 0x0000;GpioMuxRegs.GPBDIR.all = 0x00ff;EDIS;}void InitTimer2(){CpuTimer2Regs.TCR.bit.TSS = 1;CpuTimer2Regs.PRD.all = 30000000;CpuTimer2Regs.TPR.all = 0;CpuTimer2Regs.TPRH.all = 0;CpuTimer2Regs.TCR.bit.TIE = 1;DINT;EALLOW;PieVectTable.TINT2 = &Timer2Int;EDIS;IER|= M_INT14;EINT;CpuTimer2Regs.TCR.bit.TRB = 1;CpuTimer2Regs.TCR.bit.TSS = 0;}void interrupt Timer2Int(){DINT;CpuTimer2Regs.TCR.bit.TSS = 1;CpuTimer2Regs.TCR.bit.TIF = 1;GpioDataRegs.GPBDAT.all = ~(GpioDataRegs.GPBDAT.all);CpuTimer2Regs.TCR.bit.TRB = 1;CpuTimer2Regs.TCR.bit.TSS = 0;EINT;}六:思考题在定时器的操作中,有这样的描述:32位计数器寄存器“TIMH:TIM”装入周期寄存器“PRDH:PRD”中的值,其中,“TIMH:TIM”表示什么?七:实验小结一:实验项目名称:TMS320F2812 SCI(串口)的使用二:实验目的:学会使用ccs5.3开发环境以及SCI的配置,通过实验学习使用TMS320F2812 Timer的使用方法。

实验环境:pc一台,CCS5.3软件三:实验原理:F281x器件包括两个串行通信接口(SCI) 模块。

SCI模块支持CPU与其它异步外设之间的使用标准非归零码(NRZ)格式的数字通信。

SCI接收器和发射器是双缓冲的,并且它们中的每一个有其自身独立的使能和中断位。

两个器件都可独立或者同时地运行在全双工模式。

为了确保数据完整性,SCI在中断检测、奇偶性、超载、和组帧错误方面对接收到的数据进行检查。

通过一个16位波特率选择寄存器,可将比特率设定为超过65000个不同的速度。

四:实验步骤:1:打开ccs5.3软件。

2依次单击File->New->CCS Project建立工程3 在弹出的New Project对话框中单击Code Composer Studio,选择CCS Project,然后点击Next4 在弹出的对话框中,输入工程名字Timer.c,在Family里选择C2000,在Variant的第二个复选框里选择TMS320F2812,在里选择empty project点击Finish完成5 将inc、source和F2812_nonBIOS_flash.cmd、rts2800_ml.lib拷贝到工程目录下;6 在project面板里右键,New->Target Configuration File,在connect里面选择,然后在选择框中选择TMS320F2812;7 在main.c中编辑代码8 连接好仿真器与开发板,按F11,下载并在线仿真五:记录与处理:#include"DSP281x_Device.h"#include"System.h"unsigned char SCIA_RX_BUF[16]={0};unsigned char SCIA_TX_BUF[16]={1,2,3,4,5,6,7,8,0};unsigned char N=0;void Init_SCIA(void);void Send_Char_SCIA(char temp);void Send_String_SCIA(char *String);char Receive_Char__SCIA(void);interrupt void SCIA_RXINT(void);void InitLed();void main(void){InitSysCtrl(); // 系统初始化子程序,在DSP28_sysctrl.c中MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//将初始化Flash代码复制到RAMInitFlash();Init_SCIA();Send_String_SCIA("Welcome to LiTian!");InitLed();while(1);}void InitLed(){EALLOW;GpioMuxRegs.GPBMUX.all = 0x0000;GpioMuxRegs.GPBDIR.all = 0x00ff;EDIS;GpioDataRegs.GPBDAT.all = 0x000f;}void Init_SCIA(void){//配置SCITXD、SCIRXDEALLOW;GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1; //配置SCI-RXGpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1; //配置SCI-TXEDIS;//软件复位SCI,复位值SciaRegs.SCICTL1.bit.SWRESET =0;//设置字符格式、通信协议、通信模式SciaRegs.SCICCR.bit.SCICHAR=7; // 字符长度:bitsSciaRegs.SCICCR.bit.PARITYENA=0;//禁止奇偶校验SciaRegs.SCICCR.bit.STOPBITS=0; //停止位为个SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0; //空闲线模式协议//设置波特率SciaRegs.SCIHBAUD = 0x0001; // 波特率:(LSPCLK = 30MHz);SciaRegs.SCILBAUD = 0x0085;//使能SCI发送器和接收器SciaRegs.SCICTL1.bit.RXENA =1; // 使能接收功能SciaRegs.SCICTL1.bit.TXENA =1; // 使能发送功能//使能中断(包含外设级、PIE级和CPU级),设置中断向量SciaRegs.SCICTL2.bit.RXBKINTENA = 1;// 使能SCIA接收中断EALLOW; // 解除寄存器保护PieVectTable.RXAINT = &SCIA_RXINT;//用SCIA中断函数入口更新PIE向量表EDIS; // 使能寄存器保护PieCtrlRegs.PIEIER9.bit.INTx1 = 1;// 使能PIE内的SCIA_RX_INT中断IER |= M_INT9;// 使能CPU INT 9EINT; // 全局中断使能INTM//退出复位状态SciaRegs.SCICTL1.bit.SWRESET =1;}void Send_Char_SCIA(char temp){SciaRegs.SCITXBUF=temp;while ( SciaRegs.SCICTL2.bit.TXRDY == 0);//状态检测模式:while ( SciaRegs.SCICTL2.bit.TXEMPTY == 0);//状态检测,等待发送标识为空}void Send_String_SCIA(char *String){while(*String !='\0'){Send_Char_SCIA(*String++);}}char Get_Char_SCIA(void){DINT;//关闭总中断while(SciaRegs.SCIRXST.bit.RXRDY != 1);//等待接收完毕EINT; //开总中断return (SciaRegs.SCIRXBUF.all); // 返回接收到的数据}interrupt void SCIA_RXINT(void){DINT;//关闭总中断SCIA_RX_BUF[N++]=SciaRegs.SCIRXBUF.bit.RXDT;PieCtrlRegs.PIEACK.all = 0x0100; //响应中断EINT; //开总中断}六:思考题1:SCI的波特率如何计算?2:SCI的数据格式是什么?–一个开始位–数据-字长度可被设定为1至8位–可选偶/奇/无奇偶校验位–一个或者两个停止位七:实验小结。

相关文档
最新文档