ADC0809与MCS51单片机接口实验.docx

上传人:b****6 文档编号:8850544 上传时间:2023-02-02 格式:DOCX 页数:29 大小:1.24MB
下载 相关 举报
ADC0809与MCS51单片机接口实验.docx_第1页
第1页 / 共29页
ADC0809与MCS51单片机接口实验.docx_第2页
第2页 / 共29页
ADC0809与MCS51单片机接口实验.docx_第3页
第3页 / 共29页
ADC0809与MCS51单片机接口实验.docx_第4页
第4页 / 共29页
ADC0809与MCS51单片机接口实验.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

ADC0809与MCS51单片机接口实验.docx

《ADC0809与MCS51单片机接口实验.docx》由会员分享,可在线阅读,更多相关《ADC0809与MCS51单片机接口实验.docx(29页珍藏版)》请在冰豆网上搜索。

ADC0809与MCS51单片机接口实验.docx

ADC0809与MCS51单片机接口实验

实验报告一

学院:

电气工程学院专业:

测控技术与仪器班级:

测仪101

姓名

学号

实验组

实验时间

指导教师

成绩

实验项目名称

ADC0809与MCS-51单片机接口实验

实验目的

通过本实验的学习,使学生了解A/D转换器与计算机接口时数据线和信号线如何连接,数据采集电路的时序怎样设计,了解A/D芯片ADC0809转换性能及编程,掌握芯片ADC0809的程序设计方法,进一步训练进行软件和硬件联合调试的技能,为后续“测控系统原理课程设计”的学习奠定基础。

实验要求

利用实验板上的ADC0809做A/D转换器,用电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,用发光二极管显示。

实验原理

A/D转换器大致有三类:

一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。

实验用的ADC0809属第二类,是八位A/D转换器,是采用逐次逼近式工作的转换器件,每采集一次一般需100us。

它带有8路模拟开关,可进行8路模/数转换,通过内部3-8译码电路进行选通并锁存地址。

启动ADC0809的工作过程:

先送通道号地址到A、B、C三端,由ALE信号锁存通道号地址,选中的通道的模拟量送到A/D转换器,执行语句MOVX@DPTR,A产生写信号,启动A/D转换。

当A/D转换结束时,ADC0809的EOC端将上升为高电平,执行语句MOVXA,@DPTR产生读信号,使OE有效,打开锁存器三态门,A/D转换结果的8位数据就读到CPU中。

编程时可以把EOC信号作为中断请求信号,对它进行测试,用中断请求或查询法读取转换结果。

#include

#defineset_bit(x,y)x|=1<

#defineclear_bit(x,y)x^=1<

#definestart1

#defineoc2

intb=1;

inti;

voidInit_INT0()

{

P0=255;

EA=1;//首先开启总中断

EX0=1;//开启外部中断0

IT0=0;//设置成低电平触发,1为下降沿触发

}

voidmain(void)

{

Init_INT0();

clear_bit(P2,oc);

set_bit(P2,start);

for(i=0;i<100;i++);

clear_bit(P2,start);

while

(1)

{

set_bit(P2,0);

while(b--);

b=50;

clear_bit(P2,0);

while(b--);

b=50;

}

}

voidint_ex0(void)interrupt0using1

{

set_bit(P2,oc);

clear_bit(P2,start);

P1=P0;

set_bit(P2,start);

for(i=0;i<100;i++);

clear_bit(P2,start);

clear_bit(P2,oc);

}

当模拟输入端的输入电压为两伏特是显示灯的明亮如上图所示。

 

实验仪器

PC机、Proteus软件、KeilμVision2软件

实验步骤

1.按照实验原理及接线图在Proteus中画出仿真电路图,接好AT89C51、ADC0809和电位器:

电位器的两端分别接到+5V和地,电位器的输出端连到ADC0809的INT0。

2.编写中断方式工作的程序,输入程序。

进行仿真。

3.旋转电位器,测取不同的模拟电压输入时,读取发光二极管显示的转换结果是否符合5V/256=Vin/D的规律,并记录。

画出模拟电压和数字量关系图,看两者是否成线性关系。

实验内容

A/D转换接线图

实验数据

LED

输入电压

D8

D7

