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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

正弦波方波三角波的发生电路设计讲解.docx

1、正弦波方波三角波的发生电路设计讲解正弦波方波三角波的发生电路设计摘要现今世界中电子技术与电子产品的应用越加广泛,人们对电子技术的要求也越来越高。因此如何根据实际要求设计出简便实用的电子技术物品便显得尤为重要。灵活、快速的选用不同特征的信号源成了现代测量技术值得深入研究的课题。能将简单的易获取的信号转换为自己所需的复杂信号是一项必不可少的技术。我们有必要做好这相关方面的研究,为被测电路提供所需要的信号及各种波形,以便完成各种相关试验。信号源在各种试验应用和实验测试处理中,仿真各种测试信号,提供给被测电路,用来满足实验的各种要求。关键词:单片机,信号发生器,波形ABSTRACT:The appli

2、cation of electronic technology and electronic products in todays world increasingly extensive, people also more and more high to the requirement of electronic technology. According to actual requirements so how to design simple and practical electronic technology items, it becomes very important. F

3、lexible, fast, choose different characteristics of the signal source is worth studying deeply the modern measuring technology. Can be simple, easy to obtain signal can be converted into their complex signal is an essential technology. It is necessary for us to do the related research, to provide the

4、 required signal circuit under test and various waveform, to complete various related experiment. Signal source in various test application and test processing, simulation of testing signal, provided to the circuit under test, to satisfy the requirements of the experiments.KEY WORDS: Microcontroller

5、, signal generator, waveform第一章 前言1.1 课题研究背景 函数信号发生器是一种常用信号源。通常能够产生正弦波、方波、三角波等多种波形,因其时间波形可用某种时间函数来描述而得名。函数信号发生器在电路实验和设备检测中具有十分广泛的应用,密切地联系着工业、农业、生物医学等产业,并对它们的发展起到极大的促进作用。 伴随着单片机技术的快速发展与普遍应用,函数信号发生器的性能和性价比将会有更大的提升空间。基于单片机的函数信号发生器将为智能化生活提供实质的帮助。1.2 波形介绍 1.2.1正弦波正弦信号可用如下形式表示:f (t)=Asin(t+ ),其中,A 为振幅, 是角

6、频率, 为初相位。正弦函数为一周期信号如下图1所示: 图1 正弦波1.2.2三角波三角波波形如下图2所示:图2 三角波1.2.3方波方波函数是我们常用且所熟知的简单波形函数,做脉冲等,其表示形式如下: 方波波形如下图3所示:图3 方波当方波下半段幅值为0时,就为矩形波,一个原理,所以不再赘述矩形波。1.3硬件介绍1.3.1 AT89C51单片机1.AT89C51单片机的简介AT89C51单片机是一种带4 k字节的闪存(FPEROM - FLASH编程和可擦只读存储器)的低电压、高性能CMOS 8位微处理器。AT89C2051是一种带2 k字节flash可编程单片机可擦除只读存储器(ROM)。单

7、片机可擦除只读存储器可以抹去反复1000次。该设备采用ATMEL高密度非易失存储器制造技术,和行业标准的MCS - 51指令集和输出管兼容。由于多功能8位CPU和闪存在单一芯片,ATMEL AT89C51单片机的结合是一种有效的微控制器,AT89C2051的精简版本。AT89C51为许多嵌入式控制系统提供了一个解决方案概述高灵活性和低价格的特点。能够提供以下标准特性:4 k字节的Flash闪存,128字节的内部RAM,32个I / O端口线,两个16位定时器/计数器,一个两个阶段5向量中断结构、全双工串行通信端口,芯片上的时钟振荡器电路及时。同时,AT89C51单片机静态逻辑运算可以减少到0赫

8、兹,和两个软件支持可选的节能工作模式。免费停止CPU的工作方式,但是允许RAM,定时器/计数器,串行通信端口和中断系统继续工作。电方式节省内存的内容,但振荡器停止工作和其他工作,直到下一个硬件复位所有部分。2.AT89C2051的功能单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地进行工作。因而时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路方式有两种:一种是内部时钟方式,一种是外部时钟方式,这里采用的是内部时钟方式,外接晶振。时钟电路由片外晶体、微调电容和单片机的内部电路组成。选取频率为11.0592MHz的晶振,微调电容是瓷片电容。89S52

9、单片机的P0.7口作为波形输出口,若接示波器,则可通过示波器来观察波形,是一个矩形波。1.3.2 DAC0832转换器1. DAC0832转换器的简介DAC0832DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。2. DAC0832的功能(1)分辨率它反映了最小输出模拟电压值的变化。定义为满量程输出电压之比2 n,其中n位DAC。分辨率有一定的与数字量的输入数字的关系。全系列的5 v,使用8位DAC,分

