您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于51单片机的信号发生器
单片机原理及接口技术课程设计报告设计题目:基于51单片机的波形发生器学号:姓名:指导教师:信息与电气工程学院二零一三年七月哈尔滨工业大学(威海)课程设计报告2基于51单片机的波形发生器设计信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如方波、锯齿波、三角波、正弦波的电路被称为函数信号发生器。在通信、广播、电视系统,工业、农业、生物医学领域内,函数信号发生器在实验室和设备检测中具有十分广泛的用途。信号发生器是一种经常使用的设备,若按照传统的设计方法,由纯粹的物理器件构成,存在许多弊端,如:体积较大、重量较沉、移动不方便、信号失真较大、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求。研究设计出一种具有频率稳定、准确,波形质量好,便携性好等特点的波形发生器来满足工业领域对信号源的要求,具有较好的市场前景。本次设计的低频信号发生器,以AT89C51单片机为核心,通过拨码开关输入控制类型和频率的的选择,采用8位D/A转换芯片DAC0832输出相应的波形,同时以数码管实时显示信号相关信息。我们采用C语言进行编程,可实现方波,三角波,锯齿波和正弦波四种波形的产生,且波形的频率可调。经测试该设计方案不仅在理论和实践上都能满足设计要求,而且具有很强的可行性,线路优化,结构紧凑,性能优越。1.设计任务结合实际情况,基于AT89C51单片机设计一个波形发生器系统。该系统应满足的功能要求为:(1)四种波形,方波、正弦波、锯齿波、三角波;(2)通过按键实现四种波形的切换;(3)通过按键进行频率选择;主要硬件设备:AT89C51单片机、DAC0832数模转换芯片、UA741运算放大器、示波器、PC机一台2.整体方案设计课设需要各个波形的基本输出,正弦波、锯齿波、方波、三角波,这些波形的实现的具体步骤:(1)正弦波:使用查表法。通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。这种方法比在软件中计算速度快且曲线的形状修改灵活。在本设计中将一个周期(360度)分为256个点,则每两个点之间的间隔为1.4度,然后计算出每个点电压对应的数字量,形成数组。只要反复输出这组数据到DAC0832,就可以在系统输出端得到想要的正弦波。哈尔滨工业大学(威海)课程设计报告3(2)锯齿波:使用查表法。将三角波的一个周期(360度)分为128个点,相邻点等差,生成数组。反复输出前128个数据到DAC0832,就可以在系统输出端得到想要的锯齿波。(3)方波:使用查表法。将方波的一个周期(360度)分为256个点,相邻点等差,生成数组,反复输出该数组数据到DAC0832,就可以在系统输出端得到想要的方波。(4)三角波:使用查表法。将三角波的一个周期(360度)分为256个点,相邻点等差,生成数组。反复输出该数组数据到DAC0832,就可以在系统输出端得到想要的三角波。该波形发生器以AT89C51单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个波形发生控制的硬件系统。通过C语言对单片机编程即可产生相应的正弦波,方波,三角波,锯齿波等波形信号。将所写程序装入单片机的程序存储器中,在程序运行中,当接收到来自外界的命令,需要输出某种波形时调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。并且可以通过数码管显示模块实现可视化,通过拨码开关进行各种功能的转换和信号频率的控制。该波形发生器系统的原理图如图2-1所示。图2-1基于单片机的波形发生器系统原理图本系统硬件主要D/A转换电路、键盘接口电路、显示电路等几部分组成。各模块的主要功能如下:(1)D/A转换电路的功能是把数字量变换成模拟量的线性电路。单片机产生的数字信号通过DAC0832转化成模拟信号,输出相应的电流值。(2)显示电路的功能通过UA741集成运算放大器取出DAC0832输出的模拟量的电压值,最后利用示波器输出获得的信号的波形。(3)按键电路的功能是通过拨码开关的不同状态实现四中信号波形的切换及信号频率的改变。系统的整体设计方案设计图如图2-2所示。系统的整体电路连接图如图2-3所示。3系统硬件电路设计3.1时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器,构成了内部振荡方式。由于单片机内部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡,并产生振动哈尔滨工业大学(威海)课程设计报告4时钟脉冲。晶振通常选用6MHZ、12MHZ、24MHZ。本设计中时钟电路,我们选择了12MHZ的晶振分别接引脚XTAL1和XTAL2,电容C1,C2均选择为10pF,对振荡器的频率有稳定作用,当频率较大时,正弦波、方波、三角波及锯齿波中每一点的延时时间为几微妙,故延时时间还要加上指令时间才能获得较大的频率波形。单片机时钟电路如图3-1所示图2-2系统的整体方案设计图XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC110pFC210pFVREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U2DAC0832U3OP1P234567891RP1RESPACK-8key1key2key3key4key1key5key2key3key4key5key6key7key8ABCD图2-3系统的整体电路连接图哈尔滨工业大学(威海)课程设计报告5图3-1单片机时钟电路3.2复位电路复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。本设计选择了按键复位如图3-2,在系统运行时,按一下开关,就在RST断出现一段高电平,使图3-2时钟电路图器件复位。此时ALE、PSEN、P0、P1、P2、P4输出高电平,RST上输入返回低电平以后,变退出复位状态开始工作。图3-2单片机复位电路本设计所用D/A转换电路采用通用的DAC0832模数转换芯片,它是一种8分辨率的D/A转换集成芯片。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。其主要特性有:(1)电流稳定时间1us;(2)可单缓冲、双缓冲或直接数字输入;(3)单一电源供电(+5V~+15V);(4)低功耗,200mW。DAC0832结构:(1)D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);哈尔滨工业大学(威海)课程设计报告6(2)ILE:数据锁存允许控制信号输入线,高电平有效;(3)CS:片选信号输入线(选通数据锁存器),低电平有效;(4)WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;(5)XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;(6)WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。(7)IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;(8)IOUT2:电流输出端2,其值与IOUT1值之和为一常数;(9)Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;(10)Vcc:电源输入端,Vcc的范围为+5V~+15V;(11)VREF:基准电压输入线,VREF的范围为-10V~+10V;(12)AGND:模拟信号地(13)DGND:数字信号地DAC0832的工作原理为:DAC0832是常用的8位电流输出型并行低速数模转换芯片,当需要转换为电压输出时,可外接运算放大器。集成电路内有两级输入寄存器使得芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。使用DAC0832应该注意DAC0832通常需外接运算放大器,进行电流/电压转换,才能得到模拟输出电压。其与单片机的接口电路如图3-3所示。3.5键盘接口电路该模块采用了一般的键盘接口,键盘输出信号。具体为:P3.0、P3.1波形选择,其中当P3.0=0,P3.1=0输出正弦波,当P3.0=0,P3.1=1输出锯齿波,当P3.0=1,P3.1=0输出方波;当P3.0=1,P3.1=1输出三角波。P3.2、P3.3、P3.4进行频率调节,P3.2=0,P3.3=0,P3.4=0时,信号频率为10Hz,P3.2=1,P3.3=0,P3.4=0时,信号频率为20Hz,P3.2=0,P3.3=1,P3.4=0时,信号频率为30Hz,P3.2=1,P3.3=1,P3.4=0时,信号频率为40Hz,P3.2=0,P3.3=0,P3.4=1时,信号频率为50Hz,P3.2=1,P3.3=0,P3.4=1时,信号频率为60Hz,P3.2=0,P3.3=1,P3.4=1时,信号频率为70Hz,P3.2=1,P3.3=1,P3.4=1时,信号频率为80Hz。键盘与单片机的连接如图3-4所示。哈尔滨工业大学(威海)课程设计报告7图3-3DAC0832与单片机的接口电路图3-4键盘和单片机的连接电路图3.6显示电路(1)运算放大电路运算放大器型号为UA741,它是一种高增益运算放大器,用于军事、工业和商哈尔滨工业大学(威海)课程设计报告8业应用。这类单片硅整集成电路器件提供输出短路保护和闭锁自由运作。运算放大器与DAC0832接口电路如图3-5所示。图3-5运算放大器与DAC0832接口电路图(2)示波器显示利用示波器输出获得的信号的波形如图3-6:哈尔滨工业大学(威海)课程设计报告9哈尔滨工业大学(威海)课程设计报告10图3-6四种信号波形不同频率对比仿真结果哈尔滨工业大学(威海)课程设计报告114.系统程序设计4.1主程序流程图系统运行工作工程如下,首先进入中断子程序,在中断子程序中,设置定时器T0的工作在方式一下,即16位定时器/计数器,并把初值装入定时器,启动定时器,开启定时器T0溢出中断允许位,和中断允许总控制位。然后程序进入死循环,在循环程序中不断进行按键扫描,当T0溢出时,程序进入中断服务子程序,在中断服务子程序中,对定时器T0转入相应的初值,然后根据按键状态,利用信号波形数组输出不同信号波形。系统主程序流程图如图4-1所示。图4-1主程序流程图哈尔滨工业大学(威海)课程设计报告124.2按键控制子程序流程图在主程序中不断调用按键扫描子程序,在按键扫描子程序中不断扫描按键的状态,当按键状态改变时,为保证按键状态的可靠性,调用延时子程序程序延时3毫秒,然后再次检查按键状态,当两次按键状态一致时,程序进行相应的操作,若是按键1,2的状态发生改变则对变量bo
本文标题:基于51单片机的信号发生器
链接地址:https://www.777doc.com/doc-1429767 .html