单片机AD电路设计程序原理图

合集下载

单片机开发板电路原理图

单片机开发板电路原理图

D Connector 9
MAX232D
VCC C4
16
C8
2
C11
6
14 7 PC-RXD 12 9 RXD_M
2
VCC
VCC
R10 Res2 1K
R11 Res2 1K
1
1
TXD Power-led
RXD Power-led
2
ADᣝ䬂
R7
1.5K ে R12 SW-PB 4.7K
R8
1K ϟ SW-PB
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
Download D0 D1 D2 D3 D4 D5 D6 D7 Download MCUALE DS18B20_0UT CS_Du CS_Wei CS_LED RW EN RS CSA CSB
P5
12 34 56 78 9 10 11 12 13 14 15 16
Header 8X2
DIODEUS6
1 2 3 4 5 6 7 8
IN1 OUT1 IN2 OUT2 IN3 OUT3 IN4 OUT4 IN5 OUT5 IN6 OUT6 IN7 OUT7 GND DIODES
ULN2003
P6
໡ԡ
VCC
R5
GND
R6
VCC
1K
P3
1K
1
RESTA
1 3
2 4
56
RESTB Power
2
Header 3X2 VCC
GND
RESTB
B
R14
R15
R16
Pl2303 USB䕀Іষ

12位AD转换器与单片机的接口电路设计

12位AD转换器与单片机的接口电路设计

12位AD转换器与单片机的接口电路设计AD转换器是具有高度集成化电路的模数转换器。

它将模拟信号转换
为数字信号,这种转换是实现模拟与数字系统的接口,实现模拟信号的采
集与处理的必要前提。

常用的AD转换器有12位AD转换器,它与单片机的接口电路设计包括:
1、驱动电路。

12位AD转换器与单片机之间需要通过电压驱动线在
两个芯片间传送模拟电压信号。

为了节省电源能量损耗,一般采用低功耗、高精度的滤波电路来保证电压平稳、不受外界干扰。

2、AD转换器控制信号。

模数转换器本身需要诸如转换触发、转换完成、复位和读取等一系列控制信号,控制信号的设计通常采用三态逻辑。

3、电压信号转换。

常用的12位AD转换器输出的是2的12次方个电
压信号值,而单片机的数据输入室通常是8位或者16位的二进制码,在
此种情况下,需要将AD转换器输出的电压信号转换为可识别的数字信号,这就需要设计一个称为电压转换器的电路。

4、时钟控制电路。

PIC单片机的AD和DA技术

PIC单片机的AD和DA技术

§7.3 D/A转换技术
• D/A转换器(数模转换器)是把数字量转换成与之成一
定比例的模拟量的线性电路器件。
• 衡量一个D/A转换器的性能的主要参数有:分辨率、转
换时间、精度和线性度等。
• 主要朝着高精度、高速度、高可靠性和低功耗等方面
发展。
• 按分辨率分有八位、十位、十二位、十四位、十六位
几种;按接口形式分有串行与并行的;按芯片集成组 分有单路、双路、四路、八路。主要的厂家有AD公司、 MAXIM公司、TI公司、Linear Technology公司、 Intersil公司、Xicor公司、Cirrus公司等。
– 转换数据可以在SCLK脉冲串的作用下从DOUT 引脚逐位输出,数据输出的顺序为先高位后低 位。
• 在SCLK的下降沿,DOUT输出数据,在
SCLK的上升沿,数据稳定。
• 在SCLK信号为高电平期间单片机从DOUT引
脚上读数据。需要13个时钟脉冲下降沿来 传送12位数据元和一个导引位。
4 应用实例
• 旁路电容选择
– 推荐最低值是0.1μF. 如果基准的输出阻抗值较高 或是内含纹波等噪声,则紧靠于引脚REF旁安装 一个的旁路电容。
3 MAX187时序
• MAX187的接口时序
3 MAX187时序(续1)
• Max187转换和读数据操作由/CS和SCLK引
脚的数字输入信号控制。
• /CS的下降沿触发转换序列:
• ⑧等待A/D转换完成,读取转换结果
– 当启动A/D转换后,ADCON0<2>会一直保持高 电平,到转换结束自动跳到低电平。通过检测 这一位,判断A/D的转换状态。转换结束后可 以直接读取结果。
例片内RA0通道A/D转换

单片机AD转换实验

单片机AD转换实验

一、实验目的1、掌握单片机与ADC0809的接口设计方法。

