资源描述
,
毕业设计(论文)
题目: 多功能智能函数发生器设计
系 别 信息工程系
专业名称 电子信息工程
班级学号 088205232
学生姓名 熊磊君
指导教师 向瑛
二Ο一三 年 五 月
毕业设计(论文)任务书
I、毕业设计(论文)题目:
多功能智能函数发生器的设计
II、毕 业设计(论文)使用的原始资料(数据)及设计技术要求:
以单片机为核心器件组成一个多功能智能函数发生器。
1、系统能够产矩形波、三角波、正弦波。
2、系统可以通过选择开关选择相应的波形输出。
3、系统具有复位功能。
4、系统可用LED显示输出波形的种类和频率。
III、毕 业设计(论文)工作内容及完成时间:
第1周-第3周: 开题报告的撰写,翻译英文资料
第4周-第11周: 硬、软件设计,调试
第12周-第14周: 整体调试
第15周-第17周: 撰写论文
第18周: 答辩准备及答辩
Ⅳ 、主 要参考资料:
1.沈红卫.基于单片机的智能系统设计与实现.电子工业出版社,2005.1
2.张先庭,向瑛.单片机原理、接口与C51应用程序设计.国防工业出版社,2011.1
3.程明等.LED显示原理[J].电讯技术,2004,14(3):32-33
4.李军.51系列单片机高级实例开发指南.北京航空航天大学出版社,2003
5.8-bit Microcontroller with 2K bytes Flash-At89C2052 Atmel corporation ,2005
6.夏路易,石宗义.电路原理图与电路板设计.北京希望电子出版社,2002.6
信息工程 系 电子信息工程 专业类 0982052 班
学生(签名):
填写日期: 2012 年 12 月 25 日
指导教师(签名):
助理指导教师(并指出所负责的部分):
信息工程 系主任(签名 )
学士学位论文原创性声明
本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期:2013年5月15日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌航空大学科技学院可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
作者签名: 日期:2013年 月 日
导师签名: 日期:2013年 月 日
多功能智能函数发生器设计
学生姓名:熊磊君 班级:0982052
指导老师:向 瑛
摘要:函数信号发生器是电子设计以及教学、科研中应用最广泛的仪器。如果能用相应简单电路实现稳定优秀和精确度的常用波形,必将能被广泛的运用。
本文设计函数发生器采用马克西姆公司MAX038芯片产生函数信号,及其芯片基本特性,运用芯片自身特性及其外围电路控制波形频率,调节占空比,并对频率及占空比的控制做了比较详尽的论述,以51系列单片机和外围电路控制波形种类,通过电路放大后从而通过键盘控制输出不同波形。
该函数发生器以软件控制实现一系列有规律的幅度和频率可调的方波、三角波和正弦波,低成本、多功能、高精度。
关键词: MAX038 函数信号 单片机
指导老师签字:
Multi-functional intelligent function generator
Student Name: Xiongleijun Class: 088205232
Supervisor: Xiangying
Abstract: Function signal generator is the most widely used in electronic design and teaching, scientific research instruments. If can use the corresponding simple circuit excellent stability and accuracy of common waveform, is bound to be widely used.
Designed function generator MAX038 chip by maxim company produce function signal, the basic features and its chip, chip itself characteristic and its peripheral circuit is used to control waveform frequency, adjusting the duty ratio, and control of the frequency and duty ratio) were compared for detailed discussion, with 51 series single chip microcomputer and peripheral circuit control waveform types, enlarged electric circuit to output different waveform by keyboard control.
The function generator to software control to realize a series of regular amplitude and frequency adjustable square wave, triangle wave and sine wave, low cost, multi-function, high precision.
Key words: MAX038; Function Signal; Single-chip microprocessor
Signature of Supervisor:
目 录
1.绪论 1
2.系统概述和方案设计 2
2.1 概述 2
2.2 设计指标 2
2.3 方案论证与比较 2
3.系统硬件的设计 5
3.1 系统总体设计 5
芯片介绍 5
芯片引脚 8
频段调节控制 9
频率、幅值、占空比控制 10
3.4 频率、占空比调节 11
3.5 输出信号的放大处理 13
3.6 电源电路 14
3.7 键盘设计 15
3.8 本章小结 15
4.系统软件设计 16
4.1 主程序流程 16
4.2 子程序流程 17
致谢 19
参考文献 20
附 录 21
1 单片机程序 21
2 系统完整电路图 24
南昌航空大学科技学院2013届学士学位论文
多功能智能函数发生器设计
1 绪 论
函数发生器是实验室常用信号源,也是工业,科研等常用的信号源,也是模拟电路中经典的电路实例,其设计方法有许多种,本次课题选用单片机为核心器件,而单片机所够成的仪器具有可靠性好,高性价比,体积小,集成度高,这也使其在现在电子硬件发展中成为最为广泛应用的器件之一。
基于MAX038的多波形函数信号发生器设计,结合现在正在使用的信号发生器的基本功能,完成一个基本系统的设计全过程。通过MAX038来产生一系列有规律的幅度和频率可调的方波、三角波和正弦波,这样的一个多波形函数信号发生器在控制领域有着相当广泛的应用范围。
本文主要分五大部分:绪论、系统概述和设计方案、硬件部分、软件部分、总结。绪论首先对课题背景和所涉及的技术领域进行介绍;第一章对系统所要完成的功能进行讲解,确定系统的主要参数,第二章对系统的硬件结构和各部分组成进行简要的介绍;第三章软件部分,这部分重点介绍了主程序的流程图及驱动程序。
2 系统概述和方案设计
2.1 概述
函数发生器在通信,广播,电视系统等方面运用广泛,是常用信号源,也是工业,科研等常用的信号源,也是模拟电路中经典的电路实例,其设计方法有许多种。
2.2 设计指标
1. 系统能够产生递增斜波、递减斜波、方波、三角波、正弦波、及阶梯波。
2. 系统可以通过选择开关选择相应的波形输出。
3. 系统具有复位功能。
4. 系统可用LED显示输出波形的种类和频率。
2.3 方案论证与比较
方案一
系统主要采用51系列单片机,D/A转换器组成输出,该单片机是波形设计的核心。该信号发生器原理框图如方案一流程 图2.1
键盘输入
输出
AT89C51单片机
运放放大
UA741
D/A转换DAC0832
显示
图2.1 系统流程图
总体原理为:利用AT89C51单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,方案一流程 图2.1,信号发生器原理框图本方案其主要模块包括复位电路、时钟信号、键盘控制、D/A转化及LED显示。
方案二
系统由51系列为单片机控制模块,MAX038信号产生模块,LED显示模块,占空比调节模块, DAC模块,电压放大模块组成,图2.2为系统框图。
键盘
51系列单片机
LED显示
信号输出
频率微调
放大
输入
MAX038
信号震荡器
波形选择
信号产生模块
占空比调节
频率调整
图2.2 系统流程图
方案三
系统由51系列为单片机,使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。
方案四
采用通用的51系列单片机AT89C52作为主控制器,通过ZLG7289控制键盘及显示器输入频率与幅度并接入DDS ADC9850产生各种波形,通过积分电路与其自身带有的正弦波和方波可以产生三角波等,正弦信号由D/A芯片TLC5615采样。
方案讨论
方案一:电路简单,但抗干扰能力较弱,不易调节,而其成本底
方案二:利用单片集成芯片的函数发生器:能产生多种波形,达到较高的频率,且易于调试。鉴于此,美国马克西姆公司开发了新一代函数信号发生器ICMAX038,它克服了方案二中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。MAX038频率高、精度好,因此它被称为高频精密函数信号发生器IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上,MAX038都是优选的器件。
方案三:电路复杂,干扰因素多,不易实现。
方案四:产生信号较稳定,且不容易控制。
宗上方案研究故采用方案二较适当。
26
3 系统硬件的设计
依据MAX038输出频率的数控调节原理,配合单片机控制,可以实现数控的函数信号发生器。
3.1 系统总体设计
整机由的四大模块组成,分别是单片机外围控制电路(波形选择电路,按键电路),MAX038外围电路(频率,占空比调节),放大电路,及电源电路。流程图布局如图3.1所示。
频率调节
按键电路
放大电路
MAX038
AT89C52单片机
输出
占空比
波形选择电路
图3.1 总设计原理布局图
3.2 单片机介绍及外围电路
芯片介绍
AT89C52是51系列单片机的一个型号,是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS型8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性
· 兼容MCS51指令系统
· 8k可反复擦写(>1000次)Flash ROM
· 32个双向I/O口
· 256x8bit内部RAM
· 3个16位可编程定时/计数器中断
· 时钟频率0-24MHz
· 2个串行中断
· 可编程UART串行通道
· 2个外部中断源
· 共6个中断源
· 2个读写中断口线
· 3级加密位
· 低功耗空闲和掉电模式
· 软件设置睡眠和唤醒功能
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接石英晶体及电容C1, C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1, C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,这里选择使用石英晶体。也可以采用外部时钟。采用外部时钟的电路的情况时,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
外围电路
工作在11.0592MHz频率下,其P2.0引脚和MAX038的A0和A1相连,用于选择输出波形;KEY为单片机的外围4×4键盘接口,它和单片机的P1.0~P1.7连接,P1.0~P1.3对应于键盘的行1~4,P1.4~P1.7对应于键盘列的1~4。
图3.2 单片机外围硬件电路
3.3 MAX038芯片介绍
MAX038是美国MAXIM公司应市场的需求而研制的单片集成高频精密函数发生器,具有较高的频率特性、频率范围很宽、功能较全、单片集成化、外围电路简单、使用方便灵活等特点。内有主振荡器、波形变换电路、波形选择多路开关、2.5V基准电压源、相位检测器、同步脉冲输出及波形输出驱动电路等。其主要优点有:
1)能精密地产生三角波、锯齿波、矩形波、方波、正弦波信号。
2)频率范围从0.1Hz~20MHz,最高可达40MHz,各种波形的输出幅度均为2V
3)占空比调节范围宽,占空比和频率均可单独调节,二者互不影响,占空比最大调节范围是10%~90%。
4)波形失真小,正弦波失真度小于0.75%,占空比调节时非线性度低于2%。
5)采用±5V双电源供电,允许有5%变化范围,电源电流为80mA,典型功耗400mW,工作温度范围为0~70℃。
6)低温度漂移:200 PPM/℃。
7)低阻抗输出缓冲器:0.1;
8)内设2.5V电压基准,可利用该电压设定FADJ、DADJ的电压值,实现频率微调和占空比调节。
芯片引脚
图 3.3 MAX038芯片图
表3.1 MAX038引脚说明
名 称
功 能
REF
2.50 V带隙基准电压输出端
GND
地
A0
波形选择输入端,TTL/CMOS兼容
A1
波形选择输入端,TTL/CMOS兼容
COSC
外部电容连接端
GND
地
DADJ
占空比调整输入端
FADJ
频率调整输入端
GND
地
IIN
用于频率控制的电流输入端
GND
地
PDO
相位检波器输出端。如果不用相位检波器则接地
PDI
相位检波器基准时钟输入端。如果不用相位检波器则接地
SYNC
TTL/CMOS兼容的同步输出端,可由DGND至DV+间的电压作为基准
DGND
数字地。让他开路使SYNC无效,或是SYNC不用
DV+
数字+5 V电源。如果SYNC不用则让他开路
V+
+5 V电源
GND
地
OUT
正弦波、方波或三角波输出端
V-
-5 V电源
频段调节控制
MAX038的输出频率和CF电容与IIN端的电流间的关系如表2.7.1 所示。固定一个CF值,当IIN 端的电流从到的变化时,对应产生一个频段的频率范围。经实验调整,选择了一系列的CF 如表3.1 所示,并确定了各CF所对应的频段和频率范围。由于系统通过DAC 控制IIN 端电流和FADJ 端电压,将各频段的频率范围划分为65536 级间隔,因此各频段的输出误差为
图3.3 输出频率与IIN 电流及振荡电容CF的关系
此外,由于相邻频段之间存在着频率重叠现象,并且考虑到各个频段对应的误差大小有所差异,因此设定各频段的实际起止频率围:f3~f4,以便获得最小的误差。
表3.2 输出波形频率范围与CF的关系表
频段号
CF
f1(2µA)
f2(750µA)
Δf
f3
f4
1
10pF
200kHz
65MHz
1kHz
600kHz
10MHz
2
1nF
2kHz
650kHz
10Hz
6kHz
600kHz
3
100nF
20Hz
6.5kHz
0.1Hz
60Hz
6kHz
4
10µF
0.2Hz
65Hz
0.001Hz
0.2Hz
60Hz
在5脚COCS和6脚GND接上电容以后,10脚IIN是频率控制的电流输入端,利用恒定电流向电容充电和放电,便可形成振荡。是受8脚FADJ和7脚DADJ端电压的控制,振荡频率由下式确定。
(式3.1)
因为要求的频率范围在0.2Hz~10MHz,分四个频段来满足要求,在每个频段上连续可调,由芯片内部参数可知道,当时,的容量范围可以在时,芯片有较好的性能。
因此,有(3.1)式可知
(式3.2)
当时,;当时,
为了使数字控制能够使实现,在D/A转换模块使用图2.5所示的电阻连接方法。当数字量为00H时,输出为。MAX038的10脚IIN有的电流输入。当数字量为FFH时,输出为基准电压。MAX038的10脚IIN有的电流输入。用式(3.1)(3.2)可以检验,确定表3.1所列的电容值可满足后面频率产生要求。
频率、幅值、占空比控制
MAX038的核心部分是一个电流控制的振荡器,通过恒定电流对外部电容CF充电和放电,获得三角波、方波和正弦波信号输出。充放电电流由流进MAX038的IIN引脚的电流控制,由加在引脚DADJ、FADJ上的电压调整。电路的振荡频率为:波形的占空比为:。当时,IIN可设为时,可设为,对应中心频率为350:1的变化;当±时,调制频偏为±70%。控制外部电容充、放电电流的比值,当时,波形的占空比为50%;当±,占空比为10%~90%。在FADJ和DADJ端口的内部,设置了的下拉电源流,可简化外部电路设计,仅用电阻(连接引脚FADJ和基准电压的可变电阻)和(连接引脚DADJ和基准电压的可变电阻)就可以对频偏和占空比进行调整。IIN引脚由内部的运放强制为虚地,故仅用电阻就能调整输入电流,实现中心频率的调节。的基准电压源主要用于提供电流和、电压,其温度系数典型值为20ppm/℃,负载电流小于。
通过控制8选1模拟开关CD4051来选择的电容量,从而确定频率范围。本系统共有8个频段供切换,输出频率范围与的对应关系如下表3.2所示。
表3.3 输出频率范围与的对应关系
波段
电容值
频率范围
1
20pF
2MHz~20MHz
2
100pF
200kHz~2MHz
3
1000pF
20kHz~200KHz
4
0.01μF
2KHz~20KHz
5
0.1μF
200Hz~2KHz
6
1μF
20Hz~200Hz
7
10μF
2Hz~20Hz
8
100μF
0.1Hz~2Hz
MAX038内部有一个的基准电压源,由REF引脚输出。基准电压源由两个LF353及电阻电容组成,分别组成放大倍数为+1和-1的缓冲器,因而得到±的基准电源。这个电压源对整机的性能很重要,因为各控制电路均需要该参考输入。
在应用中,MAX038通常可以单独承担函数信号输出的功能,通过外部的电阻和电容的调节,完成特定频率和幅值的信号输出。
3.4 频率、占空比调节
MAX038的占空比的调整有两种方式,一种时利用内部基准电压源调整,另一种是利用外加电源调整,为使电路简单,采用第一种调整方式。
在MAX038 的DADJ端应用一个-2.3V~+2.3V 的电压控制信号, MAX038 的DADJ引脚上的电压可控制波形的占空比(定义为输出波形为正时所占时间的百分数),并且能够改善正弦波的波形,可进行脉冲宽度调制和产生锯齿波。当接地(即)时,其占空比为50%,占空比的调整可采用MAX505的一片DAC,输出±2.3V 范围内的电压,占空比可在10%~90%范围内改变,约每伏改变15%,当电压超过±2.3V 将使频率偏移或引起不稳定。为产生一定占空比而加在DADJ上的电压为:
(3.1)
对双极性输出的D/A 转换器,基准电源为2.3V时,MAX505接受数据与占空比的关系式为:
(3.2)
其中:为DADJ 引脚上的电压,为占空比。这样可完成激励信号的占空比设置。调整的充放电时间,在10%~90%的范围内调整振荡器输出的三角波,最终产生失真的正弦波,锯齿波和脉冲波。这三种波形同时送入混合器,由A0,A1选择输出。
所以为简单起见,关于占空比调节和频率调整,可采用外部电位器调整控制。调节频率调整电路的电位器,改变MAX038输入端IIN的电流大小,从而改变频率值;调节占空比调节电路中的电位器,改变MAX038输入端DADJ的电压大小,从而改变占空比。
图3.3中的芯片为Maxim公司的信号发生芯片MAX038,其波形选择引脚A0和A1与单片机的P2.0和P2.1引脚相连,在单片机的控制下输出正弦波、矩形波和三角波3种不同的波形,波形的频率和幅值可以通过外部的可变电阻进行调节。OUT为MAX038的信号波形输出,送至放大电路。MAX038在正弦波输出时,输出的信号频率为
F0=2*2.5V/R*C
图3.3 MAX038外围硬件电路
3.5 输出信号的放大处理
MAX038输出波形的幅值为2 V(P-P),且输出电流不高,最大输出电流为+20mA,输出阻抗的典型值为0.1Ω。可直接驱动100Ω的负载。为了得到更大的输出幅度和驱动能力,就需要对波形信号作进一步处理,图3.4给出了一个波形输出与驱动电路。波形信号从MAX038的OUT端输出后,可使其通过一个AD811进行电压放大。AD811为电流反馈型宽带运放,其带宽增益积为140MHz,±15V供电,增益为+10的情况下,-3dB带宽达100MHz,非常适合本系统的放大要求,有±12V的输出摆幅,且输出电流最大可达100mA,完全可以满足峰峰值要求。后接BUF634P起缓冲器的作用。所以必须在输出级至少有一级放大电路来提供足够的输出电压和电流,以满足一般使用要求。以下是放大电路设计的几点考虑:
● 首先,放大电路要求具有很高的频宽,因为输出信号最大基频为20MHz,其三角波和矩形波的高次谐波成分很高,只有高宽频才能得到不失真的输出波形。
● 其次,高频大信号放大要求放大电路有足够的输出电压转换速率。
● 另外,要带动低阻负载,放大电路的电流输出能力也是个重要参数。要在1KΩ负载上输出5V信号,则放大器至少要有的连续电流输出能力。
图3.4 输出信号的放大驱动电路
3.6 电源电路
根据整机要求,电源电路应为信号产生电路提供5V电压,其中±5V电压需要稳压输出,为此选用了7805, 7905两种三端集成稳压器,这种三端固定电压输出式集成稳压器,使用简单,价格较低,且由于内部具有过压过流保护,使整机的电源电路稳定,性能可靠。外接9V交流电输入,经绝对值电路,然后滤波通过7805,7905产生±5V的直流电压。在中间串入7812和7912,则可以为波形放大驱动电路提供12伏的工作电压。电源部分电路图如图3.5所示。
图3.5 电源电路图
3.7 键盘设计
软件需要实现的主要功能是检测键盘的输入,根据输入结果选择相应的波形信号。键盘操作和对应的输出如下:
● 输入按键0(第1行第1列),得到正弦波;
● 输入按键1(第1行第2列),得到矩形波;
● 输入按键2(第1行第3列),得到三角波;
在图4.1中,键码为11对应的是第1行第1列的按键;键码为21对应的是第1行第2列的按键;键码为41对应的是第1行第3列的按键。
3.8 本章小结
本章节着重介绍了如何通过硬件电路的组合,来实现先前多波形函数信号发生器的设计。涉及的主要器件有MAX038、单片机89C52、放大器AD811、八一片选CD4051和缓冲器BUF634P。
4 系统软件设计
4.1 主程序流程
主程序首先对程序进行初始化,如AT89C52的初始化,输出波形,频率占空比的初始化,然后不断检查是否有有效按键按下,并根据不同情况对其处理,其中频率的调节则相对复杂,首先要根据键入的键值确定输出波形的基频,从而确定所对应的值,再求出微调电压,最后把值送到CD4051,选择相应波形送出。如主程序流程图4.1。
图4.1 主程序流程图
4.2 子程序流程
开始
退出
输出键值
是否有键按下?
消抖
扫描键盘
开始
调用键盘扫描函数
A0-0; A1-0
A1 = 1;
A0,A1
矩形波
A1 = 1;
A0,A1
N
(1)
开始
调用键盘扫描函数
Y
A0-0; A1-1
A1 = 1;
A0,A1
正弦波
A1 = 1;
A0,A1
(2)
开始
图4.3 键盘扫描子程序
调用键盘扫描函数
A0-1; A1-0
A1 = 1;
A0,A1
三角波
A1 = 1;
A0,A1
(3) 图4.2 单片机子程序流程图
4.3系统分析总结与展望
采用MAX038 芯片制作函数信号发生器随设计思想不同,具有多种方法,本文只是其中一种可实现的方法。设计出的信号发生器结构简单,不需调整,具有很高的性价比,体积也很小。和利用分离元件实现的发生器相比,具有显著的优势,这足以弥补它在某些方面的不足。
由于此次实现的信号发生器电路是模数混合电路,因此在电路设计和线路板布局上都有所研究。具体有:
① MAX038的模拟电源和数字电源需要分开,在供电时要分别供电,即分别取自不同的电源,以防数字信号通过电源线干扰模拟部分;同样模拟地和数字地的处理也要慎重,PCB板上要用低阻地平面分别将模拟地和数字地连接,然后在某一点上将两地相连。
②在双层板上,信号线要尽量布在焊接面,元件为地平面,这样可以减少信号间的干扰,这一点对系统性能的稳定尤为重要,因为系统性能受IIN、FADJ、DADJ、COSC等引脚周围的分布电容及信号环境的影响特别敏感,此外,这些引脚引线的长度和面积还应尽量短小
③由于不同结构的电阻具有不同的寄生电容和寄生电感,因此在选择电阻时,应选用寄生电容和寄生电感小的电阻,推荐使用1%以上精度的金属膜电阻。
④在高频线路中,电源去耦是一个关键问题。整个线路往往会由于电源引线而产生电路谐振,当有多大的瞬时变化时,也会产生尖峰干扰信号。消除这两种现象的有效办法就是在片子的电源引脚与地之间加上适当的去耦电容,一般使用1μF以上的优质电容。在许多场合,采用两个电容并联的方法(并联一个0.1μF电容),则去耦效果更佳。
致谢
本次选题到设计制作都得到向瑛老师的悉心指导,与耐心帮助,通过此次毕业设计获得颇多。并从老师严谨的工作态度中学习了更多,以后步入社会的工作与生活的态度。在此由衷的感谢老师。
感谢南昌航空科技学院老师们四年的不仅在专业的学习上给予我的帮助,更感谢他们在我的为人处事上给予的教诲。
参考文献
1.沈红卫.基于单片机的智能系统设计与实现.电子工业出版社,2005.1
2.张先庭,向瑛.单片机原理、接口与C51应用程序设计.国防工业出版社,2011.1
3.程明等.LED显示原理[J].电讯技术,2004,14(3):32-33
4.李军.51系列单片机高级实例开发指南.北京航空航天大学出版社,2003
5.8-bit Microcontroller with 2K bytes Flash-At89C2052 Atmel corporation ,2005
6. 夏路易,石宗义.电路原理图与电路板设计.北京希望电子出版社,2002.6
7. 周明,腾国文,张文波.MAX038芯片在波形发生器中的应用.元器件与应用
8. MAXIN 公司. MAX038 技术资料[Z] . 2002.
9. Maxim. New Releases Data Book.Vol.IV.1995
10. 何香玲 ,郑钢. 数字化波形发生器的设计[J] . 电子技术应用 ,2007
11.MAXIM公司.high-Frequency Waveform Generator:http://www.maxim-,2005
12.谢淑如,等.Protel PCB 99SE 电路板设计[M] .北京:清华大学出版社,2001
附 录
1 单片机程序
#ifndef _SIGNALGEN_H // 防止SignalGen.h被重复引用
#define _SIGNALGEN_H
#include <reg52.h> // 引用标准库的头文件
#define uchar unsigned char
uchar key; // 按键值
sbit A0 = P2^0; // MAX038的波形选择位A0
sbit A1 = P2^1; // MAX038的波形选择位A1
void delay();
uchar keyscan();
#endif
/* 用于键消抖的延时函数 */
void delay()
{
uchar i;
for (i=400;i>0;i--);
}
/* 键扫描函数 */
uchar keyscan(void)
{
uchar scancode,tmpcode;
P1 = 0xf0; // 发全0行扫描码
if ((P1&0xf0)!=0xf0) // 若有键按下
{
delay(); // 延时去抖动
if ((P1&0xf0)!=0xf0) // 延时后再判断一次,去除抖动影响
{
scancode = 0xfe;
while((scancode&0x10)!=0) // 逐行扫描
{
P1 = scancode; // 输出行扫描码
if ((P1&0xf0)!=0xf0) // 本行有键按下
{
tmpcode = (P1&0xf0)|0x0f;
/* 返回特征字节码,为1的位即对应于行和列 */
return((~scancode)+
展开阅读全文