微机课程设计--参数可调波形发生器

更新时间:2023-11-25 06:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机实验及课程设计

课程设计报告

题目: 参数可调波形发生器

院(系): 自动化 专 业: 自动化 姓 名: 学 号:

实验地点: 计算机516室 起讫时间: 2012.09.19—2012.10.17 同组人员: 储海辉 评定成绩: 评阅教师:

一、目的意义

通过课程设计,充分理解微型计算机接口技术课程知识,并具备一定接口编程能力。 1.基本要求:

编制一个参数在线可调的波形发生程序,由D/A 输出,构成参数在线可调的波形发生器,并用示波器观察波形。

(1)函数波形可选f(t)=asin(bt),其中a、b参数在线可调(亦可自己选择,但要求至少2

个参数可调且调节很明显);

(2)参数调节采用如下两种方式之一:两个可调电位器输出通过A/D 转换后作为可调参数、

参数通过实验系统上的键盘实时修改;

(3)精确时间,开关选择标准信号输出(a=2V, b=100πRAD/s,即50Hz 正弦波),精度0.1ms

以上。

2.进一步设计要求:

(1)分别采用两种参数调节方式在线调节参数; (2)产生周期性三次可调函数f(t)=at+bt+ct+d。

3

2

二、软硬件平台

1. 硬件环境:

微型计算机(Intel x86系列CPU)一台,清华科教仪器厂TPC—2003A微机接口试验系统一台,模拟示波器一台。 2. 软件环境:

1) Windows XP操作系统,编辑、汇编、链接和调试程序; 2) TPC—2003A集成开发环境软件一套及实验系统电子版资料。

三、方案分析

1.函数分析

波形函数f(t)=asin(bt)为正弦函数,a表示幅值,b表示角频率。变换a、b实际上是基础函数fo(t)=sin(t)做纵向和横向伸缩变换。同时,正弦函数是连续函数。 2.硬件需求分析 首先,微机处理、输出、输入的是数字信号,本实验中需要我们输出连续波形为模拟量,故需要设计数模转换电路。实验中查用DAC0823进行8位数模转换。

其次,在输入设计中需要采用电位器输出,电位器输出为模拟电压信号,计算机处理前需进行模数转换。实验中采用ADC0809进行8位模数转换。 3.DAC0832电路分析

根据实验平台接线电路分析,DAC0832双极性输出公式:

Ub?2?5?Ni?5 (v) (1) 256其中Ni取值范围[0,1,2,…,255]。当Ni=255时Ub=5v,当Ni=128时Ub=0v,当Ni=0时Ub=-5v。最大输出电压为5v,最小输出电压为-5v。

根据以上分析,我们利用matlab软件生成正弦函数表[128,…,255,…,128,…,0,…,128],以此作为基础函数模型。注意到,这样输出的基础函数模型实际上为fo(t)=5sin(t)V。

而5v是电压输出最大值,故在设计中我们对赋值A进行的变幅设计可只考虑缩幅变换简化问题。 4.变幅设计

结合DAC0832硬件要求和ADC0809数据转换要求A的输入采集计算机变化值区间为[00h,01h,02h,…,0ffh]。设计缩幅变换,在计算机运算处理是做A/255运算产生[0,1]区间缩幅参数,完成变换。这样输出函数为:

Uout?其中:

A?5?sin(bt) (v) (2) 255a?A?5 (3) 2555.变频设计

同样ADC0809数据转换使得B的输入采集计算机变化值区间为[00h,01h,02h,…,0ffh]。为消除数学运算pi值的无理数对计算机运算的影响,我们设计:

b?B? (4)

由此,输出函数为:

Uout?周期:

A?5?sin(B?t) (v) (5) 2552?2? (s) (6) B?BT?四、实现过程

1.幅值编程算法解决

注意到,正弦波输出为采集正弦表数据进行DAC0832转换输出。设Ni表示正弦表数组中i号数据。如果采用:

A?Ni (7) 255计算,实际上正弦数据表相当于采取了整体压缩,输出会产生正弦零点漂移现象,现象表现如下图所示:

图表 1 零点漂移示意

为解决零点漂移我们需要加入误差修正函数:

e(A)?(128?128A?A)?(128?) (8) 2552在编程是我们实际进行运算为:

out?AA?Ni?(128?) (9) 2552该值out由计算机输出给DAC0832。

这样经过零点漂移修正后理想输出示意为:

图表 2 零点漂移修正

编程是为了避免计算机计算溢出,在除法运算前先做乘法运算。 2.周期编程算法解决

由于正弦表总共包含116个采样数据点,这样:

T?得到:

2?116??t (s) (10) B2 (s) (11)

116?B?t? 我们设计思想基于设计基准延时delay程序块,对于不同频率,计算周期,与基准延时比较,修改调用基准延时模块次数。

调用次数为整数,我们必须寻找最小延时间隔,代入式(11)B=255,可得最小周期为T=0.07ms。这样我们设计基准延时为0.01ms,便可满足要求。 调用基准延时模块次数计算式:

Num?3.程序流程设计

21800?100000? (12)

116?BB

4.基于块的程序设计

按照上述算法和程序流程,我设计了keyboard(键盘修改块)、disp(显示块)、potentiometer(电位器修改块)、delay(基准延时块)、pdisp(电位器显示块)。具体程序见附录。

五、最终结果

1.实验现象

A、参数a,b在线可调,效果明显。

B、参数对应值波形输出满足精度要求。

C、参数可以采用两种方法:键盘、电位器调节。

D、选择输出标准波形(a=2V,b=100pi RAD/s),精度满足0.1ms以上。 E、提示信息充足,人机交互性能良好 2.实验不足

在输出最大幅值波形(a=5V)时,波形在最高点断缺,对于最低点,多次亮点。

根据分析,该现象产生原因是由于在Ni=255是进行式(9)运算计算机溢出。可以过减一方式消除。

六、收获体会

通过本次课程设计,我对系统中断响应技术、数模模数转换技术有了更加深入的了解。面对不同实际问题,需要配合计算机数字运算特点,相应的变换算法策略以寻求最优解决方

本文来源:https://www.bwwdw.com/article/5sst.html

Top