2、掌握Proteus软件与Keil软件的使用方法。

二、实验要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。

2、在0809的某一模拟量输入通道上接外部模拟量。

3、在单片机的外部扩展数码管显示器。

4、分别采用延时和查询的方法编写A/D转换程序。

5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。

三、实验电路图四、实验程序流程框图和程序清单1、查询ORG 0000H START:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8H MOVX @DPTR, ALOOP1:JNB P3.2, LOOP1MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, A LCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEH LOOP2:MOV P2, R3 MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETEND2、延时ORG 0000HSTART:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8HMOVX @DPTR, ALCALL DELAY100MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, ALCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEHLOOP2:MOV P2, R3MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETDELAY100: MOV R6,#01H;误差 0usDL0:MOV R5,#2FHDJNZ R5,$DJNZ R6,DL0RETEND3、中断ORG 0000HSTART:LJMP MAINORG 0003HLJMP INTT0ORG 0100HMAIN: MOV SP, #6FHSETB EASETB EX0MOV DPTR, #0000HMOVX @DPTR, AHERE: LJMP HEREINTT0:MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, A //整数部分放22H中MOV A, #10MOV 22H, A //小数点放22H中MOV A, BLCALL CHULIMOV 21H, A //小数点后第一位放21H中 MOV A, BLCALL CHULIMOV 20H, A //小数点后第一位放21H中 LCALL DIRMOV DPTR, #0000HMOVX @DPTR, ARETIDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #01HLOOP2:MOV P2, R3 //位控码初始值MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JB ACC.3 LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LJMP LP3LP2: MOV A, #5MOV B, #0LP3: RETEND五、实验结果六、实验总结通过本次试验掌握了A/D转换的电路设计,掌握了AD0808的使用以及编址技术,熟悉了A/D转换的方法和A/D转换的程序设计方法。

51单片机ad转换程序解析

51单片机ad转换程序解析

51单片机ad转换程序解析1.引言1.1 概述概述部分旨在介绍本篇文章的主题——51单片机AD转换程序,并对文章的结构和目的进行简要说明。

51单片机是指Intel公司推出的一种单片机芯片,它广泛应用于嵌入式系统中。

而AD转换则是模拟信号转换为数字信号的过程,是嵌入式系统中的重要功能之一。

本文将详细解析51单片机中的AD转换程序。

文章结构分为引言、正文和结论三个部分。

引言部分将给读者介绍本篇文章的内容和结构安排,正文部分将详细讲解51单片机AD转换程序的相关要点,而结论部分将总结正文中各个要点的内容,以便读者能够更好地理解和掌握51单片机AD转换程序的实现原理。

本文的目的在于向读者提供一份对51单片机AD转换程序的详细解析,使读者能够了解51单片机的AD转换功能以及如何在程序中进行相应的设置和操作。

通过本文的学习,读者将掌握如何使用51单片机进行模拟信号的采集和处理,为后续的嵌入式系统设计和开发提供基础。

在下一节中,我们将开始介绍文章的第一个要点,详细讲解51单片机AD转换程序中的相关知识和技巧。

敬请期待!1.2 文章结构文章结构部分主要是对整篇文章的框架和内容进行介绍和归纳,以帮助读者更好地理解文章的组织和内容安排。

本文以"51单片机AD转换程序解析"为主题,结构分为引言、正文和结论三个部分。

引言部分主要包括概述、文章结构和目的三个方面。

首先,通过对单片机AD转换程序的解析,来讲解其实现原理和功能。

其次,介绍文章的结构,帮助读者明确整篇文章的主要内容和组织方式。

再次,阐明文章的目的,即为读者提供关于51单片机AD转换程序的详尽解析和指导,帮助读者深入了解该技术并进行实际应用。

正文部分则分为两个要点,即第一个要点和第二个要点。

第一个要点可以从AD转换的基本概念入手,介绍51单片机AD转换的原理和流程。

包括输入电压的采样、AD转换器的工作原理、ADC的配置和控制等方面的内容。

在此基础上,深入解析51单片机AD转换程序的编写和调用方法,包括编程语言、寄存器的配置、数据的获取和处理等。

AltiumDesigner绘制电路原理图

AltiumDesigner绘制电路原理图

AltiumDesigner绘制电路原理图图3- 72用公共导线连接总线入口图3- 73总线进入的四种状态图3- 74总线入口属性设置网络号的放置:网络号的放置对于总线系统是必要的。

