基于单片机的波形转换设计_第1页
基于单片机的波形转换设计_第2页
基于单片机的波形转换设计_第3页
基于单片机的波形转换设计_第4页
基于单片机的波形转换设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

摘要:本系统是基于AT89C51单片机的波形转换器。采用AT89C51单片机作为控制核心,外围电路包括模/数转换电路(ADC0804)、数字/模拟转换电路(DAC0832)、按键开关等。按键应用的是独立按键,用来波形的切换,幅值的调解。通过转换和调节可以输出正弦波和矩形波。其设计简单、性能良好,可用于多种需要低频波形信号的场所,具有一定的实用性。关键词:单片机、波形转换、按键开关、波形切换目录前言11.1设计背景11.2设计工作1总体设计框图2硬件电路设计23.1AD转换模块23.2DA转换模块53.3单片机模块83.4反相器模块10软件电路设计114.1设计思路114.2程序流程图12仿真情况135.1调试中遇到的问题135.2仿真调试过程13体会与总结16参考文献17附录1源程序18附录2设计电路21第第页一、前言1.1设计背景随着计算机技术的发展和成熟,计算机的应用也越来越广泛。在自动化领域,计算机已经成为控制系统的首选平台,应用计算机对生产和试验进行实时、远程监控是现代自动化发展的主要方向。将计算机应用于工业实时控制的前提是现场数据的实时获取。在生产和科学实验中,常常要测控很多参数,诸如温度、压力、转速等,通常的方法是使用专用的仪表人为观测、记录处理数据、做出判断,这就会带来人为的误差,而且外围电路比较复杂,测量精度较低,分辨力不高,需进行数值校准;它们的体积较大、使用不够方便,更重要的是参数的设定需要有其它仪表的参与,外界设备多,成本高,并且参数的改变比较繁琐。1.2、设计工作本次课程设计中我们按照要求首先进行了查找资料。但是,只找到了两个类似的设计方案,而且它们也只是实现了部分功能,所以我们通过参考资料和所学的知识重新进行了设计。通过本次课程设计,掌握已学习过的微型计算机(8086)或单片机(8051)汇编语言的编程与调试、相关重要可编程芯片的工作过程,加深对微型计算机工作原理的理解,并学会将所学的知识应用到实际中,达到在应用中掌握知识的目的。二、总体电路设计框图本次课程设计要求有两点:1.以微机为主控制器设计制作一个信号波形变换电路。将信号发生器产生的正弦波信号采样后存入数据存储器中,然后通过D/A转换将数字信号转换为正弦信号,并将两种正弦信号送入示波器进行比较。2.电路中设置小键盘,从键盘输入数据改变采样频率和其他参数,观察输入、输出波形的变化。根据要求和查找的资料我们确定了设计方案为输入的正弦波通过AD转换电路,变成数字信号,将数据存储在AT89C51中,然后再通过DA转换电路,输出正弦波和方波。原理框图如下:AT89CAT89C51信号发生器ADC0804ADC0804 DAC0832示DAC0832示波器按键开关按键开关图1:设计原理框图三、硬件电路设计此方案可以划分四个模块:AD转换模块,DA转换模块,单片机模块,反向器模块。3.1AD转换模块A/D转换器的主要功能是将模拟信号转换成数字量。实现A/D转换的方法很多,常用的有双积分式A/D转换器、逐次逼近式A/D转换器和并行比较式A/D转换器等。本次课程设计采用的是ADC0804,它是一个8位的A/D转换器,它的引脚图如下:图2:ADC0804引脚图ADC0804是属于连续渐进式(SuccessiveApproximationMethod)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。它的主要电气特性如下:工作电压:+5V,即VCC=+5V。模拟输入电压范围:0~+5V,即0≤Vin≤+5V。分辨率:8位,即分辨率为1/28=1/256,转换值介于0~255之间。转换时间:100us(fCK=640KHz时)。转换误差:±1LSB。参考电压:2.5V,即Vref=2.5V。ADC0804的转换原理1.PIN1(CS):ChipSelect,与RD、WR接脚的输入电压高低一起判断读取或写入与否,当其为低位准(low)时会active。2.PIN2(RD):Read。当CS、RD皆为低位准(low)时,ADC0804会将转换后的数字讯号经由DB7~DB0输出至其它处理单元。3.PIN3(WR):启动转换的控制讯号。当CS、WR皆为低位准(low)时ADC0804做清除的动作,系统重置。当WR由0→1且CS=0时,ADC0804会开始转换信号,此时INTR设定为高位准(high)。4.PIN4、PIN19(CLKIN、CLKR):频率输入/输出。频率输入可连接处理单元的讯号频率范围为100kHz至800kHz。而频率输出频率最大值无法大于640KHz,一般可选用外部或内部来提供频率。若在CLKR及CLKIN加上电阻及电容,则可产生ADC工作所需的时序。5.PIN5(INTR):中断请求。转换期间为高位准(high),等到转换完毕时INTR会变为低位准(low)告知其它的处理单元已转换完成,可读取数字数据。6.PIN6、PIN7(VIN(+)、VIN(-)):差动模拟讯号的输入端。输入电压VIN=VIN(+)-VIN(-),通常使用单端输入,而将VIN(-)接地。7.PIN8(AGND):模拟电压的接地端。8.PIN9(VREF∕2)∶模拟参考电压输入端。VREF为模拟输入电压VIN的上限值。若PIN9空接,则VIN的上限值即为VCC。9.PIN10(DGND)∶数字电压的接地端。10.PIN11~PIN18(DB7~DB0)∶转换后之数字数据输出端。11.PIN20(Vcc)∶驱动电压输入端。在本次课程设计中AD转换的电路图为:图3:AD转换的电路图3.2DA转换模块DA转换器的功能主要是将输入的数字信号转换成模拟信号输出,本次课程设计采用的是DAC0832,该芯片内部带有数据输入寄存器的8位D/A转换器,采用低功耗CMOS工艺制成,芯片内有R-2R梯形电阻网络,用于对参考电压产生的电流进行分流,完成模数转换,转换结果以一组差动电流Iout1和Iout2输出。主要参数:分辨率:8位转换时间:1us满量程误差:+—1LSB参考电压:+—10V单电源:+5V~+15V其内部结构图如下:图4:DAC0832内部结构其引脚图如下:图5:DAC0832引脚图各引脚的功能分述如下:VREF:参考电压输入端.VCC工作电压输入端.AGND:为模拟地,DGND为数字地。DI0~DI7:数据输入。IOUT1、IOUT2:互补的电流输入端。RFB:片内反馈电阻引脚。ILE:输入锁存使能信号输入端,高电平有效。/CS:片选信号输入端,低电平有效。/WR1和/WR2:两个写命令输入,均为低电平有效。/XFER:传输控制信号输入端,低电平有效。DAC0832的工作方式DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状态。具体地说,就是使和都为低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、处于低电平,这样,当端来一个负脉冲时,就可以完成1次转换。第二种方法是使输入寄存器工作在直通状态,而DAC寄存器工作在锁存状态。就是使和为低电平,ILE为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当和端输入1个负脉冲时,使得DAC寄存器工作在锁存状态,提供锁存数据进行转换。根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3种工作方式:⑴单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。⑵双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。⑶直通方式。直通方式是资料不经两级锁存器锁存,即,,,均接地,ILE接高电平。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。在本次课程设计中采用使输入寄存器工作在锁存状态和单缓冲方式电路图为:图6:D/A转换电路3.3单片机模块单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、AD转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。本次课程设计采用的单片机的型号为AT89C51.芯片外形结构和引脚分布如下:图7:AT89C51芯片引脚各引脚功能如下:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89CRST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。其电路如下:图8:AT89C51连接电路3.4反相器模块若没有反相器,则输出的波形与输入的波形是反向的,用运放组成反相器,使输入与输出的波形保持一致。其电路图为:图9:反相器连接电路软件电路设计4.1设计思路本次设计软件调控很重要,我们的设计思路是先通过控制RD和WR的高低电平对ADC0804进行调控,使ADC0834能顺利完成A/D转换并输入到AT89C51中。其中我们还在程序中加入了循环结构,这样就能使A/D转换能一直持续的转换下去。另外我们还通过检测外部开关的高低电平来完成对波形和幅度的控制。电路的D/A转换则比较简单。由于DAC0832采用的是输入寄存器工作在锁存状态,并采用单缓冲工作方式,所以只需要控制WR1即可完成转换。程序的设计框图如下:开始开始单片机与ADC0804断开单片机与ADC0804断开A/D转换A/D转换波形和幅度控制波形和幅度控制D/A转换D/A转换波形输出波形输出图10:程序设计框图开始4.2程序流程图开始定义IO口及变量定义IO口及变量NA/D转换NA/D转换Y幅度加开关按下?Y幅度加开关按下?N幅度<10?N幅度<10?幅度加1幅度加1N幅度减开关按下?N幅度减开关按下?YYN幅度>1?N幅度>1?幅度减1幅度减1N波形转换开关按下?N波形转换开关按下?正弦波Y矩形波正弦波Y矩形波D/A转换D/A转换波形输出波形输出结束结束图11:程序设流程图五、仿真情况5.1调试过程中遇到的问题在设计过程中我们遇到了很多问题,首先遇到的是元器件选择的问题,刚开始的时候我们计划用LM324集成放大器,因为LM324系列器件为价格便宜的带有真差动输入的四运算放大器。它有一些显著优点:该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。另外,我们也打算用8155来进行键盘扩展。但是由于在仿真软件中找不到这两个元件,而且它们还会使电路变得更加复杂,所以我们最终简化了电路,去掉了这两个元件。我们遇到的第二个问题是程序问题,本设计虽然程序不长,但是可供我们参考的程序却很少,我们只有一个模块一个模块的去尝试,经过两天的努力才终于把程序调试出来。我们遇到的第三个问题是电路图的连接问题,开始的时候我们采用的是总线连接方式,但是在调试的过程中一直有错误,所以我们最终放弃了总线模式,采用端口模式进行连接。5.2仿真调试过程1、在KEIL软件中打开程序,并运行无错误后产生hex文件。2、在PROTEUS运行环境中,双击AT89C51,出现如下对话框:图12:程序加载图在中打开ADDA.hex文件,点击OK.然后运行。1)当输入端为直流电压啊时有如下仿真结果:若输入:则输出:若输入则输出:若输入则输出:若输入则输出:若输入则输出若输入则输出根据以上的仿真结果看:在允许误差范围内,在输入端加入一个电压后,输出电压基本与输入电压一致,即此电路基本上满足了要求。所以,当输入一个正弦波时,输出将也为另一个同相的正弦波。2)当在输入端输入为一正弦波时,输出的波形如下:图13:仿真结果图六、体会与总结在本次课程设计中孙斌主要负责A/D转换模块和单片机模块。许先明主要负责D/A转换模块和反相器模块。在我们都把自己负责的模块掌握好之后,我们又彼此交流,这样加快了设计进度。通过这两周的课程设计我学到了很多,这阶段我查阅到很多关于单片机,AD,DA的知识。以前对课程设计只停留在理论的基础上,通过此次课设感受理论与实际的差别,看着很简单,但在实际操作的过程中会遇到很多的问题。以前虽然也接触过汇编等仿真软件,不过时间久了有些淡忘,但经过这次课程设计使我又一次复习并继续学习了这种软件的使用,这次的设计时间虽然不算长,但过程是最重要的。首先,我需要考虑如何去设计一个合理的方案,通过我们查询资料,请教老师,我学会了如何去独立思考一个问题。后来调试及设计的过程我加深了对所学的这部分内容的理解,理解了各部分的具体作用,最终调试出了符合设计要求的电路。在这个过程中我锻炼了自学能力并培养了坚持的信念。非常感谢这次的课程设计,在此向我的指导教师致以深深的谢意,感谢老师的耐心指导。孙斌在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。在课程设计的过程中也看到了我自身的不足,如原理知识掌握不实,曾经学过的知识如今却不会应用,以后一定多动手,弥补自己的不足。许先明参考文献1.张迎新等.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,20042.周明德.《微型计算机系统原理及应用(第四版)》,清华大学出版社,2002年3.杨光友,朱宏辉,《单片微型计算机原理及接口技术》,中国水利水电出版社,2002年4.王晓明,《电动机的单片机控制》,北京航空航天大学出版社,2002年5.于海生,《微型计算机控制技术》,清华大学,2001年附录1源程序#include<reg51.h>#include<intrins.h>//IO口以及变量定义等sbitWR1=P3^5;//0832写控制端sbitkey_bxqh=P3^2;//波形切换bitbx_flag=0;//波形标志,0表示输出正弦波,1表示输出方波sbitkey_add=P3^3;//幅度加sbitkey_dec=P3^4;//幅度减unsignedcharfudu=10;//幅度#defineDA0832P1voiddelay(unsignedintx)//延时公用程序{unsignedchari;while(x--){for(i=0;i<125;i++);}}//检测电压sbitad0804_wr=P3^6;sbitad0804_rd=P3^7;unsignedchartestdc()//延时了5ms,在数码管显示时减去{ad0804_wr=0;//清空转换器_nop_();ad0804_wr=1;//WR复位_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();ad0804_rd=0;//输出数据_nop_();return(P2);//返回ad的值_nop_();ad0804_rd=1;//RD复位}//、主程序voidmain(){/*初始化*/unsignedcharad=0;//采样值WR1=1;//0832和单片机断开while(1)//while1{ ad=testdc();//获取AD值/*按下加键*/if(key_add==0){delay(100);if(key_add==0){if(fudu<10){fudu++;}}}/*按下减键*/if(key_dec==0){delay(100);if(key_dec==0){if(fudu>1){fudu--;}}}/*按下切换键*/if(key_bxqh==0){delay(100);if(key_bxqh==0){if(bx_flag==0){bx_flag=1;}else

温馨提示

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

评论

0/150

提交评论