ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:860.52KB ,
资源ID:12537314      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12537314.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机技术波形发生器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机技术波形发生器.docx

1、基于单片机技术波形发生器北京联合大学 信息学院电子系统设计单片机波形发生器姓 名: 李冬冬 学 号: 2010080303114 系 别: 电子工程系 专 业: 电子信息工程 组 员: 王健民 2013 年 6 月 25 日目录1设计任务 21.1总体设计方案 21.11硬件电路设计 21.12数模转换电路: 31.13放大电路: 41.14单片机最小系统: 41.2软件设计 51.21软件流程图: 51.3设计功能验证: 51.31仿真电路: 51.32矩形波: 61.33锯齿波: 61.34三角波: 71.35正弦波: 71.4硬件实物功能验证(下载): 81.41三角波: 81.42正弦

2、波: 81.43方波: 91.44 三角波: 91.45实物电路连接: 102 设计总结 113附录 123.1硬件电路元器件清单: 123.2程序代码: 121设计任务 利用单片机设计一个波形发生器,基本要求: (1)具有产生正弦波周期性波形的功能; (2)具有产生方波周期性波形的功能; (3)具有产生三角波或锯齿波周期性波形的功能; (4)具有波形存储功能; (5)输出波形频率范围100 Hz 1 kHz; (6)输出波形幅度范围为5 V 5 V。 (7)自拟。1.1总体设计方案 图1.1 总体设计图 方案设计说明:按键控制部分共有三个按键,一个用于选择波形,一个用于选择频率,一个用于调节

3、步长。1.11硬件电路设计设计思路:整体的硬件设计分为三个部分,依次为单片机最小系统、数模转换部分和放大电路。总体设计电路原理图(以AT89C52设计为例)图1.2总体设计电路原理图1.12数模转换电路:图1.3 数模转换电路功能分析:DAC0832是常用的8位电流输出型并行低速数模转换芯片,通过下一级的运算放大电路,将输出的电流信号转换为最后输出的电压信号。 1.13放大电路:图1.4 放大电路功能分析:将上一级DAC0832的电流输出信号转化为电压输出信号,并通过放大器,将电压的工作范围从05V转化为-5+5V。1.14单片机最小系统:图1.5 单片机最小系统功能分析:执行载入的指令程序,

4、使其能够实现生成正弦波、三角波、方波的功能,并且通过按键输入,可以调节波形频率和进行波形之间的切换。1.2软件设计1.21软件流程图:图1.6 软件流程图1.3设计功能验证: 1.31仿真电路:图1.7 仿真电路仿真结果:1.32矩形波:图1.8 矩形波1.33锯齿波:图1.9 锯齿波1.34三角波:图1.20 三角波1.35正弦波:图1.21 正弦波1.4硬件实物功能验证(下载):1.41三角波:图1.22 三角波1.42正弦波:图1.23 正弦波1.43方波:图1.24 方波1.44 三角波: 图1.25 三角波1.45实物电路连接:图1.26 实物连接图2 设计总结这次的单片机波形发生器

5、设计实验,也是在原来的FPGA设计波形发生器的基础上,不仅把将课堂上学到的理论知识与实际应用结了起来,而且使我对电子电路、电子元器件、印制电路板等方面的知识有了更进一步加深认识,同时在软件编程、排版调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高.从这次的课程设计中,我真真正正的意识到,在以后的学习工作中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。此次的温度计设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。李冬冬3附录3.1硬件电路元器件清单:

6、电路元器件清单序号元器件型号和规格数量1DAC0832数模转换器12LM324运算放大器23ATMEL单片机AT89C5214独立电容30pF/50V25通用焊接板(单面,3连通孔)16IC插座DIP4017晶振12M18铝电解电容10F/50V291/8W碳膜电阻(5%)8.2k110轻触按钮开关1111/8W碳膜电阻(5%)30011252针接插座(CONNSCOKET52)113IC插座DIP20114IC插座DIP141151/8W碳膜电阻(5%)7.5k1161/8W碳膜电阻(5%)15k2171/8W碳膜电阻(5%)100118电容0.1F/16V1198针单排插件220数据端口插