没有网络号的总线没有实际的电气意义。

两端连接到总线的设备数量相同的引脚将具有电气连接。

因为总线系统通常用来表示芯片的地址总线和数据总线,所以连接到总线的导线通常称为AD0~AD8等。

当放置第一个网络标签时,按[Tab]键将网络名称更改为AD0,则以后放置的网络名称的标签将自动增加。

下一节将详细解释网络标签的放置和设置。

3.3.5公共汽车入口处的公共电线连接放置网络标签网络标签的应用在上一节的总线放置过程中已经提到。

事实上,网络标签的应用远非如此。

网络标签是一种无线线路,具有相同网络标签的电气节点以电气关系连接在一起。

无论它们之间是否存在实际的导线连接,对于复杂的电路设计来说,用导线将各种具有电连接的节点连接起来是不容易的,这常常使得电路难以读取,而网络标签正好可以解决这个问题。

执行[广场]菜单中的[网络标签]命令或单击工具栏上的按按钮输入网络徽标。

号码放置状态。

此时,鼠标将变成一个白色的“x”形光标,并附有网络标签。

如果网络标签中有数字,网络标签中的数字会在每次放置时自动增加。

将光标移动到导线上,当光标抓住导线时,它将变成与网络标签相同的“x”形。

此时,单击鼠标左键以成功放置网络标签。

同时,导线的网络名称也将被重命名为网络标签名称。

在Altium Designer的电路设计中,每个实际的电气连接都属于一个网络,并有一个网络名称。

当鼠标在线路上停留一段时间后,系统会自动提示该线路所属的网络名称,如图3-76的左图所示。

网络:网络C3_1意味着网络连接到电容器C3的第一个引脚。

当放置名为AD1的网络标签时,网络的网络名称变为AD1。

图3- 75网络标签的放置图3- 76线网名称的变化图3- 77网络标签放置前放置网络标签后的网络标签属性设置网络标签最重要的属性是它所属网络的网络名称。

单片机的 ad的原理

单片机的 ad的原理

单片机的 ad的原理
单片机(简称MCU)的AD转换器是一种电路模块,用于将模拟量(连续变化的信号)转换为数字量(离散的数值)。

单片机的AD转换原理如下:
1. 采样:AD转换开始时,首先需要对输入信号进行采样。

采样是指将连续的模拟信号在一定周期内进行离散化,获取一系列采样值。

2. 量化:采样得到的连续信号是模拟量,而单片机内部是通过数字量进行处理的,所以需要将模拟量转换为数字量。

这个过程称为量化。

量化是将连续的模拟信号分割为若干等间隔的电平,并将其与特定数量的离散级别相对应。

3. 编码:量化后的信号是模拟量对应的数字量,但数字量无法直接处理。

因此需要进行编码,将其转换为二进制码。

常用的编码方式是二进制编码、格雷码等。

4. 校准:由于硬件的不完美性或者环境因素的影响,AD转换器存在一定的误差。

因此需要进行校准操作,将转换的数字量与实际输入信号之间的误差进行修正。

5. 输出:经过上述步骤,AD转换器将模拟信号成功地转换为数字信号,并输出给单片机的输入引脚。

单片机可以通过读取输入引脚的数值来获取模拟量的数字表示。

总结:单片机的AD转换原理是通过采样、量化、编码、校准等步骤将模拟信号转换为数字信号,并输出给单片机进行处理。

单片机课设AD转换

