单片机DA数模转换实验报告

单片机DA数模转换实验报告
单片机DA数模转换实验报告

一、实验目的和要求

1、掌握单片机与DAC0832的接口设计方法。

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

二、设计要求。

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

2、在单片机的外部扩展一个4个按键的键盘。

3、按下K0,产生连续方波信号。

4、按下K1,产生连续锯齿波信号。

5、按下K2,产生连续三角波信号。

6、按下K3,产生连续正弦波信号。

7、通过外接示波器观察波形。

三、电路原理图。

图1、电路仿真图

四、实验程序流程框图和程序清单。

ORG 0000H

START: LJMP MAIN

ORG 0100H

MAIN: MOV SP, #60H LOOP: LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

LJMP LOOP

JUCHIBO: MOV R2, #00H

LOOP1: MOV DPTR, #0000H

MOV A , R2

MOVX @DPTR, A

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

INC R2

LJMP LOOP1

JUXINGBO: MOV DPTR , #0000H LOOP2: MOV R3, #0FFH

MOV A, R3

MOVX @DPTR, A

LCALL DELAY1ms

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

MOV R3, #00H

MOV A, R3

MOVX @DPTR, A

LCALL DELAY1ms

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

LJMP LOOP2

SANJIAOBO:MOV R2, #00H

MOV DPTR, #0000H LOOP3: MOV A, R2

NOP

NOP

MOVX @DPTR, A

INC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

CJNE R2, #0FFH, LOOP3

LOOP4: MOV A, R2

NOP

NOP

MOVX @DPTR, A

DEC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

CJNE R2, #00H, LOOP4

LJMP LOOP3

ZHENGXIAN:MOV R2, #00H

LOOP5: MOV DPTR, #SIN

MOV A, R2

MOVC A, @A+DPTR

MOV DPTR, #0000H

MOVX @DPTR, A

INC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

LJMP LOOP5

TIXINGBO: MOV R2, #00H

MOV DPTR, #0000H

LOOP6: MOV A, R2

MOVX @DPTR, A

INC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

CJNE R2, #0FFH, LOOP6

LCALL DELAY20ms

LOOP7: MOV A, R2

MOVX @DPTR, A

DEC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

CJNE R2, #00H, LOOP7

LCALL DELAY20ms

LJMP LOOP6

SIN: DB 07FH ,082H ,085H ,088H ,08BH ,08FH ,092H ,095H ,098H ,09BH ,09EH ,0A1H ,0A4H ,0A7H ,0AAH ,0ADH DB 0B0H ,0B3H ,0B6H ,0B8H ,0BBH ,0BEH ,0C1H ,0C3H ,0C6H ,0C8H ,0CBH ,0CDH ,0D0H ,0D2H ,0D5H ,0D7H DB 0D9H ,0DBH ,0DDH ,0E0H ,0E2H ,0E4H ,0E5H ,0E7H ,0E9H ,0EBH ,0ECH ,0EEH ,0EFH ,0F1H ,0F2H ,0F4H

DB 0F5H ,0F6H ,0F7H ,0F8H ,0F9H ,0FAH ,0FBH ,0FBH ,0FCH ,0FDH ,0FDH ,0FEH ,0FEH ,0FEH ,0FEH ,0FEH

DB 0FEH ,0FEH ,0FEH ,0FEH ,0FEH ,0FEH ,0FDH ,0FDH ,0FCH ,0FBH ,0FBH ,0FAH ,0F9H ,0F8H ,0F7H ,0F6H

DB 0F5H ,0F4H ,0F2H ,0F1H ,0EFH ,0EEH ,0ECH ,0EBH ,0E9H ,0E7H ,0E5H ,0E4H ,0E2H ,0E0H ,0DDH ,0DBH

DB 0D9H ,0D7H ,0D5H ,0D2H ,0D0H ,0CDH ,0CBH ,0C8H ,0C6H ,0C3H ,0C1H ,0BEH ,0BBH ,0B8H ,0B6H ,0B3H

DB 0B0H ,0ADH ,0AAH ,0A7H ,0A4H ,0A1H ,09EH ,09BH ,098H ,095H ,092H ,08FH ,08BH ,088H ,085H ,082H

DB 07FH ,07CH ,079H ,076H ,073H ,06FH ,06CH ,069H ,066H ,063H ,060H ,05DH ,05AH ,057H ,054H ,051H

DB 04EH ,04BH ,048H ,046H ,043H ,040H ,03DH ,03BH ,038H ,036H ,033H ,031H ,02EH ,02CH ,029H ,027H

