单片机的连接电路
单片机的外围电路

键盘电路设计要点
1 2
去抖处理
消除按键按下时的抖动,确保一次只识别一个按 键。
独立按键与矩阵按键的选择
根据按键数量和单片机I/O口资源选择合适的键 盘形式。
3
接口类型
根据单片机和键盘的接口类型选择合适的连接方 式,如直接连接或通过I2C、SPI等通信协议连接。
05
通信接口电路
通信接口电路的作用与类型
寻址方式
每个设备具有唯一的地址,通过地址码进行访问。
数据传输速率
最高可达400kHz。
06
外围电路的干扰与防护
外围电路的干扰来源与影响
01
02
03
04
电源噪声
由于电源线路上的电压波动和 电流脉冲,可能导致单片机工
作异常。
信号线耦合
信号线之间的电磁场相互作用 ,可能导致信号的畸变或噪声
。
接地回路
不同电路之间的地线连接可能 形成地线回路,导致噪声和干
扰。
空间辐射
来自其他电子设备或自然界的 电磁波可能对单片机产生干扰
。
干扰的防护措施
电源滤波
在电源入口处加入滤波 器,减少电源噪声的干
扰。
隔离与屏蔽
对容易受到干扰的信号 线进行隔离或屏蔽,降 低信号线耦合的影响。
合理的接地
采用单点接地、多点接 地或混合接地方式,减
少地线回路的干扰。
空间滤波
在单片机周围加装电磁 屏蔽材料,减少空间辐
单片机外围电路
• 单片机外围电路概述 • 电源电路 • 输入输出接口电路 • 显示与键盘电路 • 通信接口电路 • 外围电路的干扰与防护
01
单片机外围电路概述
定义与作用
定义
最新单片机的常见输入输出电路介绍

单片机的常见输入输出电路介绍引言传统电气设备采用的各种控制信号,必须转换到与单片机输入/输出口相匹配的数字信号。
用户设备须输入到单片机的各种控制信号,如限位开关,操作按钮、选择开关、行程开关以及其他一些传感器输出的开关量等,通过输入电路转换成单片机能够接收和处理的信号。
输出电路则应将单片机送出的弱电控制信号转换、放大到现场需要的强输出信号,以驱动功率管、电磁阀和继电器、接触器、电动机等被控制设备的执行元件,能方便实际控制系统使用。
1 输入电路设计一般输入信号最终会以开关形式输入到单片机中,以工程经验来看,开关输入的控制指令有效状态采用低电平比采用高电平效果要好得多,。
其中,D1为保护二极管,反向电压≥50V。
为了防止外界尖峰干扰和静电影响损坏输入引脚,可以在输入端增加防脉冲的二极管,形成电阻双向保护电路,。
二极管D1、D2、D3的正向导通压降UF≈0.7 V,反向击穿电压UBR≈30 V,无论输入端出现何种极性的破坏电压,保护电路都能把浚电压的幅度限制在输入端所能承受的范围之内。
即:VI~VCC出现正脉冲时,D1正向导通; V1~VCC 出现负脉冲时,D2反向击穿;VI与地之间出现正脉冲时,D2反向击穿;V1与地之间出现负脉冲时,D3正向导通,二极管起钳位保护作用。
缓冲电阻RS约为1.5~2.5kΩ,与输入电容C构成积分电路,对外界感应电压延迟一段时间。
若干扰电压的存在时间小于t,则输入端承受的有效电压将远低于其幅度;若时间较长,则D1导通。
电流在RS上形成一定的压降,从而减小输入电压值。
此外,一种常用的输入方式是采用光耦隔离电路。
,R为输入限流电阻,使光耦中的发光二极管电流限制在10~20 mA。
输入端靠光信号耦合,在电气上做到了完全隔离。
同时,发光二极管的正向阻抗值较低,而外界干扰源的内阻一般较高,根据分压原理,干扰源能馈送到输入端的干扰噪声很小,不会产生地线干扰或其他串扰,增强了电路的抗干扰能力。
51单片机原理图