单片机课设AD转换
时钟电路,外接晶振和电容可产生1.2~12MHz的时钟频率。
外部程序存储器寻址空间为64KB,外部数据存储器寻址空间为64KB。
111条指令,大部分为单字节指令。
单一+5V电源供电,双列直插40引脚DIP封装。
5.2.3 复位电路
复位电路有两种:上电自动复位和上电/按键手动复位。在这里我们采用上电/按键手动复位,如图所示按下按键SW,电源对电容C充电,使RESET端快速达到高电平。松开按键,电容向芯片的内阻放电,恢复为低电平,从而使单片机可靠复位。既可上电复位,又可按键复位。一般R1选470欧姆,R2选8.2K欧姆,C选22uF。
6.2 主程序
主程序主要是设置数据区的起始地址为60H,模拟路数为8路,设置外部中断方式是下降沿触发,开总中断,向ADC0809写数据启动AD转换。
图1主流程图的设计框架
6.3中断服务程序
中断服务程序主要完成取AD转换结果存储,模拟路数自增1,存储区自增1,判断8路是否转换完毕,若完毕则返回。
图2 T0中断服务程序流程图
MOV @DPTR,A
就启动了AD转换。
8051的P2.7(A15)和 经或非门后的信号YOE与ADC0809的OE端相连,但单片机执行如下程序后,
MOV DPTR,#7FF8H
MOV A,@DPTR
就可以获取AD的转换结果。
转换数据的传送可以有定时传送方式,查询方式和中断方式,在这里我们采用中断方式。因为ADC0809的转换时间为100us,而单片机执行一条指令的时间为1us,它们之间相差两个数量级。而且采用中断方式的好处在于可以不占用CPU硬件资源,使CPU可以在转换的过程中完成其他的工作。将ADC0809的EOC引脚经或非门后与8051的INT0相连,这样就能在外部中断子程序中实现对采集来的数据进行存储。

单片机课件(ADC0809和DAC0832)

单片机课件(ADC0809和DAC0832)

解:
MAIN: MOV R1,#40H
;置数据区首址
MOV R7,#8
;置通道数
SETB P1.0
;置P1.0输入态
MOV DPTR,#0FEF8H ;置0809通道0地址
LOOP: MOVX @DPTR,A
;启动A/D
JNB P1.0,$
;查询A/D转换结束否?未完继续查询等待
MOVX A,@DPTR
2021/7/13
14
2、硬件电路设计
该芯片既可用于A/D转换(模拟信号从AIN0~AIN3输 入),又可用于D/A转换(D/A转换模拟量从AOUT输出), 器件地址为1001,若A2A1A0接地,D/A转换写寻址字节 SLAW=90H,A/D转换读寻址字节SLAR=91H。
2021/7/13
15
MOV NUMB,#1
;置发送字节数
LCALL WRNB
;发送控制命令字
MOV R0,#50H
;置A/D数据区首址
VADC0: MOV SLA,#91H
;置接收寻址字节
MOV NUMB,#2
;置接收字节数
LCALL RDNB
;读A/D转换数据
MOV @R0,41H
;存A/D转换数据(存在50H~53H)
2021/7/13
12
ADC3: JNB RI,ADC3
;接收第二字节
CLR RI
;清接收中断标志
MOV A,SBUF
;读第二字节数据
ANL A,#0FH
;第二字节屏蔽高4位
ANL B,#0FOH
;第一字节屏蔽低4位
ORL A,B
;组合
SWAP A
;高低4位互换,组成正确的A/D数据

基于单片机的AD转换电路与程序设计

基于单片机的AD转换电路与程序设计

基于单片机的AD转换电路与程序设计单片机(MCU)是一种集成了处理器核心、内存、输入输出接口和各种外围设备控制器等功能的集成电路。

MCU通常用于嵌入式系统,广泛应用于各个领域,例如家电、工业控制、汽车电子等。

其中,AD转换是MCU中的一个重要模块,用于将模拟信号转换成数字信号。

在应用中,常常需要将外部的温度、湿度、压力或光照等模拟信号进行转换和处理。

AD转换电路一般由模拟输入端、引脚连接、采样保持电路、比较器、取样调节电路、数字输出端等部分组成。

模拟输入端负责接收外部的模拟量信号;引脚连接将模拟输入信号引到芯片的模拟输入端;采样保持电路负责将引脚输入的模拟信号进行采样和保持,保证AD转换的准确性;比较器用于将模拟信号与参考电压进行比较,判断信号的大小;取样调节电路用于调整模拟信号的边界;数字输出端将模拟信号转换成数字信号输出给MCU。

在程序设计方面,MCU通常使用C语言进行编程。

程序设计分为初始化和数据处理两个步骤。

初始化阶段主要包括设置IO口、初始化外设、设置模拟输入通道等工作。

数据处理阶段主要包括数据采样、数值转换、数据处理和输出等工作。

下面以一个简单的温度采集系统为例进行说明。

首先,在初始化阶段,需要设置IO口和外设,以及设置模拟输入通道。

具体步骤如下:1.设置IO口:根据具体需要配置MCU的引脚功能和工作模式。

2.初始化外设:根据需要初始化ADC模块,包括设置采样频率、参考电压等参数。

3.设置模拟输入通道:选择需要转换的模拟输入通道。

