当前位置:文档之家› 8路温度采集监控系统

8路温度采集监控系统

8路温度采集监控系统
8路温度采集监控系统

目录

一、课程设计目的.................................................................................................................... - 1 -

二、课程设计题目及任务要求................................................................................................ - 1 -

1. 题目.............................................................................................................................. - 1 -

2. 任务要求...................................................................................................................... - 1 -

3. 设计流程图.................................................................................................................. - 1 -

三、电路分析............................................................................................................................ - 2 -

1.运用Proteus软件画出电路图如下.......................................................................... - 2 - 2.发送端电路设计分析.................................................................................................. - 3 - 3.接收端电路分析.......................................................................................................... - 4 - 4.键盘电路设计.............................................................................................................. - 5 - 四、程序分析............................................................................................................................ - 6 -

1.发送端程序.................................................................................................................. - 6 - 2.接收端程序................................................................................................................ - 19 - 五、硬件电路介绍.................................................................................................................. - 22 -

1. RS-232串口通信总线及其接口............................................................................... - 22 - 2. MAX232芯片............................................................................................................... - 23 - 3. 74LS245芯片............................................................................................................. - 24 - 4. DS18B20温度传感器................................................................................................. - 25 -

六、在课程设计过程中遇到的问题........................................................... 错误!未定义书签。

1.使用Protues软件画图时问题................................................. 错误!未定义书签。

2.程序编写遇到问题..................................................................... 错误!未定义书签。

七、总结....................................................................................................... 错误!未定义书签。

一、设计目的

通过两个单片机最小系统、时钟芯片、RS-232通讯接口以及DS18B20单线数字传感器来实现远程温度的采集,远程控制。

二、设计题目及任务要求

1. 题目

基于RS232串行通信的8路温度采集监控系统

2. 任务要求

通过两个单片机实现数据传送。主机循环采集监控8个通道的温度值通过RS-232通讯接口传送给从机,从机实现显示自动控制,自动控制模式下每3秒更换一个通道,每个循环更换8次,一直循环下去,更换成手动后,按下手动按键,开始手动控制,按下UP键,通道加一,按下DOWN键,通道减一。

3. 设计流程图

《基于RS232串行通信的8路温度采集监控系统》设计流程图,如图1所示。

图1 流程图

三、电路分析

1.运用Proteus软件画出电路图如下

《基于RS232串行通信的8路温度采集监控系统>由两片单片机构成,发送端通过传感器采集温度发送给接收端,接收端使用按键控制模式转换和数码管显示温度。

图2电路图

2.发送端电路设计分析

发送端使用DS18B20温度传感器采集温度通过RS-232通信接口电路传送给接收端。

(1) DQ引脚电路

DS18B20是支持“一线总线”接口的温度传感器,能通过一个单线接口进行发送或接受信息。在电路设计上,可以把8个DS18B20的DQ引脚分别接到P2口的8个引脚。另外,每个DQ引脚还需要接上拉电阻4.7K和电源。

(2)供电方式选择

工作任务要求测量温度范围在-55~+125℃。如果选择寄生电源方式,当温度高于100℃时,DS18B20的漏电流比较大,通信可能无法进行,同时为了提高温度测量速度,选择外部供电方式。在VDD引脚接入一个外部电源,GND引脚接地,GND引脚不能悬空。

发送端电路图如下:

图3 发送端电路图

3.接收端电路分析

接收端电路由按键电路和显示电路组成。通过RS-232通信接口技术接收发送端传来的数据,由数码管显示。

(1)显示电路设计

显示采用数码管,数码管显示有静态串行显示和动态扫描显示等方式,这里选择数码管动态扫描显示。数码管动态扫描显示电路由6个共阴极数码管、

74LS245及电阻组成。P0口输出显示段码,经由一片74LS245驱动输出给数码管,P1口输出位码(片选),如图4所示。

图4 显示电路图

4.键盘电路设计

8路温度采集监控系统有两种工作模式。用手动按键进行工作模式切换,在手动模式下按UP键通道加1,按DOWN键通道减1。这3个按键分别接P2口的P2.0、P2.1和P2.2引脚,如图5所示。

图5 显示电路图

四、程序分析

1.发送端程序

#include

#include

#define uchar unsigned char

#define uint unsigned int

//温度传感器定义

sbit DQ_0 = P2^0 ; //定义ds18B20总线IO

sbit DQ_1 = P2^1 ;

sbit DQ_2 = P2^2 ;

sbit DQ_3 = P2^3 ;

sbit DQ_4 = P2^4 ;

sbit DQ_5 = P2^5 ;

sbit DQ_6 = P2^6 ;

sbit DQ_7 = P2^7 ;

long uint tvalue;//温度值

uchar tflag;//温度正负标志

uchar move;//温度传感器的选择

void delay1ms(unsigned int ms)//延时1毫秒(不够精确的)

