基于单片机的简易函数信号发生器_第1页
基于单片机的简易函数信号发生器_第2页
基于单片机的简易函数信号发生器_第3页
基于单片机的简易函数信号发生器_第4页
基于单片机的简易函数信号发生器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、创新性实验研究报告实验项目名称简易函数信号发生器一、实验摘要用AT89C51单片机采用程序设计方法构成的波形发生器,可产生方波、三角波、正 弦波,再通过DA转换器DAC0832等数字信号转换成模拟信号,并通过LM3241成运放把 信号放大,通过示波器将波形显示在屏幕上。波形的周期可用程序改变,此设计具有线 路简单、结构紧凑、性能优越等特点。通过仿真测试,其性能指标达到了设计要求。并 进行实际焊接电路板,进行波形测试,均达到了实验目的。、实验目的1、进行硬件电路设计。2、编写程序,并进行程序测试。3、利用单片机采用软件设计方法产生三种波形。4、焊接电路,将程序下载到单片机,并用示波器对输出程序进

2、行测试。三、实验场地及仪器、设备和材料:实验场地:电子技术实验室。仪器、设备和材料:双通道数字示波器、 AT89C52II片机、DAC0832 LM324电脑、 杜邦线、洞洞板、电烙铁等。四、实验内容1、实验原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成 模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU随机存取存储器RAM只读存储器ROM I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、 显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分

3、,即可构成所需的波 形发生器,具信号发生器构成原理框图如下图所示。滤波放大电路将波形输出出来2、实验内容1、运用keil软件对程序进行编写,运行程序,并进行程序修改2、运用protues软件进行硬件电路仿真设计。3、将程序下载到仿真单片机中,并观测输出波形。4、对程序进行修改,再次运行仿真软件,直到输出理想的波形。5、仿照仿真软件进行硬件电路的焊接。6、将程序下载到单片机,并用示波器测试输出波形。7、对程序进行修改,直到输出满意的波形为止。3、实验步骤1、首先打开keil软件.2 、运用keil软件对程序进行编写,程序见附件。3、打开protues软件.4、运用protues软件对硬件电路进行

4、设计。9c51单片机是该信号发生器的核心,具有 2个定时器,32个并行I/O 口,1个串行 I/O 口,5个中断源。由于本设计功能简单,数据处理容易,数据存储空间也足够,因为 我们采用了片选法选择芯片,进行芯片的选择和地址的译码。在单片机最小最小系统中, 单片机从P1 口接收来自键盘的信号,并通过P0 口输出控制信号,通过DA转换芯片最终 由示波器显示输出波形。单片机引脚分配如下:?XTAL1 XTAL2外接晶振,产生时钟信号。?RST复位电路;?P2 口: 8位数字信号输出输出,外接 DAC0832?P3.6 口和 P3.7 口: DAC0832勺时钟信号;单片机模块单片机输出的是数字信号,

5、因为要得到模拟信号的波形就必须对其进行数模转换。我们采用了 DAC083纵模转换器,该芯片具由8位输入锁存器、8位DACJ存器、8位D/A 转换器及转换控制电路四部分构成。由于其输出为电流输出,因为外加运算放大器LM324 使之转换为电压输出。最后通过示波器显示输出的波形。数模转换模块运放模块整体硬件电路图五、实验结果与分析1、实验现象、数据记录仿真波形2、对实验现象、数据及观察结果的分析与讨论:经过观察调试,冉观察,再调试,最终输出的波形较为理想。此次试验经过一系列 的调试,最终输出的波形为正弦波、方波、三角波。刚开始在给运放接电源时,接的电源不是稳恒直流电源(用示波器测试了一下电源的输出波

6、形,虽然电源上写的是直流稳恒电源,但是发现他的波形掺杂有杂波),所以测出来的波形不是正弦波、方波和三角波。分析原因可能与运放的电源有关,所以在实 验室找到了数控稳恒直流电源,经过给运放供电,发现输出了正弦波、方波、三角波。所以给运放供电的电源必须是经滤波后的平稳电源,否则对运放有很大影响。3、关键点:此次试验关键点是程序的编写,在程序编写的过程中请教了众多的编程高手,最终 在大家的帮助下编写出了能输出正弦波、方波、三角波的程序。此次试验另一个关键点是硬件电路的焊接。 在硬件电路焊接中首先应根据仿真软件 进行焊接,当焊完以后还要对电路进行测试,以防止电路不通。第三个关键点是在给运放供电时的电源一

7、定要是稳恒直流电源,不能掺杂有杂波。六、实验结论基于单片机的信号发生器设计,这个信号发生器的设计中涉及到一个典型的控制过 程。通过单片机控制一个模数转换器 DAC0832产生所需要的电流,然后使用运算放大器 LM324可以将其电流输出线性地转换成电压输出,再将电压经过运算放大器的放大,可以 得到足够幅度的信号。通过程序的控制,可以产生一系列有规律的波形。这样一个信号发 生装置在控制领域有相当广泛的应用范围。最终做出来的信号发生器满足了题目中的所有要求:产生三种波形。正弦波、三角波、矩形波。当然还是存在不足的地方,比如不能实现频率的按一个小的步进调整。并且当频率太 小时矩形波会有些失真。信号发生

8、器可以生成更多的波形,只需要再加些波形表即可。七、指导老师评语及得分:附件:源程序等。正弦波程序:#include #define uchar unsigned char#define uint unsigned intsbit cs=P3A7;sbit wr=P3A6;uchar j;uint ys,a=0;uchar code tosin256=0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xb