接下来,在数据处理阶段,需要进行数据采样、数值转换和数据处理。

具体步骤如下:1.数据采样:使用ADC模块进行模拟信号的采样,将采样结果保存到寄存器中。

2.数值转换:将采样结果转换成数字信号,可以使用如下公式进行转换:数字信号=(ADC采样结果/采样最大值)*参考电压3.数据处理:根据具体需求进行数据处理,例如计算平均值、最大值或最小值,也可以进行滤波或校正。

基于单片机的AD590的温测控系统设计 (1)

基于单片机的AD590的温测控系统设计 (1)

1.系统方案的设计1.1系统结构本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D 模拟数字转换芯片的性能,以单片机为核心的一套检测系统,其中包括A/D 转换、单片机、温度检测、湿度检测、显示、系统软件等部分的设计。

图1-1 系统总体框图本设计由信号采集、信号分析和信号处理三个部分组成的。

(1)信号采集 由温度传感器、湿度传感器及多路开关组成; (2)信号分析 由A/D 转换器、单片机基本系统组成; (3)信号处理 由串行口LED 显示器和报警系统等组成。

1.2 系统结构原理图该系统由温度传感器、湿度传感器、8031嵌入式系统、加热设备、加湿设备几部分组成。

结构原理框图如图2-2所示。

]8[通过温度传感器和湿度传感器测量温室内的温湿度经过AD 转换送入8031进行处理,测量结果通过显示电路进行显示。

多路开关 A/D 转换多路开关 湿度检测 显示电路报警电路单片机温度检测图1-2系统结构原理图A L E P 00P 01P 02P 03P 04P 05P 06P 07W RP 20R DI N T 1X T A L 1X T A L 2E A V S SR E S E T V C CT X DR X D P 10P 11P 12P 13P 14A T 89S 52QQDC K 74L S 7420p F 20p F6M H z+5+22u F 1k 200复位按键+5+5D 0D 1D 2D 3D 4D 5D 6D 7S T A R T A L EO E E O C C L KA B CR E F (+)V C CR E F (-)G N DI N 0A D C 08093265741u A 741001u F22K+1247K68K 15K+547KA D 59020K 001u F -12-5温度传感器M O C 3011330+5330100001u F 电炉2201K W10A /500V74L S 16474L S 16474L S 164a b c d e f g ha b c d e f g ha b c d e f g h47K *3+574L S 04I N 4004*23D G 12B蜂鸣器+12图1-3电路图处理器室温测量电路触摸屏A/D 转换器放大滤波电路温度传感电路烤箱双向可控硅控制电路上位机软件2.硬件设计2.1 AD590AD590温度传感器是电流型温度传感器,通过对温度的测量可得到所需要的电流值。

单片机AD转换实验代码及电路图

单片机AD转换实验代码及电路图

单片机AD转换实验代码及电路图ADC0809 ADC0832描述:单片机AD原理图图片:这是自己这段时间做的AD转换的实验以下是程序的源代码,希望能对大家有用,同时希望和大家一起讨论共同进步ORG 00HSTART: MOV P3,#0FFH;CLR P3.3 ;CS=0选中芯片进行AD转换CLR P3.6 ;NOPSETB P3.6 ;WR由低到高,开始转换NOPJB P3.2,$;查询转换结束产生INTR信号(低电平有效)SETB P3.3;停止AD转换NOPMOV P1,#0FFHCLR P3.3 ;选中ADCLR P3.7;读取转换数据结果NOPSETB P3.7;数据转换完成MOV A,P1;SETB P3.3;数据转换完成jisuan:MOV B,#100DIV AB ;求转换后的百位MOV R3,A;将百位存入R3MOV A,B;余数存入AMOV B,#10;分离十位DIV AB ;B存入余数MOV R2,A;R2存十位MOV R0,B;个位存入R0;SETB P2.7;不明白作用MOV R4,#40;数码管扫描次数QQQQ: MOV R1,#255;延时;数码管动态扫描显示QQQ: SETB P2.1;百位显示SETB P2.2;MOV A,R3;百位显示MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,A;段选CLR P2.0NOP;十位显示SETB P2.0SETB P2.2MOV A,R2MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ACLR P2.1NOP;个位显示SETB P2.0SETB P2.1MOV A,R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ANOPCLR P2.2;重复显示DJNZ R1,QQQDJNZ R4,QQQQSJMP STARTTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH; END。

51单片机与ADC0809应用做AD转换(电路图附程序)

51单片机与ADC0809应用做AD转换(电路图附程序)
应用程序如下:
#include"reg52.h"
#define uchar unsigned char
sbit ST=P1^0;
sbit EOC=P1^1;
sbit OE=P1^2;
sbit CLK=P1^3;
sbit ADDCS=P1^4;
uchar AD_DATA[2];//保存IN0和IN1经AD转换后的数据
void AD()
{
ST=0;
ADDCS=0; //选择通道IN0
delay(10);
ST=1; //启动AD转换
delay(10);
ST=0;
while(0==EOC);
OE=1;
AD_DATA[0]=P2;
OE=0;
ST=0;
ADDCS=1; //选择通道IN1
delay(10);
ST=1; //启动AD转换
TH0=216; //利用T0中断产生CLK信号
TL0=216;
TR0=1; //启动定时器T0
ET0=1;
ST=0;
OE=0;
}
/***********T0中断服务程序************/
voidt0(void) interrupt 1 using 0
{
CLK=~CLK;
}
/***********AD转现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责

说明:D0~D7接51单片机的P2口(P2.0~P2.7)
ADIN1和ADIN2为通道IN0和IN1的电压模拟量输入(0~5V)
/**********延时函数************/
void delay(uchar i)

单片机控制直流电机并测速(电压AD、DA转换以及pwm按键调速正转反转)

单片机控制直流电机并测速(电压AD、DA转换以及pwm按键调速正转反转)

单片机原理及应用课程设计报告书题目:用单片机控制直流电动机并测量转速姓名:徐银浩学号:1110702225专业:电子信息工程指导老师:沈兆军设计时间:2014年 11月信息工程学院目录1. 引言 01.1 设计意义 01.2 系统功能要求 02. 方案设计 03. 硬件设计 (2)3.1 AT89C51最小系统 (3)3.2 按键电路 (4)3.3 A/D转换模块 (4)3.4. D/A转换模块 (6)3.5 电机转速测量电路 (7)3.6 显示电路 (8)3.7 总电路图 (10)4. 软件设计 (101)4.1 系统主程序设计 (12)4.2 按键扫描程序设计 (12)4.3 显示子程序 (12)4.4 定时中断处理程序 (12)4.5 A/D转换程序 (13)5. 系统调试 (14)6. 设计总结 (16)7. 参考文献 (17)8. 附录A;源程序 (18)9. 附录B;电路原理总图、作品实物图片 (23)用单片机控制直流电动机并测量转速1 引言1.1. 设计意义电动机作为最主要的动力源,在生产和生活中占有重要地位。

电动机的调速控制过去多用模拟法,随着计算机的产生和发展以及新型电力电子功率器件的不断涌现,电动机的控制也发生了深刻的变化,本系统利用直流电机的速度与施加电压成正比的原理,通过滑动变阻器向ADC0809输入控制电压信号,经AD后,输入到AT89C51中,AT89C51将此信号转发给DAC0832,通过功放电路放大后,驱动直流电机。

1.2.系统功能要求单片机扩展有A/D转换芯片ADC0809和D/A转换芯片DAC0832。

通过改变A/D输入端可变电阻来改变A/D的输入电压,D/A输入检测量大小,进而改变直流电动机的转速。

手动扩展。

在键盘上设置两个按键——直流电动机加速键和直流电动机减速减。

在手动状态下,每按一次键,电动机的转速按照约定的速率改变。

用显示器LED或LCD显示数码移动的速度,及时形象地跟踪直流电动机转速的变化情况。

stc15单片机ad转换汇编程序

stc15单片机ad转换汇编程序

STC15单片机AD转换汇编程序一、引言在嵌入式系统开发中,AD(模数转换)是非常重要且常用的功能之一。

STC15单片机作为一种广泛应用的单片机,其AD转换功能也备受关注。

本文将针对STC15单片机的AD转换功能,深度探讨其汇编程序实现的方法和技巧。

二、STC15单片机AD转换的基本原理STC15单片机通过内部的AD转换模块,可以将模拟信号转换为数字信号,从而方便处理和分析。

其AD转换的基本原理是通过采样保持电路对模拟信号进行采样,然后将其转换为相应的数字量。

在具体的汇编程序中,需要考虑输入端口的设置、参考电压的选取和AD转换开始命令的下发等问题。

三、STC15单片机AD转换的汇编程序实现方法1. 设置输入端口和参考电压在写汇编程序之前,首先需要设置好输入端口和参考电压。

对于STC15单片机,可以通过相应的寄存器设置来实现。

需要注意的是,输入端口的选择和参考电压的设置将直接影响到AD转换的准确性和稳定性,因此需要认真考虑并进行合理设置。

2. 编写AD转换子程序在编写AD转换子程序时,需要考虑如何进行AD采样和转换、如何获得转换结果、以及如何处理转换结果等问题。

在采样转换时,需要注意采样保持电路的作用和AD转换的时钟周期。

获取转换结果后,还需要进行相应的处理,如数据的清洗、分析和存储等。

3. 主程序中调用AD转换子程序在主程序中调用AD转换子程序时,需要注意时序合理性和程序流程的清晰性。

还需要考虑如何根据转换结果进行相应的控制和应用,从而充分发挥AD转换的作用。

四、结论STC15单片机的AD转换功能在实际应用中具有重要意义,通过合理的汇编程序实现,可以充分发挥其优势并应用于各种领域。

熟练掌握AD转换的实现方法和技巧,对于嵌入式系统开发工程师来说是非常必要的。

希望本文的探讨能够对读者有所帮助。

个人观点和理解在实际的嵌入式系统开发中,AD转换是一个常见但又比较复杂的功能模块之一。

通过学习和实践,我深切体会到了AD转换在数据采集、传感器应用等方面的重要性。

利用51单片机+8位数码管+AD0809设计数字直流电压表系统

利用51单片机+8位数码管+AD0809设计数字直流电压表系统

目录1.题目设计要求 (2)2. 系统的组成及工作原理 (2)2.1电路原理图 (2)2.2 A/D转换原理 (3)2.3数据处理原理 (3)2.4器件列表 (3)3. 器件的功能和作用 (4)3.1AT89C51功能介绍 (4)3.1.1AT89C51的简单概述 (4)3.1.2AT89C51的引脚介绍 (4)3.2AD0809功能介绍 (6)3.3 LED数码管功能介绍 (6)4.系统硬件设计 (7)5. 系统软件设计 (8)5.1 程序流程图 (8)5.2程序代码 (10)6.系统仿真调试 (13)6.1仿真原理图设计 (13)6.2 与程序代码链接 (13)6.2.1运用keil uVision4生成.hex文件并链接 (13)6.3 仿真运行结果 (15)7.心得体会 (15)8.参考文献 (16)1.题目设计要求要求:利用51单片机+8位数码管+AD0809设计数字直流电压表系统,精度为0.01V。

完成以下设计环节:1)使用Altium Desinger或Protel99SE开发工具,设计电路原理图与PCB制板图。

