基于89c51的简易信号发生器_第1页
基于89c51的简易信号发生器_第2页
基于89c51的简易信号发生器_第3页
基于89c51的简易信号发生器_第4页
基于89c51的简易信号发生器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书PAGE181方案确定1.1方案的比较方案一:采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。我决定将其分为几个模块,分别设计,最后再整合在一起。一共可分为4大模块:正弦波模块、方波模块、三角波模块、调频块。正弦波:由于单片机处理的都是数字信号,而正弦波是连续的信号,所以首先想到的是用D/A转换来实现模拟信号。D/A转换是将二进制数转换成对应的电压量,即结果还是单个的数值,但是当程序运行时,由于时间很短,所以在示波器上看到的就是连续的信号,实际上是很多个点组成的。但是这种转换的结果是呈线性增加的,而正弦波是呈弧形变化,所以只用DA转换是不能实现正弦波的。经过我们小组讨论后,我决定用查表的方法来实现正弦波形,即把每个弧度对应的正弦值算出来,然后用变址寻址的指令来查表,当然弧度必须尽量小。这样,就能在示波器上看到正弦波。方波:方波的实现很简单,因为我们平时实验的波形就是方波,可以用定时器T0或T1通过任意的端口来实现。但是这样做有一个问题就是:在后面的发挥部分中只能调频不能调幅。所以,最好采用将DA转换后的结果延时一段时间作为高电平,低电平就用零来代替。这样就能实现方波的显示。三角波:显然,三角波的实现和正弦波有关系。三角波形本身就是呈线性增加,因此不用查表,直接用DA转换的结果就能实现。其设计的关键在于怎样控制幅值,不能太大,因为太大会对后面调节幅值产生影响。调频:调频可以在中断程序中实现。频率的倒数就是周期,即一个波形在示波器上所需的扫描时间。因此,我只要调节各个波形的延迟时间,就能实现频率的调节。调频的难点在于怎样控制使波形在设定的范围内改变频率。以上就是整个程序的设计思路。1.2设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2.1所示。输出输出滤波放大D/A转换器接口电路89C51滤波放大D/A转换器接口电路89C51单片机 图2.1信号发生器原理框图89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波。2硬件电路构成2.189C51单片机的功能图2.189C51MCS单片机都采用40引脚的双列直插封装方式。40条引脚说明如下:1、主电源引脚Vss和Vcc2、外接晶振引脚XTAL1和XTAL2①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。②XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。3、控制或与其它电源复用引脚RST/VPD,ALE/PROG,PSEN和EA/VPP①RST/VPD当振荡器运行时,在此引脚上出现两个机器周期的高电平②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。③PSEN外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN在每个机器周期内两次有效。④EA/VPP、EA/VPP为内部程序存储器和外部程序存储器选择端。当EA/VPP为高电平时,访问内部程序存储器,当EA/VPP为低电平时,则访问外部程序存储器。4、输入/输出引脚P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P3.7。①P0口(P0.0-P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。②P1口(P1.0-P1.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。③P2口(P2.0-P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。④P3口(P3.0-P3.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载2.2DAC0832功能介绍图2.2DAC0832DAC0832芯片是一种具有两个输入数据寄存器的8位DAC,它能直接与MCS51单片机接口,它有三种数据输入形式,单缓冲、双缓冲,直通。双缓冲方式:即数据经过双重缓冲后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。这种方式可在D/A转换的同时,进行下一个数据的输入,可提高转换速率。更为重要的是,这种方式特别适用于要求同时输出多个模拟量的场合。此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。注1:由于DAC0832输出信号为电流信号,为了得到电压信号,因而在输出端需加一级运算放大器,使得输出信号变为电压信号,连接方法如下图:注2:在使用DAC0832时候要注意一下几点:第一,WR选通脉冲应该有一定宽度,通常要大于500ns,尤其是选择+5电压时,更应满足此要求,如果选择+15,则WR脉冲宽度大于100ns即可,此时为芯片最佳工作状态;第二保持数据输入有效时间不小于90ns,否则数据将错误。2.3时钟电路时钟电路的连接采用内部时钟方式,连接方法如上图,AT89C52有一个用于构成内部振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与最为反馈元件的片外适应晶体或陶瓷谐振器一起构成自激在黄牛党电路。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有严格要求,但是电容太小会轻微影响振荡频率的高低和振荡器工作稳定性以及起振的难易程度故这里电容使用30PF的常用于单片机振荡电路中的电容。图2.3时钟电路2.4复位电路单片机的复位是靠外电路实现的,在时钟工作以后米之遥单片机的RST引脚上出现2个周期以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠的复位,通常是RST引脚保持10ms以上的高电平。复位电路连接如上图所示。此电路仅用一个电容,一个电阻和一个按键开关,系统上电时,在RC电路充电过程中由于电容连段的电压不能跳变,故RST端电平呈高电平,系统复位。经过一段时间,电容充电,使得RST端呈低电平,复位结束。图2.4复位电路2.5P1口按键由于P1口在用做数据线的时候,无法输出高电平,所以在实际电路中要借助上拉电阻,使得在P1口输出高电平时,通过上拉电阻使得P1口正常输出,而在输出低电平时,P1口又可将电平拉低,实现高低电平的切换输出,否则讲无法输出高电平。图2.5P1口按键2.6周期的设置以及改变的步进此次设计中,产生方波和三角波原理类似,产生方波时,CPU向P0口输出0FFH,然后调用延时子程序,进行125个延时单位的延时,然后向P0口输出00H调用延时子程序,进行125延时单位的延时,因此一个周期的方波共有250个延时单位。三角波同理,在上升时,P0口数据从00H增加到124,然后再从124减少到0,没变化一次,调用一次延时子程序,因此一个周期共延时250个延时单位,同方波一致。对于正弦波,采用读取表格的形式,即在CPU内事先存入一个正弦波数据的表格,然后依次从存储单元内部调出表格数据,被调用一次数据则调用一次延时子程序,共256个数据,这样以来,方波,正弦波,三角波的每个周期都共有256个延时单位,因此改变延时长度即可以实现周期的改变。3软件设计3.1流程图系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形。主程序和几种常用波形子程序的流程图如图。本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。主程序流程图如图3.1.1所示。设置中断向量表设置中断向量表设置R4,R5为改变定时周期设置方波采样点数等待中断启动定时器开始D/A转换开始图3.1.子程序的流程图如图3.1.2所示,在程序开始运行之后,首先是对8155进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过示波器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其相应频率的波形,不符则返回,重新判断。图3.1.3、图3.1.4、图3.1.5分别是方波、正弦波、三角波的子程序流程图。输出方波输出方波频率减少频率增加输出三角波正弦波P1.0=0?P1.1=0?P1.2=0?P1.3=0?开始中断返回YYYNYNYNYNNNYYNN图3.1开始开始A=00HP0AA=00HP0AP0A延时子程序P0A延时子程序延时子程序延时子程序A=0FFHA=0FFH图3.1.开始开始R1R100,DPTRSETTABAA正弦函数表数据ADPTR+1ADPTR+1P0P0口A等待延时等待延时图3.1.开始开始A=A-1初始化A=A-1初始化DPTRADPTRAA00A00DPTRAA=A-1DPTRAA=A-1A=0A=A+1NA=0A=A+1A=128NYA=128返回返回Y图3.1.5三角波4仿真结果4.1方波由于方波只具有高低点平,所以当采样点小于128时给它低电平,而当大于128时给其高电平。图4.1为频率为50Hz的波形;图4.14.2正弦波正弦波是将正弦波模拟信号采样256个点,然后转换成数字信号,再用DAC0832将数字信号转换成正弦波模拟信号输出。此波形是频率为50Hz的正弦波,通过查表转换的方法来实现的。而要实现其他频率的波形,则需要调用延时子程序,改变波形发生的时间常数。图4.2为正弦波方针图图4.2正弦波4.3三角波三角波波形是通过取采样点实现的。控制每个点的延时时间,从而达到调频的目的。图.4.3为三角波的波形,由于示波器的屏幕限制,只能读出半个周期的波形。由于三角波是采样实现的,延时时间越长,周期越大,波形显示的有些不标准。图4.3三角波心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,我学到很多很多的东西,同时巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,比如编程问题,硬件的连接,怎样去调试,怎么去测试芯片能否正常工作,怎样是程序编的简洁易懂,且包含了所需的功能。我对单片机只是理解得不够深刻,掌握得不够牢固,好多都得请教老师和同学,路漫漫其修远兮,吾将上下而求索,学海无涯苦作舟,通过这次课程设计之后,我一定要努力的学好专业知识,多去实践,把知识化为财富,而且经常重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多程序问题,查阅了好多资料,请教了同学,终于游逆而解。正所谓三人行,则必有我师,我学得到很多实用的知识,同时,我也知道在大学里,好多的知识都是靠自己学习,领悟,并融会贯通,这是作为一个大学生应有的基本能力,世界日新月异,我们要时时刻刻保持学习的心态,孜孜不倦的学习。参考文献[1].肖看,李群芳.《单片机原理、接口及应用》.清华大学出版社,2010.9[2].娄然苗.《单片机课程设计指导》.北京:北京航空航天大学出版社.2002[3]杨永辉.现代电子技术[J].智能小车的多传感器数据融合.2005[4]何立民.《单片机与嵌入式系统应用》.基于HCS12的小车控制系统设计.2007[5]潘新民.王燕芳.《微型计算机控制技术实用教程》.电子工业出版社,2007附录1程序:ORG0000HAJMPMAINORG000BHAJMPBRT0ORG0100HMAIN:MOVR3,#128MOVR1,#00H;取表格初始偏移量MOVR4,#0EEHMOVR5,#0FFHMOVA,R1MOVDPTR,#SETTABMOVCA,@A+DPTRMOVDPTR,#7FFFH;DAC0832的选片地址MOVX@DPTR,ADELAY:MOVTMOD,#01HMOVTL0,R4MOVTH0,R5MOVIE,#82HSETBTR0LOOP:SJMP$ORG0200HBRT0:JNBP1.0,JIAJNBP1.1,JIANAJMPNEXT1JIA:CLRCMOVA,R4ADDCA,#01HMOVR4,AMOVA,R5ADDCA,#00HMOVR5,AAJMPNEXT1JIAN:CLRCMOVA,R4SUBBA,#01HMOVR4,AMOVA,R5SUBBA,#00HMOVR5,ANEXT1:JNBP1.2,NEXT2JNBP1.3,NEXT3INCR1MOVA,R1MOVDPTR,#SETTABMOVCA,@A+DPTRMOVDPTR,#7FFFH;DAC0832的选片地址MOVX@DPTR,AMOVTL0,R4MOVTH0,R5RETINEXT2:DJNZR3,NEXMOVR3,#128MOVA,R1CPLAMOVDPTR,#7FFFH;DAC0832的选片地址MOVX@DPTR,AMOVR1,ANEX:MOVTL0,R4MOVTH0,R5RETINEXT3:CJNER2,#00,START2MOVDPTR,#7FFFHMOVA,R1START1:MOVX@DPTR,AINCR1CJNER1,#128,NEXT4MOVA,R1MOVR2,ASTART2:MOVA,R1MOVX@DPTR,ADECR1CJNER1,#0,NEXT4MOVR2,#00NEXT4:MOVTL0,R4MOVTH0,R5RETI

SETTAB:DB80H,83H,86H,89H,8DH,90H,93H,96HDB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB96H,93H,90H,8DH,89H,86H,83H,80HDB80H,7CH,79H,78H,72H,6FH,6CH,69HDB66H,63H,60H,5DH,5AH,57H,55H,51HDB4EH,4CH,48H,45H,43H,40H,3DH,3AHDB38

温馨提示

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

最新文档

评论

0/150

提交评论