DB 025H ,023H ,021H ,01EH ,01CH ,01AH ,019H ,017H ,015H ,013H ,012H ,010H ,00FH ,00DH ,00CH ,00AH

DB 009H ,008H ,007H ,006H ,005H ,004H ,003H ,003H ,002H ,001H ,001H ,000H ,000H ,000H ,000H ,000H

DB 000H ,000H ,000H ,000H ,000H ,000H ,001H ,001H ,002H ,003H ,003H ,004H ,005H ,006H ,007H ,008H

DB 009H ,00AH ,00CH ,00DH ,00FH ,010H ,012H ,013H ,015H ,017H ,019H ,01AH ,01CH ,01EH ,021H ,023H

DB 025H ,027H ,029H ,02CH ,02EH ,031H ,033H ,036H ,038H ,03BH ,03DH ,040H ,043H ,046H ,048H ,04BH

DB 04EH ,051H ,054H ,057H ,05AH ,05DH ,060H ,063H ,066H ,069H ,06CH ,06FH ,073H ,076H ,079H ,07CH KEY: LCALL KEYCHULI

JZ EXIT

CJNE A, 10H, CC MOV A, #0

MOV 20H, A

JZ EXIT

CC: MOV 10H, A LCALL DELAY1ms

LCALL KEYCHULI

JZ EXIT MOV B, 20H

KEYSF: LCALL KEYCHULI

JZ KEY1 LJMP KEYSF

KEY1: MOV 20H, B

EXIT: RET KEYCHULI: PUSH PSW

CLR RS1

SETB RS0

MOV P1, #0FFH MOV A, P1

CPL A

MOV 20H, A

CLR RS1

CLR RS0

POP PSW RET DELAY1ms: MOV R7, #01H DL1: MOV R6, #8EH

DL0: MOV R5, #02H

DJNZ R5, $

DJNZ R6, DL0 DJNZ R7, DL1 RET

DELAY20ms: MOV R6, #0D7H

DL2: MOV R5, #2DH DJNZ R5, $ DJNZ R6, DL2

NOP

NOP

RET END

开始

键扫键值=0?键值=1键值=2键值=4键值=8键值=16送键值为0送键值为0送键值为0送键值为0送键值为0键值=0?键值=0?键值=0?键值=0?键值=0?调产生方波函数

调产生锯齿波函数调产生三角波函数调产生正弦波函数调产生梯形波函数结束Y N Y N N N N N Y Y Y Y

五、实验结果。

图2、仿真结果

图3、仿真结果

图4、仿真结果

图5、仿真结果

六、实验总结。

由图4可知,设计要求2的内容已经成功完成;由图5可以看出要求3的内容已经成功完成。

通过这次实验,掌握了通过8255来扩展单片机的I/O口线,对8255已经有了充分的认识,以实践操作来验证理论知识,学到了很多东西。

七、思考题。

编程实现产生连续梯形波信号

ORG 0000H

START: LJMP MAIN

ORG 0100H

MAIN: MOV SP, #60H

TIXINGBO: MOV R2, #00H

MOV DPTR, #0000H

LOOP6: MOV A, R2

MOVX @DPTR, A

INC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

CJNE R2, #0FFH, LOOP6

LCALL DELAY20ms

LOOP7: MOV A, R2

MOVX @DPTR, A

DEC R2

LCALL KEY

JB 20H.0, JUCHIBO

JB 20H.1, JUXINGBO

JB 20H.2, SANJIAOBO

JB 20H.3, ZHENGXIAN

JB 20H.4, TIXINGBO

CJNE R2, #00H, LOOP7

LCALL DELAY20ms

LJMP LOOP6

DELAY20ms: MOV R6, #0D7H

DL2: MOV R5, #2DH

DJNZ R5, $

DJNZ R6, DL2

NOP

NOP

RET

END

图6、思考题仿真结果

单片机实验(AD转换)

实验三 A/D、D/A转换实验 一、实验目的 1.熟悉DAC0832并行接口数模转换器和TLC2543串行接口模数转换器的基本原理和编程方 法。 2.进一步熟悉单片机应用系统开发步骤和方法。 二、实验电路 实验所用元件清单如下表所示: 1. 串行A/D转换器TLC2543 2.并行D/A转换器DA0832 三、相关知识 (一)串行A/D转换器TLC2543 1. TLC2543的特性与引脚 TLC2543是TI公司的TLC2543 12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省80C51系列单片机的I/O资源,而且价格适中。

