《实用信号发生器的设计-毕业设计.docx》由会员分享,可在线阅读,更多相关《实用信号发生器的设计-毕业设计.docx(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 实用信号发生器的设计摘要信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验。常用的波形发生器多数采用分立元件组成,不但电路复杂、价格昂贵,而且仅能产生几种常用的信号波形,还很难精确调节各类参数,不能满足实际需要。因此,本课题利用了AT89S52单片机、DAC0832等元件,通过软、硬结合的方式来实现和开发基于单片机的信号发生器系统。该信号发生器能方便地产生所需信号波形,其频率、波形不但可调,也能满足精度要求。该信号发生器系统是通过一块AT89S52单片机控制两片DAC0832芯片,其中一片是产生波形,另一片是调节波形幅度。这种双通道工作方式,可以让波形和幅度的控制有各
2、自对应的芯片,让其工作起来更加精确。本系统可以产生不同频率、不同幅值的正弦波、方波和三角波,各种波形在频率要求的范围内基本可以保持很好的形状不失真,通过键盘可选择各种波形以及调节各波形的频率和幅度,最后通过液晶显示器把各个波形以及各种参数显示出来。本系统操作起来相当简便,成本也比较低廉。通过实验测试,系统性能优良,参数精确,不失真,波形的幅度范围0V到+5V,频率范围1HZ到1kHZ,能满足低频测试基本需要。关键词:AT89S52单片机,DAC0832,液晶显示器ITHE DESIGN OF PRACTICAL SIGNAL GENERATORABSTRACTSignal generator
3、is a common source of the signal, widely used in electronic circuits, automatic control system and the teaching experiment. The most commonly used by waveform generator composed of discrete components, circuit not only complex, expensive and can only have several common signal waveform, also difficu
4、lt to adjust various parameters, we can not To meet actual needs. Therefore, the issue of the AT89S52 SCM, DAC0832, and other components, through software and hardware combination of development and to achieve the signal generator based on the SCM system. The signal generator can easily produce the
5、required signal waveform, its frequency, not only adjustable waveform, but also to meet the requirements of precision.The signal generator system is controlled by a microcontroller AT89S52 two DAC0832 chip, which is generated a wave, another film to regulate the rate waveform. This dual-channel meth
6、ods of work, allows waveform and the magnitude of the control of all of the corresponding chip, so work together more precise. This system can produce different frequencies, different amplitude of the sine wave, square wave and triangle wave, the wave of various frequencies within the scope of the b
7、asic requirements can not maintain a good shape distortion, through various optional keyboard and adjust the waveform The frequency and magnitude waveform, the final adoption of LCD as well as various parameters of various waveform displayed. The system operated with a simple and relatively low cost
8、. Through the experimental test, excellent performance, precise parameters, no distortion, the wave range 0 V to +5 V, the frequency range 1HZ to 1kHZ, can meet the basic requirements of low frequency tests. KEY WORDS: AT89S52 SCM, DAC0832, LCDII目录摘要(中文)I摘要(外文)II1 绪论11.1信号发生器综述11.1.1信号发生器简介11.1.2信号发
9、生器实现方式11.1.3信号发生器的分类11.2 研究信号发生器的目的及意义21.3本课题的研究现状31.4主要研究内容42 信号发生器系统设计52.1系统方案的比较52.2系统模块方案选择62.2.1控制模块方案选择62.2.2显示方案选择62.2.3键盘方案选择72.2.4 D/A转换方案选择72.3 系统总体方案设计72.4理论分析82.4.1电路的理论计算82.4.2波形产生相关理论113 系统硬件设计133.1单片机最小系统133.1.1单片机的介绍及资源分配133.1.2单片机最小系统及各部分介绍173.2波形产生模块设计203.2.1单片机与DAC0832的接口203.2.2幅度
10、控制部分253.2.3 DAC0832与运放的连接263.3 键盘显示模块设计273.3.1 键盘电路原理273.3.2 键盘接口设计293.3.3 液晶显示电路314 系统软件设计324.1系统软件设计方案324.2系统软件流程图334.3 信号产生子程序流程图354.3.1 正弦波产生354.3.2 三角波产生364.3.3 方波产生374.4 单片机软件开发系统38总结40参考文献41致谢42461 绪论1.1 信号发生器综述1.1.1信号发生器简介信号发生器又称函数发生器、信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,
11、如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的信号发生器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的信号发生器。1.1.2 信号发生器实现方式根据其频率发生方法可分为谐振法和合成法两种。一般的传统发生器都是采用谐振法,即用具有频率选择性的回路来产生正弦振荡,来获得所需频率,也可以根据频率合成技术来获得
12、所需频率,称为频率合成器。函数信号发生器的实现方法通常有以下几种:(1)用分立元件组成的函数发生器:通常的单函数发生器频率可调范围不大,其工作不很稳定,不易调试。 (2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。(3)利用单片集成芯片的函数发生器:能产生多种波形,达到较高的频率,且易于调试。鉴于此,美国美信公司开发了新一代函数信号发生器ICMAX
13、038,它克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。MAX038频率高、精度好,因此它被称为高频精密函数信号发生器IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上,MAX038都是优选的器件。 (4)利用专用直接数字合成DDS芯片的函数发生器:能产生任意波形并达到很高的频率。但成本较高。1.1.3 信号发生器的分类 信号发生器按其信号波形分为四大类:正弦信号发生器。主要用于测量电路和系统的频率特性、非线性失真、增益及灵敏度等。按其不同性能和用途还可细分为低频(20赫至10兆赫)信号发生器、高频(100千赫至300兆赫)信号发生器、微波信号发生器、扫
14、频和程控信号发生器、频率合成式信号发生器等。函数(波形)信号发生器。能产生某些特定的周期性时间函数波形(正弦波、方波、三角波、锯齿波和脉冲波等)信号,频率范围可从几个微赫到几十兆赫。除供通信、仪表和自动控制系统测试用外,还广泛用于其他非电测量领域。脉冲信号发生器。能产生宽度、幅度和重复频率可调的矩形脉冲的发生器,可用以测试线性系统的瞬态响应,或用作模拟信号来测试雷达、多路通信和其他脉冲数字系统的性能。随机信号发生器。通常又分为噪声信号发生器和伪随机信号发生器两类。噪声信号发生器主要用途为:在待测系统中引入一个随机信号,以模拟实际工作条件中的噪声而测定系统性能;外加一个已知噪声信号与系统内部噪声
15、比较以测定噪声系数;用随机信号代替正弦或脉冲信号,以测定系统动态特性等。当用噪声信号进行相关函数测量时,若平均测量时间不够长,会出现统计性误差,可用伪随机信号来解决。1.2 研究信号发生器的目的及意义信号发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。信号发生器是一种经常使用的设备,但由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不够方便、信号
16、失真较大、波形种类过于单一、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等的要求。研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景,以满足军事、民用、教学科研领域对信号源的要求。在现代社会中,自动化技术已经渗透到社会生活的各个领域中,其中,信号发生器是自动化领域中的一个典型应用。例如,在超声波测量技术中,超声换能器(发射换能器和接收换能器) 是超声波检测技术的核心部件。高精度、宽频率范围、高稳定性的激励源对发射换能器及超声检测系统性能的改善和提高起着至关重要的作用。传统的波形发生器通常由晶体管、运放IC 等分离元件制成。与此
17、相比,基于集成芯片的波形发生器具有高频信号输出、波形稳定、控制简便等特点。因为现代的自动化控制中基本都会利用信号来控制设备的工作。利用信号的产生进行仪器的控制已经是自动控制中的一个重要的手段,那么一个幅度,频率,占空比以及波形可调的信号发生器的设计和完成更具有使用价值。使用单片机设计的多功能信号发生器,不仅减少了器件,简化了电路,节约了成本,更使得系统稳定节能,方便快捷地输出多种低频信号。这种结构简单,成本低廉但是性能优良的信号发生装置已经越来越广泛地应用在现代化控制领域的各个方面。无论是工业,民用,航空,军事还是商业领域都有信号发生装置的设计应用产品。本课题的目的是充分运用大学期间所学的专业
18、知识,考察现有信号发生器的优缺点,设计一个频率和幅值可调的信号发生器。通过该课题的设计以掌握单片机系统的软硬件开发过程和基本信号的产生原理、测量及误差分析方法,同时掌握信号发生器系统的设计流程;培养我们综合运用所学的基本知识、基本理论和基本技能的能力,学习解决一般工程技术和有关专业问题的能力,学习工程设计和科学研究的基本方法,完成对所学知识的综合训练。通过这个信号发生器的设计,不但可以融会贯通以前所学的专业知识对以后学习和工作也会有很大帮助的。1.3 本课题的研究现状过去由于频率很低,应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据
19、的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic, Visual C等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。函数发生器既可以构成独立的信号源,也可以是高性能网络分析仪、频谱仪及其它自动测试设备的组成部分。函数发
20、生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精密信号源及扫频源,可使相应系统的检测过程大大简化,降低检测费用并极大地提高检测精度。美国安捷伦生产的33250A型函数/任意波形发生器可以产生稳定、精确和低失真的任意波形,其输出频率范围为1Hz80MHz,而输出幅度为10mVpp10Vpp;该公司生产的8648D射频信号发生器的频率覆盖范围更可高达9kHz4GHz。国产SG1060数字合成信号发生器能双通道同时输出高分辨率、高精度、高可靠性的各种波形,频率覆盖范围为1Hz60MHz;国产S1000型数字合成扫频信号发生器通过采用新技术、新器件实现高精度、宽频带的扫频源,同时应用
21、DDS和锁相技术,使频率范围从1MHz1024MHz能精确地分辨到100Hz,它既是一台高精度的扫频源,同时也是一台高精度的标准信号发生器。还有很多其它类型的信号发生器,他们各有各的优点,但是函数发生器总的趋势将向着宽频率覆盖、高频率精度、多功能、多用途、自动化和智能化方向发展。目前,市场上的信号发生器多种多样,一般按频带分为以下几种:超高频:频率范围1MHz以上,可达几十MHZ。高频:几百KHZ到几MHZ。低频:频率范围为几十HZ到几百KHZ。超低频:频率范围为零点几赫兹到几百赫兹。超高频信号发生器,产生波形一般用LC振荡电路。高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,即RC振荡
22、电路,通过改变电容和电阻值,改变频率。用以上原理设计的信号发生器,其输出波形一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格也比较贵,一般在几百元左右。在实际应用中,超低频波和高频波一般是不用的,一般用中频,即几十HZ到几十KHZ。用单片机89S52,加上一片DAC0832,就可以做成一个简单的信号发生器,其频率受单片机运行的程序的控制。我们可以把产生各种波形的程序,写在ROM中,装入本机,按用户的选择,运行不同的程序,产生不同的波形。再在DAC0808输出端加上一些电压变换电路,就完成了一个频率、幅值、零点均可调的多功能信号发生器的设计。这样的机器体积小,价格便宜,耗电少,频率适中,便
23、于携带。1.4 主要研究内容(1)理论基础分析。了解波形发生器的相关理论,包括几种常用波形,如正弦波、方波等,然后介绍了波形发生器的主要方案及原理。(2)硬件系统设计。主要包括以下几个模块:串口电路;键盘、LED显示电路;单片机系统;DAC芯片和放大电路设计。 (3)软件系统设计。主要有:系统总体流程设计;串口程序设计;单片机程序设计;键盘响应程序设计;LED显示程序设计;DAC控制程序设计。(4)系统仿真调试。通过计算机进行模拟仿真调试。2 信号发生器系统设计2.1系统方案的比较信号发生器的设计方案可用多种方案来完成。在设计前对各种方案进行了比较:方案一:采用函数信号发生器ICL8038集成
24、模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分器、比较器等构成正弦、矩形、三角等波形发生器。这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。方案三:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。使用锁相环通过分频运算实现频率的步
25、进,这种方案频率稳定度高,但程控比较困难,而且步进范围过大,鉴于锁相环技术比较复杂不易实现,没有采用这种方案。方案四:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。方案五:利用AT89S52单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示波形的种类及频率。使用单片机的定时器设置定时时间,每半个周期对I/O 口取反一次,从而实现频率输
26、出。这种方案虽然在高频频段误差比较大,但是编程简单控制容易。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。使用专用函数发生电路,如ICL8038 或MAX038,通过D/A转换调整函数发生器控制电压实现频率的控制,这种方案可以使频率连续可调,省却了波形转换电路,但控制电压与频率的变化不是严格的线性关系,如果不加频率负反馈则频率无法稳定准确,加上频率负反馈将使电路大大复杂,稳定度也会下降,而且如果要实现比较大的带宽,就需要不断更换振荡电容,电路复杂程度进一步增加。为避免调试困难,没有采用这种方案。综合比较,方案五既可满足毕业设计的基本要求又能充分发挥其优势,电路简单,
27、易控制,性价比较高,且系统扩展、系统配置灵活,容易构成各种规模的应用系统,单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。所以采用方案五。2.2 系统模块方案选择该信号发生器有以下几部分组成:(1)控制模块(2)按键及其显示模块(3)D/A转换模块三部分组成。2.2.1控制模块方案选择方案一:用单片AT89S52作为系统的主控核心。AT89S52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机。单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有
28、较强的指令寻址和运算功能等优点。且单片机功耗低,价格低廉的优点。方案二:用FPGA等可编程器件作为控制模块。FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。FPGA在掉电后会丢失数据上电后须进行一次配置,因此FPGA在应用中需要配置电路和一定的程序。并且FPGA作为数字逻辑器件,竞争、冒险是数字逻辑器件较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。方案三:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部
29、件和其他数字外设及功能部件,而且执行速度快。方案选择:在此系统中,采用单片机作为控制器比采用FPGA实现更简便,且单片机性价比更高,故选择单片机。方案三中C8051F005芯片系统内部结构复杂,不易控制,芯片成本高,价格较贵,对于本系统而言利用率低,而AT89S52芯片比较常用,简单易控制,成本低,性能稳定,故采用方案一。2.2.2 显示方案选择 方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但占用系统资源较多,并且效
30、率低,要显示的内容多,而且数码管不能显示字母。 方案二:采用LCD液晶显示器。其功率小,效果明显,显示编程容易控制,可以显示字母。以上两种方案综合考虑,选择方案二。2.2.3 键盘方案选择方案一:采用矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。方案二:编码式键盘。编码式键盘的按键触点接于74LS148芯片。当键盘上没有闭合时,所有键都断开,当某一键闭合时,该键对应的编码由74LS148输出。方案三:为了提高单片机的资源利用率和运行的效率,按键显示部分我们直接使
31、用zlg7289扩展键盘,键盘与单片机连接。zlg7289芯片与单片机之间通信方便,而且由zlg7289对键盘进行自动扫描,可以去抖动,充分的提高了单片机的工作效率。在次系统中,我们直接采用zlg7289扩展键盘实现更简便,确定选择方案三。2.2.4 D/A转换方案选择单片机输出的是数字信号,必须通过D/A转换后才能变成模拟信号。方案一:采用D/A转换器AD7543。AD7543是一种串行的D/A转换器,与单片机之间的连线少,布线方便,而且又是12位的D/A转换器,精度高。但串行数据传输速度慢,当频率较高时,必须减少每周期输出的点数,这将会导致阶梯现象更加明显,因此,此方案不宜使用。方案二:采
32、用DAC0832。这是8位的并行D/A转换器,转换速度快。方案三:采用2片DAC0832,如图2-1。由其中一芯片的输出电压作为另一芯片的参考电压,这样就可以方便的控制最大输出电压。图2-1 2片D/A与单片机的接口方案若采用方案二,在输出电压较低的情况下,比如为1V时,输出的最大电压只有参考电压的1/5,这将会使精度降低,而方案三刚好可以解决这个问题,因此,本系统选择了方案三。 2.3 系统总体方案设计基本原理:信号发生器采用的是直接数字合成的方法, 单片机向DAC0832发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进行编码,得到的数字量存入各个波形表,执行程
33、序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则DAC 0832输出N个样值点后,样值点形成运动轨迹,即一个周期。重复输出N个点,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率,这样就控制了输出的波形及其幅值和频率。将波形数据存储于存储器中,而后用可程控的时钟信号为存储器提供扫描地址,与每个地址相对应的数据则代表波形在等间隔取样点上的幅度值。数据被送至DAC,从而产生一个正比于其数字编码的电压值,每个电压值保持一个时钟周期,直至新的数据送至DAC,经数模转换后得到所需要的模拟电压波形。本系统由电源、单片机89S52
34、、显示部分、键盘部分、2片8位D/A转换芯片DAC0832组成的数模转换部分、放大及幅度调节、波形信号输出部分组成。波形的产生是通过AT89S52 执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。当操作者根据要求对键盘进行操作,然后单片机处理器部分通过软件编程来选择各种波形、幅值电压和频率,并让显示部分显示出波形种类和频率大小,实现正弦波,方波,三角波,锯齿波这四种常见波形的产生及显示相互切换的功能。其中电源部分是保证对各个部分的供电。其结构框图如图2-2所示。 图2-2 系统总体结构框图2.4 理论分析2.4.1 电路的理论计
35、算由图2-3可知到U5的输出将作为DAC0832(2)的基准电压。假设运放U6的输入为;DAC0832(2)的内部的电阻为。设U5的输入电压为;DAC0832(2)的内部的电阻为。下面进行讨论计算:(1) U6为一个反相比例器:图 2-3 信号输出放大电路(2) U5也为一个反相比例器:这是U4的输入为,记为V由于,这是U4实际上为为一个反相跟随器,即:所以:(3)本设计中的运放的连接的第二部分参考图3-11。对于本运放组成的电路分析采用叠加法:设U2的输出为。当电源全部接地时,有如下:此时的运放实际为一个反相比例器: 当-12V和接地时: 当12V和接地时:所以综上所述:为,三者之和。即:下
36、面对的结果作一些辅助说明:特例:当时以下进行代入数据的具体的分析:于是对于将图2-3与图3-11连在一起时,波形输出与调节部分的理论计算DAC转换部分电路图如图所示当单片机分别向DAC0832(1)和DAC0832(2)输入数据和时 (2-1) (2-2) (2-3)其中,代入以上各式,得 (2-4)或着: (2-5)由(2-4)式可知,当在 0255 之间变化时,可在之间变化,即输出信号的峰峰值可由控制。 该电路由102电位器串接2个1电阻实现调节直流偏移,电位器触头在最右端和最左端时,电位器输出的电压分别为-5v和+5v,电位器的电压与通过一个加法器后,实现直流偏移的调节。2.4.2 波形
37、产生相关理论DAC0832是8位的D/A转换器件,其工作电压是05V,当输入00数字量的时候,输出为0V电压;当输入80数字量的时候,输出为2.5V电压;当输入FF数字量的时候,输出为5V电压。单片机的I/O输出均为+5 V的TTL电平,因此产生的正弦波幅值为+2.5 V。将一个周期内的正弦波形等分为256份,那么第1点的角度为0,对应的正弦值为2.5sin0;第2点的角度为360/256,对应的正弦值为2.5sin (360/256 ) ,如此计算下去,将这些模拟量正弦值都转换为单极性方式下的数字量,得到一张按照点号顺序排列的正弦波波形数据表。而每次送到74LS373的八位数字量是根据查正弦
38、波形数据表格而得到。其实在计算正弦波形数据的时候,并不需要算出整个02区间的每一个值,而只需计算出0中的值就行,其他区间的值都可以通过对0中的值取不同的变换。比如的值可以和0值一一对应,而2的值可以对0区间的值取反得到。计算值可以用C语言编程得到。幅度公式为Y=2.51+sin() (N=0,1,264)相应的Y值数字化后的递增量=0.0196那么每一个点相对于起一个点的递增率为A= (Y2当前的点,Y1为前一个点)所以每一个点的数字量与递增率A成一一对应关系。3 系统硬件设计3.1 单片机最小系统3.1.1 单片机的介绍及资源分配(1)AT89S52的引脚图如图3-1所示 图3-1 AT89
39、S52引脚图AT89S52单片机是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。(2)管脚说明 低频信号发生器采用AT89S52单片机作为控制核心,其内部组成包括:一个8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和
40、微调电容需要外接;片内数据存储器RAM低128字节,存放读/写数据;高128字节被特殊功能寄存器占用;片内程序存储器4KB ROM;四个8位并行I/O(输入/输出)接口P3 -P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口。VCC:供电电压。GND:接地。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存
41、允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信
42、号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。89S52 单片机外部有32个端口可供用户使用,其功能如下:表3-1 89S52并行I/O接口端口引脚位置第一功能第二功能 符号 功能符号功能P039-32P0.0-P0.7通用I/0口AD0-AD7地址数据总线P11-8P
43、1.0-P1.7通用I/0口P221-28P2.0-P2.7通用I/0口A8-A15地址总线(高位)P310P3.0通用I/0口RXD串行通信发送口11P3.1TXD串行通信接收口12P3.2INT0外部中断013P3.3INT1外部中断114P3.4T0计数器0输入端口15P3.5T1计数器1输入端口16P3.6WR外部存储器写功能17P3.7RD外部存储器读功能P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当F
44、IASH进行校验时,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位地址外部数据存储器
45、进行存取时,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
46、.3 /INT1(外中断1)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)(3)AT89S52的晶振及其连接方法 CPU工作时都必须有一个时钟脉冲。有两种方式可以向89S52提供时钟脉冲:一是外部时钟方式,即使用外部电路向89S52提供时钟脉冲,见图3-2(a);二是内部时钟方式,AT89S52内部有一个高增益的反相放大器,通过XTAL1和XTAL2引脚外接石晶振子、微调电容构成振荡器,该振荡器发出的脉冲直接送入内部时钟电路,即使用晶振由89S52内部电路产生时钟脉冲。一般常用第二种方法,其电路见图3-2(b)。J一般为石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。一般来说,使用石英晶体时,C1=C2=30(10)pF,晶体的振荡频率范围为112MHz。使用陶瓷滤波器时,C1=C2=40(10)pF。89S52XTAL2XTAL189S52XTAL2XTAL1悬空外部时钟信号C1C2J(a)外部时钟方式(b)内部时钟方式图3-2 89S52的时钟电路(4)AT89S52的复位 复位是单片机的初始化操作,其主要的作用是把PC始化为0000H