基于单片机的波形发生器(C语言)
基于单片机的波形发生器设计及实现

基于单片机的波形发生器设计及实现引言:波形发生器是电子设备中常用的测试设备,它可以产生各种波形信号,如正弦波、方波、三角波等,对于电子工程师来说是非常重要的仪器。
本文将介绍一种基于单片机的波形发生器的设计及实现方法。
设计目标:1.可以产生正弦波、方波和三角波等多种波形信号。
2.波形发生器的频率范围可以调节,并且稳定可靠。
3.实现简单、成本低廉、易于维护。
硬件设计和实现:波形发生器的核心部件是单片机,通过单片机的高精度计数器和时钟模块可以实现频率的调节和控制。
其基本原理是通过单片机的IO口输出不同的电平来产生不同的波形。
1.信号发生部分:通过单片机的IO口输出电平控制信号发生电路。
正弦波的发生电路可以采用RC振荡器电路,方波和三角波的发生电路可以采用计数器和比较器。
2.频率调节和控制部分:使用单片机内部的定时器和计数器来控制波形的频率和周期。
通过改变定时器的工作模式和计数器的计数值,可以实现不同频率的波形信号输出。
3.显示和控制部分:通过LCD显示屏显示波形参数和频率,并且可以使用按键控制频率的调节和选择不同的波形。
软件设计和实现:1.初始化设置:包括单片机的IO口设置、定时器和计数器的初始化、LCD显示屏的初始化等。
2.频率调节和控制:通过按键扫描和中断处理函数来实现频率的调节和控制。
按键的按下和释放可以触发相关的中断服务程序,从而实现频率的增加和减少。
3.波形产生:通过定时器中断来控制波形的产生。
当定时器溢出时,会触发中断服务程序,从而改变IO口的电平状态,实现不同波形信号的输出。
测试与结果:进行相应的软硬件调试后,我们可以成功实现基于单片机的波形发生器。
通过按键可以选择不同的波形类型,并且可以根据需要调节波形的频率。
总结:本文介绍了一种基于单片机的波形发生器的设计与实现方法。
通过使用单片机的IO口、定时器和计数器,可以实现不同波形信号的输出和频率的调节。
这种波形发生器具有成本低廉、稳定可靠、易于维护等优点,可以满足电子工程师对波形发生器的基本需求。
基于单片机的波形发生器的设计

1 绪论 (2)1.1 概述 (2)1.2 波形发生器的国内外发展状况 (2)1.3 国内外波形发生器产品的比较 (4)1.4 研制波形发生器的目的及意义 (4)1.5 本文所研究的内容 (4)1.6 小结 (5)2 基于单片机的波形发生器的设计方案介绍 (6)2.1 总体方案设计 (6)2.2 波形发生器的原理 (6)2.3 波形发生器的设计方案 (7)2.4 基于单片机的波形发生器的可行性的理论分析 (7)2.4.1 元器件的选择及其可行性 (7)2.4.3 经济上的可行性 (7)3 基于单片机的波形发生器的硬件设计 (8)3.1 单片机的简介 (8)3.2 本设计对单片机的要求 (8)3.3 单片机的选择 (9)3.3.1 主要性能参数 (10)3.3.2 功能特性概述 (10)3.3.3 引脚功能说明 (10)3.3.4 时钟振荡器 (12)3.4 波形输出电路 (13)3.4.1 DAC0832引脚介绍 (13)3.4.2 DAC0832的工作原理 (14)3.4.3 DAC0832可工作在三种不同的工作模式 (14)3.4.4 数模转换器与单片机的接口设计 (15)3.5 电源部分的设计 (16)3.6 晶振电路的设计 (17)3.7 复位电路设计 (18)3.8 输入电路键盘的接口设计 (19)3.9 显示电路的设计 (20)3.10 运算放大器电路的设计 (21)3.11 单元电路调试 (21)1)硬件电路的总体检查 (21)2)单元电路调试 (21)①单片机最小系统调试 (21)②波形输出电路调试 (22)③键盘扩展电路调试 (22)④显示电路调试 (22)4 基于单片机的波形发生器的软件设计 (23)4.1 软件的功能定义 (23)4.2 编程语言的选择 (23)4.3 各软件模块设计 (23)4.3.1 初始化模块 (23)4.3.2 波形产生模块 (24)4.3.3 键盘管理模块 (30)4.3.4 显示模块 (34)4.3.5 软件总流程图 (35)4.4 各软件模块调试 (36)4.5 系统整体调试 (37)4.5.1 系统整体调试 (37)4.5.2 系统试运行及性能测试 (37)4.6 系统主程序设计 (37)6 结束语 (43)7 经济分析报告 (44)参考文献 (45)附图硬件整体设计图 (46)1 绪论1.1 概述波形发生器有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。
基于单片机的波形发生器设计与实现