主要特点如下: ●12位分辨率A/D转换器。 ●在工作温度范围内10 s转换时间。 ●11个模拟输入通道。 ●3路内置自测试方式。 ●采样率为66kbps。 ●线性误差+1LSB(max)。 ●有转换结束(EOC)输出。 ●具有单、双极性输出。 ●可编程的MSB或LSB前导。 ●可编程的输出数据长度。 2. TLC2543的工作过程 TLC2543的工作过程分为两个周期:I/O 周期和实际转换周期。 1)I/O周期 I/O周期由外部提供的I/O CLOCK定义,延续8、12或16个时钟周期,决定于选定的输出数据长度。器件进入I/O周期后同时进行两种操作。 (1)在I/O CLOCK的前8个脉冲的上升沿,以MSB前导方式从DA TA INPUT端输入8位数据流到输入寄存器。其中前4位为模拟通道地址,控制14通道模拟多路器从11个模拟输入和3个内部自测电压中,选通一路送到采样保持电路,该电路从第4个I/O CLOCK脉冲的下降沿开始,对所选信号进行采样,直到最后一个I/O CLOCK脉冲的下降沿。I/O周期的时钟脉冲个数与输出数据长度(位数)有关,输出数据长度由输入数据的D3、D2选择为8、12或16位。当工作于12或16位时,在前8个时钟脉冲之后,DATA INPUT无效。

数模模数转换实验报告

数模模数转换实验报告 一、实验目的 1、了解数模和模数转换电路的接口方法及相应程序设计方法。 2、了解数模和模数转换电路芯片的性能和工作时序。 二、实验条件 1、DOS操作系统平台 2、数模转换芯片DAC0832和模数转换器ADC0809芯片。 三、实验原理 1、数模转换: (1)微机处理的数据都是数字信号,而实际的执行电路很多都是模拟的。因此微机的处理结果又常常需要转换为模拟信号去驱动相应的执行单元,实现对被控对象的控制。这种把数字量转换为模拟量的设备称为数模转换器(DAC),简称D/A。 (2)实验中所用的数模转换芯片是DAC0832,它是由输入寄存器、DAC 寄存器和D/A 转换器组成的CMOS 器件。其特点是片内包含两个独立的8 位寄存器,因而具有二次缓冲功能,可以将被转换的数据预先存在DAC 寄存器中,同时又采集下一组数据,这就可以根据需要快速修改DAC0832 的输出。 2、模数转换: (1)在工程实时控制中,经常要把检测到的连续变化的模拟信号,如温度、压力、速度等转换为离散的数字量,才能输入计算机进行处理。实现模拟量到数字量转换的设备就是模数转换器(ADC),简称A/D。

(2)模数转换芯片的工作过程大体分为三个阶段:首先要启动模数转换过程。其次,由于转换过程需要时间,不能立即得到结果,所以需要等待一段时间。一般模数转换芯片会有一条专门的信号线表示转换是否结束。微机可以将这条信号线作为中断请求信号,用中断的方式得到转换结束的消息,也可以对这条信号线进行查询,还可以采用固定延时进行等待(因为这类芯片转换时间是固定的,事先可以知道)。最后,当判断转换已经结束的时候,微机就可以从模数转换芯片中读出转换结果。 (3)实验采用的是8 路8 位模数转换器ADC0809 芯片。ADC0809 采用逐次比较的方式进行A/D 转换,其主要原理为:将一待转换的模拟信号与一个推测信号进行比较,根据推测信号是大于还是小于输入信号来决定增大还是减少该推测信号,以便向模拟输入逼近。推测信号由D/A 转换器的输出获得,当推测信号与模拟信号相等时,向D/A 转换器输入的数字就是对应模拟信号的数字量。ADC0809 的转换时间为64 个时钟周期(时钟频率500K 时为128S)。分辨率为 8 位,转换精度为±LSB/2,单电源+5V 供电时输入模拟电压范围为04.98V。 四、实验内容 1、把DAC0832 的片选接偏移为10H 的地址,使用debug 命令来测试 DAC0832 的输出,通过设置不同的输出值,使用万用表测量Ua 和Ub 的模拟电压,检验DAC0832 的功能。选取典型(最低、最高和半量程等)的二进制值进行检验,记录测得的结果。实验结果记录如下:

基于单片机的数模转换设计