7、接线8(根)21电源端口插接线4(根)3.2程序代码:#includesbit key2=P12;/步长设置按钮sbit key1=P11;/定时器控制频率按钮sbit key0=P10;/波形选择按钮char flag; /波型输出标置变量bit time;unsigned char i;int num ;void delay(int z) /延时 z毫秒 int x,y; for(x=z;x0;x-) for(y=124;y0;y-); unsigned char sin(unsigned char x)/正弦波unsigned char code sin_tab=0x80, 0x83,

8、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, 0

9、xf9, 0xfa, 0xfb, 0xfc, 0xfc, 0xfd, 0xfd, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfd, 0xfd, 0xfc, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf4, 0xf3, 0xf2, 0xf0, 0xef, 0xed, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe2, 0xe0, 0xde, 0xdc, 0xda, 0xd8, 0xd5, 0xd3, 0

10、xd1, 0xce, 0xcc, 0xc9, 0xc7, 0xc4, 0xc1, 0xbf, 0xbc, 0xb9, 0xb6, 0xb3, 0xb0, 0xae, 0xab, 0xa8, 0xa5, 0xa2, 0x9f, 0x9c, 0x99, 0x96, 0x92, 0x8f, 0x8c, 0x89, 0x86, 0x83, 0x80, 0x80, 0x7d, 0x7a, 0x76, 0x73, 0x70, 0x6d, 0x6a, 0x67, 0x64, 0x61, 0x5e, 0x5b, 0x58, 0x55, 0x52, /下半周期 0x4f, 0x4c, 0x49, 0x46, 0

11、x43, 0x41, 0x3e, 0x3b, 0x39, 0x36, 0x33, 0x31, 0x2e, 0x2c, 0x2a, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1b, 0x19, 0x17, 0x15, 0x14, 0x12, 0x10, 0x0f, 0x0d, 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x03, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0

12、x04, 0x05, 0x06, 0x07, 0x08 ,0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x12, 0x13, 0x15, 0x17, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x23, 0x25, 0x27, 0x2a, 0x2c, 0x2e, 0x30, 0x33, 0x35, 0x38, 0x3b, 0x3d, 0x3e, 0x40, 0x43, 0x46, 0x48, 0x4b, 0x4e, 0x51, 0x54, 0x57, 0x5a, 0x5d, 0x5f, 0x60, 0x63, 0x66, 0x69, 0x6b, 0

13、x6d, 0x6f, 0x72, 0x74, 0x76, 0x78, 0x7a, 0x7e, 0x80; return sin_tabx;void DAC0832(unsigned char x) P2=x;void time0() interrupt 1 TH0=256-num; TL0=256-num; time=1;void frequency() if(key0=0) / /key0控制flag,波形选择 delay(5) ; if(key0=0) /再次检测 while(!key0); /等待按键释放 flag+; /按一下加1 if(flag=4) /大于2返回0 flag=0;

14、if(key1=0) /检测P21是否按下 ,定时器控制频率 delay(5) ; if(key1=0) /再次检测 while(!key1); num=num+1; /按一下减10 if(num=25) /小于5,返回5 num=10; void main() char d; d=1; TMOD=0X02; num=10; TH0=256-num; /num用来控制采样一个点所用的时间 TL0=256-num; ET0=1; /定时器0中断的相关设置 EA=1; TR0=1; flag=2; /开始时有输出 i=0; while(1) if(key2=0) /按一下key2,d自加1,用于设

15、置步长 ,可改变频率 delay(5); if(key2=0) while(!key2); d+; if(d=21)/当d=21,d变为1 d=1; frequency() ; if(time=1) time=0; if(i255) i=0; else i=i+d; / 设置后的步长 switch(flag) case 0:DAC0832(i);break;/ 当flag=0时,锯齿波 case 1: if(i127) / 当flag=1时,三角波 DAC0832(255-2*i); else DAC0832(2*i); break; case 2: DAC0832(sin(i); /当flag=2时,正弦波 break; case 3: if(i127) /当falg=3时,方波 DAC0832(0); else DAC0832(255); break; default: break;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1