10、辨率为5 v / 256 = 19.5 mV;当使用DAC分辨率为5 v / 1024 = 4.88 mV。显然,位数越高分辨率越高。(2)建立时间建立时间是描述DAC转换速度快慢的参数。定义为从输入数字量变化到输出达到终值误差1/2 LSB(最低有效位)所需的时间。(3)接口形式接口是DAC的输入/输出特性。包括输入数字量的形式:十六进制或BCD,是否输入。 DAC0832是使用一个非常常见的8 D / A转换器,因为它和输入数据寄存器,它可以直接与单片机接口。 DAC0832输出电流的形式,需要时将可以外部运算放大器的电压输出。属于系列芯片和DAC0830 DAC0831,它们可以相互替换

11、。根据数据输入过程中,有三种单片机和DAC0832连接方式:二级缓冲单级缓冲的连接方法连接模式,直接连接。第二章发生电路设计原理2.1功能和基本原理 AT89C51外接12M晶振作为时钟频率,设计并使用功率降低。使用电复位复位电路,其工作原理是,得电,相当于电容的两端短路,因此TST引脚为高电平,那么电容器充电。RST端电压下降缓慢,在一定程度上,是低水平,单片机就开始工作。产生方波计划:低于100赫兹的频率,根据定时器溢出时间1us,定时器溢出时代的等效频率值,当达到规定的数量,达到的状态的方波的输出接脚; 对于大于100HZ的频率,直接根据频率值设置其定时溢出的时间,当溢出时间达到时,将输

12、出管脚取反达到方波的产生。产生三角波计划的想法:产生峰值电压5 v的三角波,一个周期需要时间510次,可以计算每次溢出的时间,然后每次加权可以实现三角波电压波形;生成正弦波程序理念:设定一个周期的正弦波表,通过20个数据,相当于255倍,每个周期时间,时间可以计算为每个时间的溢出,每个点可以得到电压加权正弦电压,即正弦波的形成。2.2红外电路红外的工作原理:51单片机对遥控的解码和我们前面所讲的串口并口通信不同,他不是单纯的用高电平代表1,低电平代表0。这一点大家要从思想上面转变过来。他是发送一连串的数据帧,这个数据帧就是一连串的二进制代码,单片机通过区分高电平的持续时间来区别红外编码的。我们

13、就以HC6800单片机上的红外接头为例来说明,当高电平的脉冲宽度为1.12ms的时候单片机认为它为0,当高电平的脉冲宽度为2.25的时候单片机认为它为1。单片机是通过判断脉冲的宽度来得到信息位为0还是为1的。根据各部分的功能。可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。遥控器发射代码时均是低位在前。高位在后。分析可以得到引导码高电平为45ms,低电平为45ms。当接收到此码时表示一帧数据的开始。单片机可以准备接收下面的数据。地址码由8位二进制组成,共256种。地址码重发了一次。主要是加强遥控器的可靠性如果两次地址码不相同则说明本帧数据有错应丢弃。不同的设备可以拥有不同的

14、地址码因此。同种编码的遥控器只要设置地址码不同,也不会相互干扰。在同一个遥控器中所有按键发出的地址码都是相同的。数据码为8位,可编码256种状态,代表实际所按下的键。数据反码是数据码的各位求反,通过比较数据码与数据反码可判断接收到的数据是否正确。如果数据码与数据反码之间的关系不满足相反的关系则本次遥控接收有误数据应丢弃。在同一个遥控器上所有按键的数据码均不相同。数据码为十六进制的0CH,数据反码为十六进制的0F3H(注意低位在前)两者之和应为0FFH。2.3复位电路这种复位电路的工作原理是:单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电容进行

15、充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,89C51将复位。正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作(这是单片机的上电复位,也叫初始化复位);当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作(这是手动复位原理)。 下图4为复位电路图4复位电路2.4LCD显示部分电路为了节约成本,采用1602来作为显示器,用独立按键来控制不同的显示,能完成基本的显示功能。图5 LCD液晶

16、显示电路2.5电源部分本电源设计了两个接口,方便不同接口的电源接入,并且在电源部分加上滤波电容,起过滤接入电源的杂波的作用,为了电路中得到+12V、-12V和+5V的直流工作电压,用变压器变压后再通过芯片和电容设计出所需要的电路。图6电源电路2.6外部时钟电路图7采用11.0592MHz的晶振和两个22pf的电容组成时钟电路部分图7外部时钟电路2.7显示接口电路 功能:驱动Led液晶显示器,扫描按钮。 LCD1602液晶显示和一个矩阵的按钮。按键时, 通过P2口将数字信号发送到LCD1602,LCD1602显示液晶点阵设计,如字母、数字、符号,其外部电压5 v。扫描通过使用软件程序实现,当按键