2.3 51单片机增强型学习系统各组成部份原理图及功能简介2.3.1 共阴极数码管动态扫描控制图2.2 51单片机增强型学习系统的四位共阴极数码管动态扫描硬件连接原理图AT89S51单片机P0口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上接电阻。
AT89S51单片机P2口是一个带有内部上拉电阻的8位双向I/O 口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX @Ri 指令)时,P2口线上的内容(也即特殊功能寄存器SFR 区中P2寄存器的内容),在整个访问期间不改变。
Flash 编程或校验时,P2亦接收高位地址和其它控制信号。
在上面的硬件连接原理图里,我们用到的是P0和P2口控制四位数码管显示的。
四位数码管显示的方式是动态扫描显示,动态扫描显示是单片机中应用最为广泛的一种显示方式之一。
其接口电路如上图是把所有显示器的8个笔划段a-h同名端连在一起由单51单片机增强型学习系统片机的P0.0~P0.7控制,而每一个数码管的公共极(阴极)是各自独立地受单片机P2.7~P2.4控制。
CPU向字段输出口P0口送出字形码时,所有数码管接收到相同的字形码,但究竟是那个数码管亮则取决于P2.7~P2.4的输入结果,所以我们就可以自行决定何时显示哪一位了。
MAX232与单片机通信电路图

MAX232与单片机通信电路图2009-11-13 21:27实验板加个串行接口吧。
借助电脑转件直观的看单片机的输出结果,以后我还会用一些简单的实例讲解单片机和PC串口通讯的简单应用和编程。
如果你用的是成品实验板或仿真器,那你就可以跳过这一段了。
在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。
通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错。
下图就是MAX232的基本接线图。
图为MAX232在上两课的电路的基础上按下面的图加上MAX232就可以了。
这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。
图为DB9接头图为加上了MAX232的实验电路做好后我们就先用回第一课的"Hello World!"程序,用它来和你的电脑说声Hello!把程序烧到芯片上,把串口连接好。
嘿嘿,这时要打开你的串口调试软件,没有就赶快到网上DOWN一个了。
你会用Windows的超级中端也行,不过我从不用它。
我用的是comdebug,它是个不错的软件,我喜欢它是因为它功能好而且还有"线路状态"功能,这对我制作小玩意时很有用。
串口号,波特率调好,打开串口,单片机上电,就可以在接收区看到不断出现的"Hello World!"。
一定要先打开软件的串口,再把单片机上电,否则可能因字符不对齐而看到乱码哦。
做好后我们就先用回第一课的"Hello World!"程序,用它来和你的电脑说声Hello!把程序烧到芯片上,把串口连接好。
嘿嘿,这时要打开你的串口调试软件,没有就赶快到网上DOWN一个了。
你会用Windows的超级中端也行,不过我从不用它。
单片机使用方法

