【《脉冲信号发生器的硬件和软件设计案例概述》5800字】_第1页
【《脉冲信号发生器的硬件和软件设计案例概述》5800字】_第2页
【《脉冲信号发生器的硬件和软件设计案例概述》5800字】_第3页
【《脉冲信号发生器的硬件和软件设计案例概述》5800字】_第4页
【《脉冲信号发生器的硬件和软件设计案例概述》5800字】_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

脉冲信号发生器的硬件和软件设计案例概述目录TOC\o"1-3"\h\u27190脉冲信号发生器的硬件和软件设计案例概述 114041第1章多脉冲信号发生器硬件电路设计 1204951.1单片机最小系统电路设计 164631.1.1时钟电路 322121.1.2复位电路 3320691.2按键电路设计 4112331.3LCD1602显示电路设计 4152991.4脉冲信号输出电路设计 513679第2章多脉冲信号发生器软件设计 859242.1系统主程序设计 8260632.2各模块程序设计 9160302.2.1波形发生程序设计 9177102.2.2显示程序设计 128248第3章仿真调试与结果分析 1676443.1仿真调试 16102003.2仿真结果分析 17132073.2.1显示模块实验仿真结果 17153493.2.2按键模块实验仿真结果 17261123.2.3波形模块实验仿真结果 1832283.2.4总体仿真结果 2181883.3PCB设计 23第1章多脉冲信号发生器硬件电路设计1.1单片机最小系统电路设计51单片机是兼容Intel8051指令系统的单片机的总称。一般市面上的51单片机一般由爱特梅尔公司以及宏晶科技制造的,本设计所使用的ST89C52就是由STC公司所生产的,与MCS-51单片机产品兼容,是一种功耗低,性能高的8位微控制器,可以实现灵活、高效的嵌入式控制系统。AT89C52是由爱特梅尔所生产的8位低功耗高性能单片机,其闪存存储器的大小为8K字节,程序设计上和51单片机的类似,但是添加了很多集成的接口,丰富了片内资源,在应用场景上丰富了使用功能,并且在编程上可以灵巧引用,所以AT89C52应用在很多的嵌入式系统中,发挥着不可替代的作用。单片机引脚图如下图3-1所示。图3-1AT89C52引脚图AT89C52芯片的P3端还具备其它功能,P1.0和P1.1口第一功能与其他端口有相同功能,另一种功能是能够实现串行通信进行数据输入和输出。P1.2和P1.3具有中断信号的功能,P1.4和P1.5还与单片机内部的的定/计时器T0和T1输入端相接。P1.6和P1.7控制外部数据存储器写/读选通端。AT89C52单片机的引脚功能如下表3-2所示。表3-2引脚功能说明表序号引脚功能说明1Vcc为单片机提供电源2P0端口(P0.0~P0.7)8位的双向输入/输出端口3EA/Vpp外部允许存取程序端4ALE/PROG地址锁存允许信号端5PSEN程序储存允许访问输出6P2端口(P2.0~P2.7)内部带有上拉电阻的8位双向I/O口7P1端口(P1.0~P1.7)与P2口相同P1.0和P1.1有定时/计数功能8RST复位功能需要两个机器周期9P3端口(P1.0~P1.7)具有第二功能10XTAL2振荡电路反向放大器的输出端11XTAL1振荡电路反向放大器的输入端12GND地1.1.1时钟电路时钟电路主要为单片机的运行提供时钟信号。根据单片机的设计原理,单片机内部有一个高增益输入输出端不同极性的放大器。其中XATL1、XTAL2的功能在表3-2有说明。只需要在XTAL1和XTAL2外加晶振和两个微调电容,就可以完成时钟电路设计。下图中的C1和C2为30pF,晶振X1选用12MHz的。时钟电图如图3-3所示。图3-3时钟电路图1.1.2复位电路AT89C52是属于高电平复位,复位的引脚为RST引脚需要持续一个指令周期以上的高电平,复位电路的目的是为了确定程序从头开始执行,并且在系统出现问题的时候实现初始化。设计图如图3-4所示。图3-4复位电路1.2按键电路设计本设计采用了八个按键,分别定义的功能是波形切换和频率改变按键,波形切换是对不同的脉冲信号进行切换,频率改变是是根据需要调整的数值进行调整,通过不同的按键组合实现不同信号不同频率的输出,按键采用的是独立按键,分别和单片机的P1口和P3口连接,采用扫描的方式的进行键值读取,按键的出发是低电平信号触发。当检测的某一按键按下后实现相应的功能。按键电路设计如图3-5所示。图3-5按键电路图1.3LCD1602显示电路设计本设计采用的是LCD1602显示目前波形状态和波形频率的信息,LCD1602是一款双行显示的显示元件,可以显示英文字符以及数字,单片机的连接方式有直接连接式和间接连接式。直接连接方式就是将LCD1602的DO~D7和数据/命令选择、RW和E与单片机直接相连,LCD总共有20个引脚,其中VSS和K是背光的电源,直接接电源即可,VCC和A是LCD的电源正极和负极,RS和RW、EN是命令控制管脚,D0~D7是数据传输端口与单片机的P1口连接,LCD显示电路如图3-6所示。图3-6LCD1602显示电路图1.4脉冲信号输出电路设计DDS芯片通常由DDS核心和DAC组成。在实际应用过程中,低频的滤波器通常连接在外接电路后面以过滤DAC信号的杂频。如图3-7所示这是一个传统的DDS结构,其中DDS核心用于产生数字信号的频率输出。DAC将数字信号转化再经过低频滤波器用于衰减DAC输出中不需要的杂散频率。DDS已经成为大多数频率合成器设计工程师的首选。这是由于DDS具有跳频速度快、频率分辨率高、可以连续输出的相位等优点。图3-7DDS内部结构图在脉冲信号输出端选择使用DAC0832来输出波形,其工作原理主要概述为:当单片机相应的程序指令发送数字信号输入到DAC0832芯片中,DAC0832可以转化为模拟信号,其中的输入量与输出量成正比。当需要输出一段随时间变换而变化的波形时,通过单片机发送按一定时间规律的数字信号,经过DAC0832就能输出按照时间变化规律的波形。图3-8脉冲信号输出电路图如图3-8所示,由于DAC0832芯片的输出方式为电流输出型。一般输出的信号需要电压信号,所以需要外接运放来实现电压输出。这里选用LM324芯片作为集成运算放大器。运放采用反向比例放大1倍。R2是耦合电阻,R1,R4都为分压式反馈电阻。其中R1:R2:R4为1:2:1,通过调理电路的放大电压由-5V到0V放大为-5V到5V。每当第一级运放放大或缩小1V第二级运放就放大或缩小2V。其具体计算公式如下: QUOTEVOUT=2×VREF×D256其中D的范围为:(0~255)DAC0832的功能原理图如下图3-9所示。图3-9DAC0832功能原理图

