创新性实验研究报告课程名称:基于51系列单片机的波形发生器研究实验项目名称多功能波形发生器及特定波形幅值调节姓名XXX_学号_XXXXXX手机XXXXXXXXX Email XXXXXXXXXXXX专业自动化_班级_XXXXXXX _指导教师及职称___XXX__开课学期2011 至2012 学年第一学期提交时间2011 年12 月29 日一、实验摘要波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振图像等,都需要功率或大或小、频率或高过低的信号。
在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。
多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机和DAC0832结合起来,通过数字电子电路向模拟电路转化,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。
本次创新性实验将由AT89C51单片机和DAC0832数模转换器构成波形发生器,此波形发生器可产生方波、三角波、锯齿波、梯形波、阶梯波等多种波形,波形的幅值可以用程序进行改变,并可根据需要选择单极性输出,具有线路简单、结构紧凑、价格低廉、性能优越等优点。
在本设计的基础上,加上按键用来更改不同波形之间的切换,实现不同波形的输出。
二、实验目的在电子设备中,经常需要产生各种波形,本设计要求利用单片机和模数转换芯片组成波形发生器硬件系统,需要完成下列任务:(1)能够通过按键控制,产生方波、三角波、锯齿波、梯形波、阶梯波五种波形。
(2)能够通过原理图调试进行改变各个波形的幅度。
三、实验场地及仪器、设备和材料:(1)AT89C51芯片1个(2)DAC0832芯片1个(3)OPAMP放大器芯片1个(4)电阻2个电容3个可调电阻1个排阻1个(5)开关6个(6)Protues软件(7)晶振1个(8)示波器1台四、实验内容1、实验原理波形的产生是通过AT89C51单片机执行某一波形发生程序,向DAC0832转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
AT89C51单片机的最小系统有三种联接方式。
一种是两级缓冲器型,即输入数据经过两级缓冲器型,即输入数据经过两级缓冲器后,送D/A转换电路。
第二种是单级缓冲器型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。
第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换,本设计采用单缓冲方式。
此次实验设计由硬件设计和软件设计两部分组成,硬件部分利用proteus软件进行模拟仿真验证设计的正确性并产生不同波形,软件设计将利用汇编语言进行编程,通过Protues软件进行编译调试仿真,通过模拟示波器观察输出波形。
实验原理框图如下所示:图1.1 实验原理框图2、实验内容2.1 系统硬件设计本系统提供了五种不同的波形输出,通过五个按键控制相应的方波,锯齿波,三角波、梯形波和阶梯波。
每次只能有一个键按下,没有按键按下时没有波形产生,按键输入信号给单片机,单片机对按键的情况进行处理,例如第一个按键按下时,系统需要产生一个方波,那么单片机循环输出0和1,那么通过DAC0832就通过运放循环输出高低电平,这样系统就能够输出方波,同样的道理,锯齿波、三角波、梯形波和阶梯波的产生也可以采用相似的道理。
本设计的硬件系统分为三个模块:单片机系统模块,DA转换模块,软件设计模块。
2.2 系统各个模块的设计2.2.1单片机系统模块(1)配置●一个8位CPU,片内振荡器●并行I/O口,32根I/O口线●一个串行口●两个定时/计数器●4K Byte 的 ROM●128 Byte 的 RAM●5个中断源,两个中断优先级●可寻址64KB外部数据存储器空间单片机内部结构图如下所示:图2.2-1 单片机内部结构图(2)单片机管脚图及管脚功能介绍 单片机管脚图如下:图2.2-2 AT89C51单片机管脚图及并行口分布VCC :供电电压。
GND :接地。
P0口驱动器P2口驱动器P1口驱动器P3口驱动器RAM 地址 寄存器RAMP0口 锁存器 P2口锁存器ROM堆栈指针地址锁存器缓冲器PC 增量器程序计数器数据指针寄存器BTMP2TMP1ACC PSWALU定时和控制指令寄存器OSCP1口寄存器P3口寄存器P1.0-P1.7P3.0-P3.7P0.0-P0.7P2.0-P2.7Vcc GNDPSEN ALE/PROG EA/VppRSTSCON TMOD TMOD PCON TH0TL0TH1TL1SBUF (TX)SBUF(RX)IP IE 中断、串行口和定时器模块P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。
P1口的管脚第一次写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口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚备选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断0)P3.3 /INT1(外部中断1)P3.4 T0 (定时器0外部输入)P3.5 T1 (定时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
89C51振荡器1819XTAL2XTAL2CYS C1C289C51XTAL21918悬空1XTAL1外部时钟信号(a)内部时钟方式(b)内部时钟方式/PSEN :外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。
但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。
/EA/VPP :当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH ),不管是否有内部程序存储器。
注意加密方式1时,/EA 将内部锁定为RESET ;当/EA 端保持高电平时,此间内部程序存储器。
在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP )。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
2.2.2 晶振时钟模块单片机的工作过程是:取一条指令、译码、进行微操作,再取一条指令、译码、进行微操作,这样自动的、一步一步的由微操作依序完成相应的指令规定的功能。
各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序。
AT89C51单片机的时钟信号通常由两种方式产生。
一是内部时钟方式,二是外部时钟方式。
内部时钟方式如图2.2-3(a)所示。
只要在单片机的XTAL1和XTAL2引脚外接晶振即可。
图中,电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF 。
晶振CYS 的震荡频率要小于12MHz,典型值6MHz 、12MHz 或11.0592MHz 。
外部时钟方式是把外部已有的时钟信号引入到单片机内,如图2.2-3(b)所示。
此方式用于多片AT89C51单片机同时工作,并要求各单片机同步运行的场合。
图2.2-3 89C51单片机时钟方式实际应用中通常采用外接晶振的内部时钟方式,晶振的频率高一些时可以提高指令的执行速度,但相应的功耗和噪声也会增加,在满足系统功能的前提下,应选择低一些的晶振频率。
当系统要与PC 机通信时,应选择11.0592MHz 的晶振,这样便于将波特率设定为标称值。
2.2.3 复位电路模块复位是使单片机或系统中的其他部件处于某种确定的厨师状态。
单片机的工作就是从复位开始的。
当AT89C51的RST 引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。
复位信号变低时,单片机开始执行程序。
实际操作中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位,如图2.2-4(a)所示8位输入锁存器8位DAC寄存器8位D/A转换器& &&D I7~D I0 ILECSWR1WR2XFERVCC AGND Rfb IOUT1 IOUT2VrefILE1ILE2图2.2-4 单片机复位电路上电复位要求接通电源后,单片机自动实现复位操作。
常用的上电复位电路如图2.2-4(a)所示,上电瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。