《基于单片机的波形发生器.doc》由会员分享,可在线阅读,更多相关《基于单片机的波形发生器.doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南科技大学本科毕业设计(论文)基于单片机的波形发生器摘 要随着电子技术的发展,电子产品越来越走进人们的生活,在电子产品的生产应用和调试检验中经常需要产生一定频率的仿真信号用于驱动仪表或仪器,同时,在教学实验中也有很多的应用。所以,从实用性、可靠性与经济性上考虑,设计一种基于单片机新型的、性能稳定的波形发生器是十分必要的。本论文详细的阐述了基于单片机的波形发生器的设计,着重就硬件电路以与应用软件的设计进行了研究,对总体设计思路进行了阐述,介绍了芯片的选择,外围电路设计与主要流程图。在熟悉单片机和数模转换芯片工作原理和应用方法的基础上,设计了各个模块的接口电路,并分析了各模块的主要功能。在硬件电
2、路的基础上对个部分对应的软件也进行了设计。本文设计的波形发生器可以产生多种波形,成本低廉且操作简洁方便。波形由软件产生各种数据再经过D/A转换后输出,除了能产生所要求的正弦、三角、方波、锯齿等多种波形外,并可根据实际情况的需要在波形存储器中写入不同的波形可以随时添加。并有键盘输入和显示,显示部分采用LED设计,主要显示输出频率,此方案产生的最大频率大约10KHz。可满足精度误差要求达到5 %的,可满足多种低频信号源的使用场所。在各大专院校与其他行业具有很广泛的应用前景和推广价值。关键词:单片机,波形发生器,数模转换,波形存储,频率THE SCM WAVEFORM GENERATORABSTRA
3、CTAlong with electronic technologys development,the electronic products enter peoples life more and more,the production of electronic products testing and debugging often need to have a certain frequency signal for the simulation-driven instruments or equipment,simultaneously, also has many applicat
4、ions in the teaching experiment.Therefore, considered the usability, the reliability and the efficiency , designs a new kind wave generator which is based on the microcontroller and have the stable performance is very necessary. This paper elaborats on the details of the Single Chip Microcontroller
5、waveform generators design,focused on hardware and software for the design.And the overall design ideas were expounded.IT introduced the chip choice, the peripheral circuit design and the main flow chart.Based on the understand of microcontroller and D/A converter chip,I design the interface circuit
6、 and analyse the main functions of each module.On the hardware circuits on the basis of the corresponding parts of the software have also carried out design. In this paper, the design of the waveform generator can produce a variety of wave, low-cost operation simple and convenient.Waveform data gene
7、rated by the software,then through another D / A converter outputs.In addition to produce the required sine, triangle, square and sawtooth waveform,according to actual needs this waveform generator also can produce other waveform.And a keyboard input and display,the display adopt LED, main display o
8、utput frequency.The maximum frequency of this design is aboat 10 KHz.To meet the requirements of precision of error of 5 percent,and to meet a variety of sources to use low-frequency signals places.Have the very widespread application prospect and promoted value in various universities, colleges and
9、 institutes and other professionsKEY WORDS:Single Chip Microcontroller,Waveform Generator,D/A,Amplitude,Frequency39 / 45目录前言1第1章绪论31.1 课题的研究目的和意义31.2 多种波形发生器国外现状31.3 主要研究容4第2章 总体系统方案设计62.1 波形发生方案选择62.2 波形发生器整体设计72.2.1 主要设计思想72.2.2 系统组成72.2.3 系统功能8第3章 系统硬件设计93.1 中央处理模块93.1.1 控制芯片选择93.1.2 AT89C51单片机结构
10、特点93.1.3 系统外围电路设计143.2 数模转换模块163.2.1 芯片选择163.2.2 DAC0832结构163.2.3 DAC0832应用电路183.3 波形存储模块193.4 键盘模块213.5 显示模块23第4章 软件设计244.1 软件调试环境简介244.2 程序设计244.2.1 主程序设计254.2.2 键盘程序设计26结论27参考文献28致30附录31前言在现代社会,电子产品越来越走进人们的生活,并在社会生活的各个方面得到普遍应用,在电子产品的生产应用和调试检验中经常需要产生一定频率的仿真信号用于驱动仪表或仪器。在电子技术领域中,许多电子系统与元器件的电气性能,只有在一
11、定的电信号作用下才能显露出来,因此信号源在电子测量技术中是极其重要的,它是构建测量系统的重要组成部分。信号源作为现代电子产品中的重要一员,必须满足高精度、高速度、高分辨率等要求。另外,不同的应用系统所要求的信号波形是不同的,因此设计一种通用性较强的频率可调的多种波形信号发生起是十分必要的。所以应运而生的是基于各种不同原理的信号发生器。结构简单,成本低廉但是性能优良的波形发生装置已经越来越广泛地应用在现代化控制领域的各个方面。无论是工业,民用,航空,军事还是商业领域都有信号发生装置的设计应用产品。而且波形发生器也广泛应用于各大专院校实验室以与各科研单位。技术的发展应是面向人性化、智能化、经济化为
12、一体的发展目标。本课题正是以控制信号发生为出发点,对单片机作为中央控制器,直接由软件产生波形信号的输出,并可通过软件的修改,达到输出任意波形,用于测试电路,可以用来给定时器提供波形,使电路能稳定工作的智能化波形发生器模型作较详细的介绍。本设计以单片机为应用核心,通过单片机控制各种外围芯片与电路,重点是51系列单片机和DA转换器、分频器、波形存储器、以与键盘显示等应用。这个波形发生器具有以下一些功能(1) 具有产生正弦波、方波、三角波和锯齿波几种种周期性波形的功能。(3) 具有波形存储的功能。(5) 输出波形幅度围05V(峰-峰值)。(6) 具有显示频率(周期)功能。(7) 用键盘或其他输入装置
13、产生任意波形。 由于此种信号源是基于单片机,所以可以在不修改硬件结构的情况下,通过软件的修改来实现信号源功能的扩充,从而节省了成本。具有频率合成精度高,性能稳定可靠,转换速度快,通用性强,兼容性好,使用方便等优点,能够满足各种用户在不同场合的使用要求。第1章 绪论1.1 课题的研究目的和意义 当今世界在以电子信息技术为前提下推动了社会跨跃式的进步,科学技术的飞速发展日新月异带动了各国生产力的大规模提高。由此可见科技已成为各国竞争的核心,尤其是电子信息技术更显得尤为重要,在国民生产各部门电子信息技术得到了广泛的应用。电子产品也越来越走进人们的生活,并在社会生活的各个方面得到普遍应用,作为一个现代
14、人无时无刻不在与电子产品打交道。那么,在电子产品的生产应用和调试检验中经常需要一种仪器产生一定频率的仿真信号用于驱动仪表或仪器,这就是波形发生器,波形发生器是一种常用的信号源,广泛用于科学研究、生产实践和教学实践等领域。如电子产品的设计和测试、汽车制造、生物医药、传感器仿真、制造模型等。另外,许多电子系统与元器件的电气性能,只有在一定的电信号作用下才能显露出来,由此可以看出信号源在电子信息技术中是极其重要的,它是构建现代电子信息系统的重要组成部分。为了满足科学研究、生产实践和教学实践的需要,我们觉得有必要设计出一种经济、实用的波形发生器,根据要求可以产生正弦波、方波、三角波、锯齿波等多种波形,
15、波形频率和幅值均可调,可显示波形频率,用键盘可对波形的频率和幅值都可进行步进调节,便于程控,满足波形发生所需的高精度、高熟读、高分辨率的要求。1.2 多种波形发生器国外现状结构简单,成本低廉但是性能优良的波形发生装置已经越来越广泛地应用在现代化控制领域的各个方面。无论是工业,民用,航空,军事还是商业领域都有信号发生装置的设计应用产品。而且波形发生器也广泛应用于各大专院校实验室以与各科研单位。传统的波形发生器采用模拟电子技术由分离元件构成振荡电路和整形电路,产生波形。他在电子通信、通信、工业等领域曾发挥了很大的作用。但是采用这种技术的波形发生器电路结构复杂、体积庞大、稳定性和准确度较差而且仅能产
16、生几种简单波形,难易产生较为复杂的波形信号,且可控性不好,如要改变频率和幅值比较困难。目前常用的波形发生器主要是两种:低频正弦波发生器和通用多波形发生器。前者只能产生正弦波调节围不大,但是信号稳定,失真度低,主要用在对波形有很高要求的地方;后者能产生正弦波、方波和三角波,也有的能产生三种以上的波形。这两种波形发生器都比较昂贵,适用于一些要求较高的产业中,比如,在波形发生领域,常用的波形发生器多数采用分立元件组成,不但电路复杂而且价格昂贵。直接数字合成 ( Direct Digital Synthesis DDS ) 技术虽已出现,并可产生高频纯净的信号,但因价格比较昂贵所以不适合在学校使用,而
17、且仅能产生一种常用的信号波形正弦波,还很少有可调节两路输出波形之间相位差的波形发生器,不能满足实际需要。而在我们的普通应用和日常实验中有的要求产生更多的波形或是对波形的要求不是太高,那么基于这种需求,我们设计的波形发生器,以单片机系统为核心,能够产生正弦波、方波、三角波以与锯齿波,波形频率和幅度可调,正弦波频率可达10kHz 以上,具有波形存储功能,并能够实时地显示输出波形的类型、重复频率和幅度,能满足一般的实验与演示的需要,并且成本很低,操作简洁方便。1.3 主要研究容本课题主要研究基于单片机的波形发生器设计,主要研究容为:(1) 熟悉AT89C51单片机的应用和接口电路设计要求;(2) 熟
18、悉模数转换芯片DAC0832的应用;(3) 根据要求进行系统方案的分析和设计;(4) 熟悉PROTEL绘图工具,根据单片机和数模转换芯片的特点设计各功能模块的硬件电路;(5) 熟悉软件开发环境并完成各模块的程序调试工作。第2章 总体系统方案设计整个波形发生器系统的设计分为硬件设计和软件设计两个方面。系统硬件的设计是否合理,极大的影响着软件的实现和系统的性能和使用,对整个系统设计来说非常关键。本章主要阐述系统硬件的设计方案。2.1 波形发生方案选择方案一:由硬件产生。由硬件产生的信号没有阶梯,波形光滑。如果采用压控振荡器,就可单片来控制信号的频率,能过电子开关来选择不同的振荡器投入工作,就可以输
19、出不同的波形。不过,不同波形需要用不同的振荡器来实现,电路较复杂,难以输出超低频的信号。方案二:直接数字查表法合成周期信号,结构见图2-1。波形固化在EPROM或其他非易失性存储器中,通过查表电路,在晶振时钟控制下不断地从EPROM中取出数据,通过DAC和低通滤波器输出。此结构的特点是能产生较高频率的信号,但不变程控切长生信号类型有限。 图2-1 直接数字查表法方案三:利用单片机查表法合成周期信号,结构见图2-2波新数据固化在EPROM中,单片机不断地从存储器中取出数据,经并行口送出,再经DAC输出。此方案由软件产生,将各种波形的数据固定在单片机的程序存储器里,通过改变这些数据的输出速度便可以
20、改变信号的频率,通过改变D/A转换器的参考电压便可以改变信号的最大值,硬件电路简单,成本低,便于程控,但不能产生较高频率的信号。图2-2 利用单片机查表法通过比较,最后一个方案适合课题要求,决定采用方案三来实现。2.2 波形发生器整体设计2.2.1 主要设计思想本系统设计一个能产生正弦波,三角波、方波与锯齿波的信号发生器。使用AT89C51作为CPU单元,波形函数由单片机产生,经过DAC0832芯片处理得出模拟信号。以数字控制信号发生为出发点,单片机作为中央控制器,直接由软件产生波形信号的输出,并可通过软件的修改,达到输出任意波形的目的,用于测试电路。为了达到输出幅值控制的目的,本系统用两片0
21、832控制,其中一片作为信号输出,另一片作为基准电压的输入。显示部分LED数码管显示,主要显示输出频率。键盘输入所要产生波形的频率和幅值,此方案产生的最大频率大约10KHz,具有线路简单、结构紧凑、性能优越等特点。2.2.2 系统组成波形发生器系统由以下几部分组成:中央处理模块、DA转换模块、波形存储模块、键盘输入模块、数码显示模块以与功率放大模块。系统框图如下:图2-3 系统框图2.2.3 系统功能(1)具有产生正弦波、方波、三角波和锯齿波等波形的能力; (2)用键盘输入控制生成上述四种波形; (3)具有波形存储的功能; (4)输出波形最大频率10KHZ,频率可步进调节; (5)输出波形幅度
22、围0-5V; (6)具有显示输出波形频率的功能; (7)具有掉电存储功能; (8)当负载变化时,输出电压幅度变化不大,要求变化幅值不大于5%。第3章 系统硬件设计本章主要阐述系统硬件设计,对芯片选型、芯片特点与外围电路设计进行详细研究。3.1 中央处理模块中央处理模块是整个系统的控制核心,它的主要作用是承受键盘发来的信息并进行处理,处理后发送给LED模块进行显示,按键盘输入信息生成对应波形的信息表,并存入EEPROM,当有波形输出要求时,查询EEPROM中表,把查得数据输出到模数转换模块中生成相应波形。3.1.1 控制芯片选择方案一:采用通用的 51 单片机AT89C51作为主控制器,这是现在
23、比较通用的 51 系列单片机。51 系列单片机的发展已经有比较长的时间,应用比较广泛,各种技术都比较熟,其软件编程易实现,编程语言为通用C语言,易于掌握,而且资料丰富。方案二:采用凌阳SPCE061A单片机,此单片机功能比较强大,且自身带有DA转换器,处理数据快速,外围部件完备,但由于价格比较昂贵,使用较少,资料很少,且软件编程难掌握。由此,选用方案一。3.1.2 AT89C51单片机结构特点AT89C51是一个低电压,高性能CMOS8位单片机,片含4kbytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存
24、储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。图3-1 AT89C51管脚主要性能参数:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:
25、10年全静态工作:0Hz-24Hz三级程序存储器锁定1288位部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片振荡器和时钟电路(1) 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TT
26、L门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口
27、在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部
28、数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微
29、处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(2)工作模式1、复位方式当MCS-5l系
30、列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。2、空闲节电模式AT89C51有两种可用软件编程的省电模式,他们是空闲模式和掉电工作模式。这两种方式是控制专用寄存器PCON中的PD和IDL位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是空闲等待方式,当IDL=1时,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作状态,即PD和IDL
31、同时为1,即激活掉电模式。在空闲工作模式状态,CPU保持睡眠状态而所有片的外设仍保持激活状态,这种方式由软件产生。此时,片RAM和所有特殊功能寄存器的容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件激活,IDL被硬件清处,即刻终止空闲工作方式。程序会首先响应中断,进入中断服务程序,执行中断服务程序并紧随RETI指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可以将空闲工作模式终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继
32、续执行程序都的,要完成部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,部禁止CPU访问片RAM,而允许访问其他端口。为了避免可能对端口产生以外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。3、掉电模式在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片RAM和特殊功能寄存器的容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的容,在Vcc恢复到正常工作电平前,复位无效,且保持一定时间以使振荡器重启并稳定工作3.1.3 系统外围电路设计(1)振荡电路AT89C51中有一
33、个用于构成部振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或瓷谐振器一起构成自激振荡器,振荡电路见图3-2。外接石英晶体(或瓷谐振器)与电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度与温度稳定性,如果使用石英晶振,推荐电容使用30pF10pF,而如使用瓷谐振器选择40pF10pF。可使用外部时钟,采用外部时钟的电路见图3-3。这种情况下,外部时钟脉冲接到XTAL1端,即部时钟发生器的输入端,X
34、TAL2悬空。图3-2 部振荡电路 图3-3 外部振荡电路(2)复位电路与其他计算机一样,单片机系统常常有上电复位核按钮复位两种方法。所谓上电复位是指计算机加电瞬间,要在RST引脚上出现大雨10ms的正脉冲,使单片机进入复位状态。复位是靠外部电路实现的。图3-4是上电复位与按钮复位的一种实用电路。上电时,+5V电源立即对单片机芯片供电,同时经电阻R对电容C3充电。C3上电压建立的过程就产生一定宽度的负脉冲,经反相后,RST上出现正脉冲是单片机实现了上电复位。按钮按下时,RST上同样出现高电平实现了按钮复位。在应用系统中有些外围芯片也要复位。如果这些芯片复位端的复位电平与单片机一致。则可以与单片
35、机复位脚相连,因此,非门在这里不仅起到了反向作用还增大了驱动能力,电容C1、C2其滤波作用,防止干扰窜入复位端产生误动作。图3-4 复位电路3.2 数模转换模块3.2.1 芯片选择单片输出的是数字信号,必须通过D/A转换后才能模拟信号。方案一:采用D/A转换器AD7543。AD7543是一种串行的D/A转换器,1与单片机之间的连线少,布线方便,而且又是12位的D/A转换器,精度高。但串行数据传输速度慢,当频率较高时,必须减少每周期输出的点数,这将会导致阶梯现象更加明显,因此,此方案不宜使用.方案二:采用DAC0832。这是8位的并行D/A转换器,转换速度快。但如果只有一片的话,输出波形的幅值急
36、不可控了,按要求应该可以调节幅值。方案三:采用2片DAC0832。由其中一芯片的输出电压作为另一芯片的参考电压,这样就可以方便的控制最大输出电压。若采用方案二,在输出电压较低的情况下,比如为1V时,输出的最大电压只有参考电压的1/5,这将会使精度降低,而方案三刚好可以解决这个问题,因此,本系统选择了方案三。3.2.2 DAC0832结构DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片 以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路与转换控制电
37、路构成。(1) 性能结构DAC0832芯片是一种具有两个输入数据寄存器的8位DAC,它能直接与MCS51单片机接口,其主要特性参数如下:分辨率为8位;电流稳定时间1us;可单缓冲、双缓冲或直接数字输入;只需在满量程和下调整其线性度;单一电源供电(5V15V);低功耗,200mW。为便于DAC0832的使用,特将其应用特性总结如下:DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制能力实现对D/A转换的控制。这种芯片有许多控制引脚,可以和微处理器控制线相连,承受微处理器的控制,如ILE、/CS、/WR1、/WR2、/XFER端。有两级锁存控制功能,能够实现多通道D/A的同步转
38、换输出。DAC0832部无参考电压源;须外接参考电压源。DAC0832为电流输入型D/A转换器,要获得模拟电压输出时,需要外加转换电路。图3-5 DAC0832结构框图与引脚(2)引脚功能:DI0DI7: 数据输入线;ILE: 数据允许锁存信号,高电平有效/CS: 输入寄存器选择信号,低电平有效。/WR1为输入寄存器的写选通信号。输入寄存器的锁存信号/LE1由ILE 、/CS、/WR1的逻辑组合产生。当ILE为高电平、/CS为低电平、/WR1输入负脉冲时,在/LE1产生正脉冲;/LE1为高电平,输入锁存器的状态随数据输入线的状态变化,/LE1的负跳变将数据线上的信息锁入输入寄存器。/XFER:
39、 数据传送信号,低电平有效。/WR2为DAC寄存器的写选通信号。DAC寄存器的锁存信号/LE2,由/XEFR、/WR2的逻辑组合产生。当/XFER为低电平,/WR2输入负脉冲,则在/LE2产生正脉冲;/LE2为高电平是时,DAC寄存器的输出和输入寄存器的状态一致,/LE2负跳变,输入寄存器的容打入DAC寄存器。VREF : 基准电源输入引脚 。Rfb : 反馈信号输入引脚,反馈电阻在芯片部。IOUT1、IOUT2 : 电流输出引脚。电流IOUT1、IOUT2 的和为常数,IOUT1、IOUT2 随DAC寄存器的容线性变化。VCC: 电源输入引脚。AGND: 模拟信号地DGND: 数字地。3.2
40、.3 DAC0832应用电路考虑到本课题要求输出波形的幅值可控,本系统采用了两个DAC0832,其中一片的电压输出作为另一片的VREF(参考电压输入线)的输入,这样单片机可以控制第一片0832的电压输出,也就最终控制了输出波形的幅值。DA转换部分电路图如图3-6所示。当单片机分别向DAC0832(1)和DAC0832(2)输入数据D1和D2时; 时间t由单片机里的定时器产生,程序根据公式式就可以求出任何时刻t所对应的幅值,经8位的D/A转换器0832转换后经过运放LM741放大信号即可得到输出信号U0。图3-1 D/A转换部分电路图再通过示波器来观察波形的输出情况。3.3 波形存储模块由于所用
41、单片机外部接口较少,所以并行接口的存储器显然不再适宜,经多方比较,决定选用串行接口EEPROM,AT24CO2。AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10 000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。图3-6 DAC0832应用电路而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。 I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)与SCL(串行时钟线)两根线
42、在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。(1) AT24C02的引脚功能AT24C02引脚如图3-7所示。图3-7 AT24C02引脚图1、2、3脚是3根地址线,用于确定芯片的硬件地址。第8和第4脚为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这两根双向I2C总线串行传送。第六脚S
43、CL为串行时钟,SDA和SCL为漏极开路端,在实际的应用当中都需要和正电源各接一个5.1k的电阻上拉第七脚为WP写保护端,接地时允许芯片执行一般的读写操作;接正电源时只允许对期间进行读操作。应用电路图如图3-8所示。图3-8 AT24C02应用电路图3.4 键盘模块图3-9所示是一个4*4的矩阵式键盘接口,一共使用了8个I/O口,可以实现16个键的输入。从这里可以看到,矩阵式键盘接口比简单键盘接口有更多的键容量,占用更少的单片机资源。P1.0P1.3 为行线,用于输出低电平。P1.4P1.7为列线,用于检测输入线,判别键盘的状态。当键盘上没有键闭合时,所有的行线和列线断开,列线都成高电平。当键
44、盘上有某个键闭合时,则该键所对应的列线与行线短路。例如4号键按下闭合时,行线P1.0和列线P1.7短路,此时P1.7的电平有P1.0行线的电位所决定。如果把列线接到微型计算机的输入口,行线接到微型计算机的输出口,则在微机的控制下,使行线P1.0如果读取的列线为低电平,其余行线都为高电平,读列线状态。如果列线都为高电平,则这一行上没有键闭合,如果读取的列线状态不全为高电平,则低电平的列线与P1.0相交处的键处于闭合状态;如果P1.0这一行上没有闭合键,以此类推,最后使P1.3为低电平,其余行线为高电平,检查这一行上是否有键闭合。这样一个周期完成一次完整的扫描。图3-9 键盘结构图CPU采用定时查
45、询方式工作。先使P1.0为0,然后分别读取P1.4P1.7的状态。当没有任何键按下时,在上拉电阻作用下,P1.4P1.7全为高电平。当P1.4P1.7中有某一个值为0,就可以判断是那个键按下。例如9键按下,则P1.4为低电平。若是8键按下,P1.7为低电平。CPU一次轮流使P1.0P1.3为0,逐列读取P1.4P1.7的状态就可以确定某个键按下并进行相应的键盘处理。考虑以上设计并结合本设计可以得出以下设计,键盘电路图如3-10所示,占用8个单片机端口P2口,通过行列扫描来确定键值。图3-10 键盘电路图3.5 显示模块图3-11显示电路是使用MC14495构成的四位静态LED显示电路,这种电路
46、可直接显示多位16进制数,其中由单片机的P1.0-P1.3送入BCD码,P1.4-P1.7控制四位数码管的开与关。MC14495是MOTOROLA公司生产的CMOS BCD七段十六进制锁存、译码驱动芯片。图3-11 显示电路图第4章 软件设计4.1 软件调试环境简介KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编,就可知该软件生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。4.2 程序设计4.2.1 主程序设计主程序设计思路是先开始各系统初始化,然后进行波形选择,如果是第一次产生该波形,按下生成波形键,先调用程序中相应公式生成相关波形的数据表并把生成的数据存入EEPROM,接着查表获得数据,经单片机控制输出给数模转换电路,再经放大后输出。如图4-1所示。图4-1 主程序流程图4.2.2 键盘程序设计键盘采用扫描工作方式,程序流程如图4-2所示。图4-2 键盘程序流程图结论本文提出了一种基于单片机的波形发生器的设计方案,并从硬件和软件两大方面