当前位置:文档之家› 函数信号发生器 (1)分解

函数信号发生器 (1)分解

函数信号发生器制作队员:班级:摘要:本次作品是一个基于单片机设计的函数信号发生器。

函数信号发生器的设计方法有多种,利用单片机设计的函数信号发生器具有编程灵活,功能更以扩充等实际的优点。

利用单片机设计的函数信号发生器能够产生正弦波,锯齿波,三角波,方波,并实现对频率和占空比的调节,以及液晶屏显示波形名称和波形频率,波形的切换和频率的调节以及占空比的改变都可以用按键实现。

在编程语言上,我们选择自身比较熟悉的 C语言,这样在后期波形的调试及与硬件衔接方面更容易发挥出自身优势。

经过设计及后期长时间的调试,考虑设计的所有功能均已实现。

关键词:单片机,函数发生器,C语言第一章:函数信号发生器的设计设计一个基于单片机的函数信号发生器,该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。

在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。

一课程设计的目的:1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实际课题设计的能力。

2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成系统、编程、调试的动脑动手能力。

3、通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件设计的方法内容及步骤。

4、掌握DAC0832,LM324,74LS21的接口电路,及使用方法。

5、熟悉掌握函数信号发生器的工作原理。

二课程设计要求:1、熟悉组成系统中的实验模块原理,画出实验原理图。

2、写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、元件清单、程序清单、参考资料。

3、输出几种波形,实现对频率和占空比的调节,以1HZ 作为步进进行调节。

第二章:设计方案一系统主要功能该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。

在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。

二系统硬件构成及功能函数信号发生器的设计总体框图如图所示,主要有单片机AT89S52,电源,键盘模块,LCD1602显示模块构成。

按案件模块:由5个复位开关与74LS21组成的系统通过对单片机传输中断信号来实现波形切换及频率和占空比的调节。

显示模块:用LCD1602,分行显示波形类型和波形频率的显示。

电源模块:电源模块有220V 市变电压经变压,整流,稳压得到+ -5V, + -12V 的电压,维持系统正常工作。

系统的总体框图如图1所示:图1系统总体框图2.1 AT89S52单片机及其说明键盘显示控制器显示模块 键盘模块波形输出模块电 源主 控 器AT89S52(1)AT89S52的引脚图如图2所示EA/VP31X119X218RESET9RD 17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P 30TXD 11RXD 10U1AT89S52VCCRST图2 AT89S52引脚图(2)管脚说明低频信号发生器采用AT89S52单片机作为控制核心,其内部组成包括:一个8位的微处理器CPU 及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器RAM 低128字节,存放读/写数据;高128字节被特殊功能寄存器占用;片内程序存储器4KB ROM ;四个8位并行I/O (输入/输出)接口P3 -P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART (通用异步接收发送器)的串行I/O口。

VCC:供电电压。

GND:接地。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次PSEN有效。

但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

AT89S52 单片机外部有32个端口可供用户使用。

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口也可作为AT89S52的一些特殊功能口,如下所示:口管脚备选功能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(外部数据存储器读选通)(3)AT89S52的晶振及其连接方法CPU工作时都必须有一个时钟脉冲。

有两种方式可以向AT89S52提供时钟脉冲:一是外部时钟方式,即使用外部电路向AT89S52提供时钟脉冲,见图3(a);二是内部时钟方式,即使用晶振由AT89S52内部电路产生时钟脉冲。

一般常用第二种方法,其电路见图3(b)。

图3 AT89S52的时钟脉冲X 一般为石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。

一般来说,使用石英晶体时,C1=C2=30pF 。

使用陶瓷滤波器时,C1=C2=47pF 。

(4)AT89S52的复位 复位是单片机的初始化操作,其主要的作用是把PC 初始化为0000H ,使单片机从0000H 单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作失误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

除使PC 归零外,复位操作还对其他一些专用寄存器有影响,它们的复位状态如表1所示。

表1 复位后的内部寄存器状态寄存器 复位状态 寄存器 复位状态 PC 0000H TMOD 00H ACC 00H TCON 00H B00HTH000H89S52XTAL2XTAL189S52XTAL2XTAL1悬空 外部时钟信号 C1C2X(a)外部时钟方式(b )内部时钟方式PSW 00H TL0 00HSP 07H TH1 00HDPTR 0000H TL1 00HP0-P3 0FFH SCON 00HIP (xxx00000) SBUF (xxxxxxxx)IE (0xx00000) PCON (0xxx0000)另外,复位操作还对单片机的个别引脚有影响,例如会把ALE和PSEN变成无效状态,即使ALE=0,PSEN=1.RST变成低电平后,退出复位状态,CPU从初始状态开始工作。

AT89S52复位操作有3种方式:上电复位、上电按钮复位和系统复位。

上电复位电路如图4所示。

对于CMOS型单片机因RST引脚的内部有一个拉低电阻,故电阻R可不接。

单片机在上电瞬间,RC电路充电,RST引脚端出现正脉冲,只要RST端保持两个机器周期以上的高电平,就能使单片机有效地复位。

当晶体振荡频率为12MHz时,RC的典型值为C=10uF,R=8.2K欧姆。

简单复位电路中,干扰信号易串入复位端,可能会引起内部某些寄存器错误复位,这时可在RST 引脚上接一去耦电容。

通常因为系统运行等的需要,常常需要人工按钮复位,复位电路如图2.5所示,其中R2>>R1,只需将一个常开按钮开关并联于上电复位电路,按下开关一定时间就能使RST引脚端为高电平,从而使单片机复位。

图4 上电复位电路 图5 上电按钮复位电路2.2 资源分配晶振采用12MHZ 。

P1口的P1.0-P1.4分别与四个按键连接,分别控制波形切换、频率加、频率减,占空比加,占空比减。

P2口与DAC0832的D0-D7数据输入端相连。

P3口用来控制DAC0832的输入寄存器选择信号CS 。

2. 3 D/A 转换模块部件DAC0832芯片原理管脚功能介绍(如图6所示)V c c20Iout111lsbDI07Iout212DI16DI25Rfb 9DI34DI416Vref8DI515DI614msbDI713ILE 19WR218CS 1WR12Xfer 17U2DAC0832图6 DAC0832管脚图RST AT89S52RST89S52+5VCR+5VR1 R2CDI7~DI0:8位的数据输入端,DI7为最高位。

相关主题