硬件设计
1.3 DAC转换器选择
本设计采用DAC7695型DAC转换器,该芯片是一款16位高 精度数模转换器,具有低噪声、低失真、高速等优点。 DAC7695芯片通过接收单片机发送的数字信号,将其转 换为模拟信号输出,实现波形发生器的数模转换功能
硬件设计
1.4 运放电路与滤波电 路设计
运放电路采用OP07型运算放大器 ,该芯片具有低噪声、低失真、 高带宽等优点。运放电路将DAC 输出的模拟信号进行放大和滤波 处理,提高输出波形的质量。滤 波电路采用RC滤波器,滤除杂波 干扰,提高输出波形的纯度
硬件设计
1.2 单片机选择
本设计采用STM32单片机作为核心控制器。STM32系列单片机是意法半导体(ST)公司推 出的一款基于ARM Cortex-M内核的32位Flash微控制器,具有高性能、低功耗、易于 开发等优点。STM32单片机通过编程可以产生不同频率和幅值的数字信号,并通过DAC 转换器进行数模转换,实现波形发生器的功能
硬件设计
1.1 总体设计
基于单片机的波形发生器的硬件 结构主要包括单片机、DAC转换 器、运放电路和滤波电路等部分 。其中,单片机是整个系统的核 心,负责产生数字信号并控制 DAC转换器进行数模转换;DAC转 换器将数字信号转换为模拟信号 ;运放电路对DAC输出的模拟信 号进行放大和滤波处理;滤波电 路用于滤除杂波,提高输出波形 的质量
基于单片机的波形 发生器设计与实现
2
-
目录
CONTENTS
1 硬件设计 2 软件设计
Байду номын сангаас
基于单片机的波形发生器设计与实现
波形发生器是一种能够产生各种预定波 形的电子设备,广泛应用于信号处理、 通信、测量等领域。基于单片机的波形 发生器,由于其结构简单、成本低廉、 易于编程控制等优点,在实际应用中具
基于单片机的波形发生器设计

基于单片机的波形发生器设计摘要:本文用单片机作为核心芯片,设计出一款高精度频率信号发生器,具有体积小功率低等优点。
为了实现幅度可控的功能,选用了2个数模转换器片完成此功能,其中一个用来产生波形,另外一个设计成程控放大器进行改变幅度,它的放大倍数通过转换器的数字端口来实现,根据设定的输出幅值,单片机只需要通过公式换算出给予的对应电平。
所有要输出的参数都能通过液晶屏显示。
关键词:信号发生器;单片机;数模转换器1、引言在波形发生器的发展中,高频率的波形发生器技术大部分都掌握在外国手中,我国的波形发生器也有很大突破,在中低端频率的波形发生器中,我国的成本低,波形发生器效果好,远比国外,但是在高端波形发生器中,还是落后于国外。
波形发生器在现代测算领域和教学领域有着很大的应用,产生的频率大小,幅度大小,相位调节,能产生大量的波形,对于各种调试,调控,实验,工业使用,自动控制都有着重大的意义。
2、方案设计本此设计是用单片机为控制主体,对系统进行初始化主要完成对键盘的控制、液晶显示的控制。
使用51系列的单片机,它有着32个接口,且STC系列的单片机可以在工作的过程中进行编程、调试,能很方便的实现程序在下载过程中进行整机的调试。
3、硬件设计(1)液晶显示模块用STC12C5A60S2的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD 的EN、R/W、RS。
其中EN是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号。
(2)键盘模块本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的IO口状态就可以判断按下的是那个按键。
4个按键分别代表以下功能,第一为功能按键,可以切换不同参数设置界面,第二个为切换按键,可以切换波形、频率和幅值等参数进行设置,第三个为增加按键,第四个为减少按键。
单片机波形发生器设计

