当前位置:文档之家› DS18B20多点测温(51 C程序)

DS18B20多点测温(51 C程序)

DS18B20多点测温(51 C程序)
DS18B20多点测温(51 C程序)

DS18B20多点测温(读序列,匹配序列,51 C程序,1602显示)

由于本人在前两天找DS18B20多点测温(51 C程序),网上下载了很多,但是都不是很理想,后来,自己总结前人的知识,重新写了这个程序。其中包括程序一:单个读序列号。程序二,匹配并且读两个DS18B20,当然,读多个与读两个基本原理一样,只要加上其序列号等即可。本程序所有显示都是用LCD1602显示。

程序一:度序列号,并用1602显示,1602从左到右分别是低到高位。

#include

#define uchar unsigned char

#define uint unsigned int

sbit DQ=P3^7;//ds18b20与单片机连接口

sbit RS=P3^0;

sbit RW=P3^1;

sbit EN=P3^2;

unsigned char code str1[]={" "};

unsigned char code str2[]={" "};

uchar fCode[8];

uchar data disdata[5];

uint tvalue;//温度值

uchar tflag;//温度正负标志

/*************************lcd1602程序**************************/

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

{unsigned int i,j;

for(i=0;i

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

}

void wr_com(unsigned char com)//写指令//

{ delay1ms(1);

RS=0;

RW=0;

EN=0;

P2=com;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

void wr_dat(unsigned char dat)//写数据//

{ delay1ms(1);;

RS=1;

RW=0;

EN=0;

P2=dat;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

void lcd_init()//初始化设置//

{delay1ms(15);

wr_com(0x38);delay1ms(5);

wr_com(0x08);delay1ms(5);

wr_com(0x01);delay1ms(5);

wr_com(0x06);delay1ms(5);

wr_com(0x0c);delay1ms(5);

}

void display(unsigned char *p)//显示//

{

while(*p!='\0')

{

wr_dat(*p);

p++;

delay1ms(1);

}

}

void init_play()//初始化显示

{ lcd_init();

wr_com(0x80);

display(str1);

wr_com(0xc0);

display(str2);

}

/******************************ds1820 *********************/ void delay_18B20(unsigned int i)//延时1微秒

{

while(i--);

}

void ds1820rst()/*ds1820复位*/

{ uchar x=0;

DQ = 1; //DQ复位

delay_18B20(4); //延时

DQ = 0; //DQ拉低

delay_18B20(100); //精确延时大于480us DQ = 1; //拉高

delay_18B20(40);

}

uchar ds1820rd()/*读数据*/

{ uchar i=0;

uchar dat = 0;

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

{ DQ = 0; //给脉冲信号

dat>>=1;

DQ = 1; //给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

void ds1820wr(uchar wdata)/*写数据*/ {uchar i=0;

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

{ DQ = 0;

DQ = wdata&0x01;

delay_18B20(10);

DQ = 1;

wdata>>=1;

}

}

read_temp()/*读取温度值并转换*/ {uchar a,b;

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

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

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0xbe);//*读取温度*/

a=ds1820rd();

b=ds1820rd();

tvalue=b;

tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff)

tflag=0;

else

{tvalue=~tvalue+1;

tflag=1;

}

tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数

return(tvalue);

}

/*******************************************************************/ void ds1820disp()//温度值显示

{ uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数

disdata[1]=tvalue%1000/100+0x30;//十位数

disdata[2]=tvalue%100/10+0x30;//个位数

disdata[3]=tvalue%10+0x30;//小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号

else

flagdat=0x2d;//负温度显示负号:-

if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示

if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示

}

}

wr_com(0xc0);

wr_dat(flagdat);//显示符号位

wr_com(0xc1);

wr_dat(disdata[0]);//显示百位

wr_com(0xc2);

wr_dat(disdata[1]);//显示十位

wr_com(0xc3);

wr_dat(disdata[2]);//显示个位

wr_com(0xc4);

wr_dat(0x2e);//显示小数点

wr_com(0xc5);

wr_dat(disdata[3]);//显示小数位

}

void DispCode()

{

unsigned char i,temp;

ds1820rst();

ds1820wr(0x33);

for (i=0;i<8;i++)

{

fCode[i]=ds1820rd();

}

wr_com(0x80+0x40);

for (i=0;i<8;i++)

{

temp = fCode[i]>>4; //显示高四位

if (temp<10)

wr_dat(temp + 0x30);

else

wr_dat(temp + 0x37);

temp = fCode[i]&0x0f;//显示低四位

if (temp<10)

wr_dat(temp+ 0x30);

else

wr_dat(temp + 0x37);

}

}

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

{

init_play();//初始化显示

DispCode(); //系列号显示

delay1ms(1000);

while(1)

{//read_temp();//读取温度

// ds1820disp();//显示

;}

}

程序二:匹配序列号,并读温度。

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit RS=P3^0;

sbit RW=P3^1;

sbit EN=P3^2;

sbit DQ=P3^7;

uchar code str1[]={0x28,0x08,0xA7,0xBA,0x02,0x00,0x00,0x18}; //ROM 1

uchar code str2[]={0x28,0x0C,0xBA,0xBA,0x02,0x00,0x00,0x54}; //ROM2

uchar code table[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00}; // 摄氏温度符号uchar data disdata[5];

uint tvalue;//温度值

uchar tflag;//温度正负标志

/*************************lcd1602程序**************************/

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

{ uint i,j;

for(i=0;i

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

}

void wr_com(uchar com)//写指令//

{ delay1ms(1);

RS=0;

RW=0;

EN=0;

P2=com;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

void wr_dat(uchar dat)//写数据//

{ delay1ms(1);;

RS=1;

RW=0;

EN=0;

P2=dat;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

void wr_new() 、//写新字符

{

uchar i;

wr_com(0x40);

for(i=0;i<8;i++)

{

wr_dat(table[i]);

}

}

void lcd_init()//初始化设置//

{ delay1ms(15);

wr_com(0x38);delay1ms(5);

wr_com(0x08);delay1ms(5);

wr_com(0x01);delay1ms(5);

wr_com(0x06);delay1ms(5);

wr_com(0x0c);delay1ms(5);

wr_new();

wr_com(0x80);

wr_dat('A');

wr_com(0x81);

wr_dat(':');

wr_com(0x89);

wr_dat(0x00);

wr_com(0x8a);

wr_dat('C');

wr_com(0xc9);

wr_dat(0x00); 、、//摄氏温度字符

wr_com(0xca);

wr_dat('C');

wr_com(0xc0);

wr_dat('B');

wr_com(0xc1);

wr_dat(':');

}

/******************************ds1820程序***************************************/ void delay_18B20(uint i)//延时1微秒

{

while(i--);

}

void ds1820rst()/*ds1820复位*/

{ uchar x=0;

DQ = 1; //DQ复位

delay_18B20(4); //延时

DQ = 0; //DQ拉低

delay_18B20(100); //精确延时大于480us

DQ = 1; //拉高

delay_18B20(40);

}

uchar ds1820rd()/*读数据*/

{ uchar i=0;

uchar dat = 0;

for (i=0;i<8;i++)

{ DQ = 0; //给脉冲信号

dat>>=1;

DQ = 1; //给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

void ds1820wr(uchar dat)/*写数据*/

{ uchar i=0;

for (i=0; i<8; i++)

{ DQ = 0;

DQ = dat&0x01;

delay_18B20(10);

DQ = 1;

dat>>=1;

}

}

void b20_Matchrom(uchar a) //匹配ROM

{

char j;

ds1820wr(0x55); //发送匹配ROM命令

if(a==1)

{

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

ds1820wr(str1[j]); //发送18B20的序列号,先发送低字节}

if(a==2)

{

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

ds1820wr(str2[j]); //发送18B20的序列号,先发送低字节}

}

read_temp(uchar z)/*读取温度值并转换*/

{ uchar a,b;

float tt;

ds1820rst();

ds1820wr(0xcc); 、//读序列号

ds1820rst();

if(z==1)

{

b20_Matchrom(1); //匹配ROM 1

}

if(z==2)

{

b20_Matchrom(2); //匹配ROM 2 }

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

delay1ms(5);

ds1820rst();

ds1820wr(0xcc); //读序列号

ds1820rst();

if(z==1)

{

b20_Matchrom(1); //匹配ROM 1 }

if(z==2)

{

b20_Matchrom(2); //匹配ROM 2 }

ds1820wr(0xbe);//*读取温度*/

a=ds1820rd();

b=ds1820rd();

tvalue=b;

tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff)

tflag=0;

else

{ tvalue=~tvalue+1;

tflag=1;

}

tt=tvalue*0.0625;

tvalue=tt*10;

return(tvalue);

}

/*****************显示函数******************************/ void ds1820disp(uchar z)//温度值显示

{ uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数

disdata[1]=tvalue%1000/100+0x30;//十位数

disdata[2]=tvalue%100/10+0x30;//个位数

disdata[3]=tvalue%10+0x30;//小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号

else

flagdat=0x2d;//负温度显示负号:-

if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示

if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示}

}

if(z==1)

{

wr_com(0x82);

wr_dat(flagdat);//显示符号位

wr_com(0x83);

wr_dat(disdata[0]);//显示百位

wr_com(0x84);

wr_dat(disdata[1]);//显示十位

wr_com(0x85);

wr_dat(disdata[2]);//显示个位

wr_com(0x86);

wr_dat(0x2e);//显示小数点

wr_com(0x87);

wr_dat(disdata[3]);//显示小数位

}

if(z==2)

{

wr_com(0xc2);

wr_dat(flagdat);//显示符号位

wr_com(0xc3);

wr_dat(disdata[0]);//显示百位

wr_com(0xc4);

wr_dat(disdata[1]);//显示十位

wr_com(0xc5);

wr_dat(disdata[2]);//显示个位

wr_com(0xc6);

wr_dat(0x2e);//显示小数点

wr_com(0xc7);

wr_dat(disdata[3]);//显示小数位

}

}

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

{

lcd_init();//初始化显示

while(1)

{

read_temp(1);//读取温度

ds1820disp(1);//显示

read_temp(2);//读取温度

ds1820disp(2);//显示

// delay1ms(10000);

}

}

接口实验报告-基于51单片机的脉搏温度测试系统-

摘要 接口实验报告 题目:脉搏波体温自动采集系统院(系):电子工程与自动化学院 专业:仪器仪表工程 学生姓名: 学号: 指导老师:李智 职称:教授 20 年8月28日 I

摘要 本文介绍了一种基于51单片机的心率体温采集系统。首先介绍了51系列单片机的内部相关配置、工作原理以及编程方法,其次介绍了温度传感器PT100的相关测温方法以及通过红外光电传感器TCRT5000对射的方法来抓取人体脉搏信号。此次设计的电路部分主要包括:传感测量电路、放大电路、滤波整形电路、AD转换电路、控制电路、电源供电电路等。上位机为通过VC编程界面。通过上位机按键控制,将PT100及TCRT5000输入的微弱信号进行放大整形,最后AD采集转换传送给单片机,在上位机界面上显示相关体温及心率信息。 本次硬件设计基于比较稳定可行、低成本的设计思想,软件设计采用模块化的设计方法,并且详细分析了红外传感器TCRT5000应用于心率测量上以及PT100应用于温度测量上的原理及优点,阐述了其他各配合电路的组成与工作特点,并且通过仿真进行电路的可行性验证,最后完成实物电路的设计,使得本次课题的预期结果得以实现。 关键词:51单片机;传感器;仿真;AD转换

Abstract Abstract This paper introduced a heart rate and body temperature acquisition system that based on 51 single chip microcomputer. First the internal configurations of 51 single chip microcomputer are introduced. And the paper also tell how 51 single chip microcomputer works and how can we program on it. Then the method of using temperature sensor PT100 to get body temperature is introduced, and we use infrared photoelectric sensor TCRT5000 to get the pulse signal of human body.The design of the circuit mainly comprises sensing circuit, amplifying circuit, filtering and shaping circuit, AD converting circuit, counting and displaying circuit, controlling circuit, power supplying circuit and so on. When the keyboard is pressed, the system starts to get signal. The small signal from PT100 and TCRT5000 will be amplified and shaped. Then ad converter will change the analog signal into digital signal and send to 51 single chip microcomputer. At last LCD1602 will display the information of body temperature and heart rate. Keywords: Piezoelectric sensors;control circuit;counters;Multisim2001 simulation software control circuit. III

编码器详细介绍与编程指导

增量型编码器与绝对型编码器的区分 编码器如以信号原理来分,有增量型编码器,绝对型编码器。 增量型编码器 (旋转型) 工作原理: 由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。 由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。 编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。 分辨率—编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。 信号输出: 信号输出有正弦波(电流或电压),方波(TTL、HTL),集电极开路(PNP、NPN),推拉式多种形式,其中TTL为长线差分驱动(对称A,A-;B,B-;Z,Z-),HTL 也称推拉式、推挽式输出,编码器的信号接收设备接口应与编码器对应。 信号连接—编码器的脉冲信号一般连接计数器、PLC、计算机,PLC和计算机连接的模块有低速模块与高速模块之分,开关频率有低有高。 如单相联接,用于单方向计数,单方向测速。 A.B两相联接,用于正反向计数、判断正反向和测速。 A、B、Z三相联接,用于带参考位修正的位置测量。 A、A-, B、B-,Z、Z-连接,由于带有对称负信号的连接,电流对于电缆贡献的电磁场为0,衰减最小,抗干扰最佳,可传输较远的距离。 对于TTL的带有对称负信号输出的编码器,信号传输距离可达150米。 对于HTL的带有对称负信号输出的编码器,信号传输距离可达300米。

基于DS18B20的多点温度测量系统设计

一、绪论 1.1 课题来源 温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。人民的生活与环境温度息息相关,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。可见,研究温度的测量具有重要的理论意义和推广价值。 随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。本设计就是为了满足人们在生活生产中对温度测量系统方面的需求。 本设计要求系统测量的温度的点数为4个,测量精度为0.5℃,测温范围为-20℃~+80℃。采用液晶显示温度值和路数,显示格式为:温度的符号位,整数部分,小数部分,最后一位显示℃。显示数据每一秒刷新一次。 1.2 课题研究的意义 21世纪科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了巨大的变化,我们已经进入了高速发展的信息时代,测量技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。对于本次设计,其目的在于: (1)掌握数字温度传感器DS18B20的原理、性能、使用特点和方法,利用C51对系统进行编程。

51单片机测温程序

#include #include #define uint unsigned int #define uchar unsigned char uinti,numone,numtwo,temp; ucharqian,bai,shi,ge,xiaoshu; sbitdq=P2^2; sbitdula=P2^6; sbitwela=P2^7; uchar code list[]={ 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71,0x80 }; unsigned char code listone[] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; void delay(uint z) { uintx,y; for(x=100;x>0;x--) for(y=z;y>0;y--); } voiddelayone(unsigned char i)

{ while(--i); } /****************************************** 此延时函数针对的是12Mhz的晶振 delay(0):延时518us 误差:518-2*256=6 delay(1):延时7us (原帖写"5us"是错的)delay(10):延时25us 误差:25-20=5 delay(20):延时45us 误差:45-40=5 delay(100):延时205us 误差:205-200=5 delay(200):延时405us 误差:405-400=5*/ voidshuma(uchar temp) { shi=temp/100; ge=temp%100/10; xiaoshu=temp%10; dula=1; P0=list[shi]; dula=0; P0=0xff; wela=1; P0=0xfe;

Arduino关于旋转编码器程序的介绍资料

Arduino关于旋转编码器程序的介绍介绍 旋转或编码器是一个角度测量装置. 他用作精确测量电机的旋转角度或者用来控制控制轮子(可以无限旋转,而电位器只能旋转到特定位置)。其中有一些还安装了一个可以在轴上按的按钮,就像音乐播放器的控制按钮。Some of them are also equipped with a pushbutton when you press on the axis (like the ones used for navigation on many music controllers). 它们的精度多种多样,有每圈16步到1024步的各种,价格也从2到200欧元不等。 我写了一个小例子去读旋转编码器,并且使将读数通过RS232显示。我们很容易实现当编码器每走一步更新一下计数,并且将它通过串口显示在电脑上(通过串口监视器)。这个程序在ALPS STEC12E08编码器(每圈有24步)上运行良好。但是我认为当它使用在一个有更高精度的编码器上时有可能就会失效或者当电机旋转很快,或者你拓展这个程序以适应多个编码器。请先试试他吧。 我在Arduino distribution(A VRLib的一部分)的encoder.h中学会了怎样操作编码器。谢谢作者:Pascal Stang,感谢他对每一个函数友好而详细的解释。如下: Example 1 /* Read Quadrature Encoder * Connect Encoder to Pins encoder0PinA, encoder0PinB, and +5V. * * Sketch by max wolf / https://www.doczj.com/doc/dd8316534.html, * v. 0.1 - very basic functions - mw 20061220 * */ int val; int encoder0PinA = 3; int encoder0PinB = 4; int encoder0Pos = 0; int encoder0PinALast = LOW; int n = LOW; void setup() { pinMode (encoder0PinA,INPUT); pinMode (encoder0PinB,INPUT); Serial.begin (9600); } void loop() { n = digitalRead(encoder0PinA); if ((encoder0PinALast == LOW) && (n == HIGH)) {//上升沿

基于AT89C51单片机的测温系统

引言 本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20的数据采集过程,并介绍了利用C语言编程对DS18B20的访问,该系统可以方便的实现实现温度采集和显示,使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量。数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC89C52单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示。 .

一、设计要求 通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,C语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。 以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为0.5摄氏度。温度显示采用3位LED数码管显示,两位整数,一位小数。具有键盘输入上下限功能,超过上下限温度时,进行声音报警。 二、基本原理 原理简述:数字温度传感器DS1820把温度信息转换为数字格式;通过“1-线协议”,单片机获取指定传感器的数字温度信息,并显示到显示设备上。通过键盘,单片机可根据程序指令实现更灵活的功能,如单点检测、轮转检测、越数字温度传感器的温度检测及显示的系统原理图如图DS1820限检测等。基于 图 2.1 基于DS1820的温度检测系统框图 三:主要器件介绍(时序图及各命令序列,温度如何计算等) 系统总体设计框图 由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。 测温电路设计总体设计框图如图所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实现,键盘用来设定报警上下限温度。 .. . 测温电路设计总体设计框图图3.11.控制模块 AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公

绝对值旋转编码器程序

绝对值旋转编码器程序 #include // 寄存器头文件包含 #include // 寄存器头文件包含 #include // 空操作函数,移位函数头文件包含 #define uchar unsigned char #define uint unsigned int /* sbit SH_CP = P1^1; //移位时钟脉冲端口 sbit DS = P1^2; // 串行数据输入端口 sbit ST_CP = P3^7; //锁存端口 */ int inc_data=0; //每刷新一次的增量值 int jms=0; //累计增量 int m_iPrvSSI = 0; int m_bIsSPI = 0; uchar uPrvState = 0; sbit AA = P3^3;// sbit BB = P3^4;//这个是时钟 sbit ZZ = P3^5;//这个是数据 sbit BEEP=P1^5; //正反判断 bit t_bFang = 1; int a; int iSSI = 0;

int temp,num,j; uchar led_buf[12]; /*定义LED显示缓冲区*/ uchar code table[]="0123456789"; void delay (int t) { int i,j; for(i=1;i for (j=1;j } void GetSSI(void) { uchar ix = 0; // uchar uState = 0; //状态位数据 int iSSI = 0;//当前的角度数据(0-1023) bit bCrc = 0; // 奇数或偶数标志位 int ire = 0; //增量数据,表示上次正确读的数据,和这次正确读的位置差 AA = 0; //CSN _nop_();_nop_(); BB = 0;//CLK _nop_();_nop_(); BB = 1;//CLK _nop_();_nop_(); for(ix = 0; ix { BB = 0;//CLK

基于DS18B20的温度测量系统设计

课程设计(论文) 题目名称基于DS18B20温度测量系统设计 课程名称单片机原理及应用 学生姓名尹彬涛 学号1341301075 系、专业电子信息工程 指导教师江世民 2015年 6 月12 日

摘要 随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于STC89C52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20的数据采集过程。对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与STC89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机; DS18B20; 温度传感器; 数字温度计; STC89C52

目录 摘要 (1) 引言 (3) 一、方案介绍 (3) 1、显示部分 (3) 2、温度采集 (5) 3、方案流程图 (5) 二、总体方案设计 (6) 1、硬件设计 (6) 1.1 温度采集设计 (6) 1.2温度显示设计 (6) 2、软件设计 (7) 2.1 DS18B20程序设计 (7) 2.2显示部分程序设计 (8) 三、实验调试过程 (10) 1、软件调试 (10) 1.1 显示部分调试........................................ . (10) 四、心得体会 (10) 五、致谢 (11) 六、参考文献 (12) 七、附录 (12) 附录一程序代码 (12) 附录二仿真电路图 (18)

基于51单片机的温度警报器的设计

西安文理学院物理与机械电子工程学院课程设计任务书

目录 摘要 (3) 1 引言 (3) 1.1课题背景 (3) 1.2研究内容和意义 (5) 2 芯片介绍 (5) 2.1 DS18B20概述 (5) 2.1.1 DS18B20封装形式及引脚功能 (6) 2.1.2 DS18B20内部结构 (6) 2.1.3 DS18B20供电方式 (9) 2.1.4 DS18B20的测温原理 (10) 2.1.5 DS18B20的ROM命令 (11) 2.2 AT89C52概述 (13) 2.2.1单片机AT89C52介绍 (13) 2.2.2功能特性概述 (13) 3 系统硬件设计 (13) 3.1 单片机最小系统的设计 (13) 3.2 温度采集电路的设计 (14) 3.3 LED显示报警电路的设计 (15) 4 系统软件设计...................................................15 4.1 流程图........................................................15 4.2 温度报警器程序.................................................16 4.3 总电路图..................................................... 19 5总结 (20)

摘要 随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。 本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机;温度检测;AT89C52;DS18B20; 1 引言 1.1课题背景 温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格控制。随着科学技术的发展,要求温度测量的范围向深度和广度发展,以满足工业生产和科学技术的要求。 基于AT89C51单片机提高了系统的可移植性、扩展性,利于现代测控、自动化、电气技术等专业实训要求。以单片机为核心设计的温度报警器,具有安全可靠、操作简单方便、智能控制等优点。 温度对于工业生产如此重要,由此推进了温度传感器的发展。温度传感器主要经过了三个发展阶段[1]: (1)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、

编码器编程

我用的是三菱PLC的FX2N,这里有A、B、Z相的HK38系列的增量式旋转编码器,将PLC 的X0,X1,X2分别接编码器的A相和B相及Z相,用PLC的双相计数器C252计数,虽然我知道A相超过B相90°为顺时针转,滞后就逆时针转,但不知道如何具体编程,我的目的是达到测旋转轴的角度,从-135°~-30°~-10°~10°~+30°~-135°,正反转旋转 多谢各位,我改了一下,但仍旧没找到问题原因,但测试中发现,接X2和X5都能使C252复位,尽管手册上说只有X2复位,但由于以上提到的Z相接入任何一个输入端都使之ON,所以我就避开了接X2和X5端子,改接其他的端子,比如X3,这并不是因为它是高速输入端的一种才选,其他端也一样,因此我采用了软件复位,也没办法了,效果倒是达到了想要的,

DHSZ D200 K8 C235 M8130 HSZ是高速区间比较指令,前面加D是32位的。运作如下: D200 > C235 M8130 ON D200<=C235>=k8 M8131 ON D200 < C235 M8132 ON

将旋转编码器的A相或B相的输出信号连接至X0~X5,(使用不同的计数器,接不同的输入点)然后用高速计数器对编码器的脉冲信号进行计数。以C235为例,只进行加计数,脉冲编码器的A相或B相需要接入PLC的X0,当设备带动编码器旋转,则X0就有信号输入,C235就会进行计数。使用很简单。 需求一段三菱PLC+旋转编码器+变频器实行多段距离控制,例如:上升总距离为50cm,0-15cm 实行20hz运行、16-25 cm 实行35HZ运行、26-35cm实行40HZ 运行、36-46cm实行20HZ 运行、47-50cm实行10HZ运行;下降反之! 程序中的数字,是按每厘米100个脉冲设计的,在实际中还要经过计算。

基于DS18B20的多点温度测量系统(毕业设计)

目录 中文摘要......................................................................................................... III 英文摘要......................................................................................................... I V 1 绪论. (1) 1.1课题来源 (1) 1.2课题研究的目的意义 (1) 1.3国内外现状及水平 (2) 1.4课题研究内容 (2) 2 系统方案设计 (3) 2.1基于模拟温度传感器设计方案 (3) 2.2基于数字温度传感器设计方案 (4) 2.3方案论证 (4) 3 电路设计 (6) 3.1工作原理 (6) 3.2DS18B20与单片机接口技术 (7) 3.3键盘电路设计 (14) 3.4显示电路设计 (15) 3.5报警电路设计 (16) 3.6电源电路设计 (17) 4 程序设计 (18) 4.1系统资源分配 (18) 4.2系统流程设计 (18) 4.3程序设计 (24) 5 系统仿真 (34) 5.1PROTEUS仿真环境介绍 (34) 5.2原理图绘制 (35) 5.3程序加载 (35) 5.4系统仿真 (36) 5.5仿真结果分析 ............................................................................................... 错误!未定义书签。 6 PCB板设计 (39) 6.1PCB板设计 (39)

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

旋转编码器工作原理

增量式旋转编码器工作原理 增量式旋转编码器通过内部两个光敏接受管转化其角度码盘的时序和相位关系,得到其角度码盘角度位移量增加(正方向)或减少(负方向)。在接合数字电路特别是plc后,增量式旋转编码器在角度测量和角速度测量较绝对式旋转编码器更具有廉价和简易的优势。增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90o,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。其缺点是无法输出轴转动的绝对位置信息。 增量式旋转编码器的内部工作原理(附图) 增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90o,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。其缺点是无法输出轴转动的绝对位置信息。 A,B两点对应两个光敏接受管,A,B两点间距为 S2 ,角度码盘的光栅间距分别为S0和S1。 当角度码盘以某个速度匀速转动时,那么可知输出波形图中的S0:S1:S2比值与实际图的S0:S1:S2比值相同,同理角度码盘以其他的速度匀速转动时,输出波形图中的S0:S1:S2比值与实际图的S0:S1:S2比值仍相同。如果角度码盘做变速运动,把它看成为多个运动周期(在下面定义)的组合,那么每个运动周期中输出波形图中的S0:S1:S2比值与实际图的S0:S1:S2比值仍相同。 通过输出波形图可知每个运动周期的时序为

DS18B20的测温原理

3.2.3 DS18B20的测温原理 DS18B20的测温原理如图3-2-2-6所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃ 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。各种操作的时序图与DS1820相同。 图3-2-3-1 DS18B20与处理器连接图 3.2.4 DS18B20与单片机的典型接口设计 以MCS51单片机为例,图3-2-3-1中采用寄生电源供电方式,P1 1口接

基于51单片机的温度测量系统

基于51单片机的温度测量系统 原作者:飓风添加时间:2008-04-03 原文发表:2008-04-03 人气:128 来源:赵 娜赵刚于珍珠郭守清 本文章共3366字,分3页,当前第1 摘要: 单片机在检测和控制系统中得到广泛应用, 温度则是系统常需要测量、控制和保持一个量。本文从硬件和软件两方面介绍了AT89C2051单片机 温度控制系统设计,对硬件原理图和程序框图作了简洁描述。 关键词: 单片机AT89C2051;温度传感器DS18B20;温度;测量 引言 单片机在电子产品中应用已经越来越广泛,并且在很多电子产品中也将其用 到温度检测和温度控制。为此在本文中作者设计了基于atmel公司AT89C2051 温度测量系统。这是一种低成本利用单片机多余I/O口实现温度检测电路, 该电路非常简单, 易于实现, 并且适用于几乎所有类型单片机。 一.系统硬件设计 系统硬件结构如图1所示。 https://www.doczj.com/doc/dd8316534.html,提示请看下图: 1.1 数据采集 数据采集电路如图2所示, 由温度传感器DS18B20采集被控对象实时温度, 提供给AT89C2051P3.2口作为数据输入。在本次设计中我们所控对象为所处 室温。当然作为改进我们可以把传感器与电路板分离,由数据线相连进行通讯,便于测量多种对象。 DS18B20是DALLAS公司生产一线式数字温度传感器,具有3引脚TO-92小 体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D 转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展16位数字量方 式串行输出,支持3V~5.5V电压范围,使系统设计更灵活、方便;其工作电

旋转编码器在线速度检测控制中的应用

在电缆生产线上,通常需要检测电缆的走线速度,用来控制收线电机的转速和计算线缆的长度。成缆工艺参数的稳定,直接关系到电线电缆的质量。 该项目是为某电缆厂的技术改造项目,要改造的设备是利用束线原理制造的盘绞式成缆机,改造的内容是更换全部电气控制系统。这种成缆机的放线盘固定,而收线盘固定在盘绞架上同时完成绞合和收线的双重运动。工作时,在线缆盘直流电机的带动下,完成电缆的收线运动,在排线电机的带动下实现电缆在收线盘的整齐排列。在大盘电机的带动下,通过齿轮箱带动盘绞架实现轴向旋转,完成电缆绞合运动,是保证节距的关键。线速度是由收线盘的旋转速度决定的,如果收线电机的转速恒定,收线盘随着收线轴的变粗,线速度会增大,因此,为保证收线速度恒定,要逐渐降低收线电机的转速。 1 系统设计原理 根据电缆的生产工艺要求,不同型号的电缆,其走线速度是恒定的。通常,电缆的运行速度是由电缆带动旋转编码器来检测的。电缆线速度测速示意图如图1所示。 该项目中,采用的旋转编码器的型号是TRDJ1000系列,旋转一周输出1 000个脉冲。因此,根据在一定时间内检测到的脉冲数,就可以计算出电缆的走线速度。实际应用中,将其与一加工精度极高、周长为500 mm的旋转编码器测量主动轮与旋转编码器同轴安装,主动轮与电缆接触。在电缆生产运动过程中,依靠摩擦力拉动测量轮旋转,这样就把电缆的直线位移(长度)转化为旋转编码器的脉冲数字信号输出。

设旋转编码器每旋转一周,其计数脉冲个数为NP(脉冲个数/转),则旋转编码器角分辨率(单位:(°)/个)为: P=360/NP 假定固定在旋转编码器转轴上的主动导向轮半径为r m,则旋转编码器位移分辨率(单位:m/个)为: Ps=27πr/NP 这时,若计数脉冲个数为N(个),则由旋转编码器测量的位移量S(单位:m)为: S=Ps·N 线缆走线速度V(单位:m/s)为: V=S/T 式中:T为接收N个脉冲所用的时间(单位:s)。 2 硬件电路设计原理 该检测电路以AT89C51单片机为控制核心,如图2所示,旋转编码器输出的脉冲,经过电平转换,变成O~5 V的TTL电平脉冲,送到AT89 C51单片机的外部中断INT0端。每收到

DS18B20中文资料

第一部分:DS18B20的封装和管脚定义 首先,我们来认识一下DS18B20这款芯片的外观和针脚定义,DS18B20芯片的常见封装为TO-92,也就是普通直插三极管的样子,当然也可以找到以SO(DS18B20Z)和μSOP(DS18B20U)形式封装的产品,下面为DS18B20各种封装的图示及引脚图。 了解了这些该芯片的封装形式,下面就要说到各个管脚的定义了,如下表即

为该芯片的管脚定义: 上面的表中提到了一个“奇怪”的词——“寄生电源”,那我有必要说明一下了,DS18B20芯片可以工作在“寄生电源模式”下,该模式允许DS18B20工作在无外部电源状态,当总线为高电平时,寄生电源由单总线通过VDD 引脚,此时DS18B20可以从总线“窃取”能量,并将“偷来”的能量储存到寄生电源储能电容(Cpp)中,当总线为低电平时释放能量供给器件工作使用。所以,当DS18B20工作在寄生电源模式时,VDD引脚必须接地。 第二部分:DS18B20的多种电路连接方式 如下面的两张图片所示,分别为外部供电模式下单只和多只DS18B20测温系统的典型电路连接图。 (1)外部供电模式下的单只DS18B20芯片的连接图

(2)外部供电模式下的多只DS18B20芯片的连接图 这里需要说明的是,DS18B20芯片通过达拉斯公司的单总线协议依靠一个单线端口通讯,当全部器件经由一个三态端口或者漏极开路端口与总线连接时,控制线需要连接一个弱上拉电阻。在多只DS18B20连接时,每个DS18B20都拥有一个全球唯一的64位序列号,在这个总线系统中,微处理器依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址,从而允许多只DS18B20同时连接在一条单线总线上,因此,可以很轻松地利用一个微处理器去控制很多分布在不同区域的DS18B20,这一特性在环境控制、探测建

基于51单片机的温度测量系统仿真

基于51单片机的温度测量系统仿真专题实验内容与设计要求 主要设计条件 1、Proteus或者其它软件 2、实验室现有软硬件设施 2、相关参考文献 报告书格式

1.专题实验设计报告书封面。 2.专题设计任务书。 3. 报告书目录。 4.正文 5.总结。 6.参考文献。 7.附录。 8.专题设计评分表。 正文部分包括(概述、总体设计、硬件电路设计及调试等) 进度安排 第一天:布置课题任务,课题内容介绍。 第二天~第五天:仔细了解分析实验任务,明确实验要求,收集实验专题设计资料。阅读相关资料,设计方案确定,相关元器件选型;进行电路和软件设计,编写实验报告。

一.温度测量系统的重要性 在现今科技高速发展的时代,各行各业对控制和测量的要求越来越高,其中,温度测量和控制在很多行业中都有比较重要的应用,尤其在工业上,如炼钢时对温度高低的控制。要控制好温度,测量是前提,测量的精度影响着后续工序的进行,因此温度测量的方法和选取就显得相当重要了。 二.设计目的与意义 随着电子技术的高速发展,对电子方面人才的要求越来越高,不仅要求其具备相关的专业理论知识,还要求其具有较强的设计、制作等实践动手能力。此次专题实验无疑是对从事测控专业的人的一次很好的锻炼和考验,是培养测控技术的人才的一次良好的机会,为其提供了一个理论知识与实践相结合的平台。通过本次专题实验,引导学生结合所学的测控电路理论知识,思考设计方案,以小组合作方式,分工完成各个部分,从而掌握相关的测量显示电路的设计和调试技术,一方面提高了学生的实践动手和协作能力,另一方面培养了学生综合运用所学理论知识进行工程设计的能力。 通过此次专题实验,可以培养学生的工程设计能力,包括动手能力、独立思考设计能力、解决实际设计过程中遇到的问题以及团队协作能力等,为今后的专业学习和工程实践打下坚实的基础。 三.实验方案 3.1系统方案 3.1.1方案一 该方案为ICL7107 A/D转换&译码方案。 常见A/D转换器的转换方式有非积分式和积分式两类,如逐次逼近比较式A/D转换、斜坡电压式A/D转换等属于非积分式,其特点是转换速度快,但抗干扰能力差。电压反馈型 V-F变换、双积分式A/D转换则属于积分式,其特点是抗干扰能力强、测量精度高,但转换速度低,在转换速度要求不太高的情况下,获得广泛应用。 工作方框图如图1所示:

欧姆龙PLC与旋转编码器的应用

旋转编码器的应用 例:E6C-N绝对型多旋转高精度型旋转编码器与CPM1A PLC连接进行定位控制 一、连接示意图 型号E6C-NN5C 型号CPM1A-40CD□-□ 二、配线表 【型号E6C-NN5C和型号CPM1A的配线】 型号E6C-NN5C输出信号型号CPM1A 输入信号 单旋转导线外皮褐(20) 00000 数据颜色橙(21) 00001 (灰)黄(22) 00002 绿(23) 00003 蓝(24) 00004 紫(25) 00005 灰(26) 00006 白(27) 00007 粉红(28) 00008 多旋转导线外皮茶(20) 00100 数据颜色橙(21) 00101 (黑)黄(22) 00102 绿(23) 00103 蓝(24) 00104 紫(25) 00105 符号+=0 灰(26) 00106 -=1 白(27) 00107 三、输出时间 【输出时间】 型号E6C-NN5C的绝对值数据 1旋转 2旋转 127旋转 63999

四、梯形图程序 000通道的0 接点,输送到 (单旋转数 BIN) BIN BCD 001通道的 0~7接点,输送 到DM0003(多旋转 数据BIN) BIN 转换到BCD BCD)× 500(单旋转分辨率) 的结果存入 DM0005~6 比较带在DM0010/11的值与DM0012/13 的值间在线性绝对值数据时,输出01000 接点。(限正旋转时进行带域比较)

五、DM设定 【DM设定】 DM0000 0001 0002 0000 数据程序用工作区域 0003 0004 0005 0006 0007 线性绝对值数据 0008 0009 比较数据 0010 9000 0011 0000 上限值设定 0012 0500 0013 0001 下限值设定 注:上述梯形程序为参考例,有时会因程序控制器的数据读入时间而产生数据读取错误。这时,比较上次读入的数据与当前读入的数据。若超过100以上,则该数据作废。(多旋转数据变化时,同时读入单旋转数据与多旋转数据,则错误的数据也被读入。

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