简易波形发生器的设计_第1页
简易波形发生器的设计_第2页
简易波形发生器的设计_第3页
简易波形发生器的设计_第4页
简易波形发生器的设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE18目录TOC\o"1-3"\u第一章单片机开发板 11.1开发板制作 11.1.189S52单片机简介 11.1.2开发板介绍 21.1.389S52的实验程序举例 31.2开发板焊接与应用 41.2.1开发板的焊接 41.2.2开发板的应用 5第二章函数信号发生器 72.1电路设计 72.1.1电路原理介绍 72.1.2DAC0832的工作方式 92.2波形发生器电路图与程序 102.2.1应用电路图 102.2.2实验程序 112.2.3调试结果 15第三章参观体会 16第四章实习体会 17参考文献 18第一章单片机开发板1.1开发板制作1.1.189S52单片机简介图1.189s52引脚图如果按功能划分,它由8个部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、I/O口(P0口、P1口、P2口、P3口)、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)的集中控制方式。各功能部件的介绍:1)数据存储器(RAM):片内为128个字节单元,片外最多可扩展至64K字节。2)程序存储器(ROM/EPROM):ROM为4K,片外最多可扩展至64K。3)中断系统:具有5个中断源,2级中断优先权。4)定时器/计数器:2个16位的定时器/计数器,具有四种工作方式。5)串行口:1个全双工的串行口,具有四种工作方式。6)特殊功能寄存器(SFR)共有21个,用于对片内各功能模块进行管理、监控、监视。7)微处理器:为8位CPU,且内含一个1位CPU(位处理器),不仅可处理字节数据,还可以进行位变量的处理。8)四个8位双向并行的I/O端口,每个端口都包括一个锁存器、一个输出驱动器和一个输入缓冲器。这四个端口的功能不完全相同。A、P0口既可作一般I/O端口使用,又可作地址/数据总线使用;B、P1口是一个准双向并行口,作通用并行I/O口使用;C、P2口除了可作为通用I/O使用外,还可在CPU访问外部存储器时作高八位地址线使用;D、P3口是一个多功能口除具有准双向I/O功能外,还具有第二功能。控制引脚介绍:1)电源:单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2)时钟引脚XTAL1、XTAL2时钟引脚外接晶体与片内反相放大器构成了振荡器,它提供单片机的时钟控制信号。时钟引脚也可外接晶体振荡器。振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器3)RST:当振荡器运行时,在此引脚外加上两个机器周期的高电平将使单片机复位(RST)。我们在此引脚与VCC之间连接一个约8.2千欧的下拉电阻,与引脚之间连接一个约10微法的电容,以保证可靠复位。在单片机正常工作时,此引脚应为≤0。5V低电平。4)ALE:当访问单片机外部存储器时ALE(地址锁存允许)输出脉冲的负跳沿用于16位地址的底8位的锁存信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率约为时钟振荡器的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。因此,严格来说,用户不能用ALE做时钟源或定时。ALE端可以驱动8个TTL负载5)/PSEN(29脚):此脚的输出是单片机访问外部程序存储器的读选通信号。在由外部程序存储器取指令(或常数)期间,每个机器周期PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的/PSEN信号不出现。/PSEN可以驱动(吸收或者输出电平)8个LSTTL负载。6)/EA/VPP(31脚):当EA端保持高电平时,单片机访问内部存储器,但在PC值超过0FFFH时,讲自动转向执行外部存储器内的程序。当/EA保持低电平时,则只访问外部程序存储器,不管是否有内部存储器。1.1.2开发板介绍本次的生产实习的第一个任务是89S52单片机开发板的设计与焊接。在以往我们的单片机原理课上我们主要学习了51系列的单片机的原理与功能应用,89S52尚未涉及,这次有机会可以利用S52进行开发与设计。图1.2生产单片机开发板89S52实际图上述图片就是在实际工作中工厂所开发与应用的成品。外部扩展口,LED电子显示灯,等外部扩展设备以及多芯片都是S52所具有的特性。有别于51芯片,S52有自身的独特性。使用89S52单片机,可进行51单片机的学习实验以及实际项目的开发;ISP下载线编程,方便灵活,免除购置编程器的费用;典型实用电路,16个功能模块。模块间各自独立,接口均由排针引出,使用插线可将模块间任意组合,开发和实验各种项目,真正的自由组合,绝非那些只能做固定实验的实验板;丰富的实验程序,全部的C语言源代码,几乎到每句非常详细的注释,便于学习和理解。实验程序中还包括几乎接近实用产品设计的实验:产品计数器、倒计时器、数字电压表、摇骰机、交通路口拍照系统、工厂自动生产线、温度采集记录器;由具有十余年实际产品设计经验的工程师亲自编写的教程,贴近实用,通俗易懂;全部采用优质元器件,性能可靠,整体美观实用。S52开发板的模块特点:双路电源模块:提供全板各模块电源,专为A/D和D/A单元模块提供一路稳定的参考电源;单片机核心系统模块:实验板的核心,全部引脚均由双排插针引出,便于引脚的复用;LED指示灯模块:8位LED高亮指示灯,可做跑灯、信号提示等实验;蜂鸣器、继电器控制模块:可作报警、大负载的开关控制实验;按键输入模块:4位独立按键,可作按键输入实验;光藕隔离输入输出模块:可做霍尔脉冲计数、直流电机等实验;数码管显示模块:4位共阳极数码管,可做各种数码管显示实验;锁存器模块:便于系统的扩展实验;模拟信号调理模块:电压输入、温度传感器输入信号的调理,可做为A/D的前级输入和理解运算放大器的应用原理;A/D转换模块:采用8路输入的8位并行A/D芯片ADC0809,可做相应的A/D实验;D/A转换模块:采用8位并行D/A芯片DAC0832,可做相应的D/A实验;UART模块:可做与PC机的各种通讯实验;液晶显示接口模块:可做段式液晶0804以及字符液晶1602实验;存储器模块:采用I2C总线的AT24C02,可做I2C和有关的存储实验;实时时钟模块:采用飞利浦的PCF8563,可做相应实时时钟的实验;红外遥控模块:可做红外遥控器解码实验。1.1.389S52的实验程序举例S52可以实现多种的实验程序,其中包括LED指示灯实验:5种跑灯实验,掌握单片机I/O口作为输出的设计方法;按键输入实验:2种按键实验,掌握单片机I/O口作为输入的设计方法;蜂鸣器、继电器实验:蜂鸣器、继电器控制实验各1种,掌握报警控制和大功率器件控制原理;数码管实验:3种动态扫描实验,学习数码管的使用及动态扫描显示控制方法;计数中断实验:学习霍尔元件及光耦的工作原理和使用、中断概念以及计数器的设计实验;定时器实验:2种实验,学习定时器原理及加深中断概念的理解,倒计时器的设计实验;通讯实验:3种不同的实验(查询、中断、协议),掌握串行通讯的原理和编程的方法;段式液晶实验:2种实验,掌握段式液晶的原理、使用及编程方法;A/D实验:2种实验,学习和掌握A/D原理、统一编址概念及A/D转换计算方法;数字电压表实验:利用A/D转换器和段式液晶设计接近实用的数字电压表;温度传感器实验:学习传感器的原理和使用以及信号调理方法、运算放大器的应用;字符液晶实验:学习和掌握字符型液晶显示器的原理、编程与使用;存储器实验:学习I2C总线原理和掌握E2PROM存储器24CXX的编程与使用方法;实时时钟实验:学习实时时钟的应用原理以及掌握PCF8563编程与使用的方法;D/A实验:2种实验,学习和掌握D/A原理以及D/A转换计算方法;锁存器实验:学习和掌握锁存器原理,模拟摇骰机的设计;红外遥控实验:学习红外遥控的编码原理,掌握对红外遥控器的解码方法。在本次实习中,我们主要掌握并利用发光二极管的LED亮灯实验程序。

