实验二十一ADC0809 模数转换实验
一、实验目的:
1、掌握ADC0809 模/数转换芯片与单片机的连接方法及ADC0809 的典型应用。
2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。
二、实验设备:
电脑和THGZ-1单片机.CPLD/FPGA综合开发实验装
三、实验说明:
本实验使用ADC0809 模数转换器,ADC0809 是8 通道8 位CMOS 逐次逼近式A/D 转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D 转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。下图为该芯片的引脚图。
各引脚功能如下:
IN0~IN7:八路模拟信号输入端。
ADD-A 、ADD-B 、ADD-C:三位地址码输入端。八路模拟信号转换选择由这三个端口控制。
CLOCK:外部时钟输入端(小于1MHz)。
D0~D7:数字量输出端。
OE:A/D 转换结果输出允许控制端。当OE 为高电平时,允许A/D 转换结果从D0~D7 端输出。ALE:地址锁存允许信号输入端。八路模拟通道地址由
A、B、C 输入,在ALE 信号有效时将该八路地址锁存。START:启动A/D 转换信号输入端。当START 端输入一个正脉冲时,将进行A/D 转换。EOC:A/D 转换结束信号输出端。当 A/D 转换结束后,EOC 输出高电平。Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。VCC 和GND:芯片的电源端和地端。
四、实验内容及步骤:
1、单片机最小应用系统的 P0 口接A/D 转换的D0~D7 口,单片机最小应用系统的Q0~Q7 口接0809 的A0~A7 口,单片机最小应用系统的WR、RD、P2.0、ALE 、INT1 分别接A/D 转换的WR、RD、P2.0 、CLOCK 、INT1,A/D 转换的IN 接入+5V ,单片机最小应用系统的RXD、TXD 连接到串行静态显示实验模块的DIN、CLK。
2、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
3、推上左侧空气开关,启动计算机,打开伟福仿真软件Keil Uvsion2,进入仿真环境。选择仿真器型号、仿真头型号、CPU 类型;选择通信端口,测试串行口。
⑴、建立工程项目:
点击主菜单 PROJEKT→NEW PROJECT→工程名 XXX.UV2(保存在桌面上)
⑵、进行仿真器的设置:
打开 View →PROJECT WINDOW 界面,右键点击TARGET1 选择 OPTION FOR TARGET TARGET1
a、CPU选择:
DEVICE → ATMEL → AT89C51
STANDARD 8051 STARTUP CODE……? 否
b、目标机晶振选择:
TARGET → XTAL → 11.0592 MHZ
c、调试选项:
DEBUG → ⊙USE KEIL MONITOR DRIVER-51
点击其旁边的 ”SETTING”
设置串口 PORT :COM1
传输波特率 BAUDRATE : 38400
⑶、创建程序文件:
FILE→NEW FILE→
在 TEXT 文本界面输入源程序
ORG 0000H.
.
END
输入完毕,另存 SAVE AS 文件名 XXX.ASM(保存在桌面上)
⑷、添加程序到工程组:
点开TARGET1→SOURCE GROUP →ADD FILES TO GROUP “SOURCE GROUP1”
在文件类型窗口选择: ALL FILES
在文件名窗口输入要调试的程序文件名 : 桌面: XXX.ASM,
或 E:\实验程序\AD0809.ASM
点击 “ADD” 键,并关闭此窗口
⑸、查看源程序:
双击 SOURCE GROUP 下的文件名(SOURCE GROUP下只允许一个文件,其他用 REMOVE FILE FROM SOURCE GROUP 删去)打开源程序,阅读、理解、分析该程序。
⑹、编译,连接程序:
点击项目菜单,选择全部编译,连接,编译、连接有误回到步骤⑶,打开文件修改直至编译,连接完全正确
⑺、调试运行程序:
点击 DEBUG →DEBUG START 后,实现连机后(否则,检查前边的设置,按仿真器上的复位键,再编译、连机直至连上),点击全速执行快捷按钮。
⑻、查看结果:
5LED 静态显示“Ad XX”,“XX”为AD 转换后的值,8 位逻辑电平显示“XX”的二进制值,调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,AD 转换值的范围是0~FFH。
3、点击 DEBUG →DEBUG STOP 后,点 “RST” 复位,可开始再次运行程序。运行结束,关闭程序,关闭Keil软件,关闭电脑,断开空开。
五、流程图及源程序:
1、流程图:
DBUF0 EQU 30H
TEMP EQU 40H
ORG 0000H
LJMP START
ORG 0100H
START: MOV R0,#DBUF0
MOV @R0,#0AH
INC R0
MOV @R0,#0DH
INC R0
MOV @R0,#11H
INC R0
MOV DPTR,#0FEF3H ;A/D
MOV A,#0
MOVX @DPTR,A
WAIT: JNB P3.3,WAIT
MOVX A,@DPTR ; 读入结果
MOV P1,A
MOV B,A
SWAP A
ANL A,#0FH
XCH A,@R0
INC R0
MOV A,B
ANL A,#0FH
XCH A,@R0
ACALL DISP1
acall delay
AJMP START
DISP1: MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#5
DP10: MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP10
MOV R0,#TEMP
MOV R1,#5
DP12: MOV R2,#8
MOV A,@R0
DP13: RLC A
MOV 0B0H,C
CLR 0B1H
SETB 0B1H
DJNZ R2,DP13
INC R0
DJNZ R1,DP12
RET
SEGTAB: DB 3FH,6,5BH,4FH,66H,6DH
;0,1,2,3,4,5
DB 7DH,7,7FH,6FH,77H,7CH
;6,7,8,9,A,B
DB 58H,5EH,79H,71H,0,00H
;C,D,E,F,-
DELAY:MOV R4,#020H
AA1: MOV R5,#0FFH
AA: NOP
NOP
DJNZ R5,AA
DJNZ R4,AA1
RET
END
六、思考题:
1、转换程序有三种编制方式:中断方式、查询方式、延时方式,实验中使用了查询方式,请用另两种方式编制程序。
2、P0口是数据/地址复用的端口,请说明实验中ADC0809 的模拟通道选择开关在利用P0 口的数据口或地址口时,程序指令和硬件连线的关系。
七、电路图:
本文来源:https://www.2haoxitong.net/k/doc/f1a3369383c4bb4cf7ecd1ab.html
文档为doc格式