计算机控制技术实验报告

  

   计算机控制技术

实验报告

 题目:           A/D转换实验           

 专业:        20##级自动化1       

 姓名:            孙海波                

 学号:         222011322270002       

 指导老师:         胡东              

 


                                  实验一  A/D转换实验

一.实验目的

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系列单片机上的编程以及使用。通过本次试验了解到了自己在模拟仿真软件使用上的不熟练,应多进行联系巩固。

 

第二篇:大学_计算机控制技术实验报告河南工业大学1

实验一 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转换示波器图,

相关推荐