第一范文网 - 专业文章范例文档资料分享平台

智能仪器实验指导书 V9.2

来源:用户分享 时间:2025/5/28 18:44:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

5.然后选“MaxBuad”中的波特率,也可以选默认值。

6.点击“下载/编程”按钮,然后按下板子上的红色下载键,进行文件下载。 7.稍等几秒,即可下载完成,如图:

17/32

实验一数据采集系统的设计与实现

一、实验目的

学会用51单片机模拟I2C总线接口,实现与PCF8573 8位AD/DA转化器的接口,学会用单片机实现数据采集的方法。 二、实验设备及器件

PC机 一台

51单片机实验板一台(含PCF8951芯片) 万用表、示波器 三、实验内容

编写一段程序,采集PCF8573四路AD通道的模拟信号值,将采集的电压值用四位数码管显示出来。

四、实验电路原理图

AIN0-AIN3为4路模拟输入信号,时钟信号SCL接至单片机P36,数据线SDA接至P37。 五、参考例程

#include \#include #define uchar unsigned char #define uint unsigned int

#define PCF8591 0x90 //PCF8591 地址 #define THCO 0xf8 //11.0592MHZ晶振 #define TLCO 0xcb //定时2ms时间常数值 unsigned char Data_Buffer[4]={1,2,3,4}; uchar

code

Duan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};

sbit P24=P2^4; sbit P25=P2^5; sbit P26=P2^6;

18/32

//四个数码管的位码口定义

sbit P27=P2^7; bit flag=0;

bitDACconversion(unsigned char sla,unsigned char c, unsigned char Val); bitISendByte(unsigned char sla,unsigned char c); unsigned char IRcvByte(unsigned char sla); /******************************/ void main(void) //主程序 {

unsignedint v;

unsigned char AD_CHANNEL=0; unsignedint D[5]={0,0,0,0,255};

TMOD=0x11; TH0=THCO; TL0=TLCO; TR0=1; ET0=1; EA=1;

//设置定时器0工作模式,16位计数模式

//启动定时器 //使能定时器中断 //开总中断

while(1) { if(flag==1) {flag=0;

if(++AD_CHANNEL>4) AD_CHANNEL=0; switch(AD_CHANNEL) {

case 0: ISendByte(PCF8591,0x40);

D[AD_CHANNEL]=IRcvByte(PCF8591); //ADC3 模数转换4

break;

case 1: ISendByte(PCF8591,0x41);

D[AD_CHANNEL]=IRcvByte(PCF8591); //ADC0 模数转换1

case 2: ISendByte(PCF8591,0x42);

19/32

break;

}

D[AD_CHANNEL]=IRcvByte(PCF8591); //ADC1 模数转换2

case 3: ISendByte(PCF8591,0x43);

D[AD_CHANNEL]=IRcvByte(PCF8591); //ADC2 模数转换3

break; break;

v=D[AD_CHANNEL];

Data_Buffer[0]=AD_CHANNEL; Data_Buffer[1]=v/100; Data_Buffer[2]=v/10;

Data_Buffer[3]=v; }

} }

void timer0() interrupt 1 //定时器中断服务子程序 {

static unsigned int count=0;//软计时变量定义

static unsigned char Bit=0; //静态变量,退出程序后,值保留

TH0=THCO; TL0=TLCO; Bit++; if(Bit>=4)Bit=0; P2|=0xf0;

//先关位码 //开段码

P0=Duan[Data_Buffer[Bit]]; if(Bit==0)P0|=0x80; switch(Bit) {

case 0: P24=0;break; case 1: P25=0;break;

//送位码

20/32

搜索更多关于: 智能仪器实验指导书 V9.2 的文档
智能仪器实验指导书 V9.2.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6kvlw1ghrr79c964hv5q_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top