湖南科技大学课程设计报告
单片机课程设计报告
题 目 简易信号发生器设计
学院 机电工程学院 年 级 10级 专 业 测控技术与仪器 班 级 一班 学 号 1003030113
学生姓名 黄志恒 指导教师 傅国红
设计时间 2013.6.21
湖南科技大学课程设计报告
目 录
1.概述 ................................................................................ 1 2.系统设计 ............................................................................ 2
2.1 方案设计与比较 ................................................................ 2 2.2 设计原理 ...................................................................... 2 3.硬件设计 ............................................................................ 4
3.1主要器件介绍 ................................................................... 4
3.1.1主控电路 ................................................................. 4 3.1.2数/模转换电路 ............................................................ 5 3.2 单元电路 ...................................................................... 6
3.2.1晶振电路 ................................................................. 6 3.2.2复位电路 ................................................................. 6 3.2.3按键接口电路 ............................................................. 7 3.2.4放大电路 ................................................................. 8 3.2.5 端口配置 ................................................................ 9 3.3 器件清单 ..................................................................... 10 4.软件设计 ........................................................................... 11
4.1 软件功能模块划分 ............................................................. 11
4.1.1 键盘扫描 ............................................................... 11 4.1.2 方波实现过程 ........................................................... 12 4.1.3 三角波实现过程 ......................................................... 14 4.1.4正弦波实现过程 .......................................................... 15 4.2 各功能模块间关系描述 ......................................................... 15 5.系统调试 ........................................................................... 17
5.1 硬件调试 ..................................................................... 17 5.2 软件调试 ..................................................................... 18 5.3 设计效果 ..................................................... 错误!未定义书签。 结束语 ............................................................................... 19 参考文献 ............................................................................. 20
1.概述
这次课程设计的主要目的是自己动手做一个可以实现简易信号发生器的设计,在设计中考虑到波形可以在一定范围里的频率的调整和不同波形的变换。可以准确,稳定的讲信号的波形显示出来。
信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。
这次课程设计是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、方波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,可按实际的需要调整信号波的频率及波形,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。
1
2.系统设计
2.1 方案设计与比较
在设计过程中,我们根据需求利用不同的芯片来生成波形,由此设计了以下三个方案:
方案一:采用单片函数发生器(如0832),0832可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。
通过比较,鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,并且可以随时按照实际的需求来改变信号的波形与频率,使信号发生器能适用于大多数的情况,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。信号发生器流程图如图2-1所示.
信号输入89S51单片机数据传输D/A转换器转换波形过滤放大波形波形输出
图2-1 信号发生器流程图
2.2 设计原理
设计一个基于单片机的函数信号发生器,该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步通过复位按钮的调节来实现对波形频率的调节和波形的选择。
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。AT89S51单片机本身就是一个完整的微
2
型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将AT89S51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2-2所示。
AT89S51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达DAC0832单片机进行D/A模拟转换,然后通过运算放大器将波形进行滤波和放大然后将其转换成模拟信号也就是所需要的输出波形。
按波形频率计算输出波形两点之间的时间间隔,修改T2的TH0。具体编程算法是:先去频率的倒数得到周期,再将周期内的波形点数,得到两个点间的时间间隔。输出参数WAVE_FREQ(波形频率) 。在得到波点间隔时间。
波点间隔时间Tinterval = (1000000/WAVE_FREQ)/WAVE_POINT
一个周期被分离成若干个点,对应的四种波形的若干个数据存放在以TAB1--TAB4为起始地址的存储器中。
波形调整主控器AT89S51频率调整D/A转换器DAC0832滤波放大器波形输出 图2-2 系统结构框图 3