目录 1、系统方案.......................................... - 3 - 1.1、方案比较与选择............................... - 3 - 1.1.1、单片机选择与论证........................ - 3 - 1.1.2、显示器件选择与论证...................... - 3 - 1.1.3、键盘形式选择与论证...................... - 4 - 1.1.4排阻形式选择与论证........................ - 4 - 2理论分析与计算 ..................................... - 8 - 2.1、D/A转换器的主要技术指标......................... - 8 - 1.分辨率......................................... - 8 - 2.转换精度....................................... - 8 - 3.输出电压(或电流)的建立时间(转换速度) ...... - 8 - 4. 温度系数 2.2 数模转换器 2.2.1权电阻网络DAC的原理分析..................... - 9 - 3、电路与程序设计.................................. - 11 - 3.1.1、总体框图设计........................... - 11 - 3.1.2、显示电路............................... - 11 - 3.1.3、权电路................................. - 12 - 3.1.4、按键电路............................... - 13 - 3.1.5、驱动电路............................... - 14 -

单片机AD模数转换实验报告

1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D转换程序。 5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图 四、实验程序流程框图和程序清单。

1、 查询法: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB , LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回

实验一 D、A数模转换实验

实验一D/A数模转换实验 一、实验目的 1.掌握数模转换的基本原理。 2.熟悉12位D/A转换的方法。 二、实验仪器 1.EL-A T-II型计算机控制系统实验箱一台 2.PC计算机一台 三、实验内容 通过A/D&D/A卡完成12位D/A转换实验,在这里用双极性模拟量输出,数字量输入范围为:0~4096,模拟量输出范围为:-5V~+5V。转换公式如下:U0=Vref-2Vref(211K11+210K10+…20K0)/212 Vref=5.0V 例如:数字量=000110011001 则 K11=0,K10=0,K9=0,K8=1,K7=1,K6=0,K5=0,K4=1,K3=1,K2=0,K1=0,K0=1 模拟量U0=Vref-2Vref(211K11+210K10+…20K0)/212=4V 四、实验步骤 1.连接A/D、D/A卡的DA输出通道和AD采集通道。A/D、D/A卡的DA1的输出接A/D、D/A卡的AD1输入。检查无误后接通电源。 2.启动计算机,在桌面上双击图表[Computerctrl]或在计算机程序组中运行[Computerctrl]软件。 3.测试计算机与实验箱的通信是否正常,通信正常继续。如通信不正常查找原因使通信正常后才可以继续进行实验。 4.在实验课题下拉菜单中选择实验一[D/A模数转换实验],鼠标单击该选项弹出实验课题参数窗口。 5.在弹出的参数窗口中填入想要变换的数字量,点击变换,在下面的文字框内将算出变换后的模拟量。 6.点击运行,在显示窗口观测采集到的模拟量。并将测量结果填入下表:

五、实验报告 1.画出数字量与模拟量的对应曲线 2.计算出理论值,将其与实验结果比较,分析产生误差的原因。

基于51单片机的模数转换(AD)实验设计

HEFEI UNIVERSITY 单片机课程综述报告 主题基于51单片机的模数转换(A/D)实验设计姓名郭丽丽 专业通信工程 学号 1105021006 班级 11级通信(1)班 指导老师汪济洲 2014 年 6 月 2 日

目录 1.实验目的与要求 (1) 1.1实验目的 (1) 1.2实验要求 (1) 2.实验原理 (1) 2.1电路原理图 (1) 2.2 Proteus7.4 软件简介 (2) 3、实验步骤 (6) 4、源程序代码 (6) 5. 实验结果分析 (10) 6.总结 (10)

1.实验目的与要求 1.1实验目的 1.掌握A/D转换与单片机的接口方法 2.了解A/D芯片ADC0809转换性能及编程方法 3.通过实验了解单片机如何进行数据采集 1.2实验要求 1.采用查询法或中断法编程进行A/D采集; 2.采集0~5V范围的电压信号(以电位器模拟被测信号),使用4位串行数码管显示0~5V数值,小数点保留三位,实现简易电压表功能。 2.实验原理 2.1电路原理图 熟悉8051的输入输出端口的使用方法, 本实验的电路连接如图1所示。 图1 连接电路

2.2 Proteus7.4 软件简介 Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: ①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。 ③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。 ④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。 其操作界面如下图所示: 图2 Proteus操作页面

数模转换原理及应用