2)使用Uvision2开发平台,采用C语言或汇编语言设计软件程序。

3)使用PROTEUS仿真软件,设计仿真原理图并运行软件程序,完成系统仿真。

2.系统的组成及工作原理2.1电路原理图图2.1 电路原理图2.2 A/D转换原理模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。

但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。

A/D转换器的工作原理:采用逐次逼近法,逐次逼近式A/D是比较常见的一种A/D转换电路,转换的时间为微秒级。

逐次逼近法转换过程是:初始化时将逐次逼近寄存器各位清零;转换开始时,先将逐次逼近寄存器最高位置1,送入D/A转换器,经D/A转换后生成的模拟量送入比较器,称为Vo,与送入比较器的待转换的模拟量Vi进行比较,若Vo<Vi,该位1被保留,否则被清除。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AD0809在51单片机中的应用
我们在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠A/D或V/F实现。

下现我们就来了解一下AD0809与51单片机的接口及其程序设计。

1、AD0809的逻辑结构
ADC0809是8位逐次逼近型A/D转换器。

它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

2、AD0809的工作原理
IN0-IN7:8条模拟量输入通道
ADC0809对输入模拟量要求:信号单极性,电压范围是0
-5V,若信号太小,必须进行放大;输入的模拟量在转换
过程中应该保持不变,如若模拟量变化太快,则需在输入
前增加采样保持电路。