D6

D5

D4

D3

D2

D1

1V

2V

3V

4V

5V

实验总结

1.通过本本实验更进一步了解了查询方式和用查询EOC状态的方式判断转换是否结束,更进一步掌握了编程的原理和应用。

2.通过本实验采用软件延时的办法等待转换结束,更进一步了解了用实验法测定ADC0809的最短转换时间。

指导教师意见

 

签名:

年月日

 

实验报告二

学院:

电气工程学院专业:

测控技术与仪器班级:

测仪101

姓名

学号

实验组

实验时间

指导教师

成绩

实验项目名称

DAC0832与MCS-51单片机接口实验

实验目的

通过本实验的学习,使学生掌握D/A转换的工作原理,掌握芯片DAC0832与单片机接口电路的设计方法,掌握芯片DAC0832的程序设计方法,为后续“测控系统原理课程设计”的学习奠定基础。

实验要求

1.编写程序:

送数据00~0FF到DAC0832,用万用表测量数模转换的输出端T-DAOUT,观察输出电压的变化。

2.试编写程序:

使DAC0832输出三角波,并用示波器观察。

实验原理

DAC0832芯片是8位的D/A转换集成芯片,有数据锁存器,选片、读、写控制信号线,故可以和单片机直接接口。

由于DAC0832芯片为电流输出方式,但在实际应用中,往往需要电压输出方式,所以在线路设计上接入一片运算放大器来实现电流转换为电压。

当数字量输入在00H~FFH范围时,电压的输出量有两种形式:

一种是单极性输出,电压的输出量为0~+XV或0~-XV,另一种是双极性输出,电压的输出量为±XV。

在本实验中采用单缓冲器、单极性输出方式,数字量在00~FFH变化时,输出模拟量在0~2.5V之间变化。

该电路包括一片DAC0832和一个运算放大器OP07。

实验原理及接线图电路如图10所示,DAC0832片选信号

为低电平有效,直接接P2.6,即P2.6为低时选中DAC0832,据P2.6=0可算得DAC0832选片地址。

同时与DGND连接,

与8031的

连接,这样8位DAC寄存器始终处于导通状态,因此,当数据从数据线上输入寄存器时,便直接进入8位DAC寄存器,并且由8位D/A转换器,进行D/A转换,因此,此电路为异步输出结构方式。

)DAC0832内部没有参考电压,8脚接负的参考电压,输出为正电压,8脚接正的参考电压,输出为负电压。

由于DAC0832是有数字量的输入锁存功能,故数字量可以直接从P0口送入,执行下面几个指令就能完成一次D/A转换。

MOVDPTR,#ADDR_DAC

MOVA,#DATA

MOVX@DPTR,A

实验仪器

PC机、KeilμVision2软件,COS5041CH示波器,万用表,TOP2003编程器,自制实验板。

实验步骤

1.按照实验原理及接线图在实验板上连接好AT89C51、DAC0832和电位器。

2.编写两个程序:

程序1将数据00~0FF送到DAC0832,程序2使DAC0832输出三角波。

输入程序,编译并烧写到AT89C51中,并将芯片插入实验板插座上。

3.检查连线无误后接通电源。

4.对DAC0832进行校对:

调零:

送数据00给0832,用万用表测试T—DAOUT端,若不为零,则调整VR1。

调满度:

送数据给0832,测试T—DAOUT端电压,若不等于2.5V,则调整VR2。

5.在数据00~FFH之间选若干点(直接在程序中进行修改),送DAC0832进行转换,测试T—DAOUT端电压,运行程序1,并记录。

6.运行程序2,用示波器测试T—DAOUT端,观察输出波形。

实验内容

 

程序:

#include

#include

#definewriteP3&0XFE

#definecsP3&0XFD

#defineunwriteP3|1

#defineuncsP3|2

unsignedcharcunter=2000;

unsignedchartrans_data=0;

unsignedchartime_interval=2;

bitflag=1;

voiddelay_ms(unsignedinta)

{

while(a--)

while(cunter--);

cunter=5;

}

voidtrangle_data_display(void)