数模(D/A)转换器及模数(A/D)转换器 一、实验目的 1.熟悉D / A转换器的基本工作原理。 2.掌握D / A转换集成芯片DAC0832的性能及其使用方法。 3.熟悉A / D转换器的工作原理。 4.掌握A / D转换集成芯片ADC0809的性能及其使用方法。 二、实验原理 1.数模(D / A)转换 所谓数模(D / A)转换,就是把数字量信号转换成模拟量信号,且输出电压与输入的数字量成一定的比例关系。图47为D / A 转换器的原理图,它是由恒流源(或恒压源)、模拟开关、以及数字量代码所控制的电阻网络、运放等组成的四位D/ A转换器。 四个开关S0 ~ S3由各位代码控制,若―S‖代码为1,则意味着接VREF ,代码―S‖= 0,则意味着接地。 由于运放的输出值为V0= -I∑?Rf ,而I∑为I0、I1、I2、I3的和,而I0 ~ I3的值分别为(―S‖代码全为1): I0 =,I1 =,I2 =,I3 = 若选 R0 =,R1 =,R2 =,R3 = 则I0 ==?20 ,I1 =?21 ,I2 =?22 ,I3 =?23 若开关S0 ~ S3不全合上,则―S‖代码有些为0,有些为1(设4位―S‖代码为D3D2DlD0),则I∑ =D3I3 + D2I2 + DlIl + D0I0 =(D3?23 + D2?22 + D1?21 + D0?20)= B? 所以,V0 = -Rf ? B,B为二进制数,即模拟电压输出正比于输入数字量B ,从而实现了数字量的转换。 随着集成技术的发展,中大规模的D / A转换集成块相继出现,它们将转换的电阻网络和受数码控制的电子开关都集成在同一芯片上,所以用起来很方便。目前,常用的芯片型号很多,有8位的、12位的转换器等,这里我们选用8位的D / A转换器DAC0832进行实验研究。 DAC0832是CMOS工艺,共20管引脚,其管脚排列如图48所示。

单片机AD模数转换实验报告

一、实验目的和要求 1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D转换程序。 5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图

四、实验程序流程框图和程序清单。 1、 查询法: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码 送位选信号延时1ms 熄灭第四位数码管 延时1ms 返回

ADC0808数模转换与显示 课程设计.

专业课程设计报告题目:ADC0808数模转换与显示 所在学院 专业班级 学生姓名 学生学号 指导教师 提交日期2012年10月29日

电气工程学院专业课程设计评阅表学生姓名学生学号 同组队员专业班级 题目名称 一、学生自我总结 二、指导教师评定

目录 一、设计目的 (1) 二、设计要求和设计指标 (1) 三、设计内容 (1) 3.1 芯片简介 (1) 3.1.1 A/D转换模块 (1) 3.1.2 AT89C51单片机的结构原理与引脚功能 (3) 3.2电路设计 (7) 3.3程序设计 (8) 四、本设计改进建议 (10) 五、总结 (10) 六、主要参考文献 (11) 附录 (12)

一、设计目的 本课程设计的目的就是要锻炼学生的实际动手能力。在理论学习的基础上,通过完成一个具有综合功能的小系统,使学生将课堂上学到的理论知识与实际应用结合起来,对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立设计单片机应用系统的开发设计工作打下一定的基础。 二、设计要求和设计指标 以AT89C51单片机为核心,实现ADC0808的数模转换与显示。转换后的结果显示在数码管上。 三、设计内容 3.1 芯片简介 3.1.1 A/D转换模块 ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。[1](1)ADC0808的内部逻辑结构 由下图3-1-1可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 图3-1-1 ADC0808的内部逻辑结构

单片机AD模数转换实验报告

单片机AD模数转换实验报告

一、实验目的和要求 1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D 转换程序。 5、启动A/D转换,将输入模拟量的转换

结果在显示器上显示。 三、电路原理图。 图1、电路仿真图 四、实验程序流程框图和程序清单。 1、查询法: ORG 0000H START: LJMP MAIN ORG 0100H

MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: M OV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回

单片机数模转换1

第九章 数∕模 与 模∕数转换 测量对象和被控对象,是连续变化的模拟量, 具有模拟量输入和模拟量输出的MCS —51应用系统结构如图: 开关量 模拟量 物理量:位移,加速度,速度; 压力,温度,湿度; 光强,颜色; 磁场强度,磁通量; A/D 与D/A 电路已经集成化, 掌握其参数,合理的选用 §9.1 D/A 转换器的工作原理及指标 一、 工作原理 D/A 转换器:输入数字量: D n-1 D n-2 … D 1 D 0 实际物理量(非电量) 传感器 及变换电路 单 片 机 模拟信号 AD 转 换 器 D/A 转换器

输出模拟量: Vo Vo = D ? Vr Vr 为参考电压 D = D n-1? 2n-1 + D n-2 ? 2 n- 1 … + D 1 ? 2 + D 0 实现方法很多,介绍两种 1. 权电阻D/A 转换法 位切换开关 权电阻 Vr :基准电压 构成:模拟电子开关,运算放大器 模拟电子开关:Di=1 接通 Di=0 断开 运算放大器:反向放大求和 输出电压:Vo =( R D 80+R D 41+R D 22+R D 3 ) ? R F ? Vr 2.R —2R T 型电阻网络D/A 转换器 框图: T 型解码网络

