计算机控制技术
实验报告
题目: A/D转换实验
专业: 20##级自动化1班
姓名: 孙海波
学号: 222011322270002
指导老师: 胡东
一.实验目的
1.学习掌握模/数信号转换的基本原理;
2.掌握ADC0809芯片的使用方法。
二.实验设备
PC机一台。
三. 实验内容及步骤
(一) ADC0809在8086计算机系统中的应用
1.ADC0809芯片介绍 略
2.接口实验单元中的ADC0809芯片线路
图1-2 系统中的ADC0809线路
3.实验接线和实验要求
(1).实验按下图1-3实验线路连线
图1-3 ADC0809应用实验线路
(2). 一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。ADC0809的转换结束信号EOC未接, 如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 接系统数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H、06H、07H。
(3). 启动本A/D转换只需如下三条命令:
MOV DX,ADPORT ;ADPORT为ADC0809端口地址。
MOV AL,DATA ;DATA为通道值。
MOV DX,AL ; 通道值送端口。
读取A/D转换结果用下面二条指令:
MOV DX,ADPORT
IN AL,DX
(4).实验软件原理框图
(5).试验程序如下:
CODE SEGMENT
ASSUME CS:CODE
ADPORT EQU 0010h
ORG 1000H
START: JMP ADCONTORL
ADCONTORL:CALL FORMAT
ADCON: MOV AX,00
MOV DX,ADPORT
OUT DX,AL
MOV CX,0500H
DELAY: LOOP DELAY
MOV DX,ADPORT
IN AL,DX
CALL CONVERS
CALL DISP
JMP ADCON
CONVERS: MOV AH,AL
AND AL,0FH
MOV BX,077AH
MOV DS:[BX],AL
INC BX
MOV AL,AH
AND AL,0F0H
MOV CL,04H
SHR AL,CL
MOV DS: [BX],AL
RET
disp: mov dx,077Fh
mov ah,20h
disp0: mov cx,00ffh
mov bx,dx
mov bl,ds:[bx]
mov bh,0h
push dx
mov dx,0ff22h
mov al,cs:[bx+1060h]
OUT DX,AL
mov dx,0ff21h
mov al,ah
OUT DX,AL
disp1: loop disp1
pop dx
dec dx
shr ah,01h
jnz disp0
mov dx,0ff22h
mov al,0ffh
OUT DX,AL
ret
data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0ah
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh
FORMAT: MOV BX,0
MOV WORD PTR DS:[BX+077AH],0000H
ADD BX,2
MOV WORD PTR DS:[BX+077AH],0009H
ADD BX,2
MOV WORD PTR DS:[BX+077AH],0008H
RET
CODE ENDS
END START
(二)掌握ADC0809在51系列单片机中的使用方法
1.系统内部ADC0809的线路同图1-2。实验线路如下图1-4所示,图中采用部分译码法,地址为7FF8H~7FFFH,分别对应着8个模拟输入通道。
图1-4 51单片机实验ADC0809应用实验线路
2.实验接线和实验要求
(1).实验按图1-4实验线路连线
(2).由图1-4实现连线电路可知,主要由AD 转换器AD0809,频率发生器SUN7474,单片机AT89S51及显示用数码管组成。
AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC 信号在START 的下降沿10us后才变为无效的低电平。这要求查询程序待EOC无效后再开始查询,转换完成后,EOC 输出高电平,再由OE 变为高电平来输出转换数据。我们在设计程序时可以利用EOC 信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动AD0809 后经适当的延时再读入已转换的数据。AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1 与SUN7474连接经与7474的ST脚提供AD0809 的工作时钟。AD0809 的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ 时,其转换速度为128us。AD0809 的数据输出公式为:Dout=Vin*255/5=Vin*51,其中Vin为输入模拟电压,Vout为输出数据。
当输入电压为5V 时,读得的数据为255 再乘以2,得510。我们用510*98%得499,再将百位数码管的小数点点亮,显示为4.99V,显示值与输入值基本吻合。
(3).软件设计思路及程序流程:
编程思路:
① 向AD0809 写入通道号并启动转换
② 延时1ms 后等待EOC 出现高电平(JNB EOC,$)
③ 给OE 置高并读入转换数据存入数据地址或数组中。
④ 显示
(3).程序流程图如下所示:
(4)、由流程图可编写程序如下:
#include <at89x51.h>
#define uchar unsigned char
#define uint unsigned int
sbit st=P3^2;
sbit oe=P3^1;
sbit eoc=P3^0;
uchar codetab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管显示段码
uchar codetd[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先择数组
uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0;
uchar m,number;
uchar x[8];//八通道数据待存数组
void delaynms(uint x);//nms延时程序
void display();//显示程序
void ad0809();//芯片启动程序
void key();//键扫描程序
main()
{
number=1;
P1=0x00;
while(1)
{
ad0809();//调AD0809 启动子程序
key();//调按键子程序
ad_0809=x[number];//把相关通道数据给ad_0809
display();//调显示
}}
//nms 延时程序
void delaynms(uint x)
{
uchar i;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}}
void display()
{
uchar a;
ad_data1=(ad_0809*49/25)/100;//读得的数据乘以2 再乘以98%除以100 得百位
ad_data2=((ad_0809*49/25)%100)/10;//读得的数据乘以2 再乘以98%再分出十位
ad_data3=(((ad_0809*49/25)%100)%10);//读得的数据乘以2 再乘以98%再分出个位
for(a=0;a<10;a++)
{
P0=tab[ad_data3];//送小数点后第二位显示
P2=0x07;//选通第一个数码管
delaynms(3);
P0=tab[ad_data2];//送小数点后第一位显示
P2=0x0b;//选通第二个数码管
delaynms(3);
P0=tab[ad_data1];//送整数显示
P0_7=0;//点亮第三个数码管小数点
P2=0x0d;// 选通第三个数码管
delaynms(3);
P0=tab[number];//送通道号显示
P2=0x0e;
delaynms(3);
}}
void ad0809()
{
uchar i,m=1;
for(i=0;i<8;i++)
{
P0=td[i];//选通通道
oe=0;//以下三条指令为起动AD0809
st=0;
st=1;
st=0;
delaynms(1);
while(!eoc);//等待转换结束
oe=1;//取出读得的数据
x[m]=P2;//送相关通道数组
oe=0;
m++;
}}
void key()
{
if(!P3_5)//P3.5 是否按下
{
delaynms(20);//延时判误
if(!P3_5)//再一次判断P3。5 是否按下
{
while(!P3_5);//等待P3。5 为高电平
number++;//通道号显示加一
if(number>8)number=1;//八通道
}}}
四、心得体会
通过本次实验学习和掌握A/D信号转换的基本原理,并熟悉和掌握ADC0809芯片的使用方法,进一步熟悉和掌握了Proteus软件的适用以及利用其画仿真图,并熟悉和掌握了ADC0809芯片在8086上的编程以及使用,以及ADC0809芯片在51系列单片机上的编程以及使用。通过本次试验了解到了自己在模拟仿真软件使用上的不熟练,应多进行联系巩固。
实验一 A/D与D/A转换
班级:自动F1203班 姓名:蔡申申 学号:201223910625
一、实验目的
1.通过实验了解实验系统的结构与使用方法;
2.通过实验了解模拟量通道中模数转换与数模转换的实现方法。
二、实验设备
1.THBCC-1型 信号与系统控制理论及计算机控制技术实验平台
2.THBXD数据采集卡一块(含37芯通信线、16芯排线和USB电缆线各1根)
3.PC机1台(含软件“THBCC-1”)
三、实验内容
1.输入一定值的电压,测取模数转换的特性,并分析之;
2.在上位机输入一十进制代码,完成通道的数模转换实验。
四、实验步骤
1. 启动实验台的“电源总开关”,打开±5、±15V电源。将“阶跃信号发生器”单元输出端连接到“数据采集接口单元“的“AD1”通道,同时将采集接口单元的“DA1”输出端连接到接口单元的“AD2”输入端;
2.将“阶跃信号发生器”的输入电压调节为1V;
3. 启动计算机,在桌面双击图标“THBCC-1”软件,在打开的软件界面上点击“开始采集”按钮;
4. 点击软件“系统”菜单下的“AD/DA实验”,在AD/DA实验界面上点击“开始”按钮,观测采集卡上AD转换器的转换结果,在输入电压为1V(可以使用面板上的直流数字电压表进行测量)时应为00001100011101(共14位,其中后几位将处于实时刷新状态)。调节阶跃信号的大小,然后继续观察AD转换器的转换结果,并与理论值(详见本实验附录)进行比较;
5. 根据DA转换器的转换规律(详见本实验附录),在DA部分的编辑框中输入一个十进制数据(如2457,其范围为0~4095),然后虚拟示波器上观测DA转换值的大小;
6. 实验结束后,关闭脚本编辑器窗口,退出实验软件。
五、实验结果
当阶跃信号在不同的输入时的A/D转换示波器显示图。
图示分别为0、3、10、-10、-3V时的A/D转换图。
A/D转换
D/A转换
实验体会:
通过对A/D与D/A转换实验的学习了解了实验系统的结构与使用方法和模拟量通道中模数转换与数模转换的实现方法,学会了软件“THBCC-1”的简单使用,利用THBXD数据采集卡在计算机上显示当阶跃信号在不同的输入时的A/D转换示波器图,
计算机控制系统实验报告姓名罗才宝学号0953505008指导教师专业年级所在院系完成日期实验一DA数模转换实验一实验目的1掌握数模…
杭州电子科技大学实验报告课程名称指导老师学生姓名学生学号学生班级所学专业实验日期实验1常规PID控制算法仿真1实验参数shiyan…
计算机控制技术实验报告题目专业姓名学号指导老师一实验目的实验一AD转换实验1学习掌握模数信号转换的基本原理2掌握ADC0809芯片…
实验内容1八字段LED数码管驱动显示工作原理274LS138三八译码器工作原理及如何控制数码管工作原理3数码管动态显示工作原理分析…
计算机控制实验报告班级姓名学号实验二最少拍控制系统1实验结果图21单位阶跃输入下最少拍有纹波控制系统仿真结构模型图22单位阶跃输入…
计算机控制系统实验报告姓名罗才宝学号0953505008指导教师专业年级所在院系完成日期实验一DA数模转换实验一实验目的1掌握数模…
计算机控制实验报告班级姓名学号实验二最少拍控制系统1实验结果图21单位阶跃输入下最少拍有纹波控制系统仿真结构模型图22单位阶跃输入…
杭州电子科技大学实验报告课程名称指导老师学生姓名学生学号学生班级所学专业实验日期实验1常规PID控制算法仿真1实验参数shiyan…
计算机控制系统实验报告第二部分一实验日期20xx424实验时间9501130小组成员薛有华武毅男二实验目的1了解步进电机温度PID…
微机原理与接口技术课程设计报告交通灯控制系统班级学号姓名成绩20xx年7月1日1目录1课程设计的目的和要求32系统的主要功能作用及…