单片机波形发生器设计一、引言波形发生器是一种电子测试仪器,用于产生各种形状的波形信号。
在电子设计和测试中,波形发生器是非常重要的工具,可以用于测试电子元器件的响应特性、检测电子电路的特性,以及用于故障分析和调试等。
本文将介绍一种基于单片机的波形发生器设计方案。
二、设计方案1.系统硬件设计本设计方案采用基于单片机的数字波形发生器,利用单片机的高速计数器和定时器功能,生成各种频率和形状的波形信号。
系统硬件主要包括以下几个部分:(1)单片机:选择一款具备高速计数器和定时器功能的单片机,如ATmega328P。
(2)时钟电路:提供单片机工作所需的稳定时钟信号。
(3)按键/旋钮:用于设置波形的频率和形状。
(4)显示器:用于显示当前波形的频率和形状。
(5)输出接口:提供波形信号的输出接口,以便连接到外部电路进行测试。
2.系统软件设计本设计方案采用C语言进行单片机程序的编写,使用单片机的定时器来生成各种频率的波形信号。
(1)初始化:设置单片机的引脚方向和初始化定时器。
(2)按键/旋钮检测:检测按键/旋钮的状态变化,并根据用户的操作进行相应的波形设置。
(3)波形生成:根据用户设置的频率和形状,在单片机的定时器中设置相应的计数值和自动重载值,以产生所需的波形信号。
(4)输出:将生成的波形信号通过输出接口输出到外部电路进行测试或其他应用。
三、系统性能分析1.频率范围:由于采用了单片机的高速计数器和定时器功能,所以波形发生器的频率范围可以较广,通常可以覆盖几赫兹到几千兆赫兹的范围。
2.波形形状:由于使用了单片机的计时器功能,所以可以生成多种形状的波形信号,如正弦波、方波、三角波等。
3.稳定性:由于采用了稳定的时钟电路,所以波形发生器的频率稳定性较高,误差较小。
4.精确度:由于采用了单片机的高速计数器和定时器功能,所以波形发生器的频率和相位精度较高。
四、总结本文介绍了一种基于单片机的波形发生器设计方案。
该方案通过利用单片机的计数和定时器功能,可以生成各种形状和频率的波形信号,具备较高的稳定性和精确度。
基于单片机的波形发生器_毕业设计论文

基于单片机的波形发生器_毕业设计论文摘要:本文详细介绍了一种基于单片机的波形发生器的设计与实现。
波形发生器是一种广泛应用于电子测量、科研和教学等领域的仪器设备。
本设计采用了单片机作为控制芯片,利用其强大的计算和控制能力实现了多种波形的生成。
通过研究和分析不同波形的特点,采用相应的算法和模拟电路设计,实现了正弦波、方波和三角波的发生功能。
本文还介绍了硬件电路的设计和软件的编写,并对波形发生器的性能进行了测试和分析。
1.引言波形发生器是一种可以产生各种形状的周期信号的仪器设备,广泛应用于电子测量、科研和教学等领域。
随着数字技术和单片机技术的发展,基于单片机的波形发生器具有体积小、成本低、灵活性强等优点,逐渐代替了传统的模拟波形发生器。
2.系统设计2.1系统框架本系统采用了单片机作为控制芯片,配合DAC芯片和锁相环电路,构建了一个完整的波形发生器系统。
单片机负责控制波形的生成参数,通过DAC芯片将数字信号转化为模拟电压输出,锁相环电路则负责对时钟信号进行处理和同步。
2.2波形生成算法根据不同波形的特点,本设计实现了正弦波、方波和三角波的发生功能。
正弦波的生成采用了Taylor级数展开方法,方波的生成利用了比较器的电平调制,而三角波的生成则通过DAC芯片将数字递增或递减的信号转化为模拟电压输出。
3.硬件设计3.1单片机选型与外围电路设计本设计选用了XX单片机作为控制芯片,并根据其技术手册设计了相应的外围电路。
外围电路包括时钟电路、复位电路和供电电路等,保证了单片机的正常运行。
3.2DAC芯片选型与接口设计为了将数字信号转化为模拟电压输出,本设计选用了XXDAC芯片,并设计了合适的接口电路。
通过控制单片机的输出端口和DAC芯片的输入端口连接,实现了数字到模拟的转换。
3.3锁相环电路设计为了保证波形的准确性和稳定性,本设计添加了锁相环电路。
该电路利用比较器和VCO实现了对时钟信号的同步与输出。
4.软件设计4.1系统初始化系统初始化包括单片机寄存器的初始化和外围设备的初始化,为后续的波形生成做好准备。
基于单片机的波形发生器设计及实现

