文档介绍:摘要
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本多功能波形发生器设计使用的AT89C51单片机作为核心控制,DAC0832控制输出波形参考幅值构成的发生器可产生锯齿波、三角波、正弦波等多种波形。波形的频率、幅值根据内部程序设定的参考值,利用按钮控制输出相应的波形,具有线路简单、结构紧凑等优点。
关键字:波形发生器,AT89C51,DAC0832,C语言编程
随着单片机功能的不断完善,单片机在越来越多的领域得以应用。按照传统的模式,在单片机应用系统整个项目开发过程中,先根据系统要求设计原理图,绘制PCB电路图,制作电路板,焊接元器件,然后进行软件编程,通过仿真器对系统硬件和软件调试,最后将调试成功的程序固化到单片机的程序存储器中。无论是从硬件成本上,还是从调试周期上,传统开发模式的效率都有待提高。基于Proteus和Keil接口仿真平台是可以进行仿真、调试、制板并最大限度的软件模拟单片机的开发平台,可极大的提高单片机应用系统的开发过程。波形发生器是一种常用的信号源,广泛的应用于科学研究,生产实践和教学实验等领域。本次能力拓展训练是基于D/A转换模块的单片机仿真和C语言开发。要求设计一种采用D/A转换的波形发生器,比如产生矩形波,三角波,锯齿波,正弦波或余弦波并进行电路仿真,使用C语言进行程序的开发。本设计采用了AT89C51单片机和8位的D/A转换器DAC0832组成的电路,以及用C语言开发的程序,用Proteus进行仿真成功实现了波形发生器的功能并输出了方波、锯齿波、正弦波和三角波。
方案一:采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:采用AT89C51单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案二既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案。
本次能力拓展训练我的题目是基于D/A模块的单片机仿真和C语言开发,要求设计一种采用D/A转换的波形发生器,比如产生矩形波,三角波,锯齿波,正弦波或余弦波并用Proteus进行电路仿真,使用C语言进行程序的开发。
根据《单片机原理与应用》这门课程的所学,我决定采用常用的AT89C51单片机以及8为D/A转换器DAC0832来实现这一设计。总体电路如下图1所示。
AT89C51的P2口和DAC0832数据输入线DI0~DI7相连接,向DAC0832输入数字信号。,弹性按钮的另一端接数字地。按下按钮时,INT0向CPU发出中断请求。DAC0832工作于单缓冲工作方式。WR2,XFER,WR1接数字地,ILE接高电平,,此时DAC0832的8位输入寄存器工作于受控锁存状态,8位D/A寄存器工作于直通状态。接+5V电源,参考电压端VREF接+5V电源,GND接数字地。DAC0832的两个模拟电流输出端IOUT1接到运放的反相输入端上,IOUT2接数字地,反馈信号Rfb接运放的输出口。运放的同相输入端接地,输出端接数字示波器。数字示波器用来显示输出的各种波形。
3芯片介绍
AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器.。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2所示。
AT89C51单片机内包含如下几个部件:
一个8位CPU;
一个片内振荡器及时钟电路;
4KB ROM程序存储器;
128B RAM数据存储器;
可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;
32条可编程的I/O线(4个8位并行I/O端口);
两个16位的定时/计数器;
一个可编程全双工串行口;
5个中断源、两个优先级嵌套中断结构。