9、c,0 xbf,0 xc2,0 xc5,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1,0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xf

10、e,0 xfd,0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf4,0 xf2,0 xf1,0 xef,0 xee,0 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 xdd,0 xda,0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc,0 xba,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99,0 x9

11、6,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,0 x80,0 x7c,0 x79,0 x76,0 x72,0 x6f,0 x6c,0 x69,0 x66,0 x63,0 x60,0 x5d,0 x5a,0 x57,0 x55,0 x51,0 x4e,0 x4c,0 x48,0 x45,0 x43,0 x40,0 x3d,0 x3a,0 x38,0 x35,0 x33,0 x30,0 x2e,0 x2b,0 x29,0 x27,0 x25,0 x22,0 x20,0 x1e,0 x1c,0 x1a,0 x18,0 x16,0 x15,0 x13,0 x1

12、1,0 x10,0 x0e,0 x0d,0 x0b,0 xOa,0 x09,0 x08,0 x07,0 x06,0 x05,0 x04,0 x03,0 x02,0 x02,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x02,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08,0 x09,0 x0a,0 x0b,0 x0d,0 x0e,0 x10,0 x11,0 x13,0 x15,0 x16,0 x18,0 x1a,0 x1c,0 x1

13、e,0 x20,0 x22,0 x25,0 x27,0 x29,0 x2b,0 x2e,0 x30,0 x33,0 x35,0 x38,0 x3a,0 x3d,0 x40,0 x43,0 x45,0 x48,0 x4c,0 x4e,0 x51,0 x55,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66 ,0 x69,0 x6c,0 x6f,0 x72, 0 x76,0 x79,0 x7c,0 x80 ;/* 正弦波码 */void delay(uint z) / 延时子程序uchar i,j;for(i=z;i0;i-)for(j=110;j0;j-);void del

14、ay1(uint y)uint i;for(i=y;i0;i-);void main()cs=1;wr=1;cs=0;wr=0;while(1) / 正弦波P2=tosinj;j+;delay(1);wr=1;cs=1;方波程序:#include #define uchar unsigned char#define uint unsigned intsbit cs=P3A7;sbit wr=P3A6;uchar j;uint ys,a=0;uchar code tosin256=0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9

15、c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1, 0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5, 0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0

16、xff, 0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfd,0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf4,0 xf2,0 xf1,0 xef,0 xee,0 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 xdd,0 xda, 0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc, 0 xba

17、,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99, 0 x96,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,0 x80,0 x7c,0 x79,0 x76, 0 x72,0 x6f,0 x6c,0 x69,0 x66,0 x63,0 x60,0 x5d,0 x5a,0 x57,0 x55,0 x51, 0 x4e,0 x4c,0 x48,0 x45,0 x43,0 x40,0 x3d,0 x3a,0 x38,0 x35,0 x33,0 x30, 0 x2e,0 x2b,0

18、 x29,0 x27,0 x25,0 x22,0 x20,0 x1e,0 x1c,0 x1a,0 x18,0 x16, 0 x15,0 x13,0 x11,0 x10,0 x0e,0 x0d,0 x0b,0 x0a,0 x09,0 x08,0 x07,0 xO6, 0 x05,0 x04,0 x03,0 x02,0 x02,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x02,0 x02,0 x03,0 x04,0 x05, 0 x06,0 x07,0 x08,0 x

19、09,0 x0a,0 x0b,0 x0d,0 x0e,0 x10,0 x11,0 x13,0 x15, 0 x16,0 x18,0 x1a,0 x1c,0 x1e,0 x20,0 x22,0 x25,0 x27,0 x29,0 x2b,0 x2e, 0 x30,0 x33,0 x35,0 x38,0 x3a,0 x3d,0 x40,0 x43,0 x45,0 x48,0 x4c,0 x4e, 0 x51,0 x55,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66 ,0 x69,0 x6c,0 x6f,0 x72, 0 x76,0 x79,0 x7c,0 x80 ;/*正

20、弦波码 */void delay(uint z) /延时子程序uchar i,j;for(i=z;i0;i-) for(j=110;j0;j-);void delay1(uint y)uint i;for(i=y;i0;i-);void main()cs=1;wr=1;cs=0;wr=0;while(1) / 方波P2=0 xff;delay(1);P2=0;delay(1);wr=1;cs=1;三角波程序:#include #define uchar unsigned char#define uint unsigned intsbit cs=P3A7;sbit wr=P3A6;uchar j

21、;uint ys,a=0;uchar code tosin256=0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1,0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 x

22、f1,0 xf2,0 xf4,0 xf5,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfd,0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf4,0 xf2,0 xf1,0 xef,0 xee,0 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 x

23、dd,0 xda,0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc,0 xba,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99,0 x96,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,0 x80,0 x7c,0 x79,0 x76,0 x72,0 x6f,0 x6c,0 x69,0 x66,0 x63,0 x60,0 x5d,0 x5a,0 x57,0 x55,0 x51,0 x4e,0 x4c,0 x48,0 x45,0 x43,0 x40,0 x3d,0 x3a,0 x38,0 x35,0 x33,0 x30,0 x2e,0 x2b,0 x29,0 x27,0 x25,0 x22,0 x20,0 x1e,0 x1c,0 x1a,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论