{

while

(1)

{

//P3=unwrite;

P0=trans_data;

P3=0;

delay_ms(time_interval);

P3=1;

delay_ms(time_interval);

if((trans_data<=250)&&flag)

{

trans_data++;

if(trans_data==250)

flag=0;

}

elseif(flag==0)

{

trans_data--;

if(trans_data==0)

flag=1;

}

}

}

voidport_initial(void)

{

P0=0;

P3=255;

}

voidmain(void)

{

port_initial();

trangle_data_display();

}

实验数据

实验总结

通过本实验的学习,我更进一步掌握D/A转换的工作原理,掌握芯片DAC0832与单片机接口电路的设计方法,掌握芯片DAC0832的程序设计方法,掌握了怎么编写程序才能使输出端输出方波或锯齿波。

指导教师意见

 

签名:

年月日

 

实验报告三

学院:

电气工程学院专业:

测控技术与仪器班级:

测仪101

姓名

学号

实验组

实验时间

指导教师

成绩

实验项目名称

键盘、LED显示综合实验

实验目的

通过实验掌握键盘、显示器的接口方法;掌握键盘子程序调试方法,掌握按一个键并将其键值显示出来的方法,训练最简单的人机接口的软件和硬件设计技能,为后续“测控系统原理课程设计”的学习奠定基础。

实验要求

1.编写8279初始化程序(程序1),并向8279缓冲区写入显示字符,采用8位LED右端送入方式显示,程序控制字符“8”由右至左循环显示。

2.编写由左至右循环显示字符“F”的程序(程序2)。

3.编写每按下一个按键,将其键值显示在LED上的程序(程序3)。

实验原理

8279芯片是一种通用的可编程键盘、显示接口器件,能完成对64位按键和16位

LED显示器的管理。

8279有多种功能和多种工作模式,其功能和模式靠设定命令字

来确定。

8279引脚功能图,如图11所示。

与CPU的接口线共15个引脚:

D0~D7

双向三态数据总线、RESET复位输入端;

片选输入端;CLK时钟输入端;A0数据

选择输入端;读操作输入端;

写操作输入端;IRQ中断请求输入端。

8279包括键盘与显示两部分。

键盘部分可以为64个按键的阵列提供扫描;能够自动消除键抖动影响;具有对按键同时按下的保护;能把键信息存入8字符先进先出栈;可向CPU发中断请求,得到相应后,使CPU获取按键信息;也可以接受CPU对键信息的查询。

显示部分有16字节显示RAM,可用于刷新显示;显示RAM可由CPU直接读/写;8279对显示RAM能够以地址自动增1方式进行读/写;显示方式具有从显示器左端或右端送入两种。

与键盘的接口线共14个引脚。

SL0~SL3扫描输出端,用于扫描键盘和显示器,可以编程设定为编码或译码输出。

RL0~RL7返回输入端,可通过键盘矩阵与扫描线相连,内部电路使其保持高电平,直至有键闭合使相应线拉向低电平。

在选通方式下,用作8位输入。

SHIFT移位输入端,在键盘扫描方式下,它与键代码一起被存储,常用来扩充上下挡功能键。

在传感器方式和选通方式下,SHIFT无效。

CNTL/STB控制/选通输入端。

在键盘工作方式下,用作输入存储键信息;在选通方式下,用作选通数据存入FIFORAM;在传感器方式下无效。

OUTA0~OUTA3A组显示输出端。

输出显示数据,多位数字显示时应与扫描线SL0~SL3同步。

8279的命令字近10种,所以使用8279之前,应详细阅读其器件手册。

 

 

实验仪器

PC机、KeilμVision2软件,TOP2003编程器,自制实验板。

实验步骤

1.运行程序1,观察显示是否正确。

2.运行程序2,观察显示是否正确。

3.运行程序3,观察按键按下后LED上显示的键值是否正确。

实验内容

1.编写8279初始化程序(程序1),并向8279缓冲区写入显示字符,采用8位LED右端送入方式显示,程序控制字符“8”由右至左循环显示。

2.编写由左至右循环显示字符“F”的程序(程序2)。

3.编写每按下一个按键,将其键值显示在LED上的程序(程序3)。

实验数据

实验程序:

INIT:

MOVDPTR,#7FFFH

MOVA,#0D1H

MOVX@DPTR,A