第2章多脉冲信号发生器软件设计2.1系统主程序设计本设计采用的是模块化编程,将每个需要实现的功能进行模块化。然后,在主程序中调用子程序。首先,需要对单片机进行初始化,再执行主程序。在主程序中,判断是否有按键按下,当检测的模式按键按下后,切换对应的波形输出,当检测到频率改变按键按下后,改变当前波形的输出频率,系统的主程序流程如图4-1所示。图4-1主程序流程图2.2各模块程序设计2.2.1波形发生程序设计 (1)正弦波:0x80,0x82,0x85,0x88,0x8b,0x8e,0x91,0x94,0x97,0x9a,0x9d,0xa0,0xa3,0xa6,0xa9,0xac,0xaf,0xb2,0xb6,0xb9,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd3,0xd6,0xd1,0xda,0xdd,0xdf,0xe8,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xe4,0xf1,0xf5,0xf4,0xf5,0xf6,0xf2,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xf1,0xf0,0xff,0xff,0xf7,0xf5,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,由于DAc0832是8精度的转换器,其计算如下:QUOTE80×5v/25680×5v/256(即80×LSB)82×LSB……根据DAC0832的特性将一个周期正弦波数字量分为256段,将这些数字量组成数组再通过循环就能得到正弦波。具体程序如下://正弦波voidZXB_wave(unsignedintfreq){ unsignedchari; freq=freq/300; for(i=0;i<255;i++) { P2=SinTab[i]; //delay(); delay_us1(freq); }}(2)方波:单片机将初始数字量0送入到DAC0832中,先延迟段时间,再将0xff送到其中,再经过延迟,通过不断地循环就得到了方波。具体程序如下://方波voidFangbo_wave(unsignedintfreq){ P2=0x00; delay_us(freq); P2=0xff; delay_us(freq);}(3)三角波:单片机将初始数字量0送入到DAC0832中,一直加1,当数值到达0xff时,再把DAC0832中的数字量不断减1,通过不断地循环就得到了三角波。具体程序如下://三角波voidSANjiaobo_wave(unsignedintfreq){ unsignedchari; freq=freq/500;if(freq>1)freq=freq-1; for(i=0;i<255;i++) { P2=i; delay_us1(freq); } for(i=255;i>0;i--) { P2=i; delay_us1(freq); }}(4)锯齿波:锯齿波产生的原理于三角波类似,就是在数字量输出最高点直接跃变到最低点,然后通过循环获得锯齿波的输出。具体程序如下://锯齿波voidJUchibo_wave(unsignedintfreq){ unsignedchari; freq=freq/300;for(i=255;i>0;i--) { P2=i; delay_us1(freq); }}波形的输出主要是控制模块使AT89C52单片机,用软件设计的方法来产生四种波形,调试程序来控制按下相应按键实现的功能所输出的信号。2.2.2显示程序设计LCD可以显示数字字母,英文等,但是中文字符输出不了,LCD显示内置了字符发生器,字符的显示和代码是意义对应的,并且每一位的显示都有其对应的地址,因此在设计显示的程序的时候需要对想显示的字符和数字进行UNcode码对应,在一屏显示的时候需要先将片选信号置低,然后发送数据包,根据显示器的相应来操作,由于显示器只能显示两行,所以多个数据显示的时候可以进行切换,切换的时候就需要清屏,然后重新发送数据,这样通过清屏命令可以实现切换菜单,实现多组信息的显示。LCD1602功能指令图如下图4-2所示:图4-2LCD1602功能指令图LCD初始化流程图如下图4-3所示。图4-3LCD1602初始化流程图其程序如下所示:voidLcdInint() //LCD初始化子程序{ LcdWCom(0x38);//开启显示 LcdWCom(0x0c);//开显示但不显示光标 LcdWCom(0x06);//写一个指针加1 LcdWCom(0x01);//清屏 LcdWCom(0x80);//设置数据指针起点}显示流程图如图4-4所示。图4-4液晶显示程序流程图#include"lcd.h"#include"string.h"#include"stdio.h"voidLcdWCom(ucharcom) //LCD写入命令的子程序{ LCD1602_e=0;//使能端置低电平 LCD1602_rs=0; //选择发送命令端 LCD1602_rw=0; //选择写入端 LCD1602_Mingling=com;//放入命令 Lcd1602_delay1ms(1); //延时1s保持数据稳定 LCD1602_e=1; Lcd1602_delay1ms(5); LCD1602_e=0;}voidLcdWData(uchardat) //写入字节数据的子程序{ LCD1602_e=0; //使能清零 LCD1602_rs=1; //选择输入数据 LCD1602_rw=0; //选择端置0 LCD1602_Shuju=dat;//写入数据 Lcd1602_delay1ms(1); LCD1602_e=1;//使能端置1 Lcd1602_delay1ms(5);//延时5s LCD1602_e=0;}第3章仿真调试与结果分析3.1仿真调试本设计是在Proteus下进行仿真调试的,建立的仿真程序,Proteus是可以模拟实际电路的仿真软件,可以完成数字电路以及模拟电路的仿真,Proteus7.8版本可以仿真51系列大部分的单片机,在7.8版本后,升级后的Proteus可以仿真STM32等单片机,功能更加强大。本设计在7.8环境下对多脉冲信号发生器进行了仿真分析,根据本设计的方案以及硬件电路设计。绘制了仿真原理图,仿真原理图如图5-1所示。图5-1仿真原理图如图5-1,仿真原理图包含了单片机的最小系统电路,显示电路,DAC0832数模转换电路,还有放大电路,为了更好的观察波形的变换,本设计利用Proteus自带的虚拟示波器进行波形观察,改变按键可以切换波形,然后通过频率的按键来实现波形频率变化,仿真原理图和电路的设计完全是一致的,Proteus环境下,单片机可以同时仿真软件,这样在验证电路设计的同时也能实现软件的仿真验证。3.2仿真结果分析3.2.1显示模块实验仿真结果由单片机的最小系统搭配LCD液晶显示屏组成,为了测试LCD是否能显示对应的字符串,通过程序的编写了以学号组成的字符组“178111522215”让显示器显示。其主要设计思路为,先显示模块的初始化再确定显示的位置和显示的内容。如下图5-2所示。图5-2显示实验仿真结果实验结果:LCD1602成功按照编写的软件程序显示了相应的字符。3.2.2按键模块实验仿真结果按键模块使用了8个独立按键和LCD1602组成,P1.0~P1.3四个接口控制MODE的切换P1.3~P1.6控制频率的加减。其主要为了测试按键按下是否能改变显示的结果,没有设置频率的上线不影响实验的结果。按键模块仿真结果如下图5-3所示,先在按1下“MODE3”按键,“+100HZ”按键点击13下,“+10HZ”按键点击2下。图5-3按键模块仿真结果实验结果:显示屏根据按键的按下显示出相应的数字。八个独立的按键先全部置为低电平,外加的上拉电阻使单片机端口置为高电平,当点击按键时,相应的按键连接的端口才会变为低电平,单片机芯片通过循环检测就能判断按键是否有按下。3.2.3波形模块实验仿真结果根据DAC0832的数据手册只要芯片外接一个运放就可以组成实现波形输出电路。具体接法如下图5-4所示。图5-4DAC0832接线图其中输入“+Vref”需要接一个电平接的是5V的参考电压,“IOUT1”接的是运放的反向输入端,“IOUT2”接的是运放的同向输入端。“Rfb”电阻是在DAC芯片的内部接在芯片的第九引脚,根据应用手册提供的输出电压计算公式得到相应得输出电压。将方波波形程序加载到单片机中其结果如5-5所示。图5-5方波实验仿真结果这里将DAC芯片的DI0~DI7数据输入引脚接到单片机的P1端。其中“CS”片选引脚置低电平芯片才能正常输出电压,查看应用手册将芯片的控制引脚都接上有效的电平信号。根据实验实现了方波的输出,但得到的波形并不稳定,需要外接电路的除杂降噪处理。将三角波波形程序加载到单片机中其结果如5-6所示:图5-6三角波实验仿真结果实验现象:将波形放大可以看到输出的三角波是由一个个阶梯波连接而成与DAC0832输出信号的原理符合。从第一个波形幅值最低点到下一个最低点为一个周期,一般通过调节延时的时间可以改变其时间周期。DAC将输出电压分为256份,一份的电压值对应的一位的数字量转换为相应位的模拟量。将锯齿波波形程序加载到单片机中其,结果如5-7所示。图5-7锯齿波实验仿真结果实验现象:矩形波输出与三角波的输出结果相似。修改了相应的软件部分,当输出波形到达最高值直接断崖式的回归到最低值。将正弦波波形程序加载到单片机中其,结果如5-8所示:图5-8正弦波实验仿真结果由实验结果可知输出的波形信号不经过调理放大电路的调制,波形的输出不稳定出现失真现象。因只考虑波形能否正常的输出由于直放置了一个运放,其输出波形是以X轴为中心线对称的。3.2.4总体仿真结果单片机加载完成hex文件时候,启动仿真,首先对正弦波的仿真结果进行测试,根据示波器的信号输出,测试结果如图5-9所示。图5-9正弦波仿真结果如图5-9,通过示波器的观察,我们可以看到,本设计的输出的正弦波脉冲信号波形比较理想,符合设计要求。然后通过按键切换波形,对三角波的波形进行测试,测试结果如图5-10所示。图5-10f=400Hz三角波仿真结果如图5-10,三角波的仿真结果中,输出频率为400Hz,通过改变按键选择波形,调整三角波的输出频率,仿真结果如图5-11所示。图5-11f=500Hz三角波仿真结果通过改变频率的按键,我们可以看到,三角波的输出会有一个变换过程,变换之后频率也改变了,符合设计要求。之后对锯齿波进行仿真测试,锯齿波的测试放着结果如图5-12所示。图5-12f=500Hz锯齿波仿真结果如图5-12,通过示波器可以看到,锯齿波的频率为500Hz,输出的波形符合设计要求,并且波形比较好。最后是对方波的信号进行仿真,方波相对于其他波形来说,比较好生成,方波的仿真结果如图5-13所示。图5-13f=500Hz方波仿真结果3.3PCB设计关于PCB的设计这里用的是AD18,AD是一款用于3DPCB设计和嵌入式系统开发的设计软件。AD作为现在常用的电子设计的工具使用,主要由PCBlayout、FPGA设计、嵌入式开发三大核心模块组成。其软件具有的操作简单、展示直观、方便的优点深受各类用户称赞。在AD

温馨提示

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

评论

0/150

提交评论