基于51单片机的模拟量输入输出通道实验

实验一 模拟量输入输出通道实验(C51

一、实验目的:

1、了解A/D、D/A转换的基本原理。

2、了解A/D转换芯片ADC0809、D/A转换芯片DAC0832的性能及编程方法。

3、掌握过程通道中A/D转换与D/A转换与计算机的接口方法。

4、了解计算机如何进行数据采集及输出控制。

二、实验设备

计算机 1台;

缔造者系统 1套:CPU挂箱、8031CPU模块;

万用表 1块;

示波器 1台。

三、实验内容

一)、A/D转换实验

利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。

1、实验电路:如图1

图1

2、实验接线:

1)0809的片选信号CS0809接CS0。

2)电位器的输出信号AN0接0809的ADIN1。

3、实验程序

   #include <reg51.h>

#include <absacc.h>

#define INT8U unsigned char

#define INT16U unsigned int

#define Val DBYTE[0x35]

#define RAM8279  XBYTE[0X0CFE9]

#define DATA8279 XBYTE[0X0CFE8]

#define ADC0809  XBYTE[0X0CFA0]

INT8U code SEG_CODE[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

  void delay1_ms(INT8U x)

  {   INT8U t;while(x--) for(t=0;t<120;t++);  }

void main()

{

INT8U ADvalue,AD1,AD2,AD3;

while(1)

   {ADC0809=1;      //start AD

   delay1_ms(10);   //delay

   ADvalue=ADC0809;

   Val=ADvalue;

   AD1=ADvalue/100;   //baiwei

   AD2=ADvalue%100/10; //shi wei

   AD3=ADvalue%10;      //ge wei

   RAM8279=0x90;

   DATA8279=SEG_CODE[AD1];

   delay1_ms(10);

   DATA8279=SEG_CODE[AD2];

   delay1_ms(10);

   DATA8279=SEG_CODE[AD3];

   delay1_ms(10);    

  }

}

4、实验步骤

1)从系统“开始”菜单进入“所有程序”,在“所有程序”中选择“Windows Virtual PC”,点击“Windows XP Mode”进入虚拟机系统。

2)根据接线图接线,并运行EL型(8051)教学实验环境,建立上位计算机与缔造者系统的通信连接。(串口选择COM2;波特率选择9600;点击屏幕中对话框确定后立刻按下设备上的复位键RST,若设备上的数码管显示C则表示通信成功。)

3)新建一个汇编文件(点击工具栏上的字母A,若程序用单片机C语言编写,则点击工具栏上的字母C),输入C51源程序,编译成功后,选择调试-运行。

4)用万用表测量电位器电压,依次调节电位器旋钮,并使数码管从一个较小的数开始变化。记录表格1。

表1 A/D转换实验数据表

序号

电位器电压(V)

理论计算的AD转换结果数字量(十进制)

数码管显示值(十进制)

理论计算与实际显示值相对误差

1

0.29

14

14

0

2

0.68

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值