单片机使用方法单片机(Microcontroller Unit,简称MCU)是一种集成电路,具有微处理器、存储器、输入输出接口等功能,广泛应用于电子设备控制系统中。
它的使用方法涉及到硬件和软件两个方面,下面将分别介绍。
一、硬件使用方法1. 连接电源:将单片机与电源连接,确保电源的电压和电流满足单片机的要求。
2. 连接外部晶振:大多数单片机需要外部晶振来提供时钟信号,连接晶振并确保其频率与单片机的要求一致。
3. 连接复位电路:单片机通常具有复位功能,连接复位电路可以确保单片机在上电时进行正确的初始化。
4. 连接外部设备:根据具体应用需求,连接所需的外部设备,如LED灯、显示屏、传感器等。
5. 连接通信接口:如果需要与其他设备进行通信,连接相应的通信接口,如串口、SPI、I2C等。
二、软件使用方法1. 编写程序:使用编程语言(如C、C++、汇编语言等)编写单片机的控制程序。
2. 编译程序:使用相应的编译器将编写的程序源代码转换为单片机可执行的机器语言代码。
3. 烧录程序:将编译生成的机器语言代码烧录到单片机的存储器中,常用的烧录方法有串口烧录、仿真器烧录等。
4. 调试程序:通过调试工具(如调试器、仿真器等)对单片机的程序进行调试,检查程序的正确性和性能。
5. 运行程序:将烧录和调试完成的单片机连接到电源,启动程序运行,观察外部设备的响应情况。
三、单片机的应用单片机广泛应用于各个领域的控制系统中,如家电控制、工业自动化、汽车电子、医疗设备等。
以下是一些常见的单片机应用场景:1. 温度控制:通过连接温度传感器和执行器,实现对温度的监测和控制,如空调控制、恒温器等。
2. 照明控制:通过连接光敏传感器和LED灯,实现对照明亮度的自动调节,如街道灯、室内照明等。
3. 电机控制:通过连接电机驱动器和传感器,实现对电机的速度和方向控制,如电动车控制、机器人运动控制等。
4. 数据采集:通过连接各类传感器,实现对环境参数的监测和数据采集,如气象站、智能家居等。
51单片机8255A扩展IO口与单片机连接

INTRA IBFA STB A INTRA
STB BRB INTRB
ACK B
4. 8255A的应用
8255A与单片机的连接
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE WR RD RESET CS PA
8255A CS
PA口: 0 × PB口: 0 × PC口: 0 × 控制口:0 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0
74LS373
8255A
A1 A0 PB
8031
ALE
EA
D7 D6 D5 D4 D3 D2 D1 D0
PC
数据线D0~D7接P0口 RD 、 WR 接单片机的 RD 、WR 复位线RESET接到复位电路,与CPU一起复位
8255A与单片机的连接
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE WR RD RESET CS PA
+5V ... ... L4 L3 ... L0 ... K7 ... . . . K4 K3 ... K0 ... . .
0 1 0 1
没接的地址线设为1,则4个端口地址为: PA=7FFCH PB=7FFDH PC=7FFEH 控制口=7FFFH
DS18B20的连接介绍

DS18B20的连接介绍要连接DS18B20,我们需要以下几个步骤:步骤一:准备材料首先,我们需要准备一些材料:1.DS18B20温度传感器。
2.4.7K欧姆电阻。
3.杜邦线或其他适合的连接线。
4.单片机或其他微控制器。
步骤二:连接电路接下来,我们需要将DS18B20与单片机电路连接起来。
1.将DS18B20的引脚与单片机的引脚相连。
DS18B20有三个引脚:VCC(供电),DATA(数据)和GND(地)。
-将DS18B20的VCC引脚连接到单片机的电源引脚,一般为3.3V或5V;同时也可以使用外部供电源。
-将DS18B20的DATA引脚连接到单片机的数据引脚。
在连接前,我们需要在单片机上配置该引脚为输入/输出模式,并设置为上拉模式。
(如果单片机的引脚没有上拉电阻,可以外接一个4.7K欧姆电阻以确保正常工作)-将DS18B20的GND引脚连接到单片机的地引脚。
步骤三:编写代码接下来,我们需要在单片机上编写代码以读取DS18B20的数据。
1. 初始化总线:首先需要初始化1-Wire总线通信协议,设置引脚为上拉输入模式。
2. 设备:使用1-Wire总线协议设备。
DS18B20通过ROM的方式进行寻址,因此需要设备的ROM代码。
3. 发送命令:通过1-Wire总线协议向DS18B20发送命令。
可以发送读取温度的命令,或者其他需要的命令。
4. 接收数据:通过1-Wire总线协议接收DS18B20返回的数据。
将接收到的数据转换成摄氏温度或华氏温度并进行计算。
5.循环读取:可以使用一个循环结构,不断读取DS18B20的温度数据。
步骤四:运行程序最后,我们需要将代码烧录到单片机中,然后启动程序以开始读取DS18B20的温度数据。
综上所述,连接DS18B20并读取温度数据需要准备材料、搭建电路、编写代码、烧录程序等步骤。
同时需要注意的是,在操作过程中要仔细阅读DS18B20的数据手册,确保正确连接和使用,以避免因操作不当而造成的损坏或错误数据的情况发生。
12位AD转换器与单片机的接口电路设计

