函数信号发生器经典

上传人:s9****2 文档编号:512466080 上传时间:2023-05-23 格式:DOC 页数:6 大小:569.01KB
返回 下载 相关 举报
函数信号发生器经典_第1页
第1页 / 共6页
函数信号发生器经典_第2页
第2页 / 共6页
函数信号发生器经典_第3页
第3页 / 共6页
函数信号发生器经典_第4页
第4页 / 共6页
函数信号发生器经典_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《函数信号发生器经典》由会员分享,可在线阅读,更多相关《函数信号发生器经典(6页珍藏版)》请在金锄头文库上搜索。

1、青岛理工大学琴岛学院设 计 报 告课题名称:函数信号发生器的设计与实现院 系:计 算 机 工 程 系专业班级:电子信息工程091学 号:20090302011学 生:牛振兴指导教师:梁孔科青岛理工大学琴岛学院教务处 2012年12月*日学 生牛振兴指导教师梁孔科课题名称函数信号发生器的设计与实现设计时间设计地点7#A-106设计目的1、掌握方波三角波正弦波函数发生器的设计方法与测试技术。2、掌握函数信号发生器的工作原理与应用。3、学会安装与调试由多级单元电路组成的电子线路。4、学会函数发生器的使用。一、 设计过程1. 波形发生器总体设计流程:波形码值波形输出滤波放大单片机DA转换按键控制显示测

2、试信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现2. 按键控制:两个开关与P1两个IO口(外部中断0和外部中断1实现切换效果更好)相连,S1开关用来改变波形,S2开关用来改变频率。3. 单片机:主控接受按键控制,内部ROM存储波形码值通过软件控制DA转换器的输入,并且外接LCD或数码管显示4. DA转换:实现波形的数字码值到模拟表示的转换5. 放大:放大器放大DA转换得到的微弱的模拟波形信号,便于后端的测试显示计算6

3、. 滤波:低通滤波电路取出波形信号的干扰噪声,使波形更真实7. 显示测试:通过单片机内部软件设计计算每次按键及可变电阻的调节对应的波形频率及幅度变化得步进值和变化范围,最终用示波器显示输出波形二、 存在问题1. 单片机内部拥有4K字节的FLASH ROM程序存储器空间和256字节的RAM数据存储空间,而正弦波、方波、三角波、三角波、梯形波等波形的码值本身很大,再加上其他控制语句程序,单片机的RAM可能存不下,然后?2. DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出,并且DAC0832是电流型输出,然后?3. 按键s1,s2切换实现波形频率的变换时

4、,利用if条件语句实现时的硬件响应不是很灵敏,然后?4. 滤波电路的实现难以确定,然后?三、 解决措施1. 单片机的RAM大小有限,实现时可在码值数组定义时加上前缀code,借用ROM内存实现存储,也可提高运行速度2. DAC0832是电流型输出,在应用时外接运放使之成为电压型输出,便于后端的显示测量运用3. 可以借助单片机的外部中断0,1外接开关s1,s2,内部设定外部中断边沿触发,使得硬件开关更加灵敏的实现切换频率,波形的切换4. 查阅DAC0832的输出及放大电路的参数,反复调试滤波电路的阻值及电容大小确定滤波效果更好的RC值四、 收获 对于单片机设计,主要是解决程序设计的问题,而程序设

5、计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上

6、又有了更深层次的理解。同时在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节。五、 建议DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出,且硬件电路复杂,得到的波形不是很理想,而MAX518是8位电压输出型数摸转换器,采用 I2C的双总线串行接口,支持多个设备的通信,内部有精密输出缓冲源,支持双极性工作方式,工作电源电压为5V。MAX518是一单DAC转换器,参考电压由外

7、部引脚接入,而MAX518则由两片DAC集成,具有两路输出,MAX518的两块DAC均由电源电压提供参考源,无需外部接入。数据传输速率可高达400Kbps。强劲的特性 :(1)单独5V 电源供电;(2)简单的双线接口;(3)与I2C总线兼容;(4)输出缓冲放大双极性工作方式;(5)基准输入可为双极性;(6)上电复位将所有闭锁清零;(7)4uA 掉电摸式;(8)总线上可挂四个器件(通过 AD0、AD1选择),据此可以更完美的实现函数波形信号发生器。指导教师评语系部教研室意 见#include #define uchar unsigned char#define uint unsigned int

8、sbit CSDA=P22;sbit Wr=P36;sbit S1=P32;sbit S2=P33;uchar m5=1,0,0,0,0;uchar SHUZHI=0,STEP=0,delays=0;uchar BX=0;PINGLV=0; uchar i;uchar code sin64=135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,230,222,213,204,193,182,170,158,146,133,121,108,96,84,72,61,50,41,

9、32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128;uchar code juxing64=255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;uchar code juchi64=0,

10、4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,215,219,223,227,231,235,239,243,247,251,255;uchar code tixing64=0,13,26,39,52,65,78,91,104,117,130,143,156,169,182,195

11、,208,221,234,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,242,229,216,203,190,177,164,151,138,125,112,99,86,73,60,47,34,21,8;uchar code sanjiao64=0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,21

12、6,224,232,240,248,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0;uchar *point=sin,juxing,juchi,tixing,sanjiao;void Delay(uchar c)int a,b;for(a=c;a0;a-)for(b=60;b0;b-);void fun(uchar *jieshou) delays=PINGLV;P1=*(jieshou+SHUZHI);SHUZHI+

13、;if(SHUZHI=64) SHUZHI=0;while(delays) delays-; /可用定时器增加精确度void main()CSDA=0;Wr=0;while(1)if(S1=0)Delay(5);if(S1=0)BX+;STEP=0;if(BX=5)BX=0;for(i=0;i5;i+)mi=0;mBX=1;Delay(1); while(!S1);if(S2=0)Delay(5);if(S2=0)STEP+; if(STEP=16)STEP=0;PINGLV=2*STEP;Delay(1);while(!S2);for(i=0;i5;i+) if(mi) fun(pointi); (限于代码量,未加中断实现)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

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