17、时,立即扫描发现,立即调用子程序,执行相应的功能。与单片机连接如图所示:图8 部分电路图2.8独立按键部分图9为用独立按键来控制不同的输出波形图9独立按键2.9波形转换电路功能:转换波形样本值编码模拟值,完成波形的输出。由一块DAC0832和LF356运放。DAC0832是两个输入数据寄存器的8位DAC。当前生产的DAC芯片分为两种,一种是芯片内部数据寄存器设置,不需要外加电路,就可以直接与微机接口连接。另一种类型的芯片没有数据寄存器、输出信号变化状态的数据输入行,所以你不能直接与微机接口连接,必须通过并口与微机接口相连。DAC0832 有20条引线的双列直插式CMOS设备,里面有两个级别的数

18、据寄存器,完成8位 D / A转换,且不需要额外的电路。DAC0832是电流输出类型,在示波器上显示波形,通常需要电压信号和电流信号,电压信号的转换可以使用运算放大器LF356实现。单片机发送DAC0832数字编码,生成不同的输出。先利用采样定理对各种波形进行抽样,然后把各种采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表的方法依次取出,D / A转换后输出波形可以计算出来。假如N个点构成波形的一个周期,DAC0832输出N个样本值,样本点能形成一个轨迹,即,一个周期。重复输出N点之后,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制输出的波形的频率。从而控制输出波

19、形和振幅和频率,如正弦波,取20个样值点。具体连接的电路图如图10所示:示:图10 D/A转换的电路连接图2.10串口通信模块图11中通过MAX232进行TTL电平和232电平转换,从而单片机和上位机之间通信提供通道。图11串口通信电路通信电路的目的就是让通信双发的电平匹配,单片机用的是TTL电平,上位机的串口用的是232电平。TTL电平的逻辑1的电压范围是+3.3V到+5V,逻辑0的电压范围是0到+3.3V;232电平的逻辑1的电压范围是-15V到-5V,逻辑0的电压范围是+5V到+15V。因此设计串口通信电路就是让这两种电平统一。第三章 软件设计信号发生器的软件设计包括主程序、延时子程序、

20、系统初始化程序、键盘中断子程序、定时器中断子程序。3.1 主程序#includeunsigned char i,sqar_num=128; /最大值100,默认值50unsigned char cho=0; /0:正弦波。1:方波。2:三角波。unsigned char num=0;unsigned char TIME0_H=0xff,TIME0_L=0xd9; /定时器0的初值设置;全局变量.对应正弦波sbit chg= P10; /三角波100Hz.sbit freq_u=P11;sbit freq_d=P12;sbit duty_u=P13;sbit duty_d=P14;sbit cs

21、 =P37;bit flag=0;unsigned int FREQ=50;/初始化频率,50HZsbit rs=P35;sbit lcdcs=P30;unsigned char TempBuffer7;unsigned char value1=Frequency:;void delay(unsigned int ms) unsigned int i,j; for (j=0;jms;j+) for (i=0;i0) sqar_num-; else if(duty_u=0&sqar_num255) sqar_num+;/波形发生函数void sint(void) if(!flag) cs=0;P

22、2=sin_numnum+;cs=1; if(num=0)num=255;flag=1; else if(flag) cs=0;P2=sin_numnum-;cs=1; if(num=255)num=0;flag=0; void square(void) if(i+sqar_num) cs=0;P2=0XFF;cs=1; elsecs=0;P2=0X00;cs=1;/*void triangle(void) cs=0;P2=num+;cs=1; */void triangle(void) if(flag) cs=0;P2=num+;cs=1; if(num=0)num=255;flag=1;

23、else if(flag) cs=0;P2=num-;cs=1; if(num=255)num=1;flag=0; /1602显示开始void write_command(unsigned char command) rs=0; P0=command; lcdcs=1; lcdcs=0;void write_data(unsigned char data0)rs=1; P0=data0; lcdcs=1; lcdcs=0; void init_1602() delay(15); write_command(0x38); delay(5); write_command(0x0c); delay(

24、5); write_command(0x06); delay(5); /1602显示结束/*频率值转换为字符串*/void temp_to_str() TempBuffer0=FREQ/1000+0; /千位 TempBuffer1=FREQ%1000/100+0; /百位 TempBuffer2=FREQ%1000%100/10+0;/十位 TempBuffer3=FREQ%1000%100%10+0;/个位 TempBuffer4=H; TempBuffer5=Z; TempBuffer6=0;/*频率显示*/void show_frequency() unsigned char i; /

25、init_1602();/初始化lcd write_command(0x8a);/液晶显示位置 temp_to_str(); /*for (i=0;isizeof(value1)-1;i+) write_data(value1i); delay(5); */ for (i=0;isizeof(TempBuffer)-1;i+) write_data(TempBufferi); delay(5); void main() TMOD=0X01; TH0=0xff; TL0=0xd9; IT0=1; /设置中断触发方式,下降沿 EA=1; EX0=1; ET0=1; IP=0X01; /键盘中断级别高init_1602();/

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

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