《毕业设计(论文)基于单片机的数字波形发生器的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的数字波形发生器的设计.doc(40页珍藏版)》请在三一办公上搜索。
1、本科毕业设计(论文)题目: 基于单片机的数字波形发生器 教学单位: 专 业: 学 号: 姓 名: 指导教师: 2011年4月摘 要本系统是基于AT89S52 单片机的数字式低频信号发生器。采用 AT89S52 单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(NE4558)、按键和LED 显示灯电路等。通过按键控制可产生方波、锯齿波、三角波、正弦波等,同时用LED显示灯指示对应的波形。其设计简单、性能优良,可用于多种需要低频信号源的场所,具有一定的实用性。关键词:单片机;信号发生器;D/A转换 ABSTRACT The system is a digital sign
2、al generator based on single chip computer. At89s52 is used as a control microcontroller core. The system is composed by digital/analog conversion(DAC0832), imply circuit(NE4558),button and LED lights .It can generate the square, triangle and sine wave, with LED display. The system can be used for a
3、 signal source in the low-frequency signal source. It is very practical. Key words : The single chip computer;The signal generator;D/ A conversion目 录第1章引 言41.1课题背景41.2国内外研究情况51.3单片机概述61.4研究方法8第二章 系统设计82.1系统方案的比较82.2 控制芯片的选择92.3键盘方案论证9第三章 系统硬件设计103.1基本原理103.2 单片机介绍及资源分配113.2.1 单片机的介绍113.2.2 资源分配163.3
4、 各部分电路原理163.3.1 DAC0832芯片原理163.3.2 NE4558 工作原理193.3.3 键盘电路原理203.3.4 LED 显示电路原理22第四章 系统软件设计234.1主程序流程图234.2子程序流程图24第五章 测试结果29第六章 结论31致谢32参考文献33附录:34电路原理图34PCB封装图35程序清单36第1章 引 言1.1课题背景字波形发生器,主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,波形种类多为锯齿、正弦、方波、三角等波形。用分立元件组成的函数发生器,通常是单函数发生器且频率
5、不高,其工作不很稳定,不易调试;用集成芯片的函数发生器,可达到较高的频率和产生多种波形信号,但电路较为复杂且不易调试。利用单片集成芯片的函数发生器,能产生多种波形,达到较高的频率,且易于调试;利用专用直接数字合成DDS 芯片的函数发生器,能产生任意波形并达到很高的频率,但成本较高。当今是科学技术及仪器设备高度智能化飞速发展的信息社会,电子技术的进步,给人们带来了根本性的转变。现代电子领域中,单片机的应用正在不断的走向深入,这必将导致传统控制与检测技术的日益革新。单片机构成的仪器具有高可靠性、高性能价格比,在智能仪表系统和办公自动化等诸多领域得以极为广泛的应用,并走入家庭,从洗衣机、微波炉到音响
6、汽车,处处可见其应用。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。目前我国已经开始研制波形发生器,并取得了可喜的成果。但总的来说,我国波形发生器还处于起步阶段。就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在波形发生器的种类和性能上都与国外同类产品存在较大的差距,因此加紧对这类
7、产品的研制显得迫在眉睫。1.2国内外研究情况波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器
8、多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单的波形。90 年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为 HP770S的信号模拟装置系统,它由 HP
9、8770A任意波形数字化和 HP1776A波形发生软件组成。HP8770A实际上也只能产生8 中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为 Data-2020的多波形合成器,Lecroy 公司生产的型号为9100 的任意波形发生器等。 到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过 GHz 的DDS 芯片,同时也推动了函数波形发生器的发展,2003 年,Agilent的产品 33220A能够产生 17 种波形,最高频率可达到 20M,2005 年的产品N6030A 能够产生高达 500MHz 的频率,采样的频率可达 1.25GHz。由上面的产品可以看出,
10、函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。目前可以利用可视化编程语言(如Visual Basic ,Visual C 等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。 (2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。(3)随着信息技
11、术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。 1.3单片机概述目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 近年,由于CHMOS技术的进步,大大地促进了单片机的CMOS化。CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。这也是今后以80C51取代8051为标准MCU芯
12、片的原因。因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路的特点是低功耗、高密度、低速度、低价格。采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺。CHMOS和HMOS工艺的结合。目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。因而,在单片机领域CMOS正在逐渐取代TTL电路。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。在单片机家族中,8051系列是其中的佼佼者,加之Intel公司将其
13、MCS 51系列中的8051内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与8051单片机兼容的基础上改善了8051的许多特性。这样,8051就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为8051系列。8051单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,8051可能最终形成事实上的标准MCU芯片。单片机是微型机的一个主要分支,在结构上的最大特点是把CPU、存储器、定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯
14、片上。就其组成和功能而言,一块单片机芯片就是一台计算机。 单片机是通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;/数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。单片机作为计算机发展的一个重要领域,应用一个较科学的分类方法。根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。 由于单片机具有显著的优点,它已成为科技领域的有力
15、工具,人类生活的得力助手。它的应用遍及各个领域 ,单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。1.4研究方法由于要求达到模拟信号波形发生,因此要由D/A转换芯片0832来来完成此项任务。利用AT89S52单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键
16、盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。第二章 系统设计2.1系统方案的比较方案一:采用函数信号发生器 ICL8038 集成模拟芯片,(如图 2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。 方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。 方案三:采用单片机和 DA
17、C0832 数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。 经比较,方案三既可满足毕业设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,所以采用该方案。2.2 控制芯片的选择方案一:AT89S52 单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器 CPU、存储器、寄存器、I/O 接口制作在一块集成电路芯片中,从而构成较为完整的计算机。 方案二:C8051F005 单片机是完全集成的混合信号系统级芯片,具有与 AT80S52兼容的微控制器的内核,与 MC
18、S-51 指令集完全兼容。除了具有标准 AT80S52 的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。 方案选择:方案二中 C8051F005 芯片系统内部结构复杂,不易控制,芯片成本高,对于本系统而言利用率低,AT89S52 芯片比较常用,简单易控制,成本低,性能稳定。故采用方案一。 2.3键盘方案论证方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。方案二:编码式键盘。编码式键盘的按键触点接于74LS148芯
19、片。当键盘上没有闭合时,所有键都断开,当某一键闭合时,该键对应的编码由74LS148输出。以上两种方案综合考虑,选择方案一。第三章 系统硬件设计3.1基本原理系统框图如图3.1所示波形指示输出电流、电压转换数模转换单片机按键电源图 3.1低频信号发生器系统框图低频信号发生器系统主要由 CPU、D/A 转换电路、基准电压电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。 其工作原理为当分别按下四个按键中的任一个按键就会分别出现方波、锯齿波、三角波、正弦波,并且有四个发光二极管分别作为不同的波形指示灯。3.2 单片机介绍及资源分配 3.2.1 单片机的介绍AT89S52 的引脚图如图
20、2.2所示图 3.2 AT89S52 引脚图管脚说明:低频信号发生器采用 AT89S52 单片机作为控制核心,其内部组成包括:一个 8 位的微处理器 CPU 及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器 RAM低128字节,存放读/写数据;高 128 字节被特殊功能寄存器占用;片内程序存储器 4KB ROM;四个 8位并行 I/O (输入/输出)接口 P3 -P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统
21、;一个全双工 UART(通用异步接收发送器)的串行 I/O 口。VCC:供电电压。 GND:接地。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止ALE 的输出可在 SFR8EH地址上置0。此时, ALE 只有在执行 MOVX, M
22、OVC指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电
23、路的输入。 XTAL2:来自反向振荡器的输出。 89S52 单片机外部有 32个端口可供用户使用,其功能如下: 89S52 并行 I/O 接口端口 引脚位置 第一功能 第二功能 符号 功能 符号 功能 P0 39-32 P0.0-P0.7 通用 I/0口 AD0-AD7 地址数据总线 P1 1-8 P1.0-P1.7 通用 I/0口 P2 21-28 P2.0-P2.7 通用 I/0口 A8-A15 地址总线(高位) P3 10 P3.0 通用 I/0口 RXD 串行通信发送口 11 P3.1 通用 I/0口 TXD 串行通信接收口 12 P3.2 通用 I/0口 INT0 外部中断0 13
24、P3.3 通用 I/0口 INT1 外部中断1 14 P3.4 通用 I/0口 T0 计数器0输入端口 15 P3.5 通用 I/0口 T1 计数器1输入端口 16 P3.6 通用 I/0口 WR 外部存储器写功能 17 P3.7 通用 I/0口 RD 外部存储器读功能P0口:P0口为一个 8位漏级开路双向I/O口,每脚可吸收 8TTL门电流。当 P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1口是一个内部提
25、供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1 口管脚写入 1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或 16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优
26、势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在 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 外部输入)
27、 P3.5 T1(定时器1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)AT89S52的晶振及其连接方法 CPU 工作时都必须有一个时钟脉冲。有两种方式可以向89S52 提供时钟脉冲:一是外部时钟方式,即使用外部电路向 89S52 提供时钟脉冲,见图2.3(a);二是内部时钟方式,即使用晶振由 89S52 内部电路产生时钟脉冲。一般常用第二种方法,其电路见图 3.3AT89S52XTAL2XTAL1悬空外部时钟信号外部时钟方式AT89S52XTAL2XTAL1C1JC2 内部时钟方式图 3.3 89S52 的时钟脉冲J 一般为石英晶体,其频率由
28、系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。一般来说,使用石英晶体时,C1=C2=30pF。使用陶瓷滤波器时,C1=C2=47pF。AT89S52的复位。复位是单片机的初始化操作,其主要的作用是把PC 初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作失误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。除使PC归零外,复位操作还对其他一些专用寄存器有影响。 复位后的内部寄存器状态: 寄存器 复位状态 寄存器 复位状态 PC 0000H TMOD 00H ACC 00H TCON 00H B 00H T
29、H0 00H PSW 00H TL0 00H SP 07H TH1 00H DPTR 0000H TL1 00H P0-P3 0FFH SCON 00H IP (xxx00000) SBUF (xxxxxxxx) IE (0xx00000) PCON (0xxx0000) 另外,复位操作还对单片机的个别引脚有影响,例如会把ALE和/PSEN变成无效状态,即使ALE=0,/PSEN=1.RST变成低电平后,退出复位状态,CPU从初始状态开始工作。89S52 复位操作有 3种方式:上电复位、上电按钮复位和系统复位。上电复位电路如图 2.4 所示。对于CMOS型单片机因RST引脚的内部有一个拉低电阻
30、,故电阻R可不接。单片机在上电瞬间,RC 电路充电,RST引脚端出现正脉冲,只要RST端保持两个机器周期以上的高电平,就能使单片机有效地复位。当晶体振荡频率为12MHz时,RC的典型值为 C=10uF,R=8.2K 欧姆。简单复位电路中,干扰信号易串入复位端,可能会引起内部某些寄存器错误复位,这时可在RST引脚上接一去耦电容。 通常因为系统运行等的需要,常常需要人工按钮复位,复位电路如图2.5所示,其中 R2R1,只需将一个常开按钮开关并联于上电复位电路,按下开关一定时间就能使RST引脚端为高电平,从而使单片机复位。RSTAT89S52+5VR图 3.4 上电复位电路RSTAT89S52+5V
31、 C R1R2图 3.5 上电按钮复位电路3.2.2 资源分配晶振采用12MHZ。P1 口的P1.0-P1.3 分别与四个按键连接,分别控制锯齿波、三角波、正弦波和方波,P1.4-P1.7 与四个发光二极管相连,按键一对应发光二极管一,依次类推,发光二极管四对应按键四,实现输出一个波形对应亮一个灯。P0口与DAC0832 的D0-D7数据输入端相连。 P2口用来控制DAC0832 的输入寄存器选择信号/CS 和数据传送信号/XFER。3.3 各部分电路原理3.3.1 DAC0832芯片原理管脚功能介绍(如图 3.6所示)图 3.6 DAC0832管脚图 DI7DI0:8位的数据输入端,DI7为
32、最高位。 ILE:数据锁存允许控制信号输入线,高电平有效。 /CS:选片信号输入线(选通数据锁存器),低电平有效。 /WR1:数据锁存器写选选通输入线,负脉冲有效,由 ILE、/CS、/WR1 的逻辑组合产生/LE1,当/LE1 为高电平时,数据锁存器状态随输入数据线变化,/LE1 的负跳变时将输入数据锁存。 /XFER:数据传输控制信号输入线,低电平有效,负脉冲有效。 /WR2: DAC 寄存器选通输入线,负脉冲有效,由/WR2、 /XFER 的逻辑组合产生/LE2,当/LE2为高电平时,DAC 寄存器的输出随寄存器的输入而变化,/LE2的负跳变时将数据锁存器的内容打入DAC 寄存器并开始
33、D/A转换。IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为 0。 IOUT2:模拟电流输出端 2,IOUT2与 IOUT1 的和为一个常数,即 IOUT1IOUT2常数。 RFB:反馈电阻引出端,DAC0832 内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。 当WR2 和XFER 同时有效时,8位DAC 寄存器端为高电平“1”,此时 DAC 寄存器的输出端Q跟随输入端 D也就是输入寄存器Q端的电平变化;反之,当端为低电平“0”时,第一级8位输
34、入寄存器 Q端的状态则锁存到第二级 8位DAC 寄存器中,以便第三级8位DAC 转换器进行 D/A转换。 一般情况下为了简化接口电路,可以把WR2和XFER直接接地,使第二级8位DAC寄存器的输入端到输出端直通,只有第一级 8位输入寄存器置成可选通、可锁存的单缓冲输入方式。 特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式。制作低频信号发生器有许多方案:主要有单缓冲方式,双缓冲方式和直通方式。 单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。而双缓冲方式适用于在需要同时输出几路模拟信号的场合, 每一路模拟量输出需一片 DA
35、C0832 芯片,构成多个 DAC0832 同步输出电路,程序简单化,但是电路线路连接比较复杂。根据以上分析,我选择了单缓冲方式使用方便,程序简单,易操作。 这里我采用 DAC0832 与单片机 89S52 的典型的单缓冲方式接口电路。ILE 接高电平,/WR1 和/WR2 相连后接 89S52 的/WR,/CS 和/XFER 相连后接89S52 的地址高位,这样就同时片选了 DAC0832 的数据锁存器和 DAC 寄存器,89S52 对 DAC0832 执行一次写操作就把一个数据写入数据锁存器的同时也直接写入到了 DAC 寄存器,模拟量输出随之变化。 DAC0832 的输出是电流,使用运算放
36、大器可以将其电流输出线性地转换成电压输出。根据运算放大器和 DAC0832 的连接方法,运算放大器的输出可以分为单极性和双极性两种。这里我采用双极性方式(如图 3.7所示)。图 3.7 DAC0832双极性电压输出电路 3.3.2 NE4558 工作原理图 3.8 NE4558 引脚图图 3.9 NE4558 运放引脚图4558 是一片双运放,带内部补偿电路。极好的通道分离特性允许在单运放应用中使用双运放器件,从而提供了最高的封装密度。他的内部包含两组形式完全相同的运算放大器,除电源共用外,两组运放相互独立。每一组运算放大器可用图 2.9所示的符号来表示,它有5个引出脚,其中“+”、“-”为两
37、个信号输入端,“V+”、“V-”为正、负电源端,“OUT”为输出端。两个信号输入端中,“-”为反相输入端,表示运放输出端 OUT的信号与该输入端的为相反;“+”为同相输入端,表示运放输出端 OUT 的信号与输入端的相位相同。AOUT:放大信号输出(1)。 AIN-:反相信号输入(1)。 AIN+:同相信号输入(1)。 GND:接地。 BIN+:同相信号输入(2)。 BIN-:反相信号输入(2)。 BOUT2:放大信号输出(2)。Vcc:电源。4558特性有很多,2MHz 单位增益带宽保证,NE4558 的电源电压为 18v,具备短路保护功能,无需频率补偿,无闩锁效应,宽广的共模和差动电压范围,
38、低功耗。因此被广泛运用在各种电路中。3.3.3 键盘电路原理在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应用系统应设有按键或键盘,实现简单的人机会话。键盘是一组按键的组合,键通常是一种常开型按钮开关,平时键的两个出点处于断开状态,按下键时他们才闭合。从键盘的结构来分类,键盘可以分为独立式和矩阵式两类,每一类按其识别方法又都可以分为编码和未编码键盘两种。键盘上闭合键的识别由专门的硬件译码器实现并产生编号或键值的称为编码键盘,由软件识别的称未编码键盘。在由单片机组成的测控系统及智能化仪器中,用得较多的是未编码键盘,我这里也使用未编码键盘。 未编码键盘又分为独立式键盘跟矩阵式键盘。
39、独立式未编码键盘结构的工作原理及接口在单片机应用系统中常常需要简单的几个键完成数据、命令的输入,此时可采用独立式键盘的结构。其接口如图 2.10所示。此接口电路的工作原理很简单,无键按下时,各输入线为高电平;有键按下时,相应的输入线为低电平,CPU查询此输入口的状态就可知是哪个键闭合。采用一键一线的方法,当按键的数目增加时,将增加输入口的数量,为了减少占用输入线数,可采用矩阵式结构的键盘。+5V图 3.10 独立式未编码键盘矩阵式未编码键盘结构的工作原理:如图2.11所示是4*4的键盘接口,它是矩阵式的结构。图中键盘的行线(X0X3)与列线(Y0Y3)的交叉处通过一个按键来联通,行线通过电阻接
40、+5V,当键盘上没有键闭合时所有的行线和列线都断开,则行线都呈高电平。当键盘上某一个键闭合时,则该键所对应的行线和列线被短路。例如:6号键被按下闭合时,行线 X1和列线Y2 被短路,此时 X1的电平由Y2 的电位所决定。如果把行线接到单片机的输入口,列线接到单片机的输出口,则在单片机的控制下,先使列线Y0为低电平,其余三根列线 Y1、Y2、Y3 都为高电平,读行线状态。如果 X0、X1、X2、X3、都为高电平,则 Y0 这一列上没有键合。如果读出的行线状态不全为高电平,则为低电平的行线和 Y0 相交的键处于闭合状态。如果 Y0 这一列上没有键合,接着使列线 Y1 为低电平,其余列线为高电平,用
41、同样方法检查 Y1 这一列上有无键闭合。依此类推,最后使列线 Y3 为低电平,其余的列线为高电平,检查 Y3 这一列上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。CPU对键盘扫描可以采取程序控制的随机方式,CPU空闲时扫描键盘;也可以采取定时控制方式,每隔一定时间,CPU 对键盘扫描一次,CPU 可随时响应键盘输入请求;还可以采用中断方式,当键盘上有键闭合时,向 CPU 请求中断,CPU 响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键输入信息作出相应处理。CPU 对键盘上闭合键的键号确定,可以根据行线和列线的状态计算求得,也可以根据行线和列线状态查表求
42、得。12 13 14 15X38 9 10 11X2 +5V4 5 6 7X10 1 2 3X0Y0 Y1 Y2 Y3图 3.11 4*4矩阵式未编码键盘结构图根据我设计的电路特点,只需要用到 4个按钮来选择波形,实现的功能也比较简单,所以我采用独立式未编码键盘结构。键盘原理图如图 3.12所示。图 3.12 键盘原理图3.3.4 LED 显示电路原理在这里使用的是发光二极管,发光二极管通常用砷化镓、磷化镓等所制成的。当这种管子通以电流时将发出光来,这是由于电子与空穴直接复合而放出的能量的结果。当PN 结处加以一个适当的正电压时,此管即导通,也就会发光。这样我们就能知道我们所需要了解的信息,在
43、此设计中发光二极管通过软件的控制显示波形种类。LED电路图如图3.13所示。图 3.13 LED 电路图4个 LED的负极分别接 P1.4P1.7,当P1 口高 4位任意一个为低电平时,其对应的LED就会导通,从而发光,通过程序的控制可以设计波形类型的显示。第四章 系统软件设计软件设计上,根据功能分了几个模块编程。模块主要有:主程序模块、锯齿波模块、三角波模块、正弦波模块、方波模块、延时子程序模块等。 显示波形模块是利用 DAC0832 的 8 位特点,把波形的数据以 8 位数据的形势送进CPU中,只要一按键就能显示波形。4.1主程序流程图如图4.1所示开始N输出锯齿波Key1按下?YN输出三
44、角波Key2按下?YN输出正弦波Key3按下?Y输出方波Key4按下?NY图 4.1主程序流程图软件设计过程中主要实现利用按键来控制不同波形的输出,当按键 1按下时,函数发生器就输出锯齿波;当按键 2按下时,函数发生器就输出三角波;当按键 3按下时,函数发生器就输出正弦波;当按键 4按下时,函数发生器就输出方波。通过按键可以以任意循环方式输出不同波形。4.2子程序流程图锯齿波流程图如图 4.2所示。开始A=00HA送到0832输出A=A+1A=FFH?NY图 4.2 锯齿波流程图锯齿波产生将00H 送入寄存器A中,DAC0832 输出A中的内容,当 A中的内容等于FFH返回开始,当 A 中的内容不为FFH 时,A中的内容累加,从而输出波形。 锯齿波产生子程序如下:SANTOO: MOV A ,#00H MOV DPTR,#7FFFHLLOOP: MOVX DPTR,A INC A ; CJNE A,FFH,LLOOP