求和放大器 参考电压 模拟电子开关 D0 D1 Dn-1 T 型电阻网络D/A 转换器框图 T 型电阻网络D/A 转换原理图 由R-2R 网络、模拟开关、运算放大器构成 从每个节点看,等效电阻为:R 从D3、D2、D1、D0看,等效电阻为 3R ; 从每一模拟开关流入的电流为:I= R Vr 3 ; 电流经电阻网络分流后,进入运算放大器的电流为: D3:2 1I D2:4 1I 二进制输入

实验十——数模转换器

武汉大学物理科学与技术学院 物理实验报告 物理科学与技术学院 物理学基地2班专业 2013年12月12日 实验名称:实验十——数/模转换器 姓名:吕品磊 年级:2011 学号:2011301020033 成绩: 一、 实验目的: 1、了解数/模转换器的基本原理; 2、掌握DAC0832芯片的使用方法。 二、 实验内容 1、实验电路原理如图10.1,DAC0832采用单缓冲方式,具有单双极性输入 端(图中的Ua、Ub),利用debug输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系。 2、编程产生以下波形(从Ub输出,用示波器观察) (1)锯齿波 (2)正弦波 图 10.1

三、 流程图 四、 原程序 DATA S EGMENT DATA E NDS CODE S EGMENT ASSUME C S: C ODE, D S: D ATA START: MOV A X, D ATA MOV D S, A X AGAIN: MOV C L, 0 ;初始化锯齿波 MOV B L,0 ;初始化锯齿波数量 INC B L A1: MOV A L, C L MOV D X, 0C810H ;DAC0832控制端口 OUT D X, A L ;输出控制端口

INC C L ;波形上升 CMP B L, 0FH ;确定锯齿波数量(此处的OFH) JZ E NND CMP C L, 200 ;确定锯齿波高度(此处的200,可以更改) JZ A GAIN ENND: MOV A H, 1 ;输入回显 INT 16H JZ A1 MOV A H, 4CH ;返回DOS INT 21H CODE E NDS END S TART 五、 实验分析: 1、此次实验程序较为简单,在通过debug进行调试的时候,发现随着CL 的增加波形会不断上升,通过到达一个特定值,重置CL,做到实现锯 齿波的原理。 2、同样的道理,在实验二中要求做出一个正弦波只要根据正弦函数建一 个下弦数字量表,按照特定的取值就可以画出相应的波形。其他的函 数波形也可以采用同样的方式进行处理。

单片机DA数模转换实验报告

一、实验目的和要求 1、掌握单片机与DAC0832的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0832接口。 2、在单片机的外部扩展一个4个按键的键盘。 3、按下K0,产生连续方波信号。 4、按下K1,产生连续锯齿波信号。 5、按下K2,产生连续三角波信号。 6、按下K3,产生连续正弦波信号。 7、通过外接示波器观察波形。 三、电路原理图。 图1、电路仿真图

四、实验程序流程框图和程序清单。 ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #60H LOOP: LCALL KEY JB 20H.0, JUCHIBO JB 20H.1, JUXINGBO JB 20H.2, SANJIAOBO JB 20H.3, ZHENGXIAN JB 20H.4, TIXINGBO LJMP LOOP JUCHIBO: MOV R2, #00H LOOP1: MOV DPTR, #0000H MOV A , R2 MOVX @DPTR, A LCALL KEY JB 20H.0, JUCHIBO JB 20H.1, JUXINGBO JB 20H.2, SANJIAOBO JB 20H.3, ZHENGXIAN JB 20H.4, TIXINGBO INC R2 LJMP LOOP1 JUXINGBO: MOV DPTR , #0000H LOOP2: MOV R3, #0FFH MOV A, R3 MOVX @DPTR, A LCALL DELAY1ms LCALL KEY JB 20H.0, JUCHIBO JB 20H.1, JUXINGBO JB 20H.2, SANJIAOBO JB 20H.3, ZHENGXIAN JB 20H.4, TIXINGBO MOV R3, #00H MOV A, R3 MOVX @DPTR, A LCALL DELAY1ms LCALL KEY JB 20H.0, JUCHIBO JB 20H.1, JUXINGBO JB 20H.2, SANJIAOBO JB 20H.3, ZHENGXIAN JB 20H.4, TIXINGBO LJMP LOOP2 SANJIAOBO:MOV R2, #00H MOV DPTR, #0000H LOOP3: MOV A, R2 NOP NOP MOVX @DPTR, A INC R2 LCALL KEY JB 20H.0, JUCHIBO JB 20H.1, JUXINGBO JB 20H.2, SANJIAOBO

