重要基于51单片机的低频信号发生器C语言.docx
《重要基于51单片机的低频信号发生器C语言.docx》由会员分享,可在线阅读,更多相关《重要基于51单片机的低频信号发生器C语言.docx(53页珍藏版)》请在冰豆网上搜索。
重要基于51单片机的低频信号发生器C语言
大学
电类课程设计报告
课题名称
基于单片机的低频信号发生器设计
专
班
业
级
学生
学
号
指导教师
2011年
6月
摘要
本文设计低频信号发生器,以AT89C51单片机为核心,通过键盘输入控制信号类型
和频率的的选择,采用DA转换芯片输出相应的波形,同时以LED显示器进行实时显示
信号相关信息。
我们采用C语言进行编程,可实现方波,三角波,锯齿波和正弦波四种
波形的产生,且波形的频率可调。
经测试该设计方案线路优化,结构紧凑,性能优越,
满足设计要求。
关键字:
单片机,DA转换,信号发生器
1
摘要.........................................................................................................1
第一章绪论............................................................................................1
1.1选题背景及其意义...............................................................................................................1
1.2单片机概述...........................................................................................................................3
1.3信号发生器分类----------------------------------------------------------1
1.4研究题目及其意义--------------------------------------------------------1
1.5章节安排设计的任务和要求------------------------------------------------2
第二章信号发生器方案设计与选择---------------------------2
2.1方案的设计与选择--------------------------------------------------------2
2.2设计原理简介------------------------------------------------------------3
2.3设计功能----------------------------------------------------------------4
第三章主要电路元器件介绍----------------------------------5
3.1AT89C51单片机简介-------------------------------------------------------5
3.1.1单片机简介--------------------------------------------------------5
3.1.2主要特性----------------------------------------------------------5
3.1.3管脚功能说明------------------------------------------------------5
3.2DAC0809-----------------------------------------------------------------6
3.2.1工作原理----------------------------------------------------------6
3.2.2DAC0832的主要特性参数----------------------------------------7
3.2.3DAC0832引脚功能简介------------------------------------------8
3.3数码显示管--------------------------------------------------------------8
3.3.1原理及分类---------------------------------------------------------8
3.3.2显示器的工作方式---------------------------------------------------8
3.3.3显示管字型码-------------------------------------------------------9
第四章单元电路的硬件设计----------------------------------10
4.1硬件又原理框图-----------------------------------------------------------10
4.2单片机AT89C51系统的设计--------------------------------------------------10
4.3时钟电路------------------------------------------------------------------11
4.4复位电路------------------------------------------------------------------11
4.5键盘接口电路--------------------------------------------------------------12
4.6LED显示电路-------------------------------------------------------------12
4.7数、模转换及放大电路------------------------------------------------------13
2
第五章系统软件设计-----------------------------------------14
5.1主函数---------------------------------------------------------------------14
5.1.1程序流程图------------------------------------------------------------14
5.1.2简介-----------------------------------------------------------------14
5.2信号频率数据采集程序-------------------------------------------------------14
5.2.1正弦波产生------------------------------------------------------------15
5.1.2三角波产生------------------------------------------------------------15
5.1.3锯齿波产生-----------------------------------------------------------16
5.1.4方波产生-------------------------------------------------------------17
第六章设计总结---------------------------------------------19
参考文献----------------------------------------------------20
附件A主要元器件清单----------------------------------------21
附件B系统电路图--------------------------------------------22
3
第一章绪论
1.1选题背景及其意义
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种
波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如方波、锯齿波、三角
波、正弦波的电路被称为函数信号发生器。
在通信、广播、电视系统,在工业、农业、
生物医学领域,函数信号发生器在实验室和设备检测中具有十分广泛的用途。
1.2单片机概述
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力
的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/
计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换
器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机具有集成度高、
系统结构简单、使用方便、实现模块化、可靠性高、处理功能强、速度快等特点,因为
被广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过
程控制等领域。
1.3信号发生器分类
信号发生器是指产生所需参数的电测试信号的仪器。
因其应用广泛,种类繁多,特
性各异,分类也不尽一致。
按信号波形可分为正弦信号、函数信号、脉冲信号和随机信
号发生器等四大类;按频率覆盖围分为低频信号发生器、高频信号发生器和微波信号
发生器;按输出电平可调节围和稳定度分为简易信号发生器、标准信号发生器和功率
信号发生器;按频率改变的方式分为调谐式信号发生器、扫频式信号发生器、程控式信
号发生器和频率合成式信号发生器等。
信号发生器又称信号源或振荡器,在生产实践和
科技领域中有着广泛的应用。
1.4研究题目及其意义
信号发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在
许多弊端,如:
体积较大、重量较沉、移动不方便、信号失真较大、波形形状调节过于
死板,无法满足用户对精度、便携性、稳定性等要求,研究设计出一种具有频率稳定、
准确、波形质量好、输出频率围宽、便携性好等特点的波形发生器具有较好的市场前
景。
以满足工业领域对信号源的要求。
本次试验实现利用单片机AT89S52和8位D/A转换芯片DAC0832共同实现方波、锯
齿波、三角波、正弦波这四种常用波形的发生。
根据设计的要求,对各种波形的频率和
1
幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。
在程序运行中,当接
收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程
序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。
并且
可以通过数码管和键盘显示模块,键盘可以实现对几种波形的切换。
1.5章节安排设计的任务和要求
第一章绪论:
介绍选题的背景意思,单片机的概述,信号发生器的分类等
第二章方案设计:
介绍系统功能要求和整体结构,包括数码管的显示信号频率,
按键波形选择及信号频率调整等。
第三章系统的硬件设计:
介绍各单元电路设计,主要介绍单片机主控制器,信号
产生电路、显示电路、键盘电路等
第四章系统的软件设计:
介绍各子程序的算法和流程,包括主程序、方波、锯齿
波、三角波、正弦波的信号产生、数码管显示、键盘扫描、按键处理等。
第五章总结:
设计体会,设计过程中俄困难与收获。
第二章信号发生器方案设计与选择
信号发生器是指产生所需参数的电测试信号的仪器。
按信号波形可分为正弦信号、
波形信号、脉冲信号和随机信号发生器等四大类。
本文利用单片机构造低频信号发生器,
可产生正弦波,方波,三角波,锯齿波四种波形,再通过D/A转换器DAC0832把数字信
号转变为模拟信号,经OP07放大输出到示波器,与此同时外接8位LED显示输出信号
的类型和频率。
2.1方案的设计与选择
方案一:
采用单片函数发生器可产生正弦波、方波等,操作简单易行,用D/A转换
器的输出来改变调节电压,可以实现数控调整频率,但产生信号的频率稳定度不高。
方案二:
利用芯片组成的电路输出波形,MAX038是MAXIM公司生产的一个只需要很
少外部元件的精密高频波形产生器,他能产生准确的高频正弦波、三角波、方波。
输出
频率和占空比可以通过调整电流、电压或电阻来分别地控制。
所需的输出波形可由在A0
和A1输入端设置适当的代码来选择,且具有输出频率围宽、波形稳定、失真小、使
用方便等特点。
方案三:
采用Atmel公司的AT89C51单片机编程方法实现,该方法的可以通过编程
的方法控制信号波形的频率和幅度,而在硬件电路不便的情况下,通过程序实现频率的
2
变化和输出波形的选择,并同时在显示器显示相应的结果。
方案一输出信号频率不够稳定;方案二成本高,程序复杂度高;方案三,软硬件结
合,硬件成本低,软件起点低,优化型相对比较好,容易实现,且满足设计要求。
综合
考虑,我们采用了方案三,用AT89C51单片机设计低频信号发生器,能够满足信号的频
率稳定性和精度的准确行。
2.2设计原理简介
该设计设计一个低频信号发生器,我们采用的是AT89C51单片机用软件实现信号的
输出。
该单片机是一个微型计算机,包括中央处理器CPU,RAM,ROM、I/O接口电路、
定时计数器、串行通讯等,是波形设计的核心。
该信号发生器原理框图如图2.1,总体
原理为:
利用AT89C51单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯
齿波四种波形,通过C语言对单片机的编程即可产生相应的波形信号,并可以通过键盘
进行各种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也
就得到所需要的信号波形,通过运算放大器的放大输出波形,同时让显示器显示输出的
波形信息。
键盘
输入
AT89C51
单片机
接口
电路
数/模准换器
DAC0832
UA741
运放放大
输出
图2.1信号发生器原理框图
本方案其主要模块包括复位电路、时钟信号、键盘控制、D/A转化及LED显示。
其
各个模块的工作原理如下:
(1)复位电路是为单片机复位使用,使单片机接口初始化;89C51等CMOS51系列
单片机的复位引脚RET是施密特触发输入脚,部有一个上拉低电阻,当振荡器起振以
后,在RST引脚上输出2个机械周期以上的高电平,器件变进入复位状态开始,此时ALE、
PSEN、P0、P1、P2、P4输出高电平,RST上输入返回低电平以后,变退出复位状态开始
工作。
该方案采用的是人工开关复位,在系统运行时,按一下开关,就在RST断出现一
段高电平,使器件复位。
(2)时钟信号是产生单片机工作的时钟信号,控制着计算机的工作节奏,可以通
过提高时钟频率来提高CPU的速度。
89C51部有一个可控的反相放大器,引脚XTAL1、
XTAL2为反相放大器输入端和输出端,在XTAL1、XTAL2上外接12MHZ晶振和30pF电容
便组成振荡器。
时钟信号常用于CPU定时和计数。
(3)键盘模块是是用于控制信号输入的类型,当按键按下时,可以通过单片机编
3
程读取闭合的键号,实现相应的信号输出。
其步骤主要是a、判断是否有键按下;b、去
抖动,延时20ms左右;c、识别被按下的键号;d、处理,实现功能。
(4)D/A转换也称为数模转换,是把数字量变换成模拟量的线性电路。
单片机产生
的数字信号通过DAC0832转化成模拟信号,输出相应的电流值,通过OP07集成运算放
大器可以取出模拟量得电压值,最后利用示波器获得输出的模拟信号的波形;衡量数模
转换的性能指标有分辨率、转换时间、精度、线性度等。
LED显示器用由若干个发光二极管按一定的规律排列而成,是一种能够将电能转化
为可见光的固态的半导体器件,它可以直接把电转化为光用于是显示相关输出波形的信
息,包括信号的类型和频率。
2.3设计功能
(1)本方案利用利用2位(P1.0和P1.1)控制开关信号输入类型,其中当P1.0=0,
P1.1=0输出正弦波;当P1.0=0,P1.1=1输出三角波;当P1.0=1,P1.1=0输出锯齿波;
当P1.0=1,P1.1=1输出方波。
(2)本方案输出利用8位LED显示器,该显示器为共阴极,输入段选码低电平有效,
用于显示输出信号的类型和频率,如1KHz正弦波,显示为1.1000。
根据设计要求,我
们在系统启动时,还要在LED中显示“COE学号加上后4位”5秒钟,即显示“CEO3632”。
(3)利用DAC0832数模转换芯片实现信号的转换,并通过集成运算放大器将信号
放大,输出信号能够在Proteus软件中的示波器中显示。
(4)信号频率围要求:
1—1KHz。
(5)输出信号幅度:
0~5V。
4
第三章主要电路元器件介绍
3.1AT89C51单片机简介
3.1.1单片机简介
AT89C51是一种带4K字节FLASH存储器
的低电压、高性能CMOS8位微处理器,俗
称单片机。
该芯片具有优异的性价比,集成
度高,体积小,可靠性强,控制功能强等优
点。
其外形及引脚排列如图3.1所示。
3.1.2主要特性
�兼容性能强
�4K字节可编程FLASH存储器
�全静态工作:
0Hz-24MHz
图3.1
AT89C51引脚图
�128×8位部RAM
�32可编程I/O线
�两个16位定时器/计数器
�5个中断源
�可编程串行通道
�低功耗的闲置和掉电模式
�片振荡器和时钟电路
3.1.3管脚功能说明
�VCC:
供电电压4~6V典型值5V);
�GND:
接地;
____
�EA/Vpp:
运行方式时,EA为程序存储器选择信号,EA接地时CPU总是从外部存
____
储器中取指令,EA接高电平时CPU可以从部或外部取指令;FLASH编程方式时,
该引脚为编程电源输入端Vpp(=5V或12V);
_________
_________
�
�
PSEN:
外部程序存储器读选通信号,CPU从外部储存器取指令时,从PSEN引脚输
通信
ALE/PROG:
运行方式时,ALE为外部储存器低8位地址锁存信号,FLASH编程方
式时,该引脚为负脉冲输入端;
5
出读选_________号(负脉冲);
�XTAL1,XTAL2为部振荡器电路(反相放大器)的输入端和输出端,外接晶振电路;
�P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的
管脚第一次写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的一些特殊功能口如表2.1。
表2.1
P3口第二功能
3.2DAC0809
3.2.1工作原理
6
DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、
8位D/A转换器及转换控制电路四部分构成。
8位输入锁存器用于存放主机送来的数字
量,使输入数字得到缓冲和锁存,并加以控制;
8位DAC寄存器用于存放存放待转换的数字量,
并加以控制;8位D/A转换器输出与数字量成正
比的模拟电流,由与门、与非门组成的输入控制
的输入电路来控制2个寄存器的选通或锁存状
态,其原理框图如3.3。
当WR2和XFER同时有效时,8位DAC寄存器
端为高电平“1”,此时DAC寄存器的输出端Q跟
随输入端D也就是出入寄存器Q端得电平变化,
反之,当端为低电平“0”时,第一级8位输入
寄存器Q端得状态则锁存到第二级8位DAC寄存器中,
图3.2DAC0832引脚图
以便第三极8位DAC转换器进行D/A转换。
图3.3DAC0832原理图
3.2.2DAC0832的主要特性参数
�分辨率为8位;电流稳定时间1us;
�可单缓冲、双缓冲或直接数字输入;
�只需在满量程下调整其线性度;
�单一电源供电(+5V~+15V);
7
�低功耗,20mW。
3.2.3DAC0832引脚功能简介
�D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出
错);
�ILE:
数据锁存允许控制信号输入线,高电平有效;
�CS:
片选信号输入线(选通数据锁存器),低电平有效;
�WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE
�CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变
换,LE1的负跳变时将输入数据锁存