课程设计任务书2012/2013 学年第 1 学期学院:电子与计算机科学技术学院专业:学生姓名:学号:课程设计题目:12位A/D转换器与单片机的接口电路设计起迄日期:课程设计地点:指导教师:系主任:下达任务书日期: 2012年12月19日课程设计任务书目录第一章设计任务及功能要求 (5)1.1摘要 (5)1.2设计课题及任务 (5)1.3功能要求及说明 (5)第二章硬件设计 (6)2.1 系统设计元器件功能说明 (7)2.2 硬件电路总体及部分设计 (10)第三章软件设计 (12)3.1 基本原理容设计 (12)3.2 keil编程调试 (13)3.3 proteus仿真电路图 (19)第三章结果分析及总结 (19)附录 (20)第一章设计任务及功能要求1.1摘要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,单片机对我们的生活影响越来越大,很多工业领域中都用到单片机,日常生活中我们也离不开单片机的应用。
当今社会是数字化的社会,是数字集成电路广泛应用的社会,随着电子产业数字化程度的不断发展,逐渐形成了以数字系统为主体的格局。
A/D和D/A转换器作为模拟和数字电路的借口,正受到日益广泛的关注。
随着数字技术的飞速发展,人们对A/D和D/A转换器的要求也越来越高,新型模拟/数字和数字/模拟之间的转换技术不断涌现,正是因为这些,高集成度的逻辑器件应运而生,而且发展迅速,它不断地更新换代以满足程序的要求,并尽可能的提高其利用率。
本课程设计就对其中AD574模数转换器在微机数据采集系统中的应用加以阐述。
关键字:AD574转换器,80c51单片机,LED数码显示,串行输出1.2 设计课题及任务1.掌握电子电路的一般设计方法和设计流程;2.学习简单电路系统设计,掌握Protel99的使用方法;3.掌握8051单片机、12位A/D芯片AD574的应用;4.学习掌握硬件电路设计的全过程。
1.3 功能要求及说明1.学习掌握8051单片机的工作原理及应用;2. 学习掌握12位A/D芯片AD574的工作原理及应用;3. 设计基于AD574的12位模拟信号采集器的工作原理图及PCB版图;4. 整理设计容,编写设计说明书。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的数字滤波器设计(2010-07-25 10:02:47)转载数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
数据采集技术广泛引用在各个领域。
比如摄像头,麦克风,都是数据采集工具。
被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。
在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化。
而在数据采集中存在着各种噪声。
滤除噪声的方法有很多种,既有数字滤波器,也有模拟滤波器。
这里我们采用了基于单片机和C语言来设计并开发数字滤波系统。
我们针对于单片机数据采集系统中经常出现的随机干扰,通过手动输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的C程序,尤其对中位值滤波和中位值平均滤波算法程序进行了改进。
同时也对这几种滤波算法进行了比较,并指出了每一种算法的具体适用范围和注意事项。
另外我们使用了 proteus进行仿真验证这几种滤波方法。
另外我们还使用了AD和DA来采集及输出数据。
关键词:单片机、proteus、C语言、数字滤波。
1 数字滤波设计原理这里有很多种数字滤波方法,我们见选用其中几种来进行设计,如中值滤波、算术平均滤波、加权平均滤波等等。
所以下面我将详细介绍它们。
1.1 中值滤波中位值滤波是先对某一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值。
该滤波方法实际上是一种排序方法,我在此采用的是冒泡法排序。
由于在冒泡法排序中,每出现一次前者数据大于后者数据,就要进行二者数据的交换。
该算法的样例子程序如下:#define N 11 //N值可根据实际情况调整char filter(){char value_buf[];char count,i,j,k,temp;for(count=0;count<N;count++) //获取数据{value_buf[count]=get_data();delay();}for(i=0;i<N-1;i++) //选择排序{k=i;for(j=i+1;j<N;j++)if(value_buf[j]<value_buf[k]) k=j;temp=value_buf[k];value_buf[k]=value_buf[i];value_buf[i]=temp;}return value_buf[(N-1)/2];}中位值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰。
对温度、液位等缓慢变化的被测参数采用此算法能收到良好的滤波效果,但对于流量、压力等快速变化的数据,不宜采用中位值滤波。
1.2 算术平均滤波算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。
这种信号的特点是信号本身在某一数值范围附近上下波动,如测量流量、液位时经常遇到这种情况。
算术平均滤波法是要按输入的N 个采样数据,寻找这样一个Y,使得Y 与各个采样值之间的偏差的平方和最小。
具体实现此算法的子程序如下:#define N 12char filter(){int count;int sum=0;for(count=0;count<N;count++){sum+=get_ad();delay();}return (char)(sum/N);}算术平均滤波适用于对一般具有随机干扰的信号进行滤波。
这种信号的特点是有一个平均值,信号在某一数值范围附近做上下波动,在这种情况下仅取一个采样值做依据显然是不准确的。
算术平均滤波对信号的平滑程序完全取决于N,当N 较大时,平滑度高,但灵敏度低;当N较小时,平滑度低,但灵敏度高,应视具体情况选取N,以便既少占用计算时间,又达到最好的效果。
1.3 加权平均滤波在算术平均滤波和移动平均滤波中,N次采样值在输出结果中的权重是均等的,取1/N。
用这样的滤波算法,对于时变信号会引入滞后,N值越大,滞后越严重。
为了增加新采样数据在移动平均中的权重,以提高系统对当前采样值中所受干扰的灵敏度,可采用加权平均滤波,它是移动平均滤波算法的改进。
加权平均滤波是对连续N次采样值分别乘上不同的加权系统之后再求累加和,加权系统一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨识。
各个加权系统均为小于1的小数,且满足总和等于1的约束条件。
这样,加权运算之后的累加和即为有效采样值。
为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后便是有效采样值。
具体的样例子程序如下://code数组为加权系统表,存在ROM区。
#define N 12char code jq[N]={1,2,3,4,5,6,7,8,9,10,11,12};char code sum_jp=1+2+3+4+5+6+7+8+9+10+11+12;char filter_5(){char count;char value_buf[N];int sum=0;for(count=0;count<N;count++){value_buf[count]=get_data();delay();}for(count=0;count<N;count++)sum+=value_buf[count]*jq[count];return (char)(sum/sum_jq);}1.4 中位值平均滤波它相当于是“中位值滤波法”和“算术平均滤波法”的结合。
它连续采样N个数据,然后去掉一个最大值和一个最小值,最后计算N-2个数据的算术平均值。
一般N值的选取:3-14。
具体算法程序如下:#define N 12char filter(){char count,i,j;char value_buf[N];int sum=0;for (count=0;count<N;count++){value_buf[count] = get_ad();delay();}for (j=0;j<N-1;j++){for (i=0;i<N-j;i++){if ( value_buf[i]>value_buf[i+1] ){temp = value_buf[i];value_buf[i] = value_buf[i+1];value_buf[i+1] = temp;}}}for(count=1;count<N-1;count++)sum += value[count];return (char)(sum/(N-2));}这种滤波方法兼容了移动平均滤波算法和中位值滤波算法的优点,所以无论对缓慢变化的信号,还是对快速变化的信号,都能取得较好的滤波效果。
1.5 限幅滤波限幅滤波的基本原理是把两次相邻时刻(n和n-1)的采样值Yn和Yn-1相减,求出其差值,以绝对值表示,然后将这个差值与两次采样允许的最大偏差值ΔY 比较,如果两次采样值的差值超过了允许的最大偏差值ΔY,则认为发生了随机干扰,并认为最后一次采样值Yn非法,应予剔除。
剔除Yn后,可用Yn-1代替Yn;若未超过允许的最大偏差值范围,则认为本次采样值有效。
可用如下公式表示:|Yn-Yn-1|≤ΔY;则Yn有效|Yn-Yn-1|>ΔY;则Yn-1有效此算法的样例子程序如下:#define A 10 //A值可根据实际情况调整char data; //上一次的数据char filter_1(){char datanew; //新数据变量datanew=get_data(); //获得新数据//滤波算法if ((datanew-data>A)||(data-datanew>A)return data;return datanew;}该算法主要用于处理变化比较缓慢的数据,如温度、物体的位置等。
使用时关键在于最大偏差值的Δy的选择,通常可根据经验获得,也可按照输出参数可能的最大变化速度Vmax及采样周期T来决定ΔY的值,即ΔY=VmaxT。
2 原理图设计2.1 单片机AT89C51这里我们使用了51系列单片机——AT89C51,利用这个单片机进行编程,实现对输入信号的滤波。
我使用了P0口作为接受AD转换的结果的端口,而P1口则输出数据到DA转换器。
另外还利用了P2作为控制端口,P2.0-P2.2用来控制AD转换器,而P2.3-P2.6外接四个开关,用来实现滤波方式的选择。
2.2 数据采集另外我还使用了AD0808进行数据采集。
这里AD0808是并联AD转换器,AD0808的引脚图如下图:图1 AD0808的引脚图IN0-IN8是八个模拟量输入端口,AD0808可以一次对八个模拟量进行模数转换,但是在这里我们只使用了其中的一个输入端IN0,所以ADDDA、ADDB、ADDC都应为0,所以我让它们都接地。
它的八个输出端接在单片机上,CLOCK接数据采样时钟,它可以接在单片机上由单片机控制,也可接在另外的数字时钟上,这里我选用外接别的时钟。
START为转换启动信号,在其上跳变时,所有内部寄存器清零,在其下调变时,开始进行AD转换。
ALE是地址锁存信号。
这里我让START 和ALE均接在单片机的同一个端口上,即P2.1,让单片机实现程序控制AD的转换。
OE是输出允许信号,OE=1时,才能允许输出,这里我让它也接在单片机的端口P2.1上,也是为了让单片机实现程序控制AD0808的输出。
EOC是转换结束信号,EOC=1时,表示转换结束。
这个信号可以用来提醒单片机AD已经转换完毕,程序中即可以用查询方式,也可以用中断方式,这里我使用查询方式,所以把它接在P2.2上。
VREF(+)和VREF(-)都是参考电压信号端口,这里我让VREF(-)的参考电压为零,VREF(+)的参考电压为+3V。
2.3 数模转换输出这里我用了DA0832来进行数模转换。
DA0832的引脚图如下图所示:图2 DA0832的引脚图DA0832有三种数模转换方法,直通方式、单缓冲方式、双缓冲方式,因为单片机输出后可以直接进行数模转换,所以这里我采用了不需要单片机控制的最为简单的直通方式,但是DA0832若用于直通方式,则在接单片机的输出端口之间还要接一个缓冲器件,如74LS373。
若用于直通方式下,则、、、和GND均接地,而VCC和ILE则接正电源。
VREF 是参考电源。
IOUT1、IOUT2是两个输出端。
DA0832输出的是电流,要利用运算放大器转换成电压。
数模转换输出电路如下图所示:图3 数模转换输出电路2.4 总体电路图总体电路图如下图所示:图4 总体电路图3 程序设计3.1 滤波算法设计这个在前面介绍滤波原理时已经说过了,在此就不再次重复了。