简易函数信号发生器的设计.docx
- 文档编号:28219896
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:16
- 大小:402.26KB
简易函数信号发生器的设计.docx
《简易函数信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《简易函数信号发生器的设计.docx(16页珍藏版)》请在冰豆网上搜索。
简易函数信号发生器的设计
单片机课程设计报告书
课题名称
简易函数信号发生器的设计
姓名
**
学号
**
院、系、部
**
专业
电子信息科学与技术
指导教师
**
2011年12月12日
一、设计任务及要求:
设计任务:
1、设计一个基于AT89S52单片机的信号发生器;
2、能够输出方波和正弦波(正弦波是双极性的),要求可用按键选择;
3、可选电压值为1V、2V、3V、4V、5V五个档位;
4、可选频率值为:
10Hz、20Hz、50Hz、100Hz、200Hz、500Hz、1KHz七个档位;
5、能够通过显示模块显示输出波形的主要参数。
要求:
用Protues进行仿真,并写出设计报告。
指导教师签名:
年月日
二、指导教师评语:
指导教师签名:
年月日
三、成绩
指导教师签名:
年月日
修改通篇页面设置里面的左右边距
一绪言
函数发生器是一种多波形的信号源。
它可以产生正弦波、方波、三角波、锯齿波,甚至任意波形。
函数发生器有很宽的频率范围,使用范围很广,它是一种不可缺少的通用信号源。
因此设计使用的AT89S52单片机构成的发生器,可以产生正弦波和方波。
二系统方案论证
2.1设计要求
1、设计一个基于AT89S52单片机的信号发生器;
2、能够输出方波和正弦波(正弦波是双极性的),要求可用按键选择;
3、可选电压值为1V、2V、3V、4V、5V五个档位;
4、可选频率值为:
10Hz、20Hz、50Hz、100Hz、200Hz、500Hz、1KHz七个档位;
5、能够通过显示模块显示输出波形的主要参数。
2.2简易函数信号发生器方案论证
方案一:
用分立元件组成函数发生器,通常是单函数发生器且频率不高,其工作不很稳定,不易调试。
方案二:
可以由晶体管,运放IC等通用器件制作,更多的则是用专用的函数信号发生器IC产生。
早期的函数信号发生器IC,如L8083、BA205等,他们的功能少,精度不高,频率上限只有300KHz,频率和占空比不能独立调节,二者相互影响。
方案三:
利用专用直接数字合成DDS芯片的函数发生器:
能产生任意波形并且达到很高的频率。
但成本很高。
方案四:
采用AT89S52单片机和DAC0832芯片,直接连接按键和显示。
该种方案主要对AT89S52单片机的各个I/0口充分利用,不再多用其他的芯片,从而减小了系统的成本,也对按照系统便携式低频信号发生器的要求所完成,占用空间小,使用空间小,使用芯片少,低功耗。
综合考虑,方案四各项性能和指标都优于其他各种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片和器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案四。
2.3单片机的控制方案论证
方案一:
采用可编程逻辑期间CPLD作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。
但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑我们放弃了此方案
方案二:
采用Atmel公司的AT89S52单片机作为控制器。
AT89S52是一个低功耗,高性能的51内核的CMOS8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个IO口,2个16位可编程定时计数器。
综合考虑,选择方案二,采用Atmel公司的AT89S52单片机作为控制器。
根据设计任务书中的设计要求,可选用Atmel公司的89系列单片机AT89S51,但考虑到将来控制功能的扩充,用AT89S51来完成本次设计。
控制方案如下:
用AT89S52的P0口和P2口分别控制2片DAC0832的输出,P2口控制输出波形,P0口控制输出波形的幅度,P1.0到P1.4分别接五个独立按键,分别实现波形的波形转换,频率调节和幅度调节。
充分利用单片机的这几个I/O口就可以实现要求的功能。
2.4键盘选择方案论证
方案一:
采用独立式键盘。
由于各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。
此种键盘适用于按键较少或操作速度较高的场合。
方案二:
采用行列式键盘。
它由行线和列线组成,按键位于行列的交叉点上,行线信号和列线信号分别通过两个接口和CPU相连,通过行列扫描法判定按键的位置,此方案适用于按键较多的场合。
通过对简易函数信号发生器题目的分析,本项目使用键盘较少,采用独立式键盘。
三、系统设计
3.1硬件电路设计
3.1.1简易函数信号发生器的总电路图
简易函数信号发生器的总电路图如图1所示
采用AT89C51单片机控制DAC0832波形输出的电路原理如图1所示。
.
图1简易函数信号发生器的电路图
3.1.2行列式式键盘的设计
键盘电路如图2所示。
图2键盘模块电路图
说明:
总共5个按键,功能分别为波形选择,频率加,频率减,幅度加,幅度减。
3.1.3波形输出及波形幅度调节模块的设计
波形输出及波形幅度调节模块如图3所示。
.
图3波形输出及波形幅度调节模块
U3负责输出幅度的调节,U4负责输出波形的调节,U3后接2个OPAMP负责将输出波形转换为双极性波。
3.1.4主要元器件选择
主要元器件选用型号和数量如表2-1所示:
表2-1主要元器件清单
序号
材料名称
规格型号
数量
元件代号
1
单片机
AT89C51
1
U1
2
与门
74HC08
1
U5
3
DA转换芯片
DAC0832
2
U4,U3
4
运算放大器
OPAMP
3
U2,U6,U7
5
按键
小型号
5
3.2程序流程图
3.2.1内存单元分配
AT89C51片内RAM存储单元分配如表2-2所示:
表2-2片内RAM存储单元分配表
序号
存储单元
用途
1
50H~7FH
堆栈区
2
R4、R5、R6
0.5s延时子程序
3
R1
延时计数初值
4
R2
中断服务程序的延时计数初值
3.2.2主程序流程图
主程序流程图4所示。
图4主程序流程图
3.2.3中断服务程序流程图
中断服务程序流程图如图5所示。
.
图5中断服务程序流程图
3.3C语言程序设计
C语言程序设计如下:
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
#definedataoutP0
voiddelay1ms(unsignedcharms);
ucharsin=0,flage1=3,j=0,flage2=0;//0---方波;1---锯齿波;2---三角波;3---正弦波
staticuintk=0;
staticvdata=122;
//=============正弦波数据表====================
ucharcodesin_tab[256]=
{0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,
0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,
0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,
0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,
0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,
0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,
0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,
0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,
0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c,
};
voiddelay_ms(uintms)
{while(ms--)
{_nop_();
_nop_();
}
}
voidcovert();
//===============================================================
voidmain()
{TCON=0x01;
EA=1;
EX0=1;
P1=0xff;
while
(1)
{covert();
}
}
voidcovert()
{switch(flage1)
{
case0:
dataout=255;delay_ms(k);dataout=0;delay_ms(k);break;//方波
case1:
dataout=j++;delay_ms(k);break;//锯齿波
case2:
{
switch(flage2)//三角波
{case0:
dataout=j++;delay_ms(k);if(j==255)flage2=1;break;
case1:
dataout=j--;delay_ms(k);if(j==0)flage2=0;break;
default:
return;
}
}break;
case3:
dataout=sin_tab[sin++];delay_ms(k);break;//正弦波
default:
return;
}
}
voidint0()interrupt0
{
EX0=0;
delay_ms
(1);
if((P1&0x01)==0)
{
flage1++;
if(flage1==4)flage1=0;
}
elseif((P1&0x02)==0)//频率加
{k--;
if(k==0)return;
}
elseif((P1&0x04)==0)k++;//频率减
elseif((P1&0x08)==0)vdata+=8;//幅度加
elseif((P1&0x10)==0)vdata-=8;//幅度减
P2=vdata;
EX0=1;
}
四、简易函数信号发生器的仿真
4.1系统仿真
在完成了简易函数信号发生器的硬件设计和软件设计以后,便进入系统的调试阶段。
系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil软件进行软件调试,用Proteus软件完成硬件调试。
4.1.1Keil调试
利用Keil软件进行编程,调试。
调试完成的图如图5所示。
图5程序调试完成图
刚开始调试程序老有错误,后来不断经过检查发现,是有几个变量没有定义所致,经过了几十次的程序改写,编译,不同方法的的实验,终于将程序编写正确,系统调试成功。
4.1.2Proteus调试
产生方波效果图如图6所示
图6方波效果图
产生正弦波效果图如图7所示。
图7正弦波效果图
4.2工作原理分析
AT89S52单片机作为控制器件,输出不同的数值给U4,可以控制DAC0832的输出的波形,U4输出的波形又送给U3,单片机通过控制U3,就可以控制波形的输出幅度,通过不同的按键可以调节波形的幅值和频率,当按下波形转换键时,输出波形会发生变化。
结束语
本课设是我第一次独立而又比较系统完成的一次设计。
在本次设计中我从选题,搜集资料,电路设计到硬件电路的调试以及程序的调试,软件的仿真,比较系统的接触整个过程的各个环节,从中受益匪浅。
学会了几种软件,如KEIL、PROTEUS等。
本课设基本上实现了设计任务所要求的功能,这次设计是对大学所学知识的一次综合运用,增强了我理论结合实践能力。
参考文献
[1]阎石.数字电子技术基础[M].北京:
北京:
高等教育出版社,2007年7月
[2]华成英,童诗白.模拟电子技术基础[M].北京:
高等教育出版社,2006年1月
[3]余成波等.传感器与自动检测技术[M].北京:
高等教育出版社,2006年11月
[4]高鹏,安涛,寇怀成.Protel99SE入门与提高[M].北京:
人民邮电出版社,2004[5]于海生等.微型计算机控制技术[M].北京:
清华大学出版社,1998年1月
[6]李华.MCS-51系列单片机实用接口技术[M].北京航空航天大学出版社,1996
丁跃军.单片机基础教程.北京:
北航大学出版社,2004
[7]KuoB.C.AutomaticControlSystems[M].8thed.NewJersy:
Prentice-Hall,Inc.2002
[8]MarkI.Montrose著,刘元案等译.电磁兼容和印刷电路板理论,设计和布线[M].北京:
人民邮电出版社,2002年10月
[9]黑杰克.ProtelSchematic99SE电路设计[M].北京:
科学出版社,2001年3月
[10]李广弟.单片机基础[M].第3版.北京航空航天大学出版社,2007年1月
[11]丁元杰、吴大伟.《单片微机实题集与实验指导书》[M].机械工业出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 函数 信号发生器 设计