单片机:模数转换

模数转换 一.单片机对ADC0809的控制过程 先选择一个模拟输入通道,本连接选择IN4。当执行MOVX @DPTR,A是,单片机WR有效,产生脉冲。脉冲给ADC0809的START,开始对模拟信号进行转换。当转换结束后EOC为高电平。一次转换结束。 二.单片机与ADC0809的连接 1.单片机P0.0-P0.7数据线接ADC0809的OUTI-OUT8. 2.单片机的地址线低8位接锁存器输出接ADC0809的三根地址线A,B,C.选通IN0-IN7通道。 3.START 为启动信号输入端,OE为输出允许端。由于ADC0809没有片选端,用P2.7与单片机的WR,RD进行控制。WR与P2.7接或非门控制START。RD 与P2.7接或非控制OE。 因为START与ALE连在一起,所以ADC0809A在锁存通道地址的同时,启动并进行转换。 4.单片机的CLK输出是被6分频之后的1MHZ,接一个触发器之后降频到500K 后与ADC0809连接使其正常运行。 三.单片机在读取ADC转换结果时有查询和中断两种方式 1.查询方式 程序如下 ORG 0000H SJMP MAIN EOC EQU P3.0

MAIN: MOV SP,#60H SP初值赋60H MOV DPTR,#7FFCH IN4的地址7FFCH给DPTR LL: MOV A,#0 MOVX @DPTR,A A值给7FFCH.启动转换器,开始转换 LCALL DL 延时程序,跳过EOC的延时 JNB P3.0,$ EOC变低电平。当EOC变高电平是转换完成。 MOVX A,@DPTR RD为低电平,OE为高电平,允许输出。 MOV P1,A 输出到P1口 SJMP LL DL: MOV R7,#10 DJNZ R7,$ RET END 2.中断方式 程序如下 ORG 0000H SJMP MAIN ORG 0003H LJMP BB MAIN: SETB EX0 打开外部中断子开关 SETB IT0 选择边沿触发方式 SETB EA 打开中断总开关

实验十adc0832数模转换的显示

实验报告十 实验名称:ADC0832数模转换的显示 目的:ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。 ADC0832的工作原理: 正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。 通道地址通道 工作方式说明 SGL/DIF ODD/SIGN 0 1

0 0 + - 差分方式 0 1 - + 1 0 + 单端输入方式 1 1 + 表1:通道地址设置表 如表1所示,当此两位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当两位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当两位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第三个脉冲的下降之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始由DO端输出转换数据最高位Data7,随后每一个脉冲的下降沿DO端输出下一位数据。直到第11个脉冲时发出最低位数据Data0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出Data0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。时序说明请参照图4。 作为单通道模拟信号输入时ADC0832的输入电压是0—5V且8位分辨率时的电压精度为19.53mV,即(5/256)V。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的

DAC0832数模转换技术实验

实验三DAC0832数/模转换技术实验 一实验目的 ①掌握DAC0832与MSC-51单片机的接口方法。 ②掌握D/A转换程序的设计方法。 二实验器材 1.实验仪一台;2. 编程器一台;3.小镊子一把; 4.示波器一台; 5.电脑一台 三实验原理 D/A转换器的功能主要是将输入的数字量信号转换成模拟量,在语音合成等方面得到了广泛的应用。本实验中采用的D/A转换器为DAC0832,该芯片为电流输出型8位D/A转换器,输入有两级缓冲锁存器,因此,可以同时输出多路模拟量。本实验中采用单级缓冲连接方式,用DAC0832来产锯齿波,具体线路如图20所示。(图中省去了复位电路、时钟电路、地址锁存器等电路) 四跳线设置 如程序存放在AT89S51中,AT89S51的/EA(引脚31)必须接高电平,实验时需短路J13的1和2引脚,否则;必须短路J13的2和3引脚;