在S52开发板上的8个LED二极管显示灯可以实现多种多样的程序效果,以下为可实现的程序范例(流水灯程序):#include<reg52.h>//头文件#defineucharunsignedchar#defineuintunsignedintvoiddelay(uint);//声明延时函数voidmain(void){uinti;uchartemp;while(1){temp=0x01;//给初值,第一个灯灭for(i=0;i<8;i++)//8个流水灯逐个闪动{P1=~temp;//将temp取反再赋值给P1口delay(100);//调用延时函数temp<<=1;//流水灯左移}temp=0x7F;//给初值,第一个灯亮。for(i=0;i<8;i++)//8个流水灯依次反向全部点亮{P1=temp;//将temp赋给P1delay(100);//调用延时函数temp>>=1;//流水灯右移}}}voiddelay(uintt)//定义延时函数{registeruintbt;for(;t;t--)for(bt=0;bt<255;bt++);}1.2开发板焊接与应用1.2.1开发板的焊接由于本次的开发板电路已经给出,所以只需要按照元件的各自位置的插槽进行放置即可,但要求根据开发板画出电路的PROTEL电子原理图。图1.389S52实习用开发电路图本次实习已不是第一次进行焊接练习,单片机的开发板焊接已经比较熟练。单片机的电路焊接应注意以下事项:注意电解电容、发光二极管、蜂鸣器的正负极性不能接反、三者均是长的管脚接正极、短的管脚接负极,如接反轻则烧毁元气件,重则发生轻微爆炸;三极管9015的E、B、C、注意接法,板子上面有相应的图形形状,按照那个图形焊接;焊接元气件的过程之中焊接时间应在2-4秒。焊接时间不宜过长,否则不仅会烧毁元气件、而且易使焊点容易脆裂;电阻焊接过程中注意相应的阻值对应,不要焊错。否则影响相应的电流大小;排阻焊接过程之中、RP1、RP2、RP3、有公共端应该接VCC、其余管脚为相应的独立端、排阻焊接过程之中用万用表测量各排阻的阻值、对照说明书焊接相应的排阻;ISP插槽应该注意方向。缺口对应板子的外面、如果接反下载线将不能接好;数码管的焊接应该是有小数点的一侧在下面、接反影响数码管的显示;发光二极管要注意正负极性,长端为正极,短端为负极。在焊接时也一定要注意焊接元件的顺序,基本上秉承着方便性原则,先焊接大部件,在焊接小部件,焊接元件管脚多时(双排40脚排针)要注意焊接工艺,尤其注意的是在焊接芯片插槽时切不可把芯片连到插槽上一同焊接,因为焊接时过热的温度会烧坏芯片,一定要把芯片插槽焊接完毕之后,再把芯片插到插槽中。1.2.2开发板的应用焊接完之后的S52开发版图如下:图1.489S52开发板焊接实际图上述的89S52开发板有很多的应用。本次的实习中只是简单的应用了8个发光二极管,其它的例如外部扩展接口,8位编码开关等都没有进行实际的测试,所以以后在自己有兴趣时都可以进行实际的运用,例如扩展外部液晶显示屏等。由于89S52在第一节介绍原理时已介绍其应用,这里就不再赘述。第二章函数信号发生器2.1电路设计2.1.1电路原理介绍本次的任务是利用先前已焊接的89S52开发板进行外部连接扩展的自主开发电路。其具体功能就是利用89S52上的芯片烧制程序后扩展到外部电路以实现方波,锯齿波,正弦波的输出。这里由于涉及到了数模转换和D/A转换器的概念,所以首先介绍一下。DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。图1-1和图1-2分别为DAC0832的引脚图和内部结构图。其主要参数如下:分辨率为8位,转换时间为1μs,满量程误差为±1LSB,参考电压为(+10~-10)V,供电电源为(+5~+15)V,逻辑电平输入与TTL兼容。从图2-1中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号/XFER。如图2.1所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。图2.1DAC0832的单片直流输出型8位数/模转换器一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。图2.5是DAC0832的逻辑框图和引脚排列。图2.2DAC0832的逻辑框图和引脚排列图2.2中,当ILE为高电平,片选信号/CS和写信号/WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当/WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号/XFER和写信号/WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当/WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。图2.2中其余各引脚的功能定义如下:(1)、DI7~DI0:8位的数据输入端,DI7为最高位。(2)、IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。(3)、IOUT2:模拟电流输出端2,IOUT2与IOUT1的和为一个常数,即IOUT1+IOUT2=常数。(4)、RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)、VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10~-10)V。VREF端与D/A内部T形电阻网络相连。(6)、Vcc:芯片供电电压,范围为(+5~15)V。(7)、AGND:模拟量地,即模拟电路接地端。(8)、DGND:数字量地。图2.3DAC0832内部结构图2.1.2DAC0832的工作方式DAC0832可处于三种不同的工作方式:1.直通方式:当ILE接高电平,、、和都接数字地时,DAC处于直通方式,8位数字量一旦到达DI7~DI0输入端,就立即加到8位D/A转换器,被转换成模拟量。例如在构成波形发生器的场合,就要用到这种方式,即把要产生基本波形的数据存在ROM中,连续取出送到DAC去转换成电压信号。图2-4为单片机和DAC0832直通方式输出连接图,运放输出电路输出电压为UOUT=-(D/256)*VREF,例如上图中向DAC0832传送的8位数据量40H(01000000B),则输出电压UOUT=-(64/256)*5V=-1.25V,其输出过程可用MOVP1,#40H一条指令完成。图2-4单片机和DAC0832直通方式输出连接图(ua741)直通方式说明:当ILE接高电平,、、和都接数字地时,DAC处于直通方式,8位数字量一旦到达DI7~DI0输入端,就立即加到8位D/A转换器,被转换成模拟量。例如在构成波形发生器的场合,就要用到这种方式,即把要产生基本波形的数据存在ROM中,连续取出送到DAC去转换成电压信号。2.单缓冲方式:只要把两个寄存器中的任何一个接成直通方式,而用另一个锁存器数据,DAC就可处于单缓冲工作方式。一般的做法是将和都接地,使DAC寄存器处于直通方式,另外把ILE接高电平,接端口地址译码信号,接CPU的信号,这样就可以通过一条MOVX指令,选中该端口,使和有效,启动D/A转换。3.双缓冲方式:主要在以下两种情况下需要用双缓冲方式的D/A转换。需在程序的控制下,先把转换的数据输入输入缓存器,然后在某个时刻再启动D/A转换。这样,可先选中端口,把数据写入输入寄存器;再选中端口,把输入寄存器内容写入DAC寄存器,实现D/A转换。在需要同步进行D/A转换的多路DAC系统中,采用双缓冲方式,可以在不同的时刻把要转换的数据打入各DAC的输入寄存器,然后由一个转换命令同时启动多个DAC转换。先用3条输出指令选择3个端口,分别将数据写入各DAC的输入寄存器,当数据准备就绪后,再执行一次写操作,使变低同时选通3个D/A的DAC寄存器,实现同步转换。2.2波形发生器电路图与程序2.2.1应用电路图单片机给DAC0832信号后,0832输出的是电流,所以还必须经过一个外接的运算放大器转换成电压。采用的实验线路如图2.5所示。图2.5实验线路图图2.6实际电路图2.2.2实验程序本实验要求最终开发电路可在示波器上输出方波,锯齿波,正弦波及三角波,本程序结构较简单,通过开发板上P3口上的四个连接中断的开关来控制四种波的产生,有键按下即产生中断,中断服务程序中令一个全局变量X数值发生变化,在主程序中再根据X的值来判断产生何种波形。图2.7程序框图#include<reg52.h>#include<stdio.h>#include<math.h>#defineuintunsignedintuintx=1,j,k,l;unsignedcharcodesin_tab[]={125,128,131,134,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,182,185,188,191,193,196,198,201,203,206,208,211,213,215,217,219,221,223,225,227,229,231,232,234,235,237,238,239,241,242,243,244,245,246,246,247,248,248,249,249,250,250,250,250,250,250,250,250,249,249,248,248,247,246,246,245,244,243,242,241,239,238,237,235,234,232,231,229,227,225,223,221,219,217,215,213,211,208,206,203,201,198,196,193,191,188,185,182,180,177,174,171,168,165,162,159,156,153,150,147,144,141,138,134,131,128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76,73,70,68,65,62,59,57,54,52,49,47,44,42,39,37,35,33,31,29,27,25,23,21,19,18,16,15,13,12,11,9,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,2,3,4,4,5,6,7,8,9,11,12,13,15,16,18,19,21,23,25,27,29,31,33,35,37,39,42,44,47,49,52,54,57,59,62,65,68,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,116,119,122};voidKEY_1()interrupt0{x=1;}voidKEY_2()interrupt2{x=2;}voidKEY_3()interrupt1{x=3;}voidKEY_4()interrupt3{x=4;}voiddelayms(uintx){uinti;while(x--){for(i=0;i<125;i++);}}voidfangbo(){P0=0xff;delayms(100);P0=0x00;delayms(100);}voidsinbo(){for(j=0;j<250;j++){P0=sin_tab[j];delayms(1);}}voidjuchi(){for(k=0;k<256;k++){P0=k;delayms(1);}}voidsanjiao(){for(l=0;l<255;l++){P0=l;delayms(1);}for(;l>0;l--){P0=l;delayms(1);}}voidmain(){TMOD=0x66;TL0=255;TH0=255;//晶振为12MHz时,定时为40TL1=255;TH1=255;ET0=1;ET1=1;IT0=1;IT1=1;EX0=1;EX1=1;EA=1;TR0=1;TR1=1;while(1){switch(x){case1:fangbo();break;case2:sinbo();break;case3:juchi();break;case4:sanjiao();break;default:break;}}}2.2.3图2.7产生的方波图2.8产生的正弦波图2.9产生的锯齿波图2.10三角波以上为烧入程序后的调试结果,基本波形能出来,不足之处在于还存在一定的躁声。第三章参观体会在本次实习的开始阶段,2010年6月25日时我们然后,马老师又为我们讲述了DCS在国内的发展史,该系统是在1976由日本引入中国,现今也不过发展了30余年,但是它的市场潜力却仍然十分巨大。DCS系统所包含的知识体系之巨大是其它系统所不能及的。计算机编程,通信技术,自动控制原理,自动化技术都在这里有所应用。可以说,DCS是一个易学难精的复杂系统。接着,马老师又为我们讲述了DCS系统的分类,包括AI模拟输入,AO模拟输出,DI数字输入,DO数字输出,并讲述了控制系统的发展史:50年代的基地式仪表控制,60年代的集中式控制,以及70年代至今的DCS系统控制,马老师的讲述引起了我们的浓厚兴趣,同学们也踊跃向马老师提问。最后,马老师还不忘为在座的还有1年就要毕业的我们讲述了找工作的经验之谈,使我们受益匪浅,我们牢记马老师说的大学生招工时的稳定心态的重要性,以及我们在大学里学习目的的重要性。我们在大学里究竟学的是什么,是一种学习的方法,而我们来到了社会上学的是处世经验与工作本领。最终,我们在一片欢快的气氛中结束了参观。第四章实习体会随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。

时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实习课题也在三周内完成了。俗话说“好的开始是成功的一半”。说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起东西才会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

虽然这次的实习算起来在实验室的时间只有几周,不过硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

当然,这其中也有很多问题,第一、不够细心比如

温馨提示

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

评论

0/150

提交评论