MOVA,#010H

MOVX@DPTR,A

MOVA,#28H

MOVX@DPTR,A;设置扫描频率

SETBEA

SETBEX1

KINT:

PUSHPSW

PUSHDPH

PUSHDPL

PUSHACC

MOVDPTR,#7FFFH

MOVA,#40H

MOVX@DPTR,A

MOVDPTR,#7FFFH

MOVXA,@DPTR

MOVB,A

POPACC

POPDPL

POPDPH

POPPSW

RETI

DISPL:

MOVDPTR,#7FFFH

MOVA,#90H

MOVX@DPTR,A

MOVR0,#78H

MOVR7,#08H

MOVDPTR,#7FFEH

DISPL1:

MOVA,@R0

ADDA,#05H

MOVCA,@A+PC

MOVX@DPTR,A

INCR0

DJNZR7,DISPL1

RET

SEGPT:

DB08H,08H,08H,08H,08H,08H,08H,08H

END

实验总结

首先,通过本实验初步掌握了键盘、显示器的接口方法;掌握了键盘子程序调试方法;掌握了按一个键并将其键值显示出来的方法。

其次,通过本实验使我初步掌握了简单人机接口的软件和硬件的设计技能,为后续“测控系统原理课程设计”的学习奠定了基础、确定了学习方向。

再次,在本实验做过后,使我对KeilμVision2软件的开发和设计环境方面又得到了进一步的提升。

最后,在实验过程中我又对以前的学过的单片机、数字电路等方面的知识进行很大程度上巩固,使我牢牢地掌握了理论知识和实验设计方法和分析方法。

指导教师意见

 

 

签名:

年月日

 

实验报告四

学院:

电气工程学院专业:

测控技术与仪器班级:

测仪101

姓名

学号

实验组

实验时间

指导教师

成绩

实验项目名称

PLD实现三人表决器

实验目的

1.通过本次实验,引导学生以计算机辅助设计的手段来设计数字逻辑电路;

2.掌握QuartusII集成开发环境软件原理图输入的设计流程;

3.掌握简单流水灯的工作原理,学会通过QuartusII建立原理图设计小型数字电路;

4.掌握可编程逻辑器件(PLD)的开发步骤;

5.掌握对设计进行编译、仿真的方法。

实验要求

1 创建Vote工程

2 建立原理图文件

3 管脚分配和编译

4 编辑输入波形和进行仿真

实验原理

1 创建Vote工程

2 建立原理图文件

3 管脚分配和编译

4 编辑输入波形和进行仿真

实验仪器

PCQuartusII

实验步骤

1.1 双击桌面上QuartusII5.0的图标,启动QuartusII5.0软件。

1.2 通过File=>NewProjectWizard…菜单命令启动新项目向导。

1.3 在随后弹出的对话框上点击Next按钮,继续。

1.4 在Whatistheworkingdirectoryforthisproject栏目中设定新项目所

使用的路径;在Whatisthenameofthisproject栏目中输入新项目的名字:

vote,点击Next按钮。

1.5 在这一步,向导要求向新项目中加入已存在的设计文件。

因为我们的设

计文件还没有建立,所以点击Next按钮,跳过这一步。

1.6 在这一步选择器件的型号。

Family栏目设置为Cyclone,选中

Specificdeviceselectedin‘Availabledevices’list选项,在Availabledevice

窗口中选中所使用的器件的具体型号,这里以EP1C6Q240C8为例。

点击

Next按钮,继续。

1.7 在这一步,可以为新项目指定综合工具、仿真工具、时间分析工具。

这个实验中,我使用QuartusII5.0的默认设置,直接点击Next按钮,继续。

1.8 确认相关设置,点击Finish按钮,完成新项目创建

2.1 在File菜单下,点击New命令。

在随后弹出的对话框中选择Block

Diagram/SchematicFile选项,点击OK按钮。

在File菜单下选择SaveAs

命令,将其保存,并加入到项目中。

2.2 根据上面的真值表,做卡诺图简化,可以得出:

F=S1S2+S1S3+S2S3。

双击原理图的任一空白的处,会弹出一个元件对话框。

在Name栏目中输入

and2,我们就得到一个2输入的与门。