五实验内容与要求 编制程序使图中运放LM741输出幅度为3V的方或矩形波。 六实验源程序 CS0832 EQU 0FF9FH ORG 0000H MAIN: MOV DPTR,#CS0832 MOV A,#10 LP: MOVX @DPTR,A ACALL DLY MOV A,#163 MOVX @DPTR,A ACALL DLY MOV A,#10 SJMP LP DLY: MOV R7,#125 DLY1:DJNZ R7,DLY1 RET END 七实验总结 这个DACO823数/模转换技术实验相对之前的两个实验难度大多了。我肯定我是学得不怎么好的,再加上这样的难度,对我们组来说真的挺大的挑战,跟同学讨论这个就肯定要的了。编制程序使图中运放LM741输出幅度为3V的方或矩形波。这个实验的过程经过了很多次的失败,原本认为是成功的了,叫老师来检查之后才知道还是错误的。

基于单片机的数字电压表制作——ADC0832模数转换应用程序(C语言)

基于单片机的数字电压表制作——ADC0832模数转换应用程序(C语言) 主要部件:AT89S51 ADC0832 八段数码管 关键字:ADC0832程序C语言数字电压表 本文所描述的数字电压表是利用ADC0832模数转换芯片完成的。该芯片能将0~5V的模拟电压量转换为0~255级的数字量,所以本文描述的数字电压表的量程为0~5V。 说实在话,量程只有5V的电压表没有什么实际的意义,而且也没有人无聊到自己会去做一个没有意义的电压表。但是通过这个简易电压表的制作你可以对模数转换芯片有一定的了解,对以后做真正有用的电路打下基础。而且,对于那些做毕业设计的同学也是一种参考。这也就是本文的意义所在。 ADC0832的资料百度一下可以找到一大堆,我就不在这里赘述了。这里只给出连接图。 以下是程序部分: 该程序是本人自编的,经测试可用,但不保证程序的可靠性及稳定性。若有转载请标明出处。 如果有同学将本程序烧写到单片机里却不能正常工作的,请注意以下三点: 1、是否将端口重新定义。每个单片机开发板的引脚连接都是不一样的,若不加修改直接把程序烧写到单片机里,那是绝对不能正常工作的。 2、是否正确选择通道值。ADC0832有两个模拟输入端口(也就是我说的通道),你要先弄清楚你用的

是那个通道,并在main函数中设置相应的通道值(以CH命名的那个变量)。本程序默认使用0通道,如果0通道不行就改成1通道,反正不是0通道就是1通道。 3、如果你做的电压表在保证电路连接正确且没有以上两点问题的情况下,还是不能正常工作,请将程序中的“if (adval == test)”这一行删掉。其实这一点我个人也不清楚到底有没有问题。我有两个单片机开发板,其中一个必须要把那一行删掉才能工作。这说明ADC0832读出的前8位与后8位数值不一样(确切的说应该是后8位反转的数值),这有悖于ADC0832的原理。我不知道到底是硬件还是软件出了问题,特此把这种现象标明。若有哪位同学知道其原因的还请多多指教。 /***********************************************************************************/ /*简易数字电压表制作——ADC0832模数转换应用程序(C语言版)*/ /*目标器件:AT89S51 */ /*晶 振:12.000MHZ */ /*编译环境:Keil uVision2 V2.12 */ /***********************************************************************************/ /*********************************包含头文件********************************/ #include #include /*********************************端口定义**********************************/ sbit CS = P3^5; sbit Clk = P3^4; sbit DATI = P3^3; sbit DATO = P3^3; /*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值 unsigned char count = 0x00; //定时器计数 unsigned char CH; //通道变量

单片机AD模数转换实验报告

、实验目的和要求 1掌握单片机与 ADC0809的接口设计方法 2、掌握Proteus 软件与Keil 软件的使用方法 二、设计要求。 1、 用Proteus 软件画出电路原理图, 在单片机的外部扩展片外三总线, 总线 与0809接口。 2、 在0809的某一模拟量输入通道上接外部模拟量。 3、 在单片机的外部扩展数码管显示器。 4、 分别采用延时和查询的方法编写 A/D 转换程序。 5、 启动A/D 转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图 并通过片外三 n Frr inn LB LL ir~ 才 TT 2ira : 2.1边 存 10 丄 Wil 乙*TH zan.13 2.irxis Z5TS.13 2.1rt19 ricrra 1 2 1c 1 c 儿IE" jjm 3 ATI 「u rip. XTAGl; PEL. ■ .L^c

ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL RET DELAY DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ RET R5, DL1 WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9 H,0A4H,0B0 1、 BH 四、实验程序流程框图和程序清单。 查询法: 屈刎D 判断P :L 3 4 从ND 中取数抑 数据处理 调显示了函数 display 丁 送百分位字符代码 送位选信号 延时1ms 送十分位字符代码 送位选信号 延时1ms 送个位及小数点字符代码 送位选信号 延时1ms 熄灭第四位数码管 延时1ms 返回

相关文档
最新文档