硬件实验四并行AD、DA实验 - 浙江大学光电信息工程学系

硬件实验四并行AD、DA实验 - 浙江大学光电信息工程学系
硬件实验四并行AD、DA实验 - 浙江大学光电信息工程学系

\

本科实验报告

课程名称:微机原理与接口技术

林曈

姓名:

信息学院

学院:

光电系

系:

专业:信息工程(光电)

3080104612

学号:

指导教师:齐杭丽

2010年12 月25 日

实验报告

课程名称: 微机原理与接口技术 指导老师: 齐杭丽 成绩:____ ___ 实验名称:___并行AD 、DA 实验____实验类型:____综合________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得

硬件实验四 并行AD 、DA 实验

1.

实验目的

① 掌握采用并行接口实现外部器件的扩展方法;

② 掌握ADC0809模/数转换芯片与单片机的接口设计及ADC0809的典型应用; ③ 掌握DAC0832模/数转换芯片与单片机的接口设计及DAC0832的典型应用。 2.

预习要求

① 理解内存与IO 统一编址的外设端口地址的映射及控制; ② 理解用查询方式、中断方式完成模/数转换程序的编写方法; ③ 理解DAC0832直通方式,单缓冲器方式、双缓冲器方式的编程方法。 3.

实验设备

计算机 1台; ZDGDTH -1型80C51实验开发系统 1套; 2号导线、8P 数据线 若干条; 万用表

1个;

4.

基础型实验内容

① 图4-1为ADC0809的扩展电路图,用8P 数据线将D2区80C51/C8051F020 MCU 模

块的 JD0(P0口)、JD8分别与C5区并行A/D 转换模块的JD1C5、JD2C5相连;用二号导线将D2区80C51/C8051F020 MCU 模块的WR 、RD 、P2.0、CLK 、P3.3分别与C5区并行A/D 转换模块的WR 、RD 、CS 、ALE 、EOC 相连;并行A/D 转换模块的+Vref 接+5V , AIN0接D6区可调电源模块的0—5V 端。说明AD 转换的过程,并在Keil 环境设置断点运行以下程序,可调电源分别调至两个极端,观察寄存器及内存单元的变化。

专业:__光电0803___ 姓名:_____林曈____

学号:__3080104612__ 日期:___2010/12/15___

地点:__东四606______

图4-1 ADC0809的扩展电路图

ORG 0000H

MAIN: CLR A

SETB P3.3 ;设定与EOC接口IO处于接收状态

MOV DPTR,#0FEF8H ;选择A/D端口地址

NOP

MOVX @DPTR,A ;启动AD转换

WAIT: JB P3.3,WAIT

MOVX A,@DPTR ; 读入结果

NOP

LJMP MAIN

②图4-2为DAC0832的扩展电路图,用8P数据线将D2区80C51/C8051F020 MCU模块

的 JD0(P0口)与C4区并行DA转换模块的JD1C4相连,用二号导线将D2区80C51/C8051F020 MCU模块的P2.0、WR分别与C5区并行D/A转换模块的CS、WR 模块,用万用表测量“-Vref”端的电压,手动调节电位器RW1C4,把-Vref电压调到-5V,万用表监测并行D/A转换的OUT与GND输出引脚。填写下列程序中的空白处,说明DA转换的过程,并在Keil环境运行设置断点运行该程序,调节RW1C4,观察寄存器的变化与万用表输出值的变化。

图4-2 DAC0832的扩展电路图

ORG 0100H

START: MOV DPTR,#0FEFFH ;置DAC0832的地址

LP: MOV A,#0FFH ;设定高电平

MOVX @DPTR,A ;启动D/A转换,输出高电平

LCALL DELAY ;延时显示高电平

MOV A,#00H ;设定低电平

MOVX @DPTR,A ;启动D/A转换,输出低电平

LCALL DELAY ;延时显示低电平

SJMP LP ;连续输出方波

DELAY: MOV R3,#18 ;延时子程序

D1: NOP

NOP

NOP

DJNZ R3,D1

RET

END

5.设计型实验内容

①采用中断法设计ADC0809数据采集程序,并将采集到的十六进制结果显示在LED

显示模块上。

②编程使DAC0832电路输出0.5V、1.0V、2.5V、3.0V、4.5V,并用万用表测量其实际

输出电压值。

用P2.0控制转换,循环显示5个电压,每两秒钟变1个。

6.综合型实验

①用中断方式编写A/D转换程序,每秒以100ms的间隔采集8次,求8次结果的平均

值,保存到内部RAM40H开始的单元,共采集30秒钟。计算出每秒的平均值并显示在静态数码管上。

②采用DAC0832设计一简易的信号发生器,设计流程并编写程序实现50Hz的方波、

锯齿波。

(1)编程实现50hz方波。用P2.0控制数模转换。

如果输出50hz方波,则delay程序应该延时10ms。但是在实验过程中,50hz

变化太快,难以观察。因此下框中程序的delay子程序延时了2s。

ORG 0000

LJMP 0030H

ORG 0030H

MOV DPTR, #0FEFFH

LP:MOV A,#0FFH;高电平

MOVX @DPTR, A

ACALL DELAY; DELAY 10MS

MOV A, #0

MOVX @DPTR, A

ACALL DELAY

SJMP LP

DELAY: MOV R2,#100 ;DELAY2S

L1: MOV R3, #100

L2: MOV R4, #98

L3: DJNZ R4, L3

NOP

DJNZ R3, L2

DJNZ R2, L1

RET

END

(2)编程实现50HZ锯齿波

如果要输出50hz锯齿波,则每一个数值需要delay大约78us。在实验中,为了方便观

察锯齿波,每个数值delay了40ms。程序源代码如下框中所示。

ORG 0000H

LJMP 0030H

ORG 0030H

MOV DPTR,#0FEFFH;用P2.0控制转换

MOV A, #0FFH

LOOP: INC A

MOVX @DPTR, A

ACALL DELAY; DELAY78US

SJMP LOOP

DELAY: MOV R2, #2; DELAY40mS

L1:MOV R3, #100

L2:MOV R4, #98

L3:DJNZ R4, L3

NOP

DJNZ R3, L2

DJNZ R2, L1

RET

END

6、实验心得体会

1、第四次硬件实验有一定的难度,程序的综合性更强,需要运用几乎学过的所有单片机控制技术,如外部中断、定时中断、数码管显示、AD/DA转换,而且程序的结构也更为复杂,难度较大。

2、本次实验我们接触了ADC0809和DAC0832,进行了简单的模数转换和数模转换的运行。在实验中需要用到显示模块。在选择显示方式的时候只能选择静态显示,因为A/D、D/A转换过程中需要用到P0,P2,P3口,而动态转换需要16位端口分别输出段码和位码,输出口是不够的,需要外接,这增加了程序的复杂度。同时在显示的过程中要注意进行延时,否则AD模拟信号会不断加进,数码管跳变很快,人眼不能识别。

3、遗憾的是,keil4自带的波形仿真工具无法调用芯片进行仿真,proteus仿真使用的还不够熟练,所以软件仿真的工作没有做好。

相关主题
相关文档
最新文档