2.3 点击OK按钮,将其放到原理图的适当位置。

重复操作,放入另外两个

2输入与门。

也可以通过右键菜单的Copy命令复制得到。

2.4 双击原理图的空白处,打开元件对话框。

在Name栏目中输入or3,

我们将得到一个3输入的或门。

点击OK按钮,将其放入原理图。

2.5 双击原理图的空白处,打开元件对话框。

在Name栏目中输入not,我

们会得到一个非门。

点击OK按钮,将其放入原理图。

2.6 将鼠标入到元件的引脚上,鼠标会变成“十”字形状。

按下左键,拖动鼠标,

就会有导线引出。

根据我们要实现的逻辑,连好各元件的引脚。

2.7 双击原理图的空白处,打开元件对话框。

在Name栏目中输入Input,我们

便得到一个输入引脚。

点击OK按钮,放入原理图。

重复操作,给我们的电路

加上3个输入引脚。

2.8 双击输入引脚,会弹出一个属性对话框。

在这一对话框上,我们可更改引

脚的名字。

我们分别给3个输入引脚取名in1、in2、in3。

2.9 双击原理图的空白处,打开元件对话框。

在Name栏目中输入output,我

们会得到一个输出引脚。

点击OK按钮,放入原理图。

重复操作,给我们的电

路加上两个输出引脚。

给两个输出引脚分别命名为led1、led2。

3.1在Assignments菜单下,点击Pins命令,启动PinPlanner工具。

在这个工

具中,我们可以为我们的电路的端子分配器件的引脚。

在AllPins表格中,双

击NodeName列的newnode单元,输入端子的名字。

在同一行的Location列,

选择要分配的位置。

重复操作,为每个端子都分配适当的脚位。

3.2在Assignments菜单下,点击Device…命令。

在随后弹出的对话框中点击

Device&PinOptions…按钮,进入Device&PinOptions对话框。

切换到

configuration页,在ConfigurationDevice栏目中,选中useconfiguration

device选项,配置器件型号选择EPCS1,同时,选中Generatecompressed

bitstreams选项。

3.3切换到UnusedPins页,在Reservedallunusedpins栏目中,选择Asinput

tri-stated。

因为我们的设要在开发板上演示,所以把没有用到的管脚设为输入,

以避免与开发板上其它电路发生冲突。

点击确定按钮,确认设置。

回到Seting

对话框,点击OK按钮。

3.4在Processing菜单下,点击StartCompilation命令,开始编译我们的项目。

编译结束后,点击确定按钮。

4.1在把我们的设计下载到开发板上验证之前,我们可以先做一下仿真。

首先,

我们要建立一个输入波形文件。

仿真工具会用到该文件,以确定每个输入引脚

的激励信号。

在File菜单下,点击New命令。

在随后弹出的对话框中,切换到

OtherFiles页。

选中VectorWaveformFile选项,点击OK按钮。

4.2现在,我们已经进入到波形编辑界面。

在Edit菜单下,点击InsertNodeor

Bus…命令。

4.3点击NodeFinder…按钮,打开NodeFinder对话框。

点击List按钮,列出

电路所有的端子。

点击>>按钮,全部加入。

点击OK按钮,确认。

4.4回到InsertNodeorBus对话框,点击OK按钮,确认。

4.5选中in1信号,在Edit菜单下,选择Value=>Clock…命令。

在随后弹出的

对话框的Period栏目中设定参数为50ns,点击OK按钮。

4.6In2、in3也用同样的方法进行设置,Period参数分别为100ns和200ns。

4.7保存文件,在Processing菜单下,选择StartSimulation启动仿真工具。

仿

真结束后,点击确认按钮。

观察仿真结果,对比输入与输出之间的逻辑关系否

符合真值表。

实验内容

实验数据

实验总结

1.通过本次实验,进一步了解了以计算机辅助设计的手段来设计数字逻辑电路;

2.掌握QuartusII集成开发环境软件原理图输入的设计流程;

3.掌握简单流水灯的工作原理,学会通过QuartusII建立原理图设计小型数字电路;

4.掌握可编程逻辑器件(PLD)的开发步骤;

5.掌握对设计进行编译、仿真的方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1