基于单片机的波形发生器设计及实现一、设计方案波形发生器是一种能够产生不同频率、幅度和波形形式的信号的电路设备。
在本设计中,我们将采用单片机作为控制核心,利用其内部计时器和输出引脚来实现波形的产生。
具体的设计方案如下:1. 选择单片机:选用一款适合波形产生器设计的单片机,如ATmega328P等。
2.编程开发:利用单片机的C语言编程开发,在程序中实现波形发生器的控制逻辑,包括波形形状、频率、幅度等参数的设定和控制。
3.输出电路设计:设计适合单片机输出信号的电路,包括放大、滤波和隔离等功能,以确保输出信号的质量和稳定性。
4.外部控制接口:设计外部控制接口,包括旋钮、按键等,方便用户对波形发生器进行参数设定和调节。
5.功率供应:提供稳定的电源供应,确保波形发生器正常工作。
二、实现过程1.单片机编程:首先编写C语言程序,实现波形发生器的控制逻辑。
通过设置定时器的计数值和输出引脚的状态来产生不同形状的波形,如正弦波、方波、三角波等。
同时,通过按键和旋钮来实现频率和幅度的调节。
2.输出电路设计:设计一个简单的输出电路,将单片机的输出信号放大和滤波,以获得较为稳定和可靠的输出信号。
同时,通过隔离电路来防止单片机受到外部干扰。
3.外部控制接口:设计旋钮和按键的连接电路,将它们与单片机的GPIO引脚相连,实现参数的设定和调节。
通过旋钮来调节频率,通过按键来切换波形形状和设定幅度。
4.功率供应:设计一个合适的功率供应电路,为单片机和输出电路提供稳定的电源,以保证波形发生器的正常工作。
5.调试测试:将所有部件组装在一起,通过示波器等仪器对输出信号进行观测和测试,调节参数使得波形发生器产生符合要求的波形,并记录各种参数值,以便后续使用和改进。
三、实现效果经过上述步骤的设计和实现,我们成功地搭建了一个基于单片机的波形发生器。
该波形发生器可以产生多种波形形状,如正弦波、方波、三角波等,同时支持频率和幅度的调节。
通过外部控制接口,用户可以方便地对波形发生器进行参数的设定和调节,使得波形发生器具有较好的灵活性和易用性。
基于单片机的波形发生器设计