{unsigned int i,j;

for(i=0;i

for(j=0;j<100;j++);

}

void putc(uchar c) //传送一个字节

{

SBUF = c;

while(TI == 0);

TI = 0;

}

/******************************ds1820程序***************************************/

/******************************************************************** **********/

void Delay(int num) //延时函数

{

while(num--) ;

}

//---------------------------------------------------111111111

/******************************************************************** **********/

void Init_DS18B20_1(void)//初始化ds1820

{

DQ_0 = 1; //DQ复位

Delay(8); //稍做延时

DQ_0 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_0 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_1(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_0 = 0; // 给脉冲信号

dat>>=1;

DQ_0 = 1; // 给脉冲信号

if(DQ_0)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_1(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_0 = 0;

DQ_0 = dat&0x01;

Delay(5);

DQ_0 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------222222222 /******************************************************************** **********/

void Init_DS18B20_2(void)//初始化ds1820

{

DQ_1 = 1; //DQ复位

Delay(8); //稍做延时

DQ_1 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_1 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_2(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_1 = 0; // 给脉冲信号

dat>>=1;

DQ_1 = 1; // 给脉冲信号

if(DQ_1)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_2(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_1 = 0;

DQ_1 = dat&0x01;

Delay(5);

DQ_1 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------33333333 /******************************************************************** **********/

void Init_DS18B20_3(void)//初始化ds1820

{

DQ_2 = 1; //DQ复位

Delay(8); //稍做延时

DQ_2 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_2 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_3(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_2 = 0; // 给脉冲信号

dat>>=1;

DQ_2 = 1; // 给脉冲信号

if(DQ_2)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_3(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_2 = 0;

DQ_2 = dat&0x01;

Delay(5);

DQ_2 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------44444444 /******************************************************************** **********/

void Init_DS18B20_4(void)//初始化ds1820

{

DQ_3 = 1; //DQ复位

Delay(8); //稍做延时

DQ_3 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_3 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_4(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_3 = 0; // 给脉冲信号

dat>>=1;

DQ_3 = 1; // 给脉冲信号

if(DQ_3)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_4(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_3 = 0;

DQ_3 = dat&0x01;

Delay(5);

DQ_3 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------55555555 /******************************************************************** **********/

void Init_DS18B20_5(void)//初始化ds1820

{

DQ_4 = 1; //DQ复位

Delay(8); //稍做延时

DQ_4 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_4 = 1; //拉高总线

Delay(14);

Delay(20);

}

/********************************************************************

**********/

unsigned char ReadOneChar_5(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_4 = 0; // 给脉冲信号

dat>>=1;

DQ_4 = 1; // 给脉冲信号

if(DQ_4)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_5(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_4 = 0;

DQ_4 = dat&0x01;

Delay(5);

DQ_4 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------66666666 /******************************************************************** **********/

void Init_DS18B20_6(void)//初始化ds1820

{

DQ_5 = 1; //DQ复位

Delay(8); //稍做延时

DQ_5 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_5 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_6(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_5 = 0; // 给脉冲信号

dat>>=1;

DQ_5 = 1; // 给脉冲信号

if(DQ_5)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_6(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_5 = 0;

DQ_5 = dat&0x01;

Delay(5);

DQ_5 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------77777777 /******************************************************************** **********/

void Init_DS18B20_7(void)//初始化ds1820

{

DQ_6 = 1; //DQ复位

Delay(8); //稍做延时

DQ_6 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_6 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_7(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_6 = 0; // 给脉冲信号

dat>>=1;

DQ_6 = 1; // 给脉冲信号

if(DQ_6)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_7(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_6 = 0;

DQ_6 = dat&0x01;

Delay(5);

DQ_6 = 1;

dat>>=1;

}

}

//-------------------------------------------------------------------------------------88888888 /******************************************************************** **********/

void Init_DS18B20_8(void)//初始化ds1820

{

DQ_7 = 1; //DQ复位

Delay(8); //稍做延时

DQ_7 = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ_7 = 1; //拉高总线

Delay(14);

Delay(20);

}

/******************************************************************** **********/

unsigned char ReadOneChar_8(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ_7 = 0; // 给脉冲信号

dat>>=1;

DQ_7 = 1; // 给脉冲信号

if(DQ_7)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************************** **********/

void WriteOneChar_8(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ_7 = 0;

DQ_7 = dat&0x01;

Delay(5);

DQ_7 = 1;

dat>>=1;

}

}

/******************************************************************** **********/

unsigned int ReadTemperature(void)//读取温度

{

unsigned char a=0;

unsigned char b=0;

unsigned int t=0;

float tt=0;

switch(move)

{ case 0 : Init_DS18B20_1();

WriteOneChar_1(0xCC); // 跳过读序号列号的操作

WriteOneChar_1(0x44); // 启动温度转换

Init_DS18B20_1();

WriteOneChar_1(0xCC); //跳过读序号列号的操作

WriteOneChar_1(0xBE); //读取温度寄存器

a=ReadOneChar_1(); //读低8位

b=ReadOneChar_1(); //读高8位

break;

case 1 : Init_DS18B20_2();

WriteOneChar_2(0xCC); // 跳过读序号列号的操作

WriteOneChar_2(0x44); // 启动温度转换

Init_DS18B20_2();

WriteOneChar_2(0xCC); //跳过读序号列号的操作

WriteOneChar_2(0xBE); //读取温度寄存器

a=ReadOneChar_2(); //读低8位

b=ReadOneChar_2(); //读高8位

break;

case 2 : Init_DS18B20_3();

WriteOneChar_3(0xCC); // 跳过读序号列号的操作

WriteOneChar_3(0x44); // 启动温度转换

Init_DS18B20_3();

WriteOneChar_3(0xCC); //跳过读序号列号的操作

WriteOneChar_3(0xBE); //读取温度寄存器

a=ReadOneChar_3(); //读低8位

b=ReadOneChar_3(); //读高8位

break;

case 3 : Init_DS18B20_4();

WriteOneChar_4(0xCC); // 跳过读序号列号的操作

WriteOneChar_4(0x44); // 启动温度转换

Init_DS18B20_4();

WriteOneChar_4(0xCC); //跳过读序号列号的操作

WriteOneChar_4(0xBE); //读取温度寄存器

a=ReadOneChar_4(); //读低8位

b=ReadOneChar_4(); //读高8位

break;

case 4 : Init_DS18B20_5();

WriteOneChar_5(0xCC); // 跳过读序号列号的操作

WriteOneChar_5(0x44); // 启动温度转换

Init_DS18B20_5();

WriteOneChar_5(0xCC); //跳过读序号列号的操作

WriteOneChar_5(0xBE); //读取温度寄存器

a=ReadOneChar_5(); //读低8位

b=ReadOneChar_5(); //读高8位

break;

case 5 : Init_DS18B20_6();

WriteOneChar_6(0xCC); // 跳过读序号列号的操作

WriteOneChar_6(0x44); // 启动温度转换

Init_DS18B20_6();

WriteOneChar_6(0xCC); //跳过读序号列号的操作

WriteOneChar_6(0xBE); //读取温度寄存器

a=ReadOneChar_6(); //读低8位

b=ReadOneChar_6(); //读高8位

break;

case 6 : Init_DS18B20_7();

WriteOneChar_7(0xCC); // 跳过读序号列号的操作

WriteOneChar_7(0x44); // 启动温度转换

Init_DS18B20_7();

WriteOneChar_7(0xCC); //跳过读序号列号的操作

WriteOneChar_7(0xBE); //读取温度寄存器

a=ReadOneChar_7(); //读低8位

b=ReadOneChar_7(); //读高8位

break;

case 7 : Init_DS18B20_8();

WriteOneChar_8(0xCC); // 跳过读序号列号的操作

WriteOneChar_8(0x44); // 启动温度转换

Init_DS18B20_8();

WriteOneChar_8(0xCC); //跳过读序号列号的操作

WriteOneChar_8(0xBE); //读取温度寄存器

a=ReadOneChar_8(); //读低8位

b=ReadOneChar_8(); //读高8位

break;

default : break;

}

tvalue=b;

tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff)

tflag=0;

else

{

tvalue=-tvalue&0x0fff;

tflag=1;

}

tvalue=tvalue*0.0625;

tvalue= tvalue*10+0.5;

return(tvalue);

}

/********************传送程序***********************************/ void wdout()//温度传送

{uint z,k,t;

uchar a;

a=tflag;

z=tvalue%100;

z=z/10;

k=tvalue%1000;

k=k/100;

t=tvalue/1000;

putc(t); //传送温度的百位

putc(z); //传送温度的个位

putc(k); //传送温度的十位

putc(move); //传送温度的路数

putc(a); //传送温度的正负标志位

}

/********************温度初值初始化并传送**********************/ void cxh()

{

ReadTemperature();//读取温度

wdout(); //传送温度

move++;

if(move==8)

move=0;

}

/********************主程序***********************************/ void main()

{

SCON = 0x50; //打开串口2

TMOD = 0x20;

PCON = 0x00;

TH1 = 0xfd;

TL1 = 0xfd;

TI = 0;

RI = 0;

TR1 = 1;

IE = 0x90;

while(1)

{

cxh();

}

}

void time() interrupt 3

{}

2.接收端程序

#include

#define uchar unsigned char

#define uint unsigned int

#define LEFT_KEY (!(P2_0))

#define UP_KEY (!(P2_1))

#define DOWN_KEY (!(P2_2))

uchar i=0;

uchar a=0; //接收路数标志

bit mode=1; //手动,自动标志位,mode=1为自动,mode=0为手动uchar b=0; //显示路数标志

uchar date[8][5]={0,0,0,0,0,

0,0,0,0,0,

0,0,0,0,0,

0,0,0,0,0,

0,0,0,0,0,

0,0,0,0,0,

0,0,0,0,0,

0,0,0,0,0,};

uchar duanma[] = { //段码数据

0x3f, // 0 00

0x06, // 1 01

0x5b, // 2 02

0x4f, // 3 03

0x66, // 4 04

0x6d, // 5 05

8路数据采集系统

单片机课程设计 课题名称运用8051、ADC0809设计一个8路数据采集系统院校兴湘学院 专业机械设计制造及其自动化班级3班 学生姓名曾繁宁 学号2010963036 指导教师李玉声 2013年12月29 日

1.设计内容 以pc机为控制器,采用中断方式进行8通道数据采集, 2.设计要求 要求利用ADC 0809作A/D转换器,设计相应的接口电路,画出原理图并给出采用中断方式下的数据采集程序. 3.系统总体设计步骤 第一步:信号调理电路 第二步:8路模拟信号的产生与A/D转换器 被测电压要求为0~5V的直流电压,可通过电位器调节产生。 考虑本设计的实际需要,我选择八位逐次比较式A/D转换器(ADC0809)。 第三步:发送端的数据采集与传输控制器 第四步:人机通道的接口电路 第五步:数据传输接口电路 用单片机作为控制系统的核心,处理来自ADC0809的数据。经处理后通过串口传送,由于系统功能简单,键盘仅由两个开关和一个外部中断组成,完成采样通道的选择,单片机通过接口芯片与LED数码显示器相连,驱动显示器相应同采集到的数据。 经过分析,本系统数据采集部分核心采用ADC0809,单片机系统采用8051构成的最小系统,用LED动态显示采集到的数据。数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。本设计没有通信部分。系统框图如下图所示。

4.硬件系统的设计 4.1信号调理 信号调理的任务:将被测对象的输出信号变换成计算机要求的输入信号。多路数据采集输入通道的结构图如下图: 图5-1-1多路数据采集输入通道结构图 注:缓慢变化的信号和直流信号,采样保持电路可以省略。 4.2 A/D转换器的选取 转换速度是指完成一次A/D转换所需时间的倒数,是一个很重要的指标。A/D 转换器型号不同,转换速度差别很大。通常,8位逐次比较式ADC的转换时间为100us左右。由于本系统的控制时间允许,可选8位逐次比较式A/D转换器。

b多路温度采集程序

本程序为ds18b20 的多路温度采集程序,是我自己参考其他程序后改写而成,可显示 4 路正负温度值,并有上下限温度报警(声音、灯光报警) 亲测,更改端口即可使用。(主要器件:51单片机,ds18b20,lcd 显示器) 附有proteus 仿真图,及序列号采集程序 /**** 上限62 度下限-20 度****/ #include<> #define uchar unsigned char #define uint unsigned int sbit ds=P1A1; sbit rs=P1A4; sbit e=P1A6; sbit sp=P1A0; sbit d1=P1A2; sbit d2=P1A3; uchar lcdrom[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e}, {0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9}, {0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},

{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}}; unsigned char code table0[]={"TEMPERARTURE:U "}; int f[4]; int tvalue; float ftvalue; uint warnl=320; uint warnh=992; /****lcd 程序****/ void delayms(uint ms)// 延时 { uint i,j; for(i=ms;i>0;i--) for(j=110;j>0;j--); } void wrcom(uchar com)// 写指令 { delayms(1); rs=0; P3=com; delayms(1); e=1; delayms(1); e=0; } void wrdat(uchar dat)// 写数据 { rs=1; e=0; P3=dat; delayms(5);

8路温度巡回检测、报警系统

8路巡回检测、报警系统 一、摘要 随着电子技术的发展,家用电器和办公设备的智能化、系统化已成为发展趋势,而这些高性能几乎都要通过电子电路实现。同时,温度作为与我们生活息息相关的一个环境参数,对其的测量和研究也变得极为重要。本实验基于数字、模拟电子电路相关知识,实现了8路温度巡回检测、报警系统。此系统包括555时钟电路、计数与译码显示电路、拨码开关和数据选择电路、蜂鸣报警电路、电压比较电路、Pt100测温电路等模块。各模块焊接前均用Multisim软件对电路进行了仿真。8路通道中,有6路采用拨码开关实现对通道的工作状态模拟,1路采用滑动变阻器与窗口比较器实现通道的工作状态模拟,还有1路为热电阻Pt100的测温电路,且后两路通道均设置两个阈值,可检测系统工作状态是否处于正常范围之内。该系统能够对多个通道的工作状态(如温度)是否正常进行巡回检测。当某一通道出现故障(如超温)时,由巡回检测系统发出报警并显示故障的通道号,故障排除后,系统可继续进行巡回检测。

二、设计任务 2.1 设计选题 选题八:8路巡回检测、报警系统的设计与实现 2.2 设计任务要求 (1)基本要求:用十进制计数器、数据选择器、显示译码器和适当门电路设计一个8路循环检测报警器,循环检测周期不超过8秒。当某一路出现故障(如超温)时停止检测,并且发出报警和显示故障的通道号; (2)扩展要求1:电源电压模拟:要求采用滑动变阻器设计与实现2路电源电压输出的模拟。电压比较器可设定上、下限电压报警值; (3)扩展要求2:实现1路热电阻Pt100的测温电路。 三、方案设计与论证 接通电源后,555芯片在3口输出10Hz的时钟信号,在此信号的控制下,74ls160开始在0~7内循环计数,通过QA,QB,QC,QD输出BCD码到74ls47和74ls151的A,B,C端口。八路通道的电压输出值送入74LS151八路数据选择器的D0~D7端,74LS151的Y和~W互为反码形式输出,Y接74LS160的控制端ENT,~W接蜂鸣器。正常情况下,~W输出为低电平,无法驱动三极管,蜂鸣器不响。当有某一路或多路出现故障时,Y端输出为低电平,计数器74LS160停止计数,QA,QB,QC输出数据保持为出现故障时接受的二进制码,通过译码器在共阳数码管上显示的是一个不变的值,即故障通道号,~W端输出一个高电平,三极管导通,蜂鸣器响。系统方框图见图1: 图1 系统方框图 此系统全部使用硬件搭建,未使用单片机,无需编程,芯片采用了74系列,在

8路温度采集监控系统

目录 一、课程设计目的.................................................................................................................... - 1 - 二、课程设计题目及任务要求................................................................................................ - 1 - 1. 题目.............................................................................................................................. - 1 - 2. 任务要求...................................................................................................................... - 1 - 3. 设计流程图.................................................................................................................. - 1 - 三、电路分析............................................................................................................................ - 2 - 1.运用Proteus软件画出电路图如下.......................................................................... - 2 - 2.发送端电路设计分析.................................................................................................. - 3 - 3.接收端电路分析.......................................................................................................... - 4 - 4.键盘电路设计.............................................................................................................. - 5 - 四、程序分析............................................................................................................................ - 6 - 1.发送端程序.................................................................................................................. - 6 - 2.接收端程序................................................................................................................ - 19 - 五、硬件电路介绍.................................................................................................................. - 22 - 1. RS-232串口通信总线及其接口............................................................................... - 22 - 2. MAX232芯片............................................................................................................... - 23 - 3. 74LS245芯片............................................................................................................. - 24 - 4. DS18B20温度传感器................................................................................................. - 25 - 六、在课程设计过程中遇到的问题........................................................... 错误!未定义书签。 1.使用Protues软件画图时问题................................................. 错误!未定义书签。 2.程序编写遇到问题..................................................................... 错误!未定义书签。 七、总结....................................................................................................... 错误!未定义书签。

远程温度采集与显示系统设计

毕业设计论文 远程温度采集测量系统 系电子信息工程系 专业电子信息工程技术姓名张一浩班级电信091 学号0901043118 指导教师张少华职称讲师 设计时间2011.11.20-2012.1.8

目录 第一章测量方案 (4) 1.1 系统功能 (4) 1.1.1 功能介绍 (4) 1.2方案论证与确定 (4) 1.2.1温度测量方案的确定 (4) 1.2.2 远程无线数据传送方案的确定 (5) 第二章电路原理及主要功能模块 (6) 2.1工作原理 (6) 2.1.1 系统框图 (6) 2.1.2现场温度采集电路 (6) 2.2 通信模块 (7) 2.2.1 信号发送电路 (7) 2.2.2 接收解调电路 (8) 2.3微机硬件原理图 (9) 2.3.1主机控制原理图 (9) 2.3.2从机控制原理图 (10) 第三章软件系统设计 (11) 3.1软件主要功能 (11) 3.2 软件设计框图 (11) 3.2.1设计框图 (11) 3.3测试方法及所用仪表 (13) 第四章数据分析 (14) 4.1 测试数据及测试结果分析 (15) 4.1.1 温度数据 (15) 第五章结束语 (16) 参考文献 (17) 致谢 (18)

远程温度采集测量系统 摘要 本文给出了远程温度采集测量系统的设计,它由温度数据采集测量与远程无线数字调频传送两部分构成,分为现场温度采集、远程数据传送和温度数据显示三个模块。设计采用单片微型计算机系统,数字频率调制(FSK)芯片和相关接口电路,实现现场温度信号的调理、模数转换、处理和远程传送。测温范围可达-50℃~+150℃,误差小于1℃。远程无线传送距离有障碍物时大于20m,传送的误码率小于1‰。利用LCD和LED分别可在现场模块和终端模块显示当前温度值,显示分辨率为0.1℃,系统设有语音报温和温度上限报警功能,所有指标均满足题目的基本要求和发挥部分要求。 关键词:温度传感器;接收电路;温度的测量

8路数据采集及报警控制系统 ADC0809

安徽建筑工业大学 计算机控制技术 课程设计 课题名称8路数据采集及报警控制系统 系别电子与信息工程学院 专业电子信息工程 班级10城建电子(2)班 姓名邵磊 学号10205900235 指导老师严辉夏巍丁刚 时间2013年6月17日至 2013年6月30日

目录 一、总体设计: 1.1 设计思路 1.2 课题目的 二、方案论证: 2.1 A/D模数转换的选择 2.2 单片机的选择 2.3 按键选择 2.4 系统框图 三、硬件电路设计: 3.1 单片机介绍 3.2 ADC0809结构功能 3.3 ADC0809的工作时序 3.4 ADC0809工作过程 四、系统程序设计: 4.1 程序流程框图 4.2 主程序 五、结束语 六、附录

一、总体设计 1.1 设计思路 我们选择单片机与A/D转换芯片结合的方法实现本设计。使用的基本元器件是:AT89C52单片机,ADC0809模数转换芯片,LCD显示器,按键,电容,电阻,晶振等。 数字电压测量电路由A/D转换、数据处理及显示控制等组成。A/D 转换由集成电路ADC0809完成。ADC0809具有8路拟输入端口,地址线(23~- 25脚)可决定对哪一路模拟输入作A/D换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2uS宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0809的时钟输入端。单片机的P1.5~P1.7、P3端口作1602液晶显示控制。P2端口作A/D转换数据读入用,P0端口用作0809的A/D转换控制。 通过对单片机p3.5口置低电平控制LED亮灯,p3.4口置高电平

温度采集解决方案

目 录 第一部分:产品介绍.............................................- 3 - 一、适用行业...............................................- 3 - 二、产品结构...............................................- 3 - 三、用户需求...............................................- 3 - 四、产品特点...............................................- 5 - 第二部分:解决方案.............................................- 8 - 一、系统简介...............................................- 8 - 二、远端部分设计...........................................- 9 - 三、网络部分设计..........................................- 12 - 四、中控部分设计..........................................- 13 - 第三部分:系统基本配置........................................- 20 -第四部分:常见问题的解答......................................- 21 -第五部分:设备技术指标........................................- 23 -第六部分:成功案例............................................- 26 -

基于Labview的温度采集系统

基于Labview 的温度采集系统 摘要:随着工业的不断发展,对温度测量的要求越来越高,而且测量范围也越来越广。本设计用LabView 软件在PC 机上编程实现了多点温度采集、动态图形显示、数据存储、报警、数据分析等功能,并重点对基于LabVIEW 的虚拟温度采集系统的设计进行了讨论。 关键词:LabVIEW; 温度采集 0 引言 进入21世纪以来,作为测试技术的一个分支,虚拟仪器的开发和研制在国内得到了飞速的发展。它可以利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果。目前,常用的温度采集系统绝大部分是由集成温度传感器和单片机构成的,设计过程繁琐、调试期长、修改不方便。本文借助LabVlEW 图形化软件开发系统,用软件代替DAQ 数据采集卡设计的这种虚拟温度采集系统,比以前的更易修改且成本低、周期短。 1 设计思想 该系统的功能框图如图所示。 本温度采集系统的设计采用软件代替了DAQ 数据采集卡,使用Demo read voltage 子程序来仿真电压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。 在数据采集过程中,实时地显示数据。当采集的温度值大于设定的高限报警数值时,就会点亮高报警红色灯,同时触发条件结构里的事件发生,使系统发出蜂呜温度采集系统 实 时 温 度 显 示 保存数据 报警设定 数值计算 显示转换

声。当采集过程结束后,在图表上画出数据波形,并算出最大值、最小值和平均值,并自动产生数据文件的头文件,它包括操作者名字和文件名,将采集的数据附在头文件后面,以供查询。 2 子程序设计 2.1 温度计子程序 温度计界面程序如下图所示。在框图程序中设定温度计的标尺范围为0.0到100.0,在前面板窗口中放入竖直开关控制用下选择“温度值单位”,即选择以华氏还是摄氏显示。 2.2 实现步骤 1、点击框图程序窗口的空白处,弹出功能模板,从弹出的菜单中选择所需的对象。本程序用到下面的对象: Multiply(乘法)功能,将读取电压值乘以100.00,以获得华氏温度。 Subtract(减法)功能,从华氏温度中减去32.0,以便转换成摄氏温度。 Divide(除法)功能,把相减的结果除以1.8以转换成摄氏温度。 Select(选择)功能(Comparison子模板)。取决于温标选择开关的值,该功能输出华氏温度(当选择开关为false)或者摄氏温度(选择开关为True)数值。 Demo Read Voltage VI程序(Tutorial子模板)。该程序模拟从DAQ卡的0通道读取电压值,并把所测得的电压值转换成华氏或摄氏读数。 随机数产生功能(Numeric子模板),用于产生随机温度值。 数值常数。用连线工具,点击要连接一个数值常数的对象,并选择Create Constant功能。若要修改常数值,用标签工具双点数值,再写入新的数值。

8路温度采集系统

实习报告 课题:八路温度采集仪 日期:2015.8.3

目录: 一、实验目的 (3) 二、实验内容 (3) 三、实验步骤与结果 (3) 四、实验存在的问题 (14) 五、总结 (14) 六、附录(上位机、下位机) (14)

一、实验目的: 1、DXP与Labview软件的运用; 2、单片机编程的掌握; 3硬件的焊接与调试; 4、熟练运用和掌握原理图设计、PCB板的制作、元器件焊接与调试、虚拟仪器的使用。 二、实验内容: 运用单片机搭建一个小系统。此系统可以同时采集8路温度信息(由于硬件条件的限制,没人只有4个温度传感器,所以最后只能为四路温度采集),而此信息来自与8个DS18B20,同时循环显示于数码管。然后后期运用虚拟仪器Labview采集单片机所发送的温度信息进行处理,并形成完整的虚拟仪器。 三、实验步骤与结果: 1、原理图的设计 采集系统主要元器件介绍: STC89C52RC: STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选. 其I/O口、中断的运用可以参照89C51的任何类型。 DS18B20: DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有

课程设计八路温度巡回检测系统

《单片机原理及应用》课程设计总结报告 题目: 八路温度巡回检测系统 设计人姓名: XXX 院系: XXXXX学院 专业: XXXXX 学号:X X X X X 指导教师:X X X 日期:201X-XX-XX

内容摘要 摘要:MCS-51是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。利用单片机与AD转换器设计的八路温度巡回检测系统,可对某粮库或冷冻厂八点(八个冷冻室或八个粮仓)进行温度巡回检测。能够测量-30~+50o C的温度范围,检测精度不大于±1o C。并采用数码管显示测量值。 关键词:MCS-51、温度、巡回检测、

目录 1 设计任务 (3) 1.1引言 (3) 1.2设计题目 (3) 1.3设计目的 (3) 2 总体方案设计与论证 (3) 2.1总体方案设计与论证 (3) 2.2温度采集、计算方案设计与论证 (4) 3 硬件设计 (4) 3.1STC89C52简介 (4) 3.2DS18B20简介 (8) 3.3晶振 (9) 3.4LED显示电路电路及实物图 (9) 4 软件设计 (12) 4.1设计总框图 (12) 4.2自动巡检流程图 (13) 5 系统调试 (13) 6 总结和个人体会 (14) 附录一:设计电路图 (16) 附录二:元件清单 (16)

附录三:源程序 (17) 1、设计任务 1.1引言 温度测量与控制在工业、农业、国防等行业有着广泛的应用。利用单片机技术的温度测控仪有着体积小、可靠性高、价格便宜等优点而被广泛应用。 1.2设计题目 八路温度巡回检测装置 1.3设计目的 运用所学单片机原理知识,设计和调试小产品,从而了解产品设计开发的一些基本流程,并且加深对单片机知识的理解。 2、总体方案设计与论证 2.1总体方案设计与论证 本次课程设计的要求是8路温度巡显仪,要正常显示、进行参数设置等多个工作状态故系统工作的标志位是程序工作的主要的线索,每个功能模块在判断后系统的标志位再去执行相应的功能。见如下的框图所示。 1号键 为2 2号键 F0=1 为1 F0=0 图2.1 系统软件设计的整体思路框图 系统的标志位 判 断 按下了F 键 参数设定态 进入冻结态 正常巡显态 设置节拍 设置报警限值 显示温度态

四路温度采集系统系统

四路温度采集系统的设计 【内容摘要】本文主要研究的是基于AT89S51单片机作为系统的温度显示以及设定双路温度报警系统的设计。此系统硬件电路主要包括5部分:AT89S51单片机最小系统电路部分和复位电路部分,LCD1602液晶显示电路部分,4个DS18B20作为温度检测部分,以及电源电路部分。 本系统采用C语言进行编写程序,为了便于阅读和修改,软件采用模块化结构设计,使程序间的逻辑层次更加简明。 【关键词】四路温度采集系统系统;DS18B20;LCD1602液晶显示;AT89S51单片机 1 引言 四路温度采集系统系统不仅是工业上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。所以,双路温度报警系统无论作为比赛题目还是练习题目都是很有价值。 本文介绍一种基于 AT89C2051 单片机的一种温度测量,该电路DS18B20 作为温度监测元件,测量范围-55℃-~+125℃,使用LCD1602液晶显示模块显示,能通过键盘设置温度报警上下限.正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器 DS18B20 的原理,AT89C2051 单片机功能和应用.该电路设计新颖,功能强大,结构简单。 2双路温度报警系统系统简介及其作用综述 首先,由DS18B20温度传感器芯片测量当前温度,并将结果送入单片机。然后,通过AT89C51单片机芯片对送入的测量温度读数进行计算和转换,并将此结果送入液晶显示模块。最后,LCD 1602模块将送来的四路温度值值显示于显示屏上。

单片机数据采集控制系统

《单片机数据采集控制系统》课程设计报告一、前言 通常是指有若干相互连接、相互作用的基本电路组成的具有特定功能的电 路整体。由于大规模集成电路和模拟-数字混合集成电路的大量出现,在单 个芯片上可能集成许多种不同种类的电路。 二、课程设计的目的和要求 2.1、课程设计的目的 运用模拟电子技术、数字电子技术、单片机原理及其应用等课程知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识的理解, 把学过的比较零碎的知识系统化,比较系统的学习开发单片机应用系统的基本步骤和基本方法,使学生应用知识能力、设计能力、调试能力以及报告撰写能力等有一定的提高。 2.2、课程设计要求 用8051单片机设计数据采集控制系统,基本要求如下: 1、可实现8路数据的采集,假设8路信号均为0-5V的电压信号; 2、采集数据可通过数码管显示,显示格式为:[通道号] 电压值,如[01] 4.5 3、可通过键盘设置采集方式;(单点采集、多路巡测、采集时间间隔*) 4、具有异常数据声音报警功能:对第一路数据可设置正常数据的上限值和 下限值,当采集的数据出现异常,发出报警信号。(LED显示报警) 5、可输出8路顺序控制信号,设每路顺序控制信号为一位,顺序控制的流 程为:

三、总体设计 实验原理:从A/D 转换器入手,通过编程,实现硬件上的八路数据采集、采集数据显示、通过键盘设计采集、实现上下限的报警功能、八路顺序控制信号。 四、硬件设计 4.1各种芯片的功能、引脚、相应的命令控制字格式的介绍 1、MCS-51 芯片介绍:MCS-51系列单片机是美国Intel 公司开发的8位单片机又可以分为多个子系列。MCS-51 123456789101112131415403938373635343332313029282726P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST INT0/P3.2INT1/P3.3V CC P0.0/AD 0P0.1/AD 1P0.2/AD 2P0.3/AD 3P0.4/AD 4P0.5/AD 5P0.6/AD 6P0.7/AD 7EA/V PP ALE/PROG PSEN P2.7/A 15P2.6/A 14P2.5/A 13803180518751 八路数据采集模块 显示模块 键盘模块 报警模块 八路顺序控制模块 8051单片机

单路数据采集系统设计

1 引言 1.1 数据采集系统的意义 数据采集系统是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。数据采集是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。本设计采用A/D转换器和51单片机组成数据采集系统,该设计具有结构简单、操作方便、高性价比、具有显示、记录存储功能,能够适应油田野外恶劣环境,具有性能稳定、可靠性高、响应速度快操作简单、费用低廉、回放过程的信号可以直观的观察。它与有线数传相比主要有布线成本低、安装简便、便于移动等性能。 经调查,目前数据采集器的市场需求量大,以数据采集器为核心构成的小系统应用广泛,因此开发高性能的数据采集器具有良好的市场前景。随着计算机技术的飞速发展和普及,数据采集系统在多个领域有着广泛的应用。数据采集是工、农业控制系统中至关重要的一环,在医药、化工、食品、等领域的生产过程中,往往需要随时检测各生产环节的温度、湿度、流量及压力等参数。同时,还要对某一检测点任意参数能够进行随机查寻,将其在某一时间段内检测得到的数据经过转换提取出来,以便进行比较,做出决策,调整控制方案,提高产品的合格率,产生良好的经济效益。随着工、农业的发展,多路数据采集势必将得到越来越多的应用,为适应这一趋势,作这方面的研究就显得十分重要。在科学研究中,运用数据采集系统可获得大量的动态信息,也是获取科学数据和生成知识的重要手段之一。单片机构成的数据采集处理系统适用于各种现场自动化监测及控制,能够适应油田野外恶劣环境,具有性能稳定、可靠性高、响应速度快操作简单、费用低廉、等优点。1.2 数据采集系统的主要功能 数据采集是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。数据采集系统是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。比如条码机、扫描仪等都是数据采集工具。 数据处理系统是指运用计算机处理信息而构成的系统。其主要功能是将输入的数据信息进行加工、整理,计算各种分析指标,变为易于被人们所接受的信息形式,并将处理后的信息进行有序贮存,随时通过外部设备输给信息使用者。

八路温度巡回检测系统

单片机专业技能设计报告 题目: 八路温度巡回检测系统 设计人姓名: 胡振宇 院系: 物理与电子信息学院 专业: 09电信本 班级学号:090802075 指导教师:刘小燕 日期:2011-12-25

目录 1 设计任务 (3) 1.1引言 (3) 1.2设计题目 (3) 1.3设计目的 (3) 2 总体方案设计与论证 (3) 2.1总体方案设计与论证 (3) 2.2温度采集、计算方案设计与论证 (4) 3 硬件设计 (4) 3.1STC89C52简介 (4) 3.2DS18B20简介 (8) 3.3晶振 (9) 3.4L E D显示电路电路 (9) 4 软件设计 (12) 4.1设计总框图 (12) 4.2自动巡检流程图 (13) 5 系统调试 (13) 6 总结和个人体会 (14) 附录一:设计电路图 (16) 附录二:源程序 (16)

1、设计任务 1.1引言 温度测量与控制在工业、农业、国防等行业有着广泛的应用。利用单片机技术的温度测控仪有着体积小、可靠性高、价格便宜等优点而被广泛应用。 1.2设计题目 八路温度巡回检测装置 1.3设计目的 运用所学单片机原理知识,设计和调试小产品,从而了解产品设计开发的一些基本流程,并且加深对单片机知识的理解。 2、总体方案设计与论证 2.1总体方案设计与论证 本次课程设计的要求是8路温度巡显仪,要正常显示、进行参数设置等多个工作状态故系统工作的标志位是程序工作的主要的线索,每个功能模块在判断后系统的标志位再去执行相应的功能。见如下的框图所示。 1号键 为2 2号键 F0=1 为1 F0=0 图2.1 系统软件设计的整体思路框图 系统的标志位 判 断 按下了F 键 参数设定态 进入冻结态 正常巡显态 设置节拍 设置报警限值 显示温度态

温度采集系统原理

1.现有16路温度信号,16路压力信号,48路流量信号和10路物位信号,用单片机构成一个数据采集系统。

答:系统的原理框图如上图所示,图中的T1表示第一路温度信号,同理,P16表示第16路压力信号,F48表示第48路流量信号,H10表示第10路物位信号。 (1)由于温度信号的温度范围是0~100度,系统要求的精度为0.5%,所以对于温度信号采用8位的A/D即可满足要求(100/255=0.4度)。系统使用的是ADC0809,由于ADC0809内部含有多路开关,所以系统设计时,在外部没有添加多路开关,16路温度信号运用两片ADC0809,正好能采集16路温度信号。 (2)16路压力信号的精度要求是精确到0.1%,8位的AD已不能满足要求,假如所测的最大压力为1个大气压, 如果用8位AD,则其分辨率为100000/255=392,而使用16位AD其分辨率为100000/65535=1.5,所以选 用16路AD较为精确。系统使用的是AD7701(相关资料请见本次作业第二题),AD7701内部不含多路开关,所以要外接多路开关,系统中使用的多路开关是CD4067B,CD4067B是16通道双向多路模拟开关,它具有两种电源输入端,VDD和VSS,可以在-0.5~18V之间进行选择。 (3)48路流量信号的精度要求是精确到0.1%,同压力信号一样,8位AD不能满足精度要求,故采用16位AD,系统中采用的还是AD7701。由于流量信号对采集的速度要求不是很高,所以采用多通道共用放大器,采样保持器和AD转换器。48路流量信号可以用3片CD4067B进行切换,由多路开关轮流采集流量信号,经放大器,采样保持器和AD转换进入单片机。 (4)10物位信号的精度要求同温度信号,其精度要求是精确到0.5%,所以采用8位的AD7574, 与ADC0809不同的是其内部不含多路开关,10信号如使用两片多路开关,则增加了系统的复杂度,所以采用一片CD4067B 即可。AD7574采用CMOS工艺,单片行,含有内部时钟振荡器,+5V供电,芯片内部设有比较器和控制逻辑,以及功耗低,转换速度快的逐次逼近型A/D转换器。 2.选一串行的16位ADC。 答:所选的AD7701可变串行接口、16位模/数转换器,以下是相关资料。 AD7701是美国AD公司推出的16位电荷平衡式A/D转换器它具有分辨率高、线性度好、功耗低等特点,并且由于该芯片采用了采样技术和线性兼容CMOS工艺集成技术,且片内含有自校准控制电路,可以有效地消除内部电路、外部电路的失调误差和增益误差G,AD7701具有灵活的串行输出模式,其转换结果通过串行接口输出,数据输出速率达4kbps。串行接口有异步方式、内时钟同步方式和外时钟同步方式三种::异步方式可以直接与通用异步接收/发送器(UART)接口;内时钟同步方式可将串行转换结果经移位寄存器转换为并行输出;外时钟同步方式可以连接与单片机接口。所以它具有精度高、成本低、工作温度范围宽、抗干扰能力强等特点。因此适用于遥控检测、过程 (1)主要性能: .AD7701芯片内含有自校准电路 .片内有可编程低通滤波器; .拐点频率;0.1Hz一10HZ .可变串行接口:分辨率16位; .线性误差:0.0015%: ·功耗低。正常状态:40mW;睡眠状态:10uW。 (2)芯片引肿图和引脚说明: AD770I的核心部分是二阶调制器和6阶高斯低通数字滤波器 构成的16位ADC,另外有校准控制器、校准SRAM、时钟发 生器和串行接口电路。AD7701芯片的引脚名称和说明如下。 MODE:串行接口方式选择。AD7701 方式。 当MODE接十5v时,串行接口工作在内时钟同步方式。AD7701可以通过外部移位寄存器将串行数据转换为并行数据输出。 当引脚MODE接DGND时,AD7701串行接口工作于外时钟同步方式。在这种方式下,AD7701能直接与具有同步串行接口的单片机连接,也可以利用普通I/O端口,通过软件编程产生SCLK时钟以读取AD770I的转换数据。 当引脚MODE接一5V时,AD7701串行接口工作于异步方式。在这种工作方式下, AD7701可以直接与通用异步接收发送器(UART)相连接,适用于AD7701与单片机(或微控制器)之间的距离比较远的应

基于单片机的八路数据采集系统

基于单片机的八路数据采集系统(一) 摘要:单片机数据采集系统是计算机在工业控制中最为普遍的应用系统?它的任务是采集生产过程中的各种工况参数经过处理后送入内存储器,CPU再对这些参数数据进行分析, 运算和处理。 本系统设计一个单片机系统,负责数据的采集和显示,设计一个多路数据输入输出系统,实现8路输入和输出。采用89C51系列单片机、ADC0809、LED数码管等芯片实现硬件仿真,采用汇编语言。最后硬件电路在Proteaus下仿真实现。 关键词:数据采集;8路输入输出;LED显示。 0.前言 随着科学技术的进步,人们越来越多地用计算机来实现控制系统,因此,充分理解计算机控制系统是十分重要的。 计算机控制系统的工作原理可归纳为以下三个步骤: 1.实时数据采集:对来自测量变送装置已的被控量的瞬时值进行检测和输入。 2.实时控制决策:对采集到的被控量进行分析和处理,并按已定的控制规律,决定将要采取的控制行为。 3.实时控制输出:根据控制决策,适时地对执行机构发出控制信号,完成控制任务。 工业控制机包括硬件和软件两部分: 硬件包括主机板、内部总线和外部总线、人-机接口、系统支持板、磁盘系统、通信接口、输入输出通道。软件包括系统软件、支持软件和应用软件。 本系统设计一个单片机系统,负责数据的采集和显示,设计一个多路数据输入输出系统,实现8路输入和输出。采用89C51系列单片机、ADC0809、LED数码管等芯片实现硬件仿真,采用汇编语言。最后硬件电路在Proteaus下仿真实现。 1.基单片机的八路数据采集的基本理论 基于单片机的八路数据采集电路的主要原理是:通过电位计控制输入信号(电压值)的幅值,经单片机对八路信号进行实时同步采样,并用键盘选择通道控制LED显示八路数据采集结果。 本课题只要掌握单片机与ADC0809,LED数码管的接口方式,ADC0809的工作原理,LED数码管的驱动原理,就能实现Proteus仿真。 2.方案设计 数据采集电路的原理框图1所示。

温度采集与显示系统.

温度采集与显示系统的设计 姓名: 学号:

摘要:由于人体不能精准的感受到环境中的温度,而温度采集系统能够准确、及时、全面地反映环境质量现状及发展趋势,因而本论文设计了基于8051单片机控制技术的温度采集与显示系统。该系统通过温度传感器将检测到的温度信号转换成电压信号,该模拟量电压经8路AD0809输出数字量电压值送给单片机。根据AD值与温度之间的关系利用查表和插值法得出温度值。并且这些数值都能实时显示在显示屏上。 一、设计内容及意义 温度采集与显示系统在人们的日常生活中的应用越来越广泛,如花卉栽培温湿度控制、大棚温室控制系统、粮库温室控制系统、现代化居室温湿度控制等等。 随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。单片机在测控系统中的作用是对信息进行处理、运算和发出控制命令等,但所要处理的信息是从外界拾取的,拾取的信号可以分为开关量和模拟量两种。开关量只需放大、整形和电平转换等处理后,即可直接送入单片机系统。但输入量如果是模拟量,处理的复杂程度就大大地增加了,由于模拟输入信号一般很微弱,需要进行放大,对于一个测控范围较大的仪器,还要有多级可变放大电路。另外,在放大有用信号的同时,干扰信号也被同时放大,还要进行必要的滤波处理。所以要设计出一个真正实用的单片机测控系统,必须先设计好适用的前向通道。根据被测对象输出信号的类型、大小、数量不同,前向通道的结构类型也各不相同。 本系统基于51单片机设计的温度采集与显示系统是A/D转换器、热敏电阻温度传感器、LCD显示屏及相应接口的综合应用。

8通道温度数据采集系统

8通道温度数据采集系统 一、设计题目与要求: 设计一个8通道温度数据采集系统,系统误差小于1%;其中4路测量范围0-200?C ,选用Pt100热电阻;另4路测量范围0-600?C ,选用K 分度热电偶。 二、设计过程: 1、画出系统组成框图; 2、完成硬、软件功能分配和完成芯片选型; (1)运算放大器采用单电源,低功耗,精密四运算放大器MAX479 (2)AD 转换芯片采用带有8位A/D 转换器、8路多路开关的ADC0809 (3)硬件主要的功能是把采集到的温度信号转换成电信号,再经过运算放大器放大信号,传递给AD 转换芯片把模拟信号转换成数字信号,最后传给单片机处理信号并显示温度。 (4)软件主要的功能是对ADC0809 AD 转换芯片控制读取数据,读到单片机里对数据的处理转换成对应的温度值并显示。 3、ADC0809原理和应用: ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。 ADC0809引脚图 IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压 范围是0-5V ,若信号太小,必须进行放大;输 入的模拟量在转换过程中应该保持不变,如若模 拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE 为地址锁存允许输入线,高电平有效。当ALE 线为高电平时,地址锁存与译码器将A ,B ,C 三条地址线的地址信号进行锁存,经译码后被选 中的通道的模拟量进转换器进行转换。A ,B 和C 为地址输入线,用于选通IN0-IN7上的一路模 拟量输入。 数字量输出及控制线:11条 ST 为转换启动信号。当ST 上跳沿时,所有内部

相关主题
文本预览
相关文档 最新文档