微机原理与汇编语言 综合性实验任务书
实验项目名称:A/D转换器 ADC0809数字温度计设计 课程名称:微机原理与汇编语言 面向专业:信息与计算科学专业
计划学时:4学时=实验课内2学时+实验课外2学时 实验类型: √ 综合 设计
实验目的:掌握A/D转换原理,掌握0809A/D转换芯片的硬件电路和
软件编程。
实验要求:包括开发环境要求,技术文档要求两部分。 开发环境要求:
软件环境:windows98/windowsXP/windows2000,QTH-8086B环境 硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备) 技术文档要求:
按照实验报告编写要求进行。要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。 实验内容:
1 熟悉A/D转换原理及相关芯片。
2 掌握ADC0809数字温度计设计应用原理,用汇编语言编写相关程序。
1
A/D转换器 ADC0809数字温度计设计
3 在QTH-8086B环境中运行编译好的的程序,将转换的结果在数码管上显示,调节电位器观察数码管上数据的变化,得出相关结论。 实验方案(任务提示):按照系统板上硬件连线要求,在QTH-8086B16位微机教学实验仪上连好相关线路。利用AD590温度传感器完成温度的测量,把转换的温度值的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入数码管显示。 实验仪器设备:每个学生一台计算机、QTH-8086B 16位微机教学实验仪。
实验报告版式要求
A4纸张打印;上下页边距各2.5cm,左右页边距各3.0cm,页眉1.5cm页脚1.75cm;页码位于页脚居中打印;奇数页页眉“微机原理与汇编语言综合性实验”,偶数页页眉“A/D转换器 ADC0809数字温度计设计”,页眉宋体小5号,一级标题:黑体三号粗体字;二级标题:黑体4号;三级标题黑体小4号,正文,宋体5号。 实验报告装订顺序与规范 封面
A/D转换器 ADC0809数字温度计设计综合实验任务书 A/D转换器 ADC0809数字温度计设计综合实验报告 左边缘装订
2
微机原理与汇编语言综合性实验
微机原理与汇编语言综合性实验报告
实验项目名称:A/D转换器 ADC0809数字温度计设计
专业班级: 数学061 ;姓名: 冯 凯 ;学号 200612010115 实验起止日期: 2008 年 12 月13日起 2008 年 12 月20日止 一.实验目的:掌握A/D转换原理,掌握0809A/D转换芯片的硬件电路和软件编程。 二.实验要求:
2.1开发环境要求:
软件环境:windows98/windowsXP/windows2000,QTH-8086B环境 硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)
2.2技术文档要求:
按照实验报告编写要求进行。要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。
三.实验内容:实验原理,实验电路,连线
3.1 实验原理:
在数字电子技术的很多应用场合往往需要把模拟量转换为数字量,称为模 / 数转换器(A D转换器,简称ADC)
3.2 ADC0809的内部结构:
ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。器件的核心部分是8位A / D转换器,它由比较器、逐次渐近寄存器、D / A转换器及控制和定时5部分组成。
模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。 ADC0809的多路转换:
3
A/D转换器 ADC0809数字温度计设计
在实时控制与实时检测系统中,被控制与被测量的电路往往是几路或几十路,对这些电路的参数进行模/数、数/模转换时,常采用公共的模数、数模转换电路。因此,对各路进行转换是分时进行的。此时,必须轮流切换各被测电路与模数、数模转换电路之间的通道,以达到分时切换的功能。
3.3 ADC0809的主要性能:
(1) 8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。 (2) 带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。 (3) 输出具有三态锁存功能。
(4) 分辨率:8位,转换时间:100μs。 (5) 不可调误差:±1LBS,功耗:15mW。 (6) 工作电压:+5V,参考电压标准值+5V。
(7) 片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。
3.4 ADC0809的内部结构图:
3.5 ADC0809转换时序:
首先输入地址选择信号,在ALE信号作用下,地址信号被锁存,产生译码信号,选中一路模拟量输入。然后输入启动转换控制信号START(不小于100ns ),启动A/D转换。转换
4
微机原理与汇编语言综合性实验
结束,数据送三态门锁存,同时发出EOC信号,在允许输出信号控制下,再将转换结果输出到外部数据总线。
3.6 ADC0809转换时序图:
3.7 ADC0809的引脚图
ADC0809是采用CMOS工艺制成的单片8位8通道逐次渐近型模 / 数转换器,其逻辑框图及引脚排列如图上图所示。
3.8 ADC0809的引脚功能说明如下:
INo-IN7:8路模拟信号输入端 A2、A1、A0:地址输入端
5
A/D转换器 ADC0809数字温度计设计
ALE:地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此 时锁存地址码,从而选通相应的模拟信号通道,以便进行A / D转换。
START:启动信号输入端,应在此脚施加正脉冲,当上升沿到达时, 内部逐次逼近寄存器复位,在下降沿到达后,开始A / D转换过程。
EOC:转换结束输出信号(转换结束标志),高电平有效。 OE:输入允许信号,高电平有效。
CLOCK(CP):时钟信号输入端,外接时钟频率一般为640KHz。
Vcc:+5V单电源供电
VREF(+)、VREF(-):基准电压的正极、负极。一般VREF(+)接+5V电源,VREF(-)接地。 D7-Do :数字信号输出端
3.9 ADC0809与CPU连接:
3.10ADC0809应用说明
(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 (2).初始化时,使ST和OE信号全为低电平。
(3).送要转换的哪一通道的地址到A,B,C端口上。 (4).在ST端给出一个至少有100ns宽的正脉冲信号。 (5).是否转换完毕,我们根据EOC信号来判断。
(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 1)模拟量输入通道选择
8路模拟开关由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A / D转换地址
译码与模拟输入通道的选通关系如下表所示。
6
微机原理与汇编语言综合性实验
3.11 D / A转换器
以DAC0832为例, DAC0832采用CMOS工艺制成的单片电流输出型8位数 / 模转换器。下图是DAC0832的逻辑框图及引脚排列。图DAC0832单片D/A转换器逻辑框图和引脚排列。器件
的核心部分采用倒T型电阻网络的8位D / A转换器,如图所示。它是由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四部分组成。
运放的输出电压为:V0VREFRfnD22Rn1n1Dn22n2D02
0由上式可见,输出电压VO 与输入的数字量成正比,这就实现了从数字量到模拟量的转换。
一个8位的D / A转换器,它有8个输入端,每个输入端是8位二进制数的一位,有一个模拟输出端,输入可有2=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
7
8
A/D转换器 ADC0809数字温度计设计
3.12 DAC0832的引脚功能说明如下: D0-D7 :数字信号输入端
ILE:输入寄存器允许,高电平有效 CS: 片选信号,低电平有效
1WR:写信号1,低电平有效 XFER:传送控制信号,低电平有效
2WR:写信号2,低电平有效
IOUT1,IOUT2:DAC电流输出端
RfB :反馈电阻,是集成在片内的外接运放的反馈电阻 VREF :基准电压(-10~+10)V VCC :电源电压(+5~+15)V
AGND:模拟地 GNGD:数字地
DAC0832输出的是电流,要转换为电压,还必须经过一个外接的运算放大器,实验线路如图所示。
按上图接线,电路接成直通方式,即
CS,WR2,WR2,XFER、接地;ALE、V
CC
、VREF
接+5V电源;运放电源接±15V;D0~D7 接逻辑开关的输出插口,输出端vO接直流数字电压表。
(2) 调零,令D0~D7 全置零,调节运放的电位器使μA741输出为零;令D0~D7全为1,观察运放输入端电压值,如不是-5V,则可在0832的第9端与μA741的第6接线端之间接一个1kΩ的可变电阻,调节该电位器使输出达到要求值。
8
微机原理与汇编语言综合性实验
3.13 D / A转换过程
在启动端(START)加启动脉冲(正脉冲),D / A转换即开始。如将启动端(START)与转换结束端(EOC)直接相连,转换将是连续的,在用这种转换方式时,开始应在外部加启动脉冲。ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示
C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 选择的通道 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 数字量输出及控制线:11条
ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。
CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
9
A/D转换器 ADC0809数字温度计设计
VREF(+),VREF(-)为参考电压输入。
3.14 电路原理图:
3.15 系统板上硬件连线
(1). 把“单片机系统板”区域中的P1端口的P1.0-P1.7用8芯排线连接到“动态
数码显示”区域中的A B C D E F G H端口上,作为数码管的笔段驱动。
(2). 把“单片机系统板”区域中的P2端口的P2.0-P2.7用8芯排线连接到“动态
数码显示”区域中的S1 S2 S3 S4 S5 S6 S7 S8端口上,作为数码管的位段选择。
(3). 把“单片机系统板”区域中的P0端口的P0.0-P0.7用8芯排线连接到“模数
转换模块”区域中的D0D1D2D3D4D5D6D7端口上,A/D转换完毕的数据输入到单片机的P0端口
(4). 把“模数转换模块”区域中的VREF端子用导线连接到“电源模块”区域中的VCC
端子上;
(5). 把“模数转换模块”区域中的A2A1A0端子用导线连接到“单片机系统”区域中
的P3.4 P3.5 P3.6端子上;
10
微机原理与汇编语言综合性实验
(6). 把“模数转换模块”区域中的ST端子用导线连接到“单片机系统”区域中的P3.0
端子上;
(7). 把“模数转换模块”区域中的OE端子用导线连接到“单片机系统”区域中的P3.1
端子上;
(8). 把“模数转换模块”区域中的EOC端子用导线连接到“单片机系统”区域中的
P3.2端子上;
(9). 把“模数转换模块”区域中的CLK端子用导线连接到“分频模块”区域中的 /4
端子上;
(10). 把“分频模块”区域中的CK IN端子用导线连接到“单片机系统”区域中的
ALE 端子上;
(11). 把“模数转换模块”区域中的IN3端子用导线连接到“三路可调压模块”区域中的 VR1 端子上;
四.实验原理图:
11
A/D转换器 ADC0809数字温度计设计
五.流程图: 开始 初始化横坐标CX=0 启动AD转换 延时200s 读入转换后的数据 分别显示数据十六进制高位数和十六进制低位数 把AH高四位转换为ASCII码并显示 把AL低四位转换为ASCII码并显示 显 示 回 车 换 行 有键按下 返回DOS
12
微机原理与汇编语言综合性实验
六.实验步骤:
实验连线:
AD0809模块的时钟输入端ADCLK连到MCU主模块的ALE。 AD0809模块的ADWR、ADRD连到分别连到MCU主模块的WR、RD。
AD0809模块的数据(D0~D7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
AD0809模块选通线ADCS连到MCU主模块的地址A14。 AD0809模块IN0接到电位器的DCOUT。
8255模块的WR、RD分别连到MCU主模块的WR、RD。
8255模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255模块选通线CE连到MCU主模块的地址A15。
8255模块的PC0接串并转换电路的CLK,PC1接DIN。
七.实验讨论:按上述步骤连接好线后运行下面程序,调试无误后运行,逆时针旋转DW3,
观察数码管的变化,发现旋转角度越大数码管的显示的值不断的增大,从00—FF,但是变化的频度不一。工作时的标准参考电压是+5V,如果改变这个电压值会有什么变化,因为在D\\A转换过程中可对8路0~5V模拟量进行分时切换。另外片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。这个外加的时钟信号的值会对实验产生什么影响呢?如果改变了这些值数码管的显示还会不会为00-FF。通过查找发现实验利用AD590温度传感器完成温
13
A/D转换器 ADC0809数字温度计设计
度的测量,把转换的温度值的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入数码管显示。而AD590的温度变化范围在-55℃-+150℃之间,经过10KΩ之后采样到的电压变化在2.182V-4.232V之间,不超过5V电压所表示的范围,因此参考电压取电源电压VCC,(实测VCC=4.70V)。这就是为什么实验中电压的值在5V,但是温度的影响确实是一个主要因素。但当时实验环境是室温状态因此属于正常状态。因此在把电源电压缩小后数码管显示的范围会变小。而且机器开的时间越长由于温度变化所以导致了数码管显示并不是很稳定变化频度不一。
八.微机原理与汇编语言实验收获与总结
通过本次实验对微机的工作有了初步了解虽然它只是一次仿真实验。实验中连了了很多线我知道这只是外面接口连线。从上面芯片的内部结构以及电路图可知其内部更复杂,对电路有了新的认识-数字电路。同样在运行程序时还要调解物理结构说明汇编语言与机器连接的紧密型至少知道要学好汇编还要懂得数字电路与逻辑电路并不是光学习语言本身就可以的。 此次试验中认识了了不少芯片的引脚,这对引脚有了进一步的认识。
九.参考文献:
1.北京邮电大学谢沅清、解月珍编《电子电路基础》,人民邮电出版社(1999)。
2、《模拟电子技术基础》, 童诗白 高等教育出版社, 1998 执笔:邢冰冰
附录:源程序代码
;0809选通信号接A14,CLK接ALE,INT0接电位器
.DATA 20H
0B000H
14
PAGE 60,132
.MODEL SMALL
.STACK 20H
AD0809
EQU
微机原理与汇编语言综合性实验
A8255 B8255 C8255 D8255
DCLK0 DCLK1 DIN0 DIN1
DIDATA
MAIN:
NEXT:
EQU 7000H EQU 7001H EQU 7002H EQU 7003H EQU 00000000B EQU 00000001B EQU 00000010B EQU
00000011B
.CODE DB
?
ORG 0100H
MOV
SP,9000H
MOV DX,D8255 MOV AL,80H
OUT DX,AL
MOV DX,AD0809 MOV AL,00H OUT
DX,AL
CALL DELAY IN AL,DX
CMP
AL,DIDATA
JZ NEXT MOV
DIDATA,AL
CALL DISP CALL
DELAY1
;写8255控制字A、B输出,C输入
;启动AD转换
;延时
;转换结束读取结果
15
A/D转换器 ADC0809数字温度计设计
;
;*************************************************************** ;
/*显示子程序*/
*
JMP
NEXT
;*************************************************************** ; DISP:
SEND:
SEND1:
MOV AL,DIDATA
AND
AL,0FH
CALL SEND
MOV AL,DIDATA MOV
CL,04H
SHR AL,CL CALL SEND
RET
PUSH CX MOV AH,00H MOV DI,AX
MOV BX,OFFSET SGTB1 MOV AL,[BX+DI] MOV AH,AL
MOV CX,01H MOV DX,D8255 MOV AL,DCLK0
OUT DX,AL MOV
AL,AH
RCL AL,CL JC SEND2 MOV AL,DIN0 OUT
DX,AL
16
;取低位
;显示 ;取高位 ;显示
;取字符
;DCLK<-0
;DIN<-0
微机原理与汇编语言综合性实验
MOV OUT
AL,DIN1 DX,AL
;DIN<-1
JMP
SEND3
SEND2:
SEND3: ;
MOV OUT INC CMP JNZ MOV OUT POP RET
CX
AL,DCLK1 DX,AL
;DCLK<-1
CX,09H
SEND1 CX
AL,DIN1 DX,AL
;***************************************************************************** ;
/*延时程序*/
;***************************************************************************** ;
PUSH MOV LOOP POP RET
PUSH
$ CX
CX CX,0FFFFH
;延时
CX $ CX
CX,0FFH
;延时
DELAY:
DELAY1:
MOV LOOP POP RET
17
A/D转换器 ADC0809数字温度计设计
DB
0C0H
DB 0F9H
DB 0A4H
DB 0B0H
DB 99H DB 92H DB
82H
DB 0F8H DB
80H
DB 90H
DB
88H
DB 83H
DB 0C6H DB 0A1H DB 86H
DB 8EH DB 00H
END
;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9 ;A ;B ;C ;D ;E ;F
SGTB1
18
因篇幅问题不能全部显示,请点此查看更多更全内容