地址输入和控制线:4条
ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A, B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

C B A 选择的通道
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
数字量输出及控制线:11条
ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。

3、ADC0809应用说明
(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

(2).初始化时,使ST和OE信号全为低电平。

(3).送要转换的哪一通道的地址到A,B,C端口上。

(4).在ST端给出一个至少有100ns宽的正脉冲信号。

(5).是否转换完毕,我们根据EOC信号来判断。

(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

4、AD0809的应用
了解完A/D转换芯片,下面我们以图2为例来完成它的程序设计。

电路说明:
电路见图(2),主要由AD转换器AD0809,频率发生器SUN7474,单片机AT89S51及显示用数码管组成。

AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC 信号在START的下降沿10us后才变为无效的低电平。

这要求查询程序待EOC无效后再开始查询,转换完成后,EOC输出高电平,再由OE变为高电平来输出转换数据。

我们在设计程序时可以利用EOC信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动AD0809后经适当的延时再读入已转换的数据。

AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1与SUN7474连接经与7474的ST脚提供AD0809的工作时钟。

AD0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ时,其转换速度为128us。

AD0809的数据输出公式为:Dout=Vin*255/5=Vin*51,其中Vin为输入模拟电压,Vout
为输出数据。

当输入电压为5V时,读得的数据为255再乘以2,得510。

我们用510*98%得499,再将百位数码管的小数点点亮,显示为4.99V,显示值与输入值基本吻合。

软件设计思路及程序流程
编程思路:
(1)向AD0809写入通道号并启动转换
(2)延时1ms后等待EOC出现高电平(JNB EOC,$)
(3)给OE置高并读入转换数据存入数据地址或数组中。

(4)显示
(5)
初始化
1、写入通道号
2、延时20us后等待EOC变高
3、读入采集到的数据并存入数组存入下一通道
#include<at89x51.h>
#define ucharunsigned char
#define uint unsigned int
sbit st=P3^2;
sbit oe=P3^1;
sbit eoc=P3^0;
uchar codetab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管显示段码ucharcode td[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先择数组
uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0;
uchar m,number;
uchar x[8];//八通道数据待存数组
void delaynms(uint x);//nms延时程序
void display();//显示程序
void ad0809();//芯片启动程序
voidkey();//键扫描程序
main()
{
number=1;
P1=0x00;
while(1)
{
ad0809();//调AD0809启动子程序
key();//调按键子程序
ad_0809=x[number];//把相关通道数据给ad_0809,用做显示
display();//调显示
}}
//nms延时程序
voiddelaynms(uint x)
{
uchari;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}}
void display()
{
uchar a;
ad_data1=(ad_0809*49/25)/100;//读得的数据乘以2再乘以98%除以100得百位
ad_data2=((ad_0809*49/25)%100)/10;//读得的数据乘以2再乘以98%再分出十位
ad_data3=(((ad_0809*49/25)%100)%10);//读得的数据乘以2再乘以98%再分出个位
for(a=0;a<10;a++)
{
P0=tab[ad_data3];//送小数点后第二位显示
P2=0x07;//选通第一个数码管
delaynms(3);
P0=tab[ad_data2];//送小数点后第一位显示
P2=0x0b;//选通第二个数码管
delaynms(3);
P0=tab[ad_data1];//送整数显示
P0_7=0;//点亮第三个数码管小数点
P2=0x0d;//选通第三个数码管
delaynms(3);
P0=tab[number];//送通道号显示
P2=0x0e;
delaynms(3);
}}
void ad0809()
{
uchari,m=1;
for(i=0;i<8;i++)
{
P0=td[i];//选通通道
oe=0;
//OE:输出允许信号;
//用于控制三态输出锁存器向单片机输出转换得到的数据。

OE=0,输出数据线呈高电阻;OE=1,输出转换//得到的数据;
//以下三条指令为起动AD0809
//注:st与ALE连载一起
//ALE为地址锁存允许输入线,当ALE=1,地址锁存与译码器将A, B,C三条//地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行//转换。

st=0; //ST为转换启动信号。

st=1;//当ST上跳沿时,所有内部寄存器清零;
st=0; //下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

delaynms(1);// EOC信号在START的下降沿10us后才变为无效的低电平。

while(!eoc);//等待转换结束,转换完成后,EOC输出高电平,
oe=1;//取出读得的数据,OE变为高电平来输出转换数据
x[m]=P2;//送相关通道数组
oe=0;
m++;
}}
void key()
{
if(!P3_5)//P3.5是否按下
{
delaynms(20);//延时去抖动判误
if(!P3_5)//再一次判断P3。

5是否按下
{
while(!P3_5);//等待P3。

5为高电平,按键松开number++;//通道号显示加一
if(number>8)number=1;//八通道
}}}。

相关文档
最新文档