课程设计-基于DAC0832的波形发生器设计讲解
- 格式:doc
- 大小:2.67 MB
- 文档页数:22
基于单片机和DAC0832的函数信号发生器的设计引言函数信号发生器是一种能够产生可调频率、可调振幅、可调相位和可调形状的电信号的设备。
它广泛应用于电子实验、通信、音频设备等领域。
本文介绍了一种基于单片机和DAC0832的函数信号发生器的设计方案。
单片机是一种集成电路,具有处理能力和存储能力,能够控制外围设备的工作。
DAC0832是一种数字模拟转换器,能够将数字信号转换为模拟信号。
设计原理函数信号发生器主要由脉冲发生单元、频率调节单元、振幅调节单元、相位调节单元和输出单元组成。
脉冲发生单元负责产生基础脉冲信号,频率调节单元负责调节脉冲信号的频率,振幅调节单元负责调节脉冲信号的振幅,相位调节单元负责调节脉冲信号的相位,输出单元负责将脉冲信号输出。
本设计采用了AT89C51单片机作为控制核心,DAC0832作为模拟输出芯片。
AT89C51是一种8位微控制器,具有强大的IO能力和丰富的外设接口。
DAC0832是一种8位DAC,具有较高的精度和稳定性。
设计步骤1.硬件设计硬件设计包括电路原理图的绘制和元器件的选型。
根据设计要求,确定电路中需要使用的电阻、电容、稳压器等元器件,并通过计算和选型手册选取合适的数值和型号。
2.软件设计软件设计包括单片机程序的编写和功能实现。
根据硬件设计的需求,编写控制程序,实现基础脉冲信号的生成和频率、振幅、相位的调节。
3.调试和测试将硬件组装完成后,使用示波器和信号发生器进行信号的调试和测试。
通过观察输出信号的频率、振幅、相位以及波形形状是否满足设计要求,对硬件和软件进行优化和调整。
4.功能扩展通过增加控制接口和调节电路,可以实现更多功能的拓展。
例如,通过添加旋钮、按键和显示屏等元件,实现手动调节和参数显示功能。
通过添加USB或无线通信模块,实现远程控制和数据传输。
结论本设计基于单片机和DAC0832的函数信号发生器,通过控制单片机和DAC芯片,实现了可调频率、可调振幅、可调相位和可调形状的信号输出。
基于单片机和dac0832的波形发生器目录一、内容摘要二、设计任务三、元器件说明四、硬件电路设计五、程序编译一、内容摘要波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。
由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。
测量被测仪器的输出响应,以分析确定它们的性能参数。
信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。
它可以产生多种波形信号,如方波、锯齿波、三角波等,因而广泛应用于通信、雷达、导航、宇航等领域。
本次课程设计使用的AT89C51单片机构成的发生器可产生三角波,正弦波和方波,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。
此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。
二、设计任务利用DAC0832输出正弦波信号(用示波器观察输出波形),初始频率为50Hz,变频采用“+”、“-”键控制,实时测量输出信号的频率值,并分析和实测输出信号的频率范围。
具体完成以下任务:1.完成系统的方案设计,给出系统框图。
2.完成系统的硬件设计,给出硬件电路图和系统资源分配表。
3.完成系统的软件设计,给出程序流程图和程序编写。
4.运用Proteus仿真软件对所设计的系统进行调试和仿真,直到预定的功能全部仿真通过,给出仿真结果。
5.准确、高质量地进行印刷电路板的焊接。
6.完成课程设计报告。
三、元器件说明知识简介:DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路及转换控制电路构成。
东北石油大学课程设计2012年3月 9 日东北石油大学课程设计任务书课程单片机原理及应用课程设计题目基于DAC0832芯片的简单信号发生器设计专业班级姓名学号一、设计目的:训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。
二、设计要求:1. 应用MCS-51单片机设计基于DAC0832芯片的简单信号发生器;2. 频率范围:0-1KHZ,输出电压:方波Up-p>3V,正弦波Up-p> 1V,波形特性:方波tr<100us,正弦波非线性失真系数r<5%;3. 硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。
设计的单元电路必须有工作原理,器件的作用,分析和计算过程;4. 软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;5. 原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。
三、参考资料:[1] 单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社;[2] 单片机原理及应用,张毅刚编著,高等教育出版社;[3] 51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社;[4] 单片机原理及接口技术,李朝青编著,北京航空航天大学出版社;完成期限2012.3.5—2012.3.9指导教师专业负责人2012年 3 月2 日目录目录 (I)第1章概述 (1)第2章信号发生器的原理 (2)2.1 AT89C51芯片的简单介绍 (2)2.2 数模转换器DAC0832的简单介绍 (4)2.3共阳数码管和运算放大器LM358 (6)第3章硬件电路设计 (7)3.1 单片机最小系统 (7)3.2 电源电路的设计 (8)3.3 D/A转换接口电路的设计 (8)第4章程序设计 (9)4.1 主程序设计 (9)4.2 信号发生器源程序 (10)第5章总结 (14)参考文献 (15)第1章概述信号发生器是一种常用的信号源,广泛用于电子电路、自动控制系统和教学实验等领域,目前使用的信号发生器大部分是模拟电路组成的,体积大、可靠性差、准确度低、并且用于低频时,其RC要很大,大电阻,大电容在制造上有困难,参数准确度难以保证,漏电损耗大。
波形发生器设计一.摘要本文以AT89C51单片机为核心,采用C语言的编程方法,外加DAC0832数模转换模块与集成运放模块,构成了函数波形发生器。
可产生方波、三角波、正弦波、锯齿波等多种波形,波形的频率可用程序改变,并可根据需要选择输出波形。
其中运用软硬件结合的方法实现设计功能,具有线路简单、结构紧凑、性能优越等特点。
关键词:51单片机;DAC;函数波形发生器二.设计要求1.产生正弦波、方波、三角波;2.幅度可以设定;3.出频率能达到1MHZ。
4. 发挥部分(自选)三.设计目的1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实际课题设计的能力。
2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成系统、编程、调试的动脑动手能力。
3、通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件设计的方法内容及步骤。
4,掌握各个接口芯片(如0832等)的功能特性及接口方法,并能运用其实现一个简单的单片机应用系统功能器件。
四.设计方案波形发生器的实现方法通常有以下几种:方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。
但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:采用AT89S52单片机和DAC0832芯片,直接连接键盘和显示。
该种方案主要对AT89S52单片机的各个I/O口充分利用。
P1口是连接键盘, P2口接显示电路,P0口连接DAC0832输出波形。
这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片,从而减小了系统的成本。
也对按照系统便携式低频信号发生器的要求所完成。
占用空间小,使用芯片少,低功耗。
综合考虑,方案三各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案三。
基于单片机和DAC0832的函数信号发生器的设计摘要:信号发生器在生产实践和科技领域中有着广泛的应用。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振图像等,都需要功率或大或小、频率或高过低的信号。
在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。
多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机和DAC0832结合起来,通过数字电子电路向模拟电路转化,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。
系统通过单片机产生数字信号通过DAC0832转换为模拟信号,再通过放大器LM324就可以得到双极性的各种波形,通过几个按键切换想要的波形。
关键词:单片机,数模转换芯片DAC0832,运算放大器LM324,1前言1.1 题目的来源与开发意义自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。
单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。
单片机正朝着面向多层次用户的多品种多规格方向发展。
基于单片机和DAC0832的函数信号发生器的设计,本课题是充分运用大学期间对所学专业知识,结合现在使用的信号发生器的基本功能,完成一个系统的设计的全过程,通过单片机和模数转换芯片以及放大器产生多种波形的函数信号发生器在控制领域有着相当广泛的应用。
应用单片机控制的信号发生器的设计,整个系统控制简单,能够全方位的掌握在校期间所学的大部分知识,对单片机的学习是必不可少的,数模转换也是一个非常重要的知识,在对于数字电子和模拟电子的掌握上有非常大的应用,运算放大器的使用更加增强了对模拟模拟电路得理解,整个系统体积小,成本低廉,功能齐全,通过不同的按键,系统输出相应的波形,从而对所学的知识做了全面的深入的学习和掌握。
dac0832课程设计一、课程目标知识目标:1. 让学生掌握 dac0832 芯片的基本原理和功能,了解其在数字信号处理中的应用。
2.使学生能够运用 dac0832 芯片进行模拟信号与数字信号之间的转换,理解转换过程中的关键技术。
3.让学生了解 dac0832 芯片的内部结构,掌握相关寄存器的配置方法。
技能目标:1. 培养学生动手实践能力,能够独立完成 dac0832 芯片的连接、编程和调试工作。
2. 提高学生的问题解决能力,使其在遇到 dac0832 相关问题时,能够运用所学知识进行分析和解决。
情感态度价值观目标:1. 培养学生对电子技术、数字信号处理等领域的兴趣,激发其探索精神。
2. 培养学生的团队协作意识,使其在课程实践过程中学会与他人合作,共同解决问题。
3. 引导学生认识到电子技术在日常生活和国家发展中的重要作用,培养其社会责任感。
课程性质:本课程为电子技术实践课程,旨在帮助学生将理论知识与实际应用相结合,提高学生的动手实践能力和问题解决能力。
学生特点:学生已具备一定的电子技术基础和编程能力,对 dac0832 芯片有一定了解,但实践经验不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强化实践环节,引导学生主动参与,培养其独立思考和解决问题的能力。
通过课程目标的分解和实现,使学生在知识、技能和情感态度价值观方面均取得明显的学习成果。
二、教学内容1. dac0832芯片基本原理及功能:介绍dac0832芯片的内部结构、工作原理、性能参数,使学生对其有全面的认识。
教材章节:第三章“DAC转换器”第2节“dac0832芯片”2. dac0832芯片的连接与编程:讲解dac0832芯片的引脚功能、连接方法以及编程技术,使学生能够实际操作和使用dac0832芯片。
教材章节:第三章“DAC转换器”第3节“dac0832芯片的连接与编程”3. 模拟信号与数字信号转换:分析dac0832芯片在模拟信号与数字信号转换过程中的关键技术,提高学生对转换过程的理解。
教师批阅波形发生器设计摘要波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
函数信号发生器是一种能够产生多种波形,函数信号发生器是一种能够产生多种波形,如三角波、如三角波、锯齿波、矩形波(含方波)、正弦波的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
通过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
所以本设计使用的是DAC0832芯片构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。
在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD 显示频率大小。
在单片机的输出端口接DAC0832进行D/A 转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
本设计制作的波形发生器,可以输出多种标准波形,如方波、正弦波、三角波、锯齿波等,还可以输出任意波形,如用鼠标创建的一个周期的非规则波形或用函数描述的波形等,输出的波形的频率、幅度均可调,且能脱机输出。
设计的人机界面不但清晰美观,而且操作方便。
人机界面不但清晰美观,而且操作方便。
关键词:波形发生器;:波形发生器;DAC0832DAC0832DAC0832;;单片机;波形调整教师批阅目录一、设计目的及意义 ............................................................................. - 3 -1.1设计目的 ........................................................................................ - 3 -1.2设计意义 ........................................................................................ - 3 -二、方案论证 ......................................................................................... - 4 -2.1设计要求 ........................................................................................ - 4 -2.2方案论证 ........................................................................................ - 4 -三、硬件电路设计 ................................................................................. - 5 -3.1设计思路、元件选型设计思路、元件选型 .................................................................... - 5 -3.2原理图 ............................................................................................ - 5 -3.3主要芯片介绍主要芯片介绍 ................................................................................ - 6 -3.4硬件连线图 .................................................................................. - 10 -四、软件设计 ....................................................................................... - 10 -4.1锯齿波的产生过程锯齿波的产生过程 ...................................................................... - 11 -4.2三角波产生过程三角波产生过程 .......................................................................... - 13 -4.3 方波的产生过程 ......................................................................... - 14 -4.4 正弦波的产生过程 ..................................................................... - 16 -4.5通过开关实现波形切换和调频、调幅通过开关实现波形切换和调频、调幅 ...................................... - 18 -五、调试与仿真 ................................................................................... - 20 -5.1仿真结果 ...................................................................................... - 21 -六、总结 ............................................................................................... - 22 -七、参考文献: ................................................................................... - 23 -教师批阅一、设计目的及意义1.1设计目的(1)利用所学微机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。
波形发生器—按键控制波形课程设计(一)设计任务和要求-------------------------------------------2(二)系统方案(设计思路,用到的芯片及作用),画出系统框图及说明-------------------------------------------------------------2(三)设计方法——硬件设计,画出电路原理图及说明-3(四)设计方法——软件设计,画出程序流程图及说明,源程序清单和注释---------------------------------------------------------------4(五)系统调试----------------------------------------------------51.使用的主要仪器和仪表2.实验步骤3.整理性能测试数据和波形,并与设计要求比较分析4调试中出现的故障、原因及排除方法(六)设计结论----------------------------------------------------11(七)收获和体会-------------------------------------------------13(一)设计任务和要求利用DAC0832产生锯齿波、三角波和方波。
按“1”键产生锯齿波;按“2”键产生三角波;按“3”键产生方波。
(二)系统方案1.DAC0832的内部结构和外部引脚DAC0832的作用是将从CPU发来的数字信号转化为模拟信号2.8086CPU8086CPU主要用于产生数字信号。
设计思路:通过DAC0832的数模转化功能实现将离散信号转化为模拟信号,然后利用扫描法实现按键控制。
(三)设计方法——硬件设计,画出电路原理图及说明DAC08328086开关各个模块及其连接说明:主要分成两部分,输入部分和输出部分。
输入部分由8255和8个常开型开关来完成。
通过键盘输入数字赋给8086,然后根据8086的程序,调用不同的波形发生函数,输出离散信号给DAC0832进行数模转换。
dac0832波形发生器原理
DAC0832波形发生器是一种使用8位D/A转换器的波形发生器,其工作原理是将数字信号转换为模拟信号。
其工作原理主要基于以下步骤:
1. DAC0832接收从微控制器(如单片机)发送过来的数字信号,这些数字信号代表了要生成的波形(如正弦波、方波、锯齿波、三角波等)的参数(如幅度、频率等)。
2. DAC0832将这些数字信号转换为模拟信号,即将数字信号的幅度转换为模拟信号的电压或电流。
这一步是通过D/A转换器完成的,它使用一个8
位的数字输入和一个模拟输出。
3. 生成的模拟信号经过运算放大器进行放大和滤波,以获得所需的波形。
4. 输出的模拟信号可以连接到示波器、音频设备或其他需要模拟信号的设备上。
在实现波形时,需要使用定时器来控制段码表输出速度,以控制波形的频率。
对于每种波形,可以通过改变数字信号的值和控制输出的时间来实现不同的频率和幅度。
总的来说,DAC0832波形发生器的工作原理是基于数字信号转换为模拟信号的过程,通过控制数字信号的值和控制输出的时间来实现不同的波形和参数。
波形发生器设计目录摘要 (1)第一章绪论 (2)第二章DAC0832及其特性 (3)2.1 D/A转换器与单片机接口探究 (3)2.1.1 数据线连接 (3)2.1.2 地址线连接 (3)2.1.3 控制线连接 (3)2.2 DAC0832的认识 (4)2.2.1 DAC0832的结构 (4)2.2.2 DAC0832的引脚 (4)2.2.3 DAC0832的启动控制方式 (5)第三章硬件设计 (7)3.1 启动方式选择 (7)3.2 框图设计 (7)3.3 电路图设计 (7)第四章程序设计 (9)4.1 程序流程图 (9)4.1.1 程序设计思路 (9)4.1.2流程图 (9)4.2 用C语言实现 (11)4.3 用汇编语言实现 (14)第五章Proteus仿真及结果 (17)5.1方波: (17)5.2正弦波: (17)5.3三角波: (18)5.4梯形波: (18)5.5锯齿波: (19)设计心得: (20)参考文献: (21)摘要本设计使用AT89C51单片机做控制,选择8位D/A转换器DAC0832作D/A 转换。
硬件方面,首先51熟悉单片机的结构和工作原理,连接单片机的最小系统。
之后熟悉D/A转换器工作方式,经过分析后选择DAC0832的单缓冲启动控制方式,完成电路框图。
进一步根据设计要求完成通过独立按键控制D/A输出,作出电路框图和电路原理图。
软件方面:设计思路主要体现在两点上。
一是控制,通过程序控制DAC转换与输出,按键消抖,选择相应的即将输出的波形。
二是产生波形,根据波形的特点编写程序以产生相应波形的数字信号。
分别通过C语言和汇编语言实现简易的波形发生器,输出方波、正弦波、三角波、梯形波和锯齿波,通过独立按键控制分别输出不同的波形。
以KILL 与Proteus为设计平台,仿真测试设计结果的正确性。
关键字: 51单片机,DAC0832,单缓冲启动控制方式,波形发生器,C语言设计,汇编语言设计第一章绪论单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
51单片机是目前最流行的8位单片机。
51单片机是对所有兼容Intel8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
第二章DAC0832及其特性2.1 D/A转换器与单片机接口探究D/A转换器与单片机接口具有软硬相依性。
在连接过程中要考虑到数据线、地址线、控制线的连接。
2.1.1 数据线连接D/A转换器与单片机接口要考虑到两个问题:一个是位数,当高于8位的D/A转换器与8位数据总线的51单片机接口时,51单片机的数据必须分时输出,这时就必须考虑数据分时传送的格式和输出电压“毛刺”问题;二是D/A转化器的内部结构,当D/A转换器的内部结构没有输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或者I/O口。
最常用的是8位带锁存端的D/A转换器与8位单片机的接口,这时只需要将单片机的数据总线和D/A转换器的8位数据输入端一一对应即可。
2.1.2 地址线连接一般的D/A转换器只有片选信号,而没有地址线。
这时单片机的地址线采用全译码或者部分译码,经译码器输出控制片选信号,也可以用某一位I/O线来控制片选信号。
也有少数D/A转换器有少量的地址线,用于选中片内独立的寄存器或者选择输出通道,这时单片机执行的地址线与D/A转换器的地址线对应连接。
2.1.3 控制线连接D/A转换器主要有片选信号、写信号、及启动转换信号等,一般由单片机的有关引脚或译码器提供。
一般来说,写信号多由单片机的WR信号控制;启动信号常常由片选信号与写信号的组合形式(LE1、LE2)形成,当单片机执行一条输出指令时,传送的地址使转换器的片选信号有效,由WR实现启动。
(具体实现原理见1.2节)2.2 DAC0832的认识图1.1 DAC0832的管脚结构2.2.1 DAC0832的结构DAC0832的结构如图1.1所示,主要由控制逻辑电路、输入寄存器、DAC 寄存器和D/A转换器构成。
由上图逻辑控制电路可知:WR)ILELE1=(CS+1WR+XREFLE2=2由LE1控制输入寄存器读入数据,由LE2控制输入寄存器向DAC寄存器传输数据,同时开始D/A转换。
2.2.2 DAC0832的引脚DAC0832的引脚如图1.1所示:DI0~DI7:8位数据输入线,高电平有效。
ILE:数据锁存允许控制输入线,高电平有效。
CS :片选信号输入线,低电平有效。
1WR :输入锁存器写选通输入线,负脉冲有效。
输入锁存器的信号就是LE1。
LE1负跳变有效。
XREF :数据传送控制信号输入线,低电平有效。
2WR :DAC 寄存器写选通信号输入线,负脉冲有效。
DAC 锁存信号就是LE2,LE2的负跳变有效。
1OUT I :模拟电流输出线。
2OUT I :模拟电流输出线,采用单极性输出时,2OUT I 通常接地。
FB R :反馈信号输入线。
反馈电阻FB R 被制作在芯片里,用作外接运放的反馈电阻,为D/A 转换器提供电压输出。
REF V :参考电压输入端。
要求外接一精密电压源,电压范围在-10V~+10V 之间选定。
通过REF V 的符号来改变输出极性。
CC V :电源接口。
AGND :模拟地。
DGND :数字地。
注:数字信号的高频噪声很大,如果模拟信地和数字地混合的话,就会把数字的噪声传到模拟部分,造成干扰。
如果分开的话,高频噪声可以在电源处通过滤波来消除掉。
2.2.3 DAC0832的启动控制方式DAC0832有三种启动控制方式:(1)直通方式:将CS 、1WR 、XREF 、2WR 信号都接地,ILE 信号引脚接高电平,只要数据传送到数据线上,两级锁存器同时开始工作,并启动D/A 转换,即转换器处于非受控状态。
在这种工作方式下,转换器的数据线不能直接和单片机的数据线(P0.0~P0.7)相连接。
因为P0口分时复用为低8位的地址总线和数据总线,对输出无锁存能力,会使转换器的输出不确定。
但是可以将ADC 的数据线连接到某个I/O 口上,执行端口输出指令(MOV Px A )即可启动一次D/A转换。
这种方式很少采用。
WR和XREF直接接(2)单缓冲方式:两级锁存器接受同一种控制,例如将2地,8位ADC锁存器处于非受控状态,只有8位输入锁存器处于受控状态,即此时仅有LE1控制ADC。
这种方式在不要求多个模拟同步输出时采用。
(3)双缓冲方式:俩个锁存器都处于受控状态,单片机要对转换器进行两步写操作:第一次执行指令使LE1有效,称作第一级缓冲,第二次执行指令使LE2有效,称作第二级缓冲。
这种方式的优点是数据接收和启动转换可以异步进行,可在D/A转换的同时接收下一个转换数据,以提高转换速度,还可以实现多个转换器同时启动转换,同步输出。
第三章硬件设计3.1 启动方式选择因为本设计要求设计一个波形发生器,要求能产生正弦波、方波、三角波、梯形波、锯齿波,而且由按键控制输出的波形。
故各个波形输出并非同步输出,而是由按键控制,单个输出,并且本例只需要一个DAC,如果选择双缓冲方式就会加大不必要的难度;直通方式不能有效的控制DAC转换,转换时可能会出现数据流失。
故选择单缓冲启动控制方式来驱动DAC0832。
3.2 框图设计根据2.1节的判断,选择AT89c51单片机作控制,实现电路框如下:图2.1 硬件设计框图3.3 电路图设计根据以上框图,选择+12V的基准电压,选择一级集成运放作放大电路,连接A/D转换电路图如下:图2.2 单片机与ADC的连接方式此外加上单片机最小系统,用P1口控制输出的波形,电路连接如下:图2.3 电路原理图第四章程序设计4.1 程序流程图4.1.1 程序设计思路(1)因为要使用到按钮(本例中选择独立按键),必须使用到键盘扫描,首先要进行键盘消抖,然后通过扫描确定是哪个按键被按下,通过I/O口(本例中为P1口)的数据判断选择五种波形中的哪一个;(2)根据(1)中的结果,通过编程产生各个波形的数字信号;(3)控制DAC转换数字信号为模拟信号。
程序框图如下:图3.1 程序设计思路4.1.2流程图在本流程图中分别以k1、k2、k3、k4、k5代表单片机的I/O口P1.0、P1.1、P1.2、P1.3、P1.4;设置flag1、flag2、flag3、flag4、flag5为1时分别代表方波、正弦波、三角波、梯形波、锯齿波。
当确认按键按下时,令相对应的flagx=1,然后用连续的判断程序来选择将要输出的波形。
程序实现了只需按一下按钮便可持续输出对应的波形。
流程图如下:图3.2 程序流程图4.2 用C语言实现根据程序流程图用C语言编程,得C语言实现的代码为:#include<absacc.h>#include<reg51.h>#define DAC0832 XBYTE[0x7fff]sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int flag5=0;unsigned char code zhengxian[256]={ 此处省略为正弦波数字信号} ; void delay() //延时程序{int i;for(i=0;i<1000;i++);}void panduan(void) //函数panduan用于扫描按键状态,判断输出波形{if(k1==1){ //按键消抖delay();if(k1==1) //通过赋值flag选择波形flag1=1;flag2=0;flag3=0;flag4=0;flag5=0;}if(k2==1){delay();if(k2==1)flag1=0;flag2=1;flag3=0;flag4=0;flag5=0;}if(k3==1){delay();if(k3==1)flag1=0;flag2=0;flag3=1;flag4=0;flag5=0;}if(k4==1){delay();if(k4==1)flag1=0;flag2=0;flag3=0;flag4=1;flag5=0;}if(k5==1){delay();if(k5==1)flag1=0;flag2=0;flag3=0;flag4=0;flag5=1;}}void boxing(void) //函数boxing用于产生选择好的波形{if(flag1==1) //产生方波{DAC0832=0x00;delay();DAC0832=0xff;delay();}else if(flag2==1) //产生正弦波{int i;for(i=0;i<256;i++){DAC0832=zhengxian[i];}}else if(flag3==1) //三角波{int i;for(i=0;i<255;i++)DAC0832=i;for(i=255;i>0;i--)DAC0832=i;}else if(flag4==1) //梯形波{int i;for(i=0;i<255;i++)DAC0832=0;for(i=0;i<255;i++)DAC0832=i;for(i=255;i>0;i--)DAC0832=0XFF;for(i=255;i>0;i--)DAC0832=i;}else if(flag5==1) //锯齿波{int i;for(i=0;i<255;i++)DAC0832=i;}}void main(){ //主函数P1=0x00;while(1){panduan();boxing();}}4.3 用汇编语言实现在用C语言实现设计之后,我又尝试使用汇编语言完成任务,由于对汇编语言还不够熟悉,只做到了以开关控制的矩形波、三角波、梯形波和锯齿波。