基于单片机的波形发生器设计
基于单片机的波形发生器设计是一种新兴的技术,它利用单片机
来发出不同的波形信号,以满足不同的测量需求。
这种技术的核心部
分就是使用微处理器(单片机)来生成和控制信号,以及支持信号实验。
首先,为了发出不同的波形,使用微处理器(单片机)需要进行
控制程序设计,以将不同的波形转变为数字信号。
这要求开发者在硬
件上设计一个模拟输入的控制信号,以便发出不同的波形。
程序设计
中需要考虑波形的持续时间、信号的幅度等,并编写相应代码来表示
不同的波形。
一旦波形发生器已经通过发出不同的波形通过单片机设计,就可以将此模拟信号输出到一系列设备。
此外,为了确保实验能够取得有效的结果,还需要对基于单片机
的波形发生器进行测试和校准。
在这方面,使用电子测量仪表来检查
实验中的信号,确保不同的波形能够准确的在一系列的设备中传播,
以及数据采集是否能被准确的捕获。
同时,根据波形的持续时间,来
进行相应调整,确保发出不同波形的准确性。
总而言之,基于单片机的波形发生器设计是一项很有前景的技术,可以有效的处理和传送信号,同时也为测量和实验提供准确的信号。
然而,这也要求开发者具有扎实的单片机知识和信号处理能力,以及
对测量仪表、信号传输和数据采集的理解,才能将这项技术发挥出最
大的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及接口技术课程设计报告设计题目:波形发生器学号:*********姓名:**指导教师:孙**信息与电气工程学院二零一五年六月波形发生器设计波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。
信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。
它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。
本系统利用单片机AT89C51采用程序设计方法产生锯齿波、正弦波、三角波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,并通过LED显示其各自的周期。
本次关于产生不同低频信号的信号源的设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。
该信号源的特点是:体积小、价格低廉、性能稳定、实现方便、功能齐全。
1. 设计任务结合实际情况,基于AT89C51单片机设计一个波形发生器。
该系统应满足的功能要求为:(1) 产生三种波形(三角波、锯齿波、正弦波);(2) 按键选择波形,加减键选择频率;(3) 在示波器中显示三种波形;(4) 在六位数码管上显示周期;主要硬件设备:单片机实验开发系统、AT89C51单片机、DAC数模转换芯电路、六位数码管(LED)、矩阵键盘、8155芯片、示波器。
2. 整体方案设计波形发生器系统以AT89C51单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个波形发生器系统。
利用 AT89S52 单片机构造多功能信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,通过 C 语言对单片机的编程即可产生相应的波形信号,并可以通过键盘进行各种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也就得到所需要的信号波形,通过运算放大器的放大输出波形,同时让显示器显示输出的波形信息。
(1)三角波产生思路首先,根据按键设定的波形频率,选择一个周期内合适的点数,根据点数和峰值计算相邻2个点的幅度的步进值,根据点数和频率设定相邻2点的时间值,计算出定时器的初值,然后,设置一个变量每进一次定时中断DA数据就加幅值步进,当等于总点数的一半时,每进一次定时中断就把DA数据减幅值步进直到DA数据为0,计数变量清零。
每进一次定时中断输出刷新DA的数据就可以产生一定频率和幅值的三角波。
(2)锯齿波产生思路首先,根据按键设定的波形频率,选择一个周期内合适的点数,根据点数和峰值计算相邻2个点的幅度的步进值,根据点数和频率设定相邻2点的时间值,计算出定时器的初值,然后,定时输出刷新DA的数据就可以产生一定频率和幅值的波形。
(3)正弦波产生思路首先,写一个表格,然后根据按键设定的波形频率,选择一个周期内合适的点数,根据点数和峰值计算相邻2个点的幅度的步进值,根据点数和频率设定相邻2点的时间值,计算出定时器的初值,然后,设置一个变量每进一次定时中断DA数据就加幅值步进,当等于总点数的一半时,每进一次定时中断就查表把DA数据减幅值步进直到DA数据为0,计数变量清零。
每进一次定时中断查表输出刷新DA的数据就可以产生一定频率和幅值的正弦波。
图2-1 系统的整体方案设计图本系统硬件主要由D/A转换器、显示系统、矩阵键盘等几部分组成。
各模块的主要功能如下:(1) D/A转换器的功能是把单片机输出的数字信号转换成0-5V的模拟信号。
(2) 显示系统中六位数码管显示波形频率,示波器显示波形。
(3) 矩阵键盘选择波形,增加减少频率。
3. 系统硬件电路设计3.1 时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。
在引脚XTAL1 和 XTAL2 外接晶体振荡器,构成了内部振荡方式。
由于单片机内部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡,并产生振动时钟脉冲。
晶振通常选用 6MHZ、12MHZ、24MHZ。
本设计中时钟电路图如图3-1,我们选择了12MHZ和晶振分别接引脚XTAL1和XTAL2,电容 C1,C2 均选择为30pF,对振荡器的频率有稳定作用,当频率较大时,正弦波、三角波、锯齿波中每一点的延时时间为几微妙,故延时时间还要加上指令时间才能获得较大的频率波形。
单片机的时序单位振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。
机器周期:1个机器周期由12个振荡周期组成,是计算机执行一种基本操作的时间单位。
指令周期:执行一条指令所需的时间。
一个指令周期由1-4个机器周期组成,依据指令不同而不同.图3-1 时钟电路3.2 复位电路复位引脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的 S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
本设计选择了按键复位如图3-2,在系统运行时,按一下按键,就在 RST 断出现一段高电平,使器件复位。
此时 ALE、PSEN、P0、图3-2时钟电路图P1、P2、P4 输出高电平,RST 上输入返回低电平以后,变退出复位状态开始工作。
图3-2 复位电路单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
单片机冷启动后,片内RAM 为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。
51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。
3.3 数模转换电路DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832的主要特性参数如下:1)分辨率为8位;2)电流稳定时间1us;3)可单缓冲、双缓冲或直接数字输入;4)只需在满量程下调整其线性度;5)单一电源供电(+5V~+15V);6)低功耗,200mW。
DAC0832的工作原理:利用8位D/A转换器DAC0808,可以将8位数字量转换成模拟量输出。
数字量输入的范围为0~255,对应的模拟量输出的范围在VREF-到VREF+之间。
根据这一特性,可以利用单片机的并行口输出的数字量,产生常用的波形。
DAC0832电路与单片机的接口电路如图3-3所示。
图3-3 DAC0832与单片机的接口电路3.4 运算放大电路图3-4 运算放大电路LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF(9)管脚相连.第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。
题目要求输出的电压在0-5V可调,而V1的电压大约是5V,所以R1选择5K的电阻,R2选择10K的电位器,这样最大的输出电压为5*(10/2)=10,最小电压为0,可以实现题目要求的0-5V。
3.5 矩阵键盘电路图3-5 矩阵键盘电路图中键盘独立键盘行引出的四根线接8155芯片的PC口,六根列线接8155芯片的PA口,采用线反转法扫描键盘,确定键位。
如图按键K1为频率加、K2为频率减,按键K4切换三角波,按键K5切换锯齿波,按键K6切换正弦波。
3.6 六位数码管(LED)显示电路图3-6 LED显示电路本设计选择了6位共阴极数码管如图3-6,它的6个发光二极管的阴极(二极管正端)连接在一起,通常公共阴极接低电平电平,其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
显示电路用于显示信号的频率,并且使系统能根据按键实时显示先关信息。
该系统中添加一个74LS241 锁存器,用于驱动数码显示管,使其更易于控制,增加显示的准确性。
数码管第三位用来显示波形信号的频率,频率是以100HZ 步进显示。
要使显示管显示不同的数字或者字符,需要使端口输出相应的字型码,显共阴极0 1 2 3 4 5 6 73FH 06H 5BH 4FH 66H 6DH 7DH 07H 8 9 A B C D E F7FH 6FH 77H 7CH 39H 5EH 79H 71H4. 系统程序设计4.1 主程序流程图图4-1 主流程图主程序首先将需要初始化的部分进行初始化,然后负责循环执行按键扫描,数码管显示、DA数据输出和示波器显示。
这些过程都是以模块化的程序实现的,程序中有,按键扫描程序、数码管扫描显示程序、定时器定时计算程序、查表程序和DA数据输出程序,通过调用这些程序完成波形的产生,幅值和频率的改变。
4.2 按键处理子程序流程图程序位于函数Scan-Key()和Shao-Key()中,函数位于主循环中,每循环一次调用一次,检测键盘是否按下,如果按下去延时抖动,然后检测到底是哪个按键按下,针对不同的按键按下采取不同的动作。
因为按键采用的是扫描法,故需要注意消抖的处理,在此用软件法去抖动即可。
软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否保持着,如是则作为按键处理,否则,视为抖动,不予理睬。
去抖动的延时时间一般参考资料多描述为20ms左右,在实际应用中应大于20ms。
否则,会导致按一次多处理,影响程序正常执行。
图4-2 键盘控制程序流程图4.3 数码管输出子程序流程图图4-3 数码管子程序流程图数码管输出程序是送段选码和位选码的程序,位于主程序中。
轮流点亮6个数码管,每大约5ms变换一次,由于轮换的次数太快,由于视觉暂留效应,看上去是6个数码管看上去好像一直点亮。