163.基于单片机的函数信号发生器的设计.doc
毕业设计基于单片机的函数信号发生器的设计学 院: 信息科学技术学院专 业: 姓 名: 指导老师:电子科学与技术(光电子方向)XXX 学 号: 职 称:XXXXXXXXX高级工程师助理工程师中国·XXX二一 年 五 月理工大学XXX学院毕业设计诚信承诺书本人郑重承诺:我所呈交的毕业设计基于单片机的函数信号发生器的设计是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。承诺人签名: 日期: 年 月 日基于单片机的函数信号发生器的设计摘 要本课题是采用低成本的MCS-51系列单片机构成具有高可靠性的函数信号发生器的应用设计。本设计通过单片机运算产生二进制控制信号去控制AD9850进而实现函数波形的产生。基于单片机的函数信号发生器抗干扰性强、功耗低、成本低、易实现,具有很高的实用价值。 本系统以51单片机为控制核心,由电源模块、单片机AT89S52最小系统模块、中断键盘模块、函数信号发生模块、MAX7219显示模块组成。采用中断键盘扫描方式计算所需频率,用数控的方法控制DDS芯片AD9850产生100Hz40MHz正弦信号,100Hz5MHz方波信号,波形输出较稳定,且精度较高。采用MAX7219驱动两个四位一体的八段LED数码管,显示出当前波形的频率。系统用C语言编写模块化程序,增强可读性,便于AT89S52对各模块的控制,实现各功能的设置。关键词:单片机,直接数字频率合成(DDS),AD9850,函数信号,正弦波,方波,AT89S52,MAX7219,DDS,AD9850,C语言,MCU-based Function Signal Generator DesignABSTRACTThis issue is low-cost microcontroller MCS-51 family of highly reliable functions constitute a signal generator applications. This design generates a binary control signal MCU operation to control the AD9850 to realize the function of waveform generation. Function Generator based on single chip and strong anti-interference, low power consumption, low cost, easy to implement, has high practical value. The system control microcontroller core 51 by the power supply module, MCU AT89S52 minimum system module, the keyboard interrupt module, function signal generator module, MAX7219 display module. Calculated by scanning the keyboard interrupt the required frequency, using numerical methods to control DDS chip AD9850 produced 100Hz-40MHz sinusoidal signal, 100Hz-5MHz square wave signal, the waveform output is stable and high precision. Use of MAX7219 drives four in one of eight out of two LED digital tube, showing the frequency of the current waveform. Modular system with C language programs to enhance readability, ease of AT89S52 on the module controlRealize the function of setting.Key words:Singlechip Direct Digital Synthesizer(DDS) AD9850 Function Signal Sine wave Square Wave 目 录摘 要IABSTRACTII1 绪论11.1 研究背景11.2 研究目的21.3 研究意义22 课题设计相关理论知识32.1 DDS的系统简介32.1.1 DDS的基本原理32.1.2 DDS的性能特点32.2 AD9850简介42.2.1 AD9850功能概述42.2.2 AD9850的引脚功能52.2.3 AD9850工作原理52.2.4 AD9850应用与设计63 系统的总体设计83.1 方案论证83.2 设计原理框图84 系统硬件设计94.1 电源电路94.2 AT89S52单片机最小系统94.2.1 AT89S52的资源参数94.2.2 最小系统与I/O连接情况104.3 中断键盘设计电路114.4 MAX7219显示电路124.5 AD9850函数信号发生模块134.5.1 AD9850模块主电路134.5.2 AD9850模块时钟电路144.5.3 AD9850模块输入输出口定义154.6 AT89S52单片机ISP下载线154.6.1 ISP简介154.6.2 AT89S52单片机ISP下载线原理164.6.3 电脑并口DB25引脚定义说明174.7 小结175 系统软件设计185.1 单片机MCS-51系列简介185.2 MAX7219模块驱动程序185.2.1 初始化程序205.2.2 送显子程序215.2.3 数据传送程序225.3 AD9850的驱动程序设计235.3.1 初始化程序235.3.2 写控制字子程序245.4 主函数程序设计265.4.1 中断INT0服务函数265.4.2 主函数275.5 Keil C51介绍295.6 ISPlay v1.5介绍305.7 小结316 系统调试与分析336.1 硬件调试336.2 软件调试346.3 系统调试376.3.1 独立按键与显示测试376.3.2 波形测试386.3.3 与开题要求对比406.4 小结41参考文献42附 录 143附 录 250附 录 351附 录 452谢 辞541 绪论1.1 研究背景近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统函数信号发生器日新月益更新。传统的函数信号发生器大多数采用了模拟锁相环、数字锁相环、小数分频锁相环(fractional-N PLL Synthesis)技术,但是随着科技的进步,出现了直接数字合成(Direct Digital SynthesisDDS)的FS技术。单片集成的DDS产品是一种可代替锁相环的快速频率合成器件。DDS是产生高精度、快速变换频率、输出波形失真小的优先选用技术。DDS以稳定度高的参考时钟为参考源,通过精密的相位累加器和数字信号处理,通过高速D/A变换器产生所需的数字波形(通常是正弦波形),这个数字波经过一个模拟滤波器后,得到最终的模拟信号波形。通过高速DAC产生数字正弦数字波形,通过带通滤波器后得到一个对应的模拟正弦波信号,最后该模拟正弦波与一门限进行比较得到方波时钟信号。直接数字合成技术发展背景资料,无线电爱好者网 ,2008-3-23基准时钟相位累加器相位/幅度变换D/A变换低通滤波比较器图1-1 DDS方波输出框图DDS系统一个显著的特点就是在数字处理器的控制下能够精确而快速地处理频率和相位。除此之外,DDS的固有特性还包括:相当好的频率和相位分辨率(频率的可控范围达Hz级,相位控制小于0.09°),能够进行快速的信号变换(输出DAC的转换速率300百万次/秒)。这些特性使DDS在军事雷达和通信系统中应用日益广泛。其实,以前DDS价格昂贵、功耗大(以前的功耗达Watt级)、DAC器件转换速率不高,应用受到限制,因此只用于高端设备和军事上。随着数字技术和半导体工业的发展,DDS芯片能集成包括高速DAC器件在内的部件,其功耗降低到mW级(AD9851在3.3v时功耗为650mW),功能增加了,价格便宜。因此,DDS也获得广泛的应用:现代电子器件、通信技术、医学成像、无线、PCS/PCN系统、雷达、卫星通信。1.2 研究目的本设计主要研究并设计一个基于单片机的函数信号发生器,实现正弦波与方波的产出。系统主要是由单片机AT89S52、电源模块、中断键盘模块、AD9850函数信号发生模块、MAX7219显示模块组成,单片机通过中断扫描键盘,计算所需的信号频率,转换成二进制控制码,用数控的方法控制DDS芯片AD9850产生100Hz40MHz正弦信号,100Hz5MHz方波信号,并由AT89S52控制MAX7219显示模块完成相应的频率显示。1.3 研究意义近10年间,随着微电子技术的迅速发展,直接数字频率合成器(Direct Digital Frequency Synthesis简称DDS或DDFS)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的姣姣者。具体体现在相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。除供通信、仪表和自动控制系统测试用外,还广泛用于其他非电测量领域。2 课题设计相关理论知识2.1 DDS的系统简介2.1.1 DDS的基本原理 DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图2-1来表示。 相位累加器波形存储器D/A转换器低通滤波器 K fS FO图2-1 DDS原理图相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲,加法器将频率控制字与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。 用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到DA转换器,DA转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。 DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。 DDS基本工作原理,无线电爱好者网 ,2008-7-232.1.2 DDS的性能特点(1)输出频率相对带宽较宽输出频率带宽为50%s(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号杂散的抑制,实际的输出频率带宽仍能达到40%s。(2)频率转换时间短 DDS是一个开环系统,无任何反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率转换的时间等于频率控制字的传输时间,也就是一个时钟周期的时间。时钟频率越高,转换时间越短。DDS的频率转换时间可达纳秒数量级,比使用其它的频率合成方法都要短数个数量级。 (3)频率分辨率极高若时钟s的频率不变,DDS的频率分辨率就由相位累加器的位数决定。只要增加相位累加器的位数N即可获得任意小的频率分辨率。目前,大多数DDS的分辨率在Hz数量级,许多小于MHz甚至更小。 (4)相位变化连续 改变DDS输出频率,实际上改变的每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。 (5)输出波形的灵活性只要在DDS内部加上相应控制如调频控制FM、调相控制PM和调幅控制AM,即可以方便灵活地实现调频、调相和调幅功能,产生FSK、PSK、ASK和MSK等信号。另外,只要在DDS的波形存储器存放不同波形数据,就可以实现各种波形输出,如三角波、锯齿波和矩形波甚至是任意的波形。当DDS的波形存储器分别存放正弦和余弦函数表时,既可得到正交的两路输出。 (6)其他优点 由于DDS中几乎所有部件都属于数字电路,易于集成,功耗低、体积小、重量轻、可靠性高,且易于程控,使用相当灵活,因此性价比极高。2.2 AD9850简介2.2.1 AD9850功能概述图2-2 AD9850引脚图AD9850是高稳定度的直接数字频率合成器件,内部包含有输入寄存器、数据寄存器、数字合成器(DDS)、10位高速D/A转换器和高速比较器。AD9850高速的直接数字合成器(DDS)核心根据设定的32位频率控制字和5位相移控制字,可产生0.029Hz到62.5MHz的正弦波信号和标准的方波信号。该器件提供了并行和串行控制字输入,可通过并行接口或串行接口实现控制字的定入,以改变其输出频率和相位。其主要特性如下:(1)单电源供电,+5V或+3.3V;(2)功耗低,380mW(=5V),155mW(3.3V);(3)具有电源关断功能;(4)工作温度:-40-+85。2.2.2 AD9850的引脚功能AD9850是28脚SOP表面封装,体积小,易用于便携仪器。其AD9850排列如图2-2所示,功能如下: (1)D0-D7,控制字并行输入端,其中D7可作为串行输入; (2)DGND,数字地;(3)DVDD,为内部数字电路提供电源;(4)WCLK,控制字装入时钟;(5)FQUD,频率更新控制;(6)CLK,输入时钟;(7)AGND,模拟地;(8)AVDD,为内部模拟电路提供电源,可与数字电源共用;(9)RSET,DAC外接电阻;(10)QOUT,QB,内部比较器输出端;(11)VINN,VINP,内部比较器输入端;(12)DACBL,内部DAC外接参考电压端,可空;(13)IB,IOUT,DAC输出端;(14)RES,复位端。2.2.3 AD9850工作原理(1)控制字格式及写入时序 AD9850包含一个40位输入寄存器,其中低32位为频率控制字,高5位为相位控制字,还有一位电源使能位和两位测试位。图2-3 控制字装入时序图AD9850的控制字有并行和串行两种写入方式,时序如图2-3所示。并行装入模式下, WCLK第一个时钟上升沿到来时,装入高8位控制字,依次下去,当第5个WCLK时钟到来时装入低8位控制字,这样,连续5个WCLK时钟即可将40位控制字装入输入寄存器。第5个WCLK时钟后,WCLK时钟将不再起作用,直到FQUD时钟上升沿以来或重新复位。FQUD时钟上升沿将40位控制字写入数据寄存器,AD9850输出新的频率波。对于串行模式,每一个WCLK时钟上升沿,由控制字输入口的第8位(管脚25)移入1位控制位(低位先移入),40个WCLK时钟后,FQUD脉冲的上升沿更新输出频率。值得一提的是:用于选择工作方式的两个控制位,无论并行还是串行最好都写成00,并行时的10、01和串行时的10、01、11都是工厂测试用的保留控制字,不慎使用可能导致难以预料的后果。 (2)频率输出原理 AD9850的直接数字合成技术是基于数字分频原理实现频率合成的。器件内部有一个增量可调的累加器,每接收到一个输入脉冲,累加器就增加所设定的增量(由写入的32位频率控制字决定),当累加器溢出时,就输出一临界值,AD9850用一种算法逻辑把累加器输出值转换为接近正弦的量化值,这种算法逻辑实际上就是由高度集成化的存储器查表技术和数字信号处理(DSP)技术来完成的。随后AD9850将量化值送内部的D/A转换器输出正弦波形,若再辅以外部电路(低通滤波)送内部比较器,即可输出标准的方波信号。其输出频率out由输入参考时钟和32位频率控制字决定,即AD9850的频率控制字为: (2-1)其中FTW为频率控制字, 为要输出的正弦的频率, 为系统时钟的频率,由晶振产生。由于AD9850是由10位D/A转换器输出正弦波信号,因此其输出频率最大值不能超过参考输入频率的1/2。当作为时钟源时,考虑到衰减问题,其输出频率的最佳值限制在参考输入频率的33%以下。器件内部设有最小时钟门限,当输入频率低于1MHz时,芯片将自动实现电源判断。 AD9850原理,中国电子网 ,2008-1-132.2.4 AD9850应用与设计AD9850主要应用于频率合成以及数字通信领域,但由于其具有分频特性且易于控制,这里,我们把它应用于信号发生器。(1)AD9850的应用 由于AD9851是贴片式的体积非常小,引脚排列比较密,焊接时必须小心,还要防静电,焊接不好就很容易把芯片给烧坏。还有在使用中数据线、电源等接反或接错都很容易损坏芯片。所以在AD9851外围采用了电源、输入、输出、数据线的保护电路。为了不受外界干扰,还应添加了滤波电路,显得整个电路完美。(2)AD9850的硬件设计采用AT89C51作为CPU与AD9850并行接口方式对时钟频率进行分频控制,其中先用一片锁存器来锁存控制字,用P3.2、P3.4模拟控制字写入时钟来控制数据的定入。控制字写入后,AD9850即由内部D/A转换器输出正弦波。电路设计时,对时钟信号的质量要求比较高,即时钟信号的上升沿和下降沿应无大的尖峰和凹坑,时钟信号必须用地线屏蔽。另外,给AD9850的时钟信号不能低于1 MHz,低于这个数值时,芯片将自动进入休眠状态;当高于此频率时,系统则恢复正常。最后还要考虑设计良好的去耦电路,去耦电容尽可能靠近器件,并注意良好接地,模拟地和数字地一定要分开等。3 系统的总体设计3.1 方案论证方案一:使用传统的锁相频率合成的方法。要求产生1KHz到10MHz的信号,用锁相环直接产生这么宽的范围很困难,所以先产生50.001M到60M的可调信号,然后把此信号与一个50M的本振混频,得到需要的频率。此方法产生的频率稳定度高,但波形频谱做纯很困难,幅度也不恒定,实现也麻烦。方案二:采用专用DDS芯片产生正弦波。优点:软件设计,控制方便,电路易实现,容易直接达到题目要求的频率范围和步进值,且稳定性和上法一样,频谱纯净,幅度恒定,失真小。综上所述,选择方案二用专用DDS芯片AD9850产生正弦波。AD9850是采用DDS技术、高度集成化的器件,当它在串行工作方式时,有3根控制线与单片机相连。AD9850的频率控制字前面公式(2-1)所述: (2-1)其中FTW为频率控制字, 为要输出的正弦的频率, 为系统时钟的频率,由晶振产生。 综合考虑,由于使用单片机设计灵活性更强、用途更宽广,所以本设计采用方二。3.2 设计原理框图 如图3-1所示,系统采用AT89S52单片机控制,+5V电源供电,行列式键盘采用低功耗控制电路控制,同时由单片机发送频率控制信号及显示控制信号。 电源+5V MAX7219显示模块51 单片机中断键盘AD9850信号发生模块图3-1 函数信号发生器电路原理框图4 系统硬件设计硬件设计包含单片机AT89S52 ISP下载线电路设计和函数信号发生器的电路设计。AT89S52 ISP下载线主要由AT89S52单片机,+5V电源,芯片74HC373,并口DB 25,各自外围电路等组成。函数信号发生器的电路主要由AT89S52单片机,+5V电源电路,中断键盘电路,MAX7219显示电路、AD9850函数信号发生电路,滤波电路等部分组成。4.1 电源电路 系统为方便取电,电源由9V 2A的电源适配器(俗称变压器) 、滤波电容、LM7085稳压芯片及电源指示灯组成, 变压器先经滤波电容,再进集成稳压芯片LM7805进行稳压,其输出再经滤波电容的滤波,尽可能的滤去交流部分的杂波,使其成为标准+5V电源, 再由用一个发光二极管指示灯指示电源状态。图4-1 系统电源电路4.2 AT89S52单片机最小系统 4.2.1 AT89S52的资源参数本设计中采用了美国ATMEL公司的AT89S52单片机,AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器,主要功能表特性见表4-1。此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口, 外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。表4-1 主要功能表特性:兼容MCS-51指令系统8k可反复擦写(>1000次)ISP Flash ROM32个双向I/O口4.5-5.5V工作电压3个16位可编程定时/计数器时钟频率0-33MHz全双工UART串行中断口线256x8bit内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针4.2.2 最小系统与I/O连接情况在本设计中,P1接口作为键盘扫描接口,P3.2(即外部中断INT0)作为键盘的中断启动接口;P3.5、P3.6、P3.7接口用来控制MAX7219显示模块进而驱动LED数码显示管显示;P2.5、P2.6、P2.7三个接口用来控制AD9850函数信号发生模块(即发送所需的频率控制字)。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。 单片机原理及接口技术,李全利、迟荣强,2004-2AT89S52最小系统图如图4-2所示:图4-2 AT89S52最小系统原理图4.3 中断键盘设计电路中断键盘电路,采用八个微动开关按键与一个八与门芯片CD4068连接,CD4068实现各个按键的数字逻辑计算,即当有任意一个按键按下时,此时为低电平,通过八与运算,从CD4068的W出口也为低电平,进而触发单片机AT89S52的外部中断INT0,进入中断处理程序。在中断处理程序中,按键去抖动采用软件去抖,当单片机检测到有键按下时,先延时10MS,然后再检测按键的状态,若仍是低电平状态(即闭合状态),则认为真正有键按下,此时对P1各I/O进行扫描,寻找是哪一个按键按下,进行相应的键处理;若为高电平,则认定为抖动,放弃扫描,退出中断。中断键盘电路如图4-3所示:图4-3 中断键盘设计电路4.4 MAX7219显示电路 在传统的显示驱动电路中,每一个LED显示器需要一个译码芯片,而每一段又需要一个限流电阻,在显示信息量较大时,电路变得复杂而且也会占用系统很多资源。MAX7219芯片是美国MAXIM公司出品的新型紧凑型、可编程共阴极LED数码管的驱动芯片,它集BCD译码器、多路扫描器、段驱动和位驱动电路于一体, 内含8×8位双口静态SRAM ,可保存8位LED数据。MAX7219芯片的外围接口电路简单,使用方便,仅需三根I/O口线便可驱动多块LED进行动态显示。MAX7219只需一个外部电阻来设置所有LED的段电流,不仅可以克服常规的动态显示亮度不够、闪烁等缺点,而且大大简化硬件电路并减少软件的工作量,因此MAX7219芯片成为单片机应用系统中首选的LED显示接口电路。MAX7219是24脚DIP塑料封装元件,MAX7219芯片与AT89S52单片机及共阴极四位一体的数码显示管LDS-5465AH的接口电路简单,原理图如图4-4所示。AT89S52的引脚P3.5、P3.6、P3.7分别与MAX7219的DIN数据输入管脚、LOAD锁定输入管脚、CLK时钟输入管脚相连。MAX7219可通过V+ 管脚和ISET管脚之间所接的外部电阻RSET来控制显示的亮度,RSET电阻越大段电流越小,硬件电路中RSET可采用10K。为了减少外界的干扰,应在MAX7219的V+ 管脚和GND管脚之间加上一个0.1F的涤纶电容和一个10F的钽电容。 图4-4 MAX7219显示电路原理图用MAX7219作为显示驱动电路,只需三根端口线,且软件驱动编程简单,控制方式灵活,使显示部分的电路和编程大为简化。4.5 AD9850函数信号发生模块4.5.1 AD9850模块主电路AD9850是AD公司生产的最高时钟为125 MHz、采用先进的CMOS技术的直接频率合成器,主要由可编程DDS系统、高性能模数变换器(DAC)和高速比较器3部分构成,能实现全数字编程控制的频率合成。AD9850有40 位控制字,32 位用于频率控制(低32位),5 位用于相位控制,1 位用于电源休眠( Powerdown) 控制,2位用于选择工作方式。这40 位控制字可通过并行或串行方式输入到AD9850 。由于并行装入方式需占用单片机多个I/O,为节约资源,本系统采用串行装入方式。在每一个WCLK时钟上升沿,由控制字输入口的第8位(管脚25)移入1位控制位(低位先移入),40个WCLK时钟后,FQUD脉冲的上升沿更新输出频率。图4-5 串行控制字装入时序 图4-6为AD9850函数信号发生模块主电路原理图。模块中,单片机与AD9850采用串行连接方式,即单片机AT89S52的P2.5、P2.6、P2.7分别与AD9850的D7(串行控制字输入口中)、WCLK(控制字装入时钟)、FQUD(频率更新控制)相连接。图4-6 AD9850函数信号发生模块主电路原理图4.5.2 AD9850模块时钟电路模块的时钟频率由外部有源晶振100M提供,有源晶振的接法如图4-7所示,因此由公式(2-1) 推出我们所需函数信号的频率所对应的控制字为 (4-1)图4-7 AD9850函数信号发生模块输入时钟图4.5.3 AD9850模块输入输出口定义为了信号的稳定输出,避免外部电流的干扰,以及系统的接口方便和整体布局的简洁,AD9850模块单独采用两面PCB板,电源和地线分两面走线和敷铜,后整个模块统一输入与输出口,其输入输出口定义如图4-8所示:图4-8 AD9850函数信号发生模块输入输出接口图4.6 AT89S52单片机ISP下载线4.6.1 ISP简介ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程,ISP技术是未来发展方向。 ISP下载部份支持的芯片列表: 51系列单片机: AT89S51,AT89S52,AT89S53,AT89S8252,AT89LS51,AT89LS52,AT89LS53,AT89LS8252 4.6.2 AT89S52单片机ISP下载线原理AT89S52引脚图的P1.5、P1.6、P1.7的第二功能分别为MOSI(主机发送从机接收)、MISO(主机接收从机发送)、SCK(时钟脉冲信号由主机发送)。那什么时候才能启用第二功能呢?就是当复位脚RST接高电平一直处于复位状态时就可用第二功能了,所以在ISP下载板上有一条线接至AT89S52的第9脚(RST)上,就是在写程序前先发一个高电平将S51的RST脚设为复位态,然后就可通过MOSI、MISO向S51内写程序了。具体原理图如图4-9所示图4-9 单片机AT89S52 ISP下载线原理图图中74HC373为三态输出的八D透明锁存器。当三态允许控制端 OE 为低电平时,Q0Q7 为正常逻辑状态,可用来驱动负载或总线;当 OE 为高电平时,Q0Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,Q随数据D而变。当LE为低电平时,Q被锁存在已建立的数据电平;当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。之所以要用到74HC373,是因为提供足够的驱动电流;保护并口;利用第三态(即高阻态)确保在下载完程序后释放总线,不影响单片机ISP端口的其他功能的正常使用。4.6.3 电脑并口DB25引脚定义说明1 选通 (STROBE低电平) 10 确认 (ACKNLG低电平)2 数据位0 (DATAO) 11 忙 (BUSY)3 数据位1 (DATA1) 12 却纸 (PE)4 数据位2 (DATA2) 13 选择 (SLCT)5 数据位3 (DATA3) 14 自动换行 (AUTOFEED低电平)6 数据位4 (DATA4) 15 错误观点(ERROR低电平)7 数据位5 (DATA5) 16 初始化成(INIT低电平)8 数据位6 (DATA6) 17 选择输入 (SLCTIN低电平)9 数据位7 (DATA7) 18-25 地线路(GND)硬件做好后,我们最终的目的只是用它来烧录单片机AT89S52的程序,所以我们用网络上流行的isplay 1.5来进行烧录,关于其使用方法将在后续详细介绍。4.7 小结 在接到毕业设计题目-基于单片机的函数信号发生器时,我考虑了很久,清楚知道系统硬件设计是本次设计的首先要解决的问题,经过到图书馆查很多相关的资料,经过张老师的指导,而且我对单片机的爱好,最后确定了这个单片机直接控制DDS专业函数信号发生芯片的方案。方案定下来之后,我进一步分析它的可行性,通过进一步的专项资料查找,我进一步优化了系统的设计,包括元器件的选择也做了详细的筛选,最后才确立了最终方案。方案确定后,我便开始采购元器件,着手焊接电路板,边焊接边测试电路的导通情况。焊好的部分电路我都会采用小软件烧入测试的方式检验电路板各个端点电气性是否满足设计要求。经过自己的努力,我成功的焊接好了各个元器件,为后面的软件总体调试打下了坚实的基础。5 系统软件设计5.1 单片机MCS-51系列简介 关于单片机MCS-51的编程目前比较多用的是汇编和C语言:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。 因此本设计采用C语言编写。 本设计采用Keil C51软件进行编程,Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用,给我在设计中带来很大的方便。5.2 MAX7219模块驱动程序MAX7219是共阴极显示驱动器,DIN为串行数据输入端,在CLK的上