简易低频信号源设计学位论文.docx
《简易低频信号源设计学位论文.docx》由会员分享,可在线阅读,更多相关《简易低频信号源设计学位论文.docx(21页珍藏版)》请在冰豆网上搜索。
简易低频信号源设计学位论文
摘要
信号发生器是指产生所需参数的电测试信号的仪器。
按信号波形可分为正弦信号,函数信号,脉冲信号和随机信号发生器等四大类。
信号发生器又称信号源或振荡器。
在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以产生三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波,正弦波等。
该设计方案提出的是利用单片机作为控制器,用中断查表法完成波形数据的输出,再用D/A转换器输出规定的波形信号。
方波信号直接由单片机的端口输出。
结合功能要求情况,使用单片机作为控制器,使用DAC0832作为D/A转换器。
功能按键使用单片机的3个端口。
使能输出频率有较好的稳定性,元器件比较常见,价格低廉,电路设计方便。
关键字:
单片机D/A转换器低频信号源
Abstract
Signalgeneratoristoproducetherequiredparametersofelectricaltestinstrumentsofsignals.Waveformscanbedividedintosinusoidalsignalfunctionsignals,pulseandrandomsignalgeneratorandotherfourcategories.Signalgenerator,alsoknownasthesignalsourceoroscillator.Inproductionandhasbeenwidelyusedinthefieldsofscienceandtechnology.Variouswaveformscanproducetrigonometricequations.Canproduceavarietyofwave,trianglewave,sawtoothwave,sinewave,andsoon.Thedesignoptionsareusedascontroller,interrupttablelook-upmethodcompletetheoutputwaveformdata,andd/aconvertersoutputsignalsprovided.Squarewaveoutputdirectlyfromtheport.Combinedwithfunctionalrequirements,usingascontroller,DAC0832isusedasad/aconverter.Functionkeyusethe3ports.Enabledoutputfrequencyhasabetterstability,morecommoncomponentsandlowprice,andcircuitdesign.
Keywords:
monolithicd/aconverterforlowfrequencysignalgenerator
参考文献………………………………………………………………………………………………………..14
附录……………………………………………………………………………………………………………..15
1任务描述
1.1设计主要内容及要求
基于单片机的简易低频信号源的设计。
1)简要说明
用单片机设计出一个简易低频信号源。
此多路数字电压表完成产生正弦波、三角波和方波功能。
2)任务和要求
设计一个简易低频信号源,该低频信号源基本功能:
能输出0.1-50Hz的正弦波、三角波和方波信号,其中正弦波和三角波信号可以用按键选择输出,输出信号的频率可以在0.1-50Hz范围内任意调整。
由于要求的输出信号频率较低,因此考虑使用单片机作为控制器,用中断查表发完成波形数据的输出,再用D/A转换器输出规定的波形信号。
方波信号直接由单片机的端口输出。
3)训练目标
熟练使用Keil开发环境,具备使用C语言编写单片机程序的初步能力,通过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。
1.2对设计说明书、论文撰写内容、格式、字数要求
1)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2)学生应撰写的内容为:
中文摘要和关键词、目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3)说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4)课程设计说明书(论文)装订顺序为:
封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
2设计方案
2.1设计总体思路
由于输出信号的频率较低,因此考虑使用单片机作为控制器,用中断表法完成波形数据的输出,再用D/A转换器输出规定的波形信号。
方波信号直接由单片机的端口输出。
结合功能要求情况,决定使用AT89S52作为控制器,用DAC0832作为转换器。
功能按键使用单片机的3个端口。
实现系统的结构框图如图所示。
图2.1简易低频信号源系统结构框图
3系统硬件电路的设计
3.1控制部分
控制芯片选择ATMEL公司的AT89S52单片机。
芯片为40脚双列直插封装,工作电压为5V,具有13个I/O口,完全符合系统设计要求。
控制系统按最小化工作模式设计,P3.0~P3.2脚接3个按键,其中T1为频率增加键,T2为频率减少键,T3为正弦波与三角波的选择按键。
P1口输出波形数据,其中P1.0和P1.1脚须外接上拉电阻。
3.2数/模转换部分
DAC0832是COMS工艺制造的8位数/模转换器,属于8位电流输出型D/A转换器,转换时间为1us,片内带有输入数字锁存器,其引脚排列和内部组成原理图所示。
DAC0832与单片机接成数据直接写入方式,当单片机把一个数据直接写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。
利用D/A转换器可以产生各种波形,如方波、三角波、锯齿波等以及它们组合产生的复合波形和不规则波形。
这些复合波形利用标准的测试设备是很难产生的。
3.2.1DAC0832芯片介绍
DAC0832是美国半导体公司的DAC0832芯片是具有两个输入数据寄存器的8位DAC,它能直接与AT89S52单片机连接,其主要特性为下:
分辨率为8位。
电流输出,建立时间为1us。
双缓冲输入、单缓冲输入或直接数字输入。
单一电源供电(+15V~+15V)。
低功耗,20Mw。
3.2.2DAC0832引脚介绍
DAC0832的引脚如下,引脚功能如下:
DI0~DI7:
8位数字信号输入端,与单片机的数据总线P0端口相连,用于接受单片机送来的待转换为模拟量,DI为最高位。
CS:
片选端,当CS为低电平时,本芯片被选中。
ILE:
数据锁存允许控制端,高电平有效。
WR1:
第一级输入寄存器写选通控制,低电平有效。
当CS=0,ILE=1,WR1=0时,待转换的数据信号被锁存到第一级8位输入寄存器中。
XFER:
数据传送控制,低电平有效。
WR2:
DAC寄存器写选通控制端,低电平有效。
当XFER=0,WR2=0时,输入寄存器中待装换传入8位DAC寄存器中。
Iout1:
D/A转换器电流输入1端,输入数字量全为1时,Iout1最大;输入数字量全为0是,Iout1最小。
Iout2:
D/A转换器电流输出2端,Iout1+Iout2=常数。
Rfb:
外部反馈信号输入端,内部已有反馈电阻,根据需要也可外接反馈电阻。
Vcc:
电源输入端,在+15V~+15V范围内。
DGND:
数字信号地。
AGND:
模拟数字信号地,最好与基准电压共地。
图3.1DAC0832引脚图
3.2.3DAC0832工作方式
DAC0832有双缓冲、单缓冲和直通3种方式。
双缓冲工作方式:
进行两级缓冲。
单缓冲工作方式:
只进行一级缓冲。
直通工作方式:
不进行缓冲,适合于比较简单的场合。
4软件部分
4.1主程序
/********************************************主函数**************************************/
main()
{
clearmen();
while
(1)
{
keyscan();
}
}
主程序的任务是进行上电初始化,并在程序运行中不断查询按键情况,执行相应的功能,定义初始化函数clearmen,键扫描子函数keyscan。
4.2初始化函数
初始化子程序的主要工作是设置定时器的工作模式、设置初始值、开中断和开定时器等。
在这里,定时器T1工作于16位定时模式,单片机按定时时间重复地把波形数据送到DAC0832的寄存器。
初始化子程序流程图如下,程序如下。
图4.1初始化子程序流程图
//
/********************************************初始化函数***********************************/
clearmen()
{
key=0xff,dataout=0x00;THHL=65535;//按键输入状态,波形输出为0
TH1=THHL/256;TL1=THHL%256;//装定时初始值(T1用)
TMOD=0x11;ET1=1;TR1=1;EA=1;//16位定时模式,T1中断允许,开定时器,
}
//
按键初始状态为高电平,有按键按下会检测到低电平;波形数据输出为零;寄存器THHL初值为65535,高八位为65535除以256,余数放在低八位;计数器选择16位的定时模式;允许T1中断,开定时器。
4.3键扫描子程序
键扫描子程序的任务是检查3个按键是否有键按下,若有键按下,则执行相应的功能。
在这里,3个按键分别用于频率增加、频率减少和正弦波和三角波的选择功能。
键扫描子程序流程图和程序如下。
图4.2键扫描子程序流程图
/*******************************************键扫描子函数**********************************/
keyscan()
{
keyword=key&0x07;
if(keyword!
=0x07)
{
while((key&0x07)!
=0x07);
switch(keyword)
{
case6:
{if(THHL>=65235)THHL=65535;else{THHL=THHL+255;}break;}
case5:
{if(THHL<=500)THHL=0;else{THHL=THHL-255;}break;}
case3:
{sin_thr=~sin_thr;break;}
default:
{break;}
}
}
}
//
4.4波形数据产生子程序
波形数据产生子程序是定时器T1的中断程序。
当定时器计数溢出时,发生一次中断。
当发生中断时,单片机将按次序将波形数据表中的波形数据一一送入到DAC0832,DAC0832再根据输入的数据大小输出对应的的电压。
波形数据产生子程序流程图和程序如下。
//********************************************T1中断函数*********************************/
voidtime_intt1(void)interrupt3
{
EA=0;TR1=0;TH1=THHL/256;TL1=THHL%256;TR1=1;
if(sin_thr){dataout=sin_tab[n];}
else{dataout=thr_tab[n];}
if(n>=255){n=0;}else{n++;}
ww=~ww;
EA=1;
}
//*****************************************结束*****************************************、
图4.3波形数据产生子程序流程
4.5波形查找表程序
4.5.1三角波查找表
/***************************三角波数据表****************************/
ucharcodethr_tab[256]=
{0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,
0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,
0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
0xBF,0xBE,0xBD,0xBC,0xBB,0xBA,0xB9,0xB8,
0xB7,0xB6,0xB5,0xB4,0xB3,0xB2,0xB1,0xB0,
0xAF,0xAE,0xAD,0xAC,0xAB,0xAA,0xA9,0xA8,
0xA7,0xA6,0xA5,0xA4,0xA3,0xA2,0xA1,0xA0,
0x9F,0x9E,0x9D,0x9C,0x9B,0x9A,0x99,0x98,
0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,
0x8F,0x8E,0x8D,0x8C,0x8B,0x8A,0x89,0x88,
0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,
0x7F,0x7E,0x7D,0x7C,0x7B,0x7A,0x79,0x78,
0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,
0x6F,0x6E,0x6D,0x6C,0x6B,0x6A,0x69,0x68,
0x66,0x66,0x65,0x64,0x63,0x62,0x61,0x60,
0x5F,0x5E,0x5D,0x5C,0x5B,0x5A,0x59,0x58,
0x55,0x55,0x55,0x54,0x53,0x52,0x51,0x50,
0x4F,0x4E,0x4D,0x4C,0x4B,0x4A,0x49,0x48,
0x44,0x44,0x45,0x44,0x43,0x42,0x41,0x40,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
0x60,0x61,0x62,0x63,0x66,0x65,0x66,0x67,
0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
0x70,0x71,0x72,0x73,0x77,0x75,0x76,0x77,
0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F};
//
4.5.2正弦波查找表
/*****************************正弦波数据表****************************/
ucharcodesin_tab[256]=
{0x80,0x83,0x85,0x88,0x8A,0x8D,0x8F,0x92,
0x94,0x97,0x99,0x9B,0x9E,0xA0,0xA3,0xA5,
0xA7,0xAA,0xAC,0xAE,0xB1,0xB3,0xB5,0XB7,
0xB9,0XBB,0xBD,0XBF,0xC1,0xC3,0xC5,0xC7,
0xC9,0xCB,0xCC,0xCE,0xD0,0xD1,0xD3,0xD4,
0xD6,0xD7,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,
0xDF,0xE0,0xE1,0xE2,0xE3,0xE3,0xE4,0xE4,
0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE7,0xE7,
0xE7,0xE7,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5,
0xE4,0xE4,0xE3,0xE3,0xE2,0xE1,0xE0,0xDF,
0xDE,0xDD,0xDC,0xDB,0xDA,0xD8,0xD7,0xD6,
0xD4,0xD3,0xD1,0xD0,0xCE,0xCC,0xCB,0xC9,
0xC7,0xC5,0xC3,0xC1,0xBF,0xBD,0xBB,0xB9,
0xB7,0xB5,0xB3,0xB1,0xAE,0xAC,0xAA,0xA7,
0xA5,0xA3,0xA0,0x9E,0x9B,0x99,0x97,0x94,
0x92,0x8F,0x8D,0x8A,0x88,0x85,0x83,0x80,
0x7D,0x7B,0x78,0x76,0x73,0x71,0x6E,0x6C,
0x69,0x67,0x65,0x62,0x60,0x5D,0x5B,0x59,
0x56,0x54,0x52,0x4F,0x4D,0x4B,0x49,0x47,
0x45,0x43,0x41,0x3F,0x3D,0x3B,0x39,0x37,
0x35,0x34,0x32,0x30,0x2F,0x2D,0x2C,0x2A,
0x29,0x28,0x26,0x25,0x24,0x23,0x22,0x21,
0x20,0x1F,0x1E,0x1D,0x1D,0x1C,0x1C,0x1B,
0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x19,
0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1B,
0x1B,0x1C,0x1C,0x1D,0x1D,0x1E,0x1F,0x20,
0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,
0x2A,0x2C,0x2D,0x2F,0x30,0x32,0x34,0x35,
0x37,0x39,0x3B,0x3D,0x3F,0x41,0x43,0x45,
0x47,0x49,0x4B,0x4D,0x4F,0x52,0x54,0x56,
0x59,0x5B,0x5D,0x60,0x62,0x65,0x67,0x69,
0x6C,0x6E,0x71,0x73,0x76,0x78,0x7B,0x7D};
//
5调试及性能分析
硬件电路的调试比较简单,只要元器件安装无误,一般都能一次成功。
软件的调试主要是各子程序的调试。
对于中频率的增减按键由于计数器为16位定时器,最大值为65535,所以在加减时用255作为加减数。
这样频率的调整变化较快些,但在接近最高频率变化太快。
如果加减用1作为加减数时,那么在频率的高端变化平稳,而在频率的低端则变化太慢,调试时可根据应用特点选择加减数的大小。
简易低频信号源的输出频率指标实际测试如下:
三角波输出频率:
1HZ~70HZ。
方波输出频率:
1.5HZ~10.2KHZ。
简易低频信号源输出的频率不是很高,在设计时每周期波形256个采样点合成,波形不是光滑。
如果增加采样点,则输出的频率会很低,所以在设计时应根据应用特点选择合理的采样点数。
用单片机产生低频信号的最大的优点是可以输出产生复杂的不规则波形,这是一般通用信号源无法实现的。
总结
刚看到我的课程设计题目时,感觉应该会很顺利的完成,但是事实并非如此。
硬件和软件部分很快就完成,还以为胜利在望了,这个时候才知道,挑战才刚刚开始,调试才是最关键的步骤,于是我们进行了长期的调试过程。
小组成员分别检查了软件和硬件电路中存在的问题,确实发现了几处错误,满心欢喜的将错误改正过后,再次进行调试,可是结果还是不尽人意。
于是我们决定从新焊接一次电路,便又进入了漫长的焊接过程。
终于又一个作品诞生了,我们又重新看到了希望。
又开始了调试,我们认真的检查了一遍电路,经过几番努力,终于成功的调试出来了方波和三角波,正弦波和三角波的切换总是有问题,我们分析了一下原因,可能是因为按键没有安装去抖电路的原因,按键时有可能产生多次信号被单片机检测到,不能顺利的完成三角波到正弦波的切换。
由于时间原因,没能将去抖电路完成,感觉有些可惜。
我的课程设计结束了,作品虽然没能达到百分百的完美,但是真的收获很多,真正明白了理论和现实的差距。
这个电路没有问题理论可以完成相关功能,但是实际做出来的就是会存在许多问题,我学会了慢慢发现问题,慢慢解决问题,过程中一定不是顺利的,需要耐心的对待,不要着急,调试的过程充满挑战,不要互相抱怨,要齐心协力,队友之间要有足够的团队精神,一起解决问题,团结力量大。
这次课程设计是我看到了我的能力实在不够,动手能力也是十分欠缺。
单片机课设使我认识到了应该多多将理论带到实际中,我也有在学习如何将电路图呈现在电路板上,如何检查电路的连接,如何调试到最佳状态。
我觉得这次课设只是一个开始,让我们认识到自己的不足,意识到一个电子专业人员应该要具备的基本能力,也知道了努力的方向。
未来的路还很长,期待自己的进步。
致谢
首先感谢高老师对我们的良苦用心。
有感觉到在课程设计难度上老师并没有设置的很大,但是要求作出实物。
刚开始还觉得会很容易实现,但是慢慢的我发现我错了。
电路图可以呈现到电路板上,但是电路的功能却没能实现。
理论总是那么容易,实现起来却真的很难。
感谢老师给我们这次动手的机会,我也在这个过程中意识到自己真的欠缺很多,还需要很多实践和经验,相对于一个电子信息的专业人士,自己还差的甚远。
感谢老师让我意识到自己的不足。
然后感谢我的队友东哥和旭哥。
在过程中,是东哥带着我进步,面对我的问题东哥都会很耐心的给我解答,使我慢慢懂得很多基本的知识。
另外我们的电路都是东哥在做,我就是帮忙找找元件。
旭哥也付出了很多汗水,完成了硬件电路的测试和调试,这些工作都是很枯燥又特别重要的,感谢他们的努力才使我们完成了本次课设,虽然不是特别完美,期待下次的合作,希望能做出满意的作品。
最后感谢帮助过我的各路大神,都会耐心的帮我解决问题,感谢大家。
参考文献
[1]张毅刚,彭喜源,彭宇.单片机原理及应用[M].高等教育出版社,2010.
[2]楼然苗,李广飞.单片机课程设计指导(第2版