多路温度采集及显示
多路信号采集显示系统设计与实现
多路信号采集显示系统设计与实现一、引言随着科技的不断发展,人们对信号采集显示系统的需求也日益增长。
多路信号采集显示系统是一种能够同时采集多种信号并进行显示的系统,广泛应用于工业控制、仪器仪表、环境监测等领域。
本文将介绍多路信号采集显示系统的设计与实现,包括硬件和软件的设计,希望能够为相关领域的研究和开发提供一定的参考。
二、系统设计1. 系统功能需求多路信号采集显示系统主要具备以下功能需求:(1)多通道信号采集功能:能够同时采集多路模拟信号,并实时转换为数字信号。
(2)数据存储功能:能够将采集到的数据进行存储,以便后续分析和处理。
(3)数据显示功能:能够实时显示采集到的数据,并提供用户界面操作。
(4)通信接口功能:能够与PC或其他设备进行通信,进行数据传输和控制。
2. 系统硬件设计多路信号采集显示系统的硬件设计主要包括传感器、采集卡、显示屏等组成。
(1)传感器:根据不同的采集需求,选择合适的传感器,如温度传感器、压力传感器、光敏传感器等。
(2)采集卡:选择合适的多通道模拟信号采集卡,能够满足采集多路信号的需求。
采集卡通常包括A/D转换器、输入端口等。
(3)显示屏:选择合适的显示屏,能够实时显示采集到的数据,提供用户友好的操作界面。
三、系统实现1. 硬件组装与连接按照系统设计,选购合适的传感器、采集卡和显示屏,并进行硬件组装和连接。
将传感器与采集卡连接,采集卡与显示屏连接,确保硬件的正常工作。
2. 软件开发与编程根据系统设计,开发相应的软件并进行编程。
实现数据采集、数据存储、数据显示和通信接口功能,并进行软件测试和调试。
3. 系统调试与优化将硬件和软件组装完毕后,进行系统调试和优化。
测试系统的各项功能是否正常,是否满足设计要求,并对系统进行优化,提高系统的稳定性和性能。
多路温度采集及监控系统的设计与实现,温度采集,8051F35.
多路温度采集及监控系统的设计与实现,温度采集,8051F3520,CAN总线,A/D转换1引言温度是生产过程和科学试验中普遍且重要的物理参数。
在工业生产中,为了高效生产,必须对生产过程中的主要参数,如温度、压力、流量、速度等进行有效控制。
其中温度控制在生产过程中占有相当大的比例。
准确地测量和有效地控制温度是优质、高产、低耗和安全生产的主要条件。
2系统概述整个温度控制系统主要由计算机控制系统(上位机)、单片机测控系统(下位机)、温度传感器组、功率加热系统等部分组成。
系统采用了模块化的设计思想1 引言温度是生产过程和科学试验中普遍且重要的物理参数。
在工业生产中,为了高效生产,必须对生产过程中的主要参数,如温度、压力、流量、速度等进行有效控制。
其中温度控制在生产过程中占有相当大的比例。
准确地测量和有效地控制温度是优质、高产、低耗和安全生产的主要条件。
2 系统概述整个温度控制系统主要由计算机控制系统(上位机)、单片机测控系统(下位机)、温度传感器组、功率加热系统等部分组成。
系统采用了模块化的设计思想,组建方式灵活,并可利用多块单片机测控系统组合的方法增加测量点,具有良好的扩展性。
系统结构框图如图1所示。
温度测量采用高精度的温度传感器PT100获得物体当前温度,经过低功耗、低输入失调电压、线性好的OP07A进行信号放大,送至8051F350内部高速率24位A/D转换器,根据系统设定的目标温度(由上位机发送)和控制范围,通过6路PWM控制加热器的工作状况,使物体达到目标温度并且保持恒温状态。
同时可以利用单片机内部的Flash存储器把各通道设定的温度、系统参数存储起来。
当系统断电或复位后,可以继续运行,增强了系统的抗干扰性能。
3 系统硬件设计3.1 主控电路温度采集监控系统的主控电路采用高性能、功能强大的8051F350。
8051F350是由Cygnal公司推出的完全集成的混合信号系统级芯片(SoC),具有CIP-51微控制器内核,与MCS51指令集完全兼容;机器周期由标准的12个系统时钟降为1个系统时钟周期,处理能力大大提高,峰值速度可达25MI/s;内部集成了构成单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其他功能元件(包括PGA、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/I2C、UART、SPI、定时器、可编程计数器/定时器阵列、内部振荡器、看门狗定时器以及电源监视器等)。
单片机的多路温度采集控制系统设计方案(2)
基于51单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。
本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。
通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。
关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。
由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。
89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。
输出驱动控制信号由p1.0输出,4个LED 为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。
当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。
DS18B20多路温度采集汇编程序
4路DS18B20温度显示汇编程序(可设置上下限和分路查看)作者蔡雄略;操作说明:;------------------------------------------;功能说明:模式选择键按下后,选择循环显示、分路查看,上限设置,下限设置功能;每按一次模式键,对应的模式指示灯会亮起。
;循环显示模式时候,每秒显示一下各路温度状况;分路查看时界面冻结每按一次+或-键进行各路切换;上限设置时每按一次+或-键对各路上限报警进行设置;下限设置时每按一次+或-键对各路下限报警进行设置;------------------------------------------仿真效果图:程序如下:;------------------------------------------;功能说明:模式选择键按下后,选择循环显示、分路查看,上限设置,下限设置功能;循环显示模式时候,每秒显示一下各路温度状况;分路查看时界面冻结每按一次+或-键进行各路切换;上限设置时每按一次+或-键对各路上限报警进行设置;下限设置时每按一次+或-键对各路下限报警进行设置;------------------------------------------;主程序S0EQU30H;50ms计数寄存器MODE_CONT EQU S0+1;模式计数器DS18B20_CONT EQU S0+2HI_TMP_SET_IN EQU S0+3;进水口LOW_TMP_SET_IN EQU S0+4HI_TMP_SET_OUT EQU S0+5;出水口LOW_TMP_SET_OUT EQU S0+6HI_TMP_SET_FRONT EQU S0+7;前后点HI_TMP_SET_BACK EQU S0+8TMP_IN EQU S0+12TMP_OUT EQU S0+13TMP_FRONT EQU S0+14TMP_BACK EQU S0+15DISPLAY_DATA EQU P0;LED数据口KEY_PORT EQU P3;按键口COM_TEMPERL_L BIT P2.7COM_TEMPERL_H BIT P2.6COM_TEMPERH_L BIT P2.5COM_TEMPERH_H BIT P2.4COM_DS18B20_NUM BIT P2.2LED_LOW_SET BIT P3.0LED_HI_SET BIT P3.1LED_CHECK BIT P3.2LED_NORMAL BIT P3.3IN_LED_ALARM_HI BIT P1.1;ININ_LED_ALARM_LOW BIT P1.3OUT_LED_ALARM_HI BIT P1.0;INOUT_LED_ALARM_LOW BIT P1.2FRONT_LED_ALARM_HI BIT P2.0BACK_LED_ALARM_HI BIT P2.1FLAG1BIT20H.5;DS18B20存在标志位DQ1BIT P1.7DQ2BIT P1.6DQ3BIT P1.5DQ4BIT P1.4TEMPER_L EQU28HTEMPER_H EQU27H;------------------------------------------ORG0000HAJMP STARTORG000BH;T0入口LJMP T_INT;------------------------------------------;START初始化;------------------------------------------ORG100HSTART:MOV TEMPER_L,#00HMOV TEMPER_H,#00HMOV MODE_CONT,#00HMOV DS18B20_CONT,#00HMOV HI_TMP_SET_IN,#100;进水口MOV LOW_TMP_SET_IN,#10MOV HI_TMP_SET_OUT,#100;出水口MOV LOW_TMP_SET_OUT,#10MOV HI_TMP_SET_FRONT,#100MOV HI_TMP_SET_BACK,#100CLR TMP_INCLR TMP_OUTCLR TMP_FRONTCLR TMP_BACKMOV S0,#00HMOV TMOD,#01HMOV TH0,#3CH;定时器0,模式1,定时时常50mS MOV TL0,#0B0HMOV IE,#82HMOV KEY_PORT,#0F8HSETB TR0;运行T0LCALL INIT_18B20;------------------------------------------;主函数;------------------------------------------MAIN:LCALL KEYLCALL GET_TEMPER;获取各路温度LCALL DISPLAY;调用显示程序LJMP MAIN;------------------------------------------;T0中服程序,实现1秒一次切换,同时1秒一次的比较各路温度是否超标;------------------------------------------;T0中服程序T_INT:PUSH ACCPUSH PSWMOV TH0,#3CH;定时器0,模式1,定时时常50mSMOV TL0,#0B0H;------------------------------NEXT:INC S0MOV A,S0CJNE A,#14H,ZDMOV S0,#00H;到1S后进行切换INC DS18B20_CONTMOV A,DS18B20_CONTCJNE A,#04H,ZDMOV DS18B20_CONT,#00HLCALL CHECK1;判断各路温度是否超标ZD:POP PSWPOP ACCRETI;-------------------------------------------;ALARM_CHECK;判断各路温度是否超标;-------------------------------------------CHECK1:MOV R0,TMP_INMOV R1,HI_TMP_SET_INLCALL ALARM_CALJZ ALARM_HI_NORMALSETB IN_LED_ALARM_HIJMP CHECK2ALARM_HI_NORMAL:CLR IN_LED_ALARM_HICHECK2:MOV R0,TMP_INMOV R1,LOW_TMP_SET_INLCALL ALARM_CALJNZ CCSETB IN_LED_ALARM_LOWJMP DDCC:CLR IN_LED_ALARM_LOW DD:MOV R0,TMP_OUTMOV R1,HI_TMP_SET_OUTLCALL ALARM_CALJZ EESETB OUT_LED_ALARM_HIJMP DDDEE:CLR OUT_LED_ALARM_HI DDD:MOV R0,TMP_OUTMOV R1,LOW_TMP_SET_OUTLCALL ALARM_CALJNZ FFSETB OUT_LED_ALARM_LOWJMP GGFF:CLR OUT_LED_ALARM_LOW GG:MOV R0,TMP_OUTMOV R1,HI_TMP_SET_FRONTLCALL ALARM_CALJZ HHSETB FRONT_LED_ALARM_HIJMP IIHH:CLR FRONT_LED_ALARM_HI II:MOV R0,TMP_OUTMOV R1,HI_TMP_SET_BACKLCALL ALARM_CALJZ JJSETB BACK_LED_ALARM_HIJMP ALARM_RET1JJ:CLR BACK_LED_ALARM_HI ALARM_RET1:RET;------------------------------------------;R0=R1A=2,R0<R1A=0,R0>R1A=1 ;比较大小;------------------------------------------ALARM_CAL:;R0,R1MOV A,R0SUBB A,R1JC SMALLMOV A,#01HJMP COMP_RETSMALL:MOV A,#0HCOMP_RET:RET;------------------------------------------;显示子程序;时分秒显示;------------------------------------------DISPLAY:MOV DPTR,#TABMOV A,TEMPER_LMOV B,#10DIV ABMOV R4,AMOV R5,BMOV A,R5;温度低位MOVC A,@A+DPTR;显示输出MOV DISPLAY_DATA,ASETB COM_TEMPERL_LLCALL DELAY5MSCLR COM_TEMPERL_LMOV A,R4MOVC A,@A+DPTR;显示输出MOV DISPLAY_DATA,ASETB COM_TEMPERL_HLCALL DELAY5MSCLR COM_TEMPERL_HMOV A,TEMPER_H;温度高位MOV B,#10DIV ABMOV R4,AMOV R5,BMOV A,R5MOVC A,@A+DPTR;显示输出ANL A,#7FH;MOV DISPLAY_DATA,ASETB COM_TEMPERH_LLCALL DELAY5MSCLR COM_TEMPERH_LMOV A,R4MOVC A,@A+DPTRMOV DISPLAY_DATA,ASETB COM_TEMPERH_HLCALL DELAY5MSCLR COM_TEMPERH_HMOV A,DS18B20_CONTINC AMOVC A,@A+DPTR;显示输出MOV DISPLAY_DATA,ASETB COM_DS18B20_NUMLCALL DELAY5MSCLR COM_DS18B20_NUMRET;------------------------------------------;键盘扫描程序;------------------------------------------KEY:;KEY_PORT,#0FFHMOV A,KEY_PORTCPL AANL A,#0F0HJZ RET1LCALL DELAY10MSMOV A,KEY_PORTCPL AANL A,#0F0HJZ RET1JB ACC.7,MODE_CHANGEJB ACC.6,MODE_DEC_JJB ACC.5,MODE_ADD_JJB ACC.4,NUM_ADD_JRET1:RETMODE_DEC_J:LJMP MODE_DECRETMODE_ADD_J:LJMP MODE_ADDRETNUM_ADD_J:LJMP NUM_ADDRETMODE_CHANGE:INC MODE_CONTMOV A,MODE_CONTCJNE A,#04H,MODE_RETMOV MODE_CONT,#00HSETB TR0MODE_RET:LCALL MODE_DEL WAIT:LCALL DISPLAYJNB P3.7,WAITRETMODE_DEL:MOV A,MODE_CONTCJNE A,#00H,MOD_1CLR LED_LOW_SETCLR LED_HI_SETCLR LED_CHECKSETB LED_NORMALRETMOD_1:CJNE A,#01H,MOD_2CLR LED_LOW_SETCLR LED_HI_SETSETB LED_CHECKCLR LED_NORMALCLR TR0RETMOD_2:CJNE A,#02H,MOD_3CLR LED_LOW_SETSETB LED_HI_SETCLR LED_CHECKCLR LED_NORMALCLR TR0RETMOD_3:SETB LED_LOW_SETCLR LED_HI_SETCLR LED_CHECKCLR LED_NORMALCLR TR0RET;-----------------------------------;----------------------------------MODE_DEC:;模式0MOV A,MODE_CONTCJNE A,#00H,MODE_DEC_1 WAIT1:LCALL DISPLAYJNB P3.6,WAIT1RETMODE_DEC_1:;模式1CJNE A,#01H,MODE_DEC_2MOV A,DS18B20_CONTCJNE A,#00H,MODE_DEC_11MOV DS18B20_CONT,#03H WAIT2:LCALL DISPLAYJNB P3.6,WAIT2RETMODE_DEC_11:DEC DS18B20_CONTWAIT3:LCALL DISPLAYJNB P3.6,WAIT3RETMODE_DEC_2:;模式2IN口CJNE A,#02H,MODE_DEC_3MOV A,DS18B20_CONTCJNE A,#00H,MODE_DEC_21DEC HI_TMP_SET_INMOV A,HI_TMP_SET_OUTJNZ MODE_DEC_DELMOV HI_TMP_SET_IN,#64H MODE_DEC_DEL:MOV TEMPER_H,HI_TMP_SET_INMOV TEMPER_L,#00HJMP MODE_DEC_RETMODE_DEC_21:;OUT口MOV A,DS18B20_CONTCJNE A,#01H,MODE_DEC_22DEC HI_TMP_SET_OUTMOV A,HI_TMP_SET_OUTJNZ MODE_DEC_RET1MOV HI_TMP_SET_OUT,#64H MODE_DEC_RET1:MOV TEMPER_H,HI_TMP_SET_OUTMOV TEMPER_L,#00HJMP MODE_DEC_RETMODE_DEC_22:;前点CJNE A,#02H,MODE_DEC_23DEC HI_TMP_SET_FRONTMOV A,HI_TMP_SET_FRONTJNZ MODE_DEC_RET2MOV HI_TMP_SET_FRONT,#64H MODE_DEC_RET2:MOV TEMPER_H,HI_TMP_SET_FRONT MOV TEMPER_L,#00HJMP MODE_DEC_RETMODE_DEC_23:;后点DEC HI_TMP_SET_BACKMOV A,HI_TMP_SET_BACKJNZ MODE_DEC_XMOV HI_TMP_SET_BACK,#64H MODE_DEC_X:MOV TEMPER_H,HI_TMP_SET_BACK MOV TEMPER_L,#00HMODE_DEC_RET:WAIT4:LCALL DISPLAYJNB P3.6,WAIT4RET;------------------------------------;-----------------------------------MODE_DEC_3:;模式3MOV A,DS18B20_CONTCJNE A,#00H,MODE_DEC_21BDEC LOW_TMP_SET_INMOV A,LOW_TMP_SET_INJNZ MODE_DEC_DELBMOV LOW_TMP_SET_IN,#64H MODE_DEC_DELB:MOV TEMPER_H,LOW_TMP_SET_IN MOV TEMPER_L,#00HJMP MODE_DEC_RETBMODE_DEC_21B:;OUT口MOV A,DS18B20_CONTCJNE A,#01H,MODE_DEC_RETBDEC LOW_TMP_SET_OUTMOV A,LOW_TMP_SET_OUTJNZ MODE_DEC_RET1BMOV LOW_TMP_SET_OUT,#64H MODE_DEC_RET1B:MOV TEMPER_H,LOW_TMP_SET_OUT MOV TEMPER_L,#00HMODE_DEC_RETB:WAIT5:LCALL DISPLAYJNB P3.6,WAIT5RET;-----------------------------------;----------------------------------MODE_ADD:MOV A,MODE_CONTCJNE A,#00H,MODE_ADD_1WAIT6:LCALL DISPLAYJNB P3.5,WAIT6RETMODE_ADD_1:;模式1CJNE A,#01H,MODE_ADD_2MOV A,DS18B20_CONTCJNE A,#03H,MODE_ADD_11MOV DS18B20_CONT,#00HWAIT7:LCALL DISPLAYJNB P3.5,WAIT7RETMODE_ADD_11:INC DS18B20_CONTWAIT8:LCALL DISPLAYJNB P3.5,WAIT8RETMODE_ADD_2:;模式2IN口CJNE A,#02H,MODE_ADD_3MOV A,DS18B20_CONTCJNE A,#00H,MODE_ADD_21INC HI_TMP_SET_INMOV A,HI_TMP_SET_OUTCJNE A,#64H,MODE_ADD_DELMOV HI_TMP_SET_IN,#00H MODE_ADD_DEL:MOV TEMPER_H,HI_TMP_SET_IN MOV TEMPER_L,#00HJMP MODE_ADD_RETMODE_ADD_21:;OUT口MOV A,DS18B20_CONTCJNE A,#01H,MODE_ADD_22INC HI_TMP_SET_OUTMOV A,HI_TMP_SET_OUTCJNE A,#64H,MODE_ADD_RET1MOV HI_TMP_SET_OUT,#00H MODE_ADD_RET1:MOV TEMPER_H,HI_TMP_SET_OUTMOV TEMPER_L,#00HJMP MODE_ADD_RETMODE_ADD_22:;前点CJNE A,#02H,MODE_ADD_23INC HI_TMP_SET_FRONTMOV A,HI_TMP_SET_FRONTCJNE A,#64H,MODE_ADD_RET2MOV HI_TMP_SET_FRONT,#00H MODE_ADD_RET2:MOV TEMPER_H,HI_TMP_SET_FRONT MOV TEMPER_L,#00HJMP MODE_ADD_RETMODE_ADD_23:;后点INC HI_TMP_SET_BACKMOV A,HI_TMP_SET_BACKCJNE A,#64H,MODE_ADD_XMOV HI_TMP_SET_BACK,#00HMODE_ADD_X:MOV TEMPER_H,HI_TMP_SET_BACKMOV TEMPER_L,#00HMODE_ADD_RET:WAIT9:LCALL DISPLAYJNB P3.5,WAIT9RET;------------------------------------;-----------------------------------MODE_ADD_3:;模式3MOV A,DS18B20_CONTCJNE A,#00H,MODE_ADD_21BINC LOW_TMP_SET_INMOV A,LOW_TMP_SET_INCJNE A,#64H,MODE_ADD_DELBMOV LOW_TMP_SET_IN,#00H MODE_ADD_DELB:MOV TEMPER_H,LOW_TMP_SET_IN MOV TEMPER_L,#00HJMP MODE_ADD_RETBMODE_ADD_21B:;OUT口MOV A,DS18B20_CONTCJNE A,#01H,MODE_ADD_RETBINC LOW_TMP_SET_OUTMOV A,LOW_TMP_SET_OUTCJNE A,#64H,MODE_ADD_RET1BMOV LOW_TMP_SET_OUT,#64H MODE_ADD_RET1B:MOV TEMPER_H,LOW_TMP_SET_OUT MOV TEMPER_L,#00HMODE_ADD_RETB:WAIT71:LCALL DISPLAYJNB P3.5,WAIT71RET;----------------------------------;----------------------------------NUM_ADD:INC DS18B20_CONTMOV A,DS18B20_CONTCJNE A,#04H,NUM_ADD_RETMOV DS18B20_CONT,#00HNUM_ADD_RET:WAIT81:LCALL DISPLAYJNB P3.5,WAIT81RET;--------------------------------DELAY;延时程序;----------------------------------DELAY5MS:MOV R1,#2;5mS延时#5D1:MOV R2,#248D2:DJNZ R2,D2DJNZ R1,D1RET;------------------------------------------10MS DELAY DELAY10MS:MOV R3,#25;10mS延时D4:MOV R4,#200D3:DJNZ R4,D3DJNZ R3,D4RET;**********DS18B20复位程序***************** INIT_18B20:SETB DQ1SETB DQ2SETB DQ3SETB DQ4NOPNOPNOPNOPCLR DQ1CLR DQ2CLR DQ3CLR DQ4MOV R0,#0FBHTSR1:DJNZ R0,TSR1;延时SETB DQ1SETB DQ2SETB DQ3SETB DQ4MOV R0,#25HTSR2:JNB DQ1,TSR3JNB DQ2,TSR3JNB DQ3,TSR3JNB DQ4,TSR3DJNZ R0,TSR2TSR3:SETB FLAG1;置标志位,表明DS18B20存在AJMP TSR5TSR4:CLR FLAG1LJMP TSR7TSR5:MOV R0,#06BHTSR6:DJNZ R0,TSR6TSR7:SETB DQ1;表明不存在RET;********************设定DS18B20暂存器设定值************** RE_CONFIG:JB FLAG1,RE_CONFIG1RETRE_CONFIG1:MOV A,#0CCH;放跳过ROM命令LCALL WRITE_18B20MOV A,#4EHLCALL WRITE_18B20;写暂存器命令MOV A,#00H;报警上限中写入00HLCALL WRITE_18B20MOV A,#00H;报警下限中写入00HLCALL WRITE_18B20MOV A,#7FH;选择12位温度分辨率LCALL WRITE_18B20RET;*****************读转换后的温度值**************** GET_TEMPER:MOV A,MODE_CONTJZ GET_NEXT;只有模式零才GETCJNE A,#02H,AARETAA:CJNE A,#03H,GET_NEXTRETGET_NEXT:SETB DQ1SETB DQ2SETB DQ3SETB DQ4LCALL INIT_18B20JB FLAG1,TSS2RET;若不存在则返回TSS2:MOV A,#0CCH;跳过ROMLCALL WRITE_18B20MOV A,#44H;发出温度转换命令LCALL WRITE_18B20LCALL INIT_18B20MOV A,#0CCH;跳过ROMLCALL WRITE_18B20MOV A,#0BEH;发出读温度换命令LCALL WRITE_18B20MOV A,DS18B20_CONTCJNE A,#00H,READ_1LCALL READ2_18B20LCALL CHANGE1MOV TMP_IN,TEMPER_HRETREAD_1:MOV A,DS18B20_CONTCJNE A,#01H,READ_2LCALL READ2_18B20_2LCALL CHANGE1MOV TMP_OUT,TEMPER_HRETREAD_2:MOV A,DS18B20_CONTCJNE A,#02H,READ_3LCALL READ2_18B20_3LCALL CHANGE1MOV TMP_FRONT,TEMPER_HRETREAD_3:LCALL READ2_18B20_4;读两个字节的温度LCALL CHANGE1MOV TMP_BACK,TEMPER_HRET;**************************************;***************写DS18B20程序************ WRITE_18B20:MOV R2,#8CLR CWR1:CLR DQ1CLR DQ2CLR DQ3CLR DQ4MOV R3,#6DJNZ R3,$RRC AMOV DQ1,CMOV DQ2,CMOV DQ3,CMOV DQ4,CMOV R3,#23DJNZ R3,$SETB DQ1SETB DQ2SETB DQ3SETB DQ4NOPDJNZ R2,WR1SETB DQ1SETB DQ2SETB DQ3SETB DQ4RET;***********读18B20程序,读出两个字节的温度*********READ2_18B20:MOV R4,#2;低位存在29H,高位存在TEMPER_H MOV R1,#TEMPER_LRE00:MOV R2,#8RE01:CLR CSETB CNOPNOPCLR DQ1NOPNOPSETB DQ1MOV R3,#7DJNZ R3,$MOV C,DQ1MOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV@R1,ADEC R1DJNZ R4,RE00RET;***********读18B20_2程序,读出两个字节的温度********* READ2_18B20_2:MOV R4,#2;低位存在29H,高位存在TEMPER_H MOV R1,#TEMPER_LRE001:MOV R2,#8RE012:CLR CSETB CNOPCLR DQ2NOPNOPNOPSETB DQ2MOV R3,#7DJNZ R3,$MOV C,DQ2MOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE012MOV@R1,ADEC R1DJNZ R4,RE001RET;***********读18B20_3程序,读出两个字节的温度********* READ2_18B20_3:MOV R4,#2;低位存在29H,高位存在TEMPER_H MOV R1,#TEMPER_LRE002:MOV R2,#8RE013:CLR CSETB CNOPNOPCLR DQ3NOPNOPNOPSETB DQ3MOV R3,#7DJNZ R3,$MOV C,DQ3MOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE013MOV@R1,ADEC R1DJNZ R4,RE002RET;***********读18B20_3程序,读出两个字节的温度********* READ2_18B20_4:MOV R4,#2;低位存在29H,高位存在TEMPER_H MOV R1,#TEMPER_LRE003:MOV R2,#8RE014:CLR CSETB CNOPNOPCLR DQ4NOPNOPNOPSETB DQ4MOV R3,#7DJNZ R3,$MOV C,DQ4MOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE014MOV@R1,ADEC R1DJNZ R4,RE003RET;************读出的温度进行数据转换**************CHANGE1:MOV A,MODE_CONTJZ CHANGE1_NEXT;只有模式零和1才GETCJNE A,#02H,BBRETBB:CJNE A,#03H,CHANGE1_NEXTRETCHANGE1_NEXT:MOV A,TEMPER_LANL A,#0FHMOV B,#6HMUL ABMOV R0,AMOV A,TEMPER_LMOV C,TEMPER_H.0;将TEMPER_H中的最低位移入C RRC AMOV C,TEMPER_H.1RRC AMOV C,TEMPER_H.2RRC AMOV C,TEMPER_H.3RRC AMOV TEMPER_H,AMOV TEMPER_L,R0RET;***********************************D1MS:MOV R7,#80;1MS延时(按12MHZ算)DJNZ R7,$RET;*************************TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND;DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,0H;共阴极LED;END。
ds18b20多路温度采集程序
本程序为ds18b20的多路温度采集程序,是我自己参考其他程序后改写而成,可显示4路正负温度值,并有上下限温度报警(声音、灯光报警)。
亲测,更改端口即可使用。
(主要器件:51单片机,ds18b20,lcd 显示器)附有proteus仿真图,及序列号采集程序/****上限62度下限-20度****/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit ds=P1^1;sbit rs=P1^4;sbit e=P1^6;sbit sp=P1^0;sbit d1=P1^2;sbit d2=P1^3;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 "}; unsigned char code table1[]={"0123456789ABCDEF"};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);e=1;delayms(5);e=0;}void lcdinit()//初始化lcd {delayms(15);wrcom(0x38);delayms(5);wrcom(0x0c);delayms(5);wrcom(0x06);delayms(5);wrcom(0x01);delayms(5); }void display(uchar *p)//显示{while(*p!='\0'){wrdat(*p);p++;delayms(1);}}displayinit()//初始化显示{lcdinit();wrcom(0x80);display(table0);}/****ds18b20程序****/ void dsrst()//ds18b20复位{uint i;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bit dsrd0()//读一位数据{uint i;bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return(dat);}uchar dsrd()//读1个字节数据{uchar i,j,dat;dat=0;for(i=8;i>0;i--){j=dsrd0();dat=(j<<7)|(dat>>1);}return(dat);}void dswr(uchar dat)//写数据{uint i;uchar j;bit testb;for(j=8;j>0;j--){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}void tmstart()//初始化ds18b20 {sp=1;d1=1;d2=1;dsrst();delayms(1);dswr(0xcc);dswr(0x44);}void read_dealtemp()//读取并处理温度{uchar i,j,t;uchar a,b;for(j=0;j<4;j++){dsrst();delayms(1);dswr(0x55);for(i=0;i<8;i++){dswr(lcdrom[j][i]);//发送64位序列号}dswr(0xbe);a=dsrd();b=dsrd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0){d1=1;tvalue=~tvalue+1;wrcom(0xc0);wrdat(0x2d);if(tvalue>warnl){d2=0;sp=0;}else{d2=1;sp=1;}}else{d2=1;wrcom(0xc0);wrdat(' ');if(tvalue>warnh){d1=0;sp=0;}else{d1=1;sp=1;}}if(j==0){wrcom(0x8e);wrdat('2');}if(j==1){wrcom(0x8e);wrdat('3');}if(j==2){wrcom(0x8e);wrdat('4');}if(j==3){wrcom(0x8e);wrdat('5');}ftvalue=tvalue*0.0625; tvalue=ftvalue*10+0.5;ftvalue=ftvalue+0.05;f[j]=tvalue;//温度扩大十倍,精确到一位小数tvalue=f[j];t=tvalue/1000;wrcom(0x80+0x41);wrdat(table1[t]);//显示百位t=tvalue%1000/100;wrdat(table1[t]);//显示十位t=tvalue%100/10;wrdat(table1[t]);//显示个位wrdat(0x2e); //显示小数点儿t=tvalue%10/1;wrdat(table1[t]);//显示小数位delayms(5000);}}/****主函数****/void main(){d1=1;d2=1;sp=1;displayinit();//初始化显示while(1){tmstart();//初始化read_dealtemp();//读取温度}}/****序列号读取程序****/#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit DQ = P1^1; //温度传感器信号线sbit rs = P1^4; //LCD数据/命令选择端(H/L)位声明sbit lcden = P1^6; //LCD使能信号端位声明void delay(uint z); //延时函数void DS18B20_Reset(void); //DQ18B20复位,初始化函数bit DS18B20_Readbit(void); //读1位数据函数uchar DS18B20_ReadByte(void); //读1个字节数据函数void DS18B20_WriteByte(uchar dat); //向DQ18B20写一个字节数据函数void LCD_WriteCom(uchar com); //1602液晶命令写入函数void LCD_WriteData(uchar dat); //1602液晶数据写入函数void LCD_Init(); //LCD初始化函数void Display18B20Rom(char Rom); //显示18B20序列号函数/**********************************************//* 主函数*//**********************************************/void main(){ uchar a,b,c,d,e,f,g,h;LCD_Init();DS18B20_Reset();delay(1);DS18B20_WriteByte(0x33);delay(1);a = DS18B20_ReadByte();b = DS18B20_ReadByte();c = DS18B20_ReadByte();d = DS18B20_ReadByte();e = DS18B20_ReadByte();f = DS18B20_ReadByte();g = DS18B20_ReadByte();h = DS18B20_ReadByte();LCD_WriteCom(0x80+0x40);Display18B20Rom(h);Display18B20Rom(g);Display18B20Rom(f);Display18B20Rom(e);Display18B20Rom(d);Display18B20Rom(c);Display18B20Rom(b);Display18B20Rom(a);while(1);}/***************************************************//* 延时函数:void delay() *//* 功能:延时函数*//***************************************************/ void delay(uint z)//延时函数{uint x,y;for( x = z; x > 0; x-- )for( y = 110; y > 0; y-- );}/***************************************************//* DS18B20函数:void DS18B20_Reset() *//* 功能:复位18B20 *//***************************************************/ void DS18B20_Reset(void)//DQ18B20复位,初始化函数{uint i;DQ = 0;i = 103;while( i > 0 ) i--;DQ = 1;i = 4;while( i > 0 ) i--;}/***************************************************//* DS18B20函数:void DS18B20_Readbit() *//* 功能:读1个字节数据函数*//***************************************************/bit DS18B20_Readbit(void) //读1位数据函数{uint i;bit dat;DQ = 0;i++; //i++起延时作用DQ = 1;i++;i++;dat = DQ;i = 8;while( i > 0 )i--;return( dat );}/***************************************************//* DS18B20函数:void DS18B20_ReadByte() *//* 功能:读1个字节数据函数*//***************************************************/ uchar DS18B20_ReadByte(void) //读1个字节数据函数{uchar i,j,dat;dat = 0;for( i = 1; i <= 8; i++ ){j = DS18B20_Readbit();dat = ( j << 7 ) | ( dat >> 1 );}return(dat);}/***************************************************//* DS18B20函数:void DS18B20_WriteByte() *//* 功能:向DQ18B20写一个字节数据函数*//***************************************************/ void DS18B20_WriteByte(uchar dat) //向DQ18B20写一个字节数据函数{uint i;uchar j;bit testb;for( j=1; j<=8; j++){testb = dat&0x01;dat= dat>>1;if(testb) //写1{DQ = 0;i++;i++;DQ = 1;i = 8;while(i>0)i--;}else{DQ = 0; //写0i = 8;while(i>0)i--;DQ = 1;i++;i++;}}}/***********************************************//* LCD函数:void LCD_WriteCom()/* 功能:向LCD写入命令*//***********************************************/void LCD_WriteCom(uchar com){rs = 0;P3= com;delay(5);lcden = 0;delay(5);lcden = 1;delay(5);lcden = 0;}/***********************************************//* LCD函数:void LCD_WriteData(uchar dat) *//* 功能:向LCD写入数据*//***********************************************/void LCD_WriteData(uchar dat)rs = 1; //选择LCD为写入数据状态lcden = 0;P3= dat; //将待写入数据放到总线上delay(5);lcden = 1; //给LCD使能端一个脉冲delay(5); //信号将之前放到总线上lcden = 0; //的数据写入LCDdelay(5);}/***********************************************//* LCD函数:void LCD_Init() *//* 功能:初始化LCD,设定LCD的初始状态*//***********************************************/void LCD_Init(){LCD_WriteCom(0x38); //LCD显示模式设定delay(15);LCD_WriteCom(0x08); //关闭LCD显示delay(3);LCD_WriteCom(0x01); //LCD显示清屏delay(3);LCD_WriteCom(0x06); //设定光标地址指针为自动加1delay(3);LCD_WriteCom(0x0c); //打开LCD显示,但不显示光标}/**********************************************//**//* 显示18B20序列号*//*/**********************************************/void Display18B20Rom(char Rom){uchar h,l;l = Rom & 0x0f; //取低4位h = Rom & 0xf0; //取高4位h >>= 4;if( ( h >= 0x00 )&&( h <= 0x09 ) )LCD_WriteData(h+0x30);//取ASCII码elseLCD_WriteData(h+0x37);//取ASCII码if( ( l >= 0x00 )&&( l <= 0x09 ) )LCD_WriteData(l+0x30); //取ASCII码elseLCD_WriteData(l+0x37); //取ASCII码}。
多路温度监测实验报告
一、实验目的1. 掌握多路温度监测系统的基本原理和设计方法。
2. 熟悉温度传感器的应用和特性。
3. 学会使用相关电子元件和仪器进行系统搭建。
4. 提高动手能力和实践操作技能。
二、实验原理多路温度监测系统主要利用温度传感器对多个测温点进行实时监测,并将采集到的温度数据传输到上位机进行处理和分析。
本实验采用DS18B20温度传感器和AT89C51单片机为核心控制器,通过单总线接口实现多路温度数据的采集。
三、实验仪器与设备1. 单片机开发板:AT89C512. DS18B20温度传感器:3个3. LCD1602显示屏:1个4. 按键模块:1个5. 电源模块:1个6. 蜂鸣器:1个7. 连接线:若干四、实验步骤1. 系统搭建:(1)将AT89C51单片机插入开发板,连接电源模块;(2)将3个DS18B20温度传感器通过单总线接口连接到AT89C51单片机的P3.7端口;(3)将LCD1602显示屏、按键模块、蜂鸣器等外围设备连接到相应的端口;(4)连接电源,确保系统正常工作。
2. 程序编写:(1)编写AT89C51单片机程序,实现温度采集、显示、报警等功能;(2)编写LCD1602显示屏显示程序,显示当前温度、温度状态、温度阈值等信息;(3)编写按键模块控制程序,实现温度阈值设置、模式切换等功能;(4)编写蜂鸣器报警程序,当温度超过阈值时,蜂鸣器发出报警声。
3. 系统测试:(1)启动系统,观察LCD1602显示屏是否正常显示温度信息;(2)调整按键模块,设置温度阈值,观察系统是否能够正确判断温度是否超过阈值;(3)将温度传感器放置在不同温度环境下,观察系统是否能够准确采集温度数据。
五、实验结果与分析1. 系统搭建成功,LCD1602显示屏正常显示温度信息;2. 通过按键模块设置温度阈值,系统能够正确判断温度是否超过阈值;3. 将温度传感器放置在0℃、25℃、50℃等不同温度环境下,系统能够准确采集温度数据。
多路温度采集和显示系统设计与实现
目录第一章多路温度采集显示系统的设计要求与设计方案 (3)1.1系统设计任务与要求 (13)1.2系统总体方案的设计 (3)第二章主控模块的设计 (6)2.1 8051单片机的特点及引脚 (6)2.2 8051芯片的引脚 (6)2.3 8051单片机的扩展及系统电路 (8)第三章信号输入通道与信号采样模块的设计 (11)3.1 A/D芯片的选用及说明 (11)3.2信号采样模块的电路设计 (15)第四章显示系统、报警系统及键盘控制 (19)4.1显示系统的设计 (19)4.2报警系统的设计 (23)4.3 键盘控制的设计 (25)第五章系统的电源设计 (26)5.1电源系统的组成 (26)5.2电源设计原理 (26)5.3电路 (27)第六章系统软件设计 (28)6.1 主控模块的程序设计 (28)6.2 LED显示程序设计 (32)6.3 报警系统的程序设计 (33)结论 (36)致谢 (37)参考文献 (38)附录1:程序清单 (39)摘要基于51单片机的车用数字温度仪表设计与实现众所周知,车辆仪表作为驾驶员与汽车进行信息交流的重要接口和平台,是车辆安全行驶的重要保证。
随着电子技术的广泛应用,传统汽车仪表逐渐被微处理器为核心的电子控制数字仪表取代已成为必然趋势。
然而,目前国内车辆仪表数字化水平还不高,绝大部分仪表还是模拟式的,而大多数模拟仪表表头的体积较大、数量多,使得显示系统拥挤不堪,影响美观;另外一些模拟仪表故障率高,增加了用户的经济负担,减小了车辆行使的安全系数。
为克服这些缺点,文中提出用51单片机、模/数转换器件ADC0809及霍尔开关及数字式温度传感器DS18B20等对其进行技术改进,设计并实现了新型全数字仪表系统,该仪表系统有显示直观准确、灵敏度高、使用寿命长、灵巧美观、成本低等优点。
本文设计是以MCS-51单片机系统为基础的,通过热电阻变送器对热电阻随温度的变化而得到的模拟信号进行采集,连接多路模拟开关实现多路模拟信号的采集,并通过A/D转换器对模拟信号进行数模转换,把转换得到的数字信号按照顺序分别送入单片机或把指定的那路信号送入单片机,通过单片机进行控制操作,通过对单片机的数据存储器的扩展和程序存储器的扩展来提高片内存储器.数据存储器的容量,以便于在单片机的应用中满足单片机在定时器、中断、串行口等方面的要求;本设计是通过LED来实现单片机的现实系统的,通过单片机对多路模拟开关的控制进行多选一,把其中一路的信号经过A/D转换器的转换,在通过单片机把采集到的信号送到LED电路当中进行显示,此设计中LED显示使用的串行接口来显示的,它是通过人的视觉斩留特性,只观赏感觉是连续点亮的;本文通过单片机报警系统来实现热电阻传感器随测量的温度范围200~700摄氏度,若超出这个温度范围则报警。
多路信号采集显示系统设计与实现
多路信号采集显示系统设计与实现多路信号采集显示系统是一种用于获取并显示多路信号的设备。
它通常由多个信号采集单元、信号处理单元和显示单元组成。
在多路信号采集显示系统中,每个信号采集单元负责采集一路信号。
这些信号可以是来自于传感器、电压、电流、温度、压力等等。
采集的信号经过信号处理单元进行预处理,包括放大、滤波、变换等操作,以消除干扰、增强信号质量。
处理后的信号再经过显示单元进行实时显示。
1. 信号采集单元的设计。
信号采集单元要能够接受不同类型的信号输入,并进行适当的处理和转换。
采集单元需要有高精度、高速度和低噪声的特性,以确保采集到的信号准确可靠。
2. 信号处理单元的设计。
信号处理单元负责对采集到的信号进行预处理,包括放大、滤波、变换等操作。
预处理的目的是提高信号的质量,减少干扰和噪声。
3. 显示单元的设计。
显示单元用于实时显示经过处理的信号。
它可以采用液晶显示器、LED显示屏等设备,具有高清晰度、高对比度和高刷新率等特点。
显示单元还可以支持图像、曲线和图表等多种显示方式,以满足不同用户的需求。
4. 系统的集成与调试。
系统的集成是将采集单元、处理单元和显示单元进行连接和组装,确保它们能够正常工作。
在调试过程中,需要进行实时监测和数据分析,以确认系统的稳定性和可靠性。
多路信号采集显示系统广泛应用于工业自动化、医疗检测、科研实验、环境监测等领域。
它可以实时采集和显示多种类型的信号,帮助用户了解和分析现场情况,提高工作效率和质量。
多路信号采集显示系统的设计与实现是一项技术复杂且具有挑战性的任务。
它需要综合考虑硬件和软件的要求,并具备高精度、高速度和高稳定性的特点。
只有通过精心设计和严谨调试,才能保证系统的正常运行和可靠性使用。
多路温度检测显示与报警系统设计详解
课程设计报告课题多路温度检测、显示与报警系统设计小组成员指导老师目录一、前言 (1)二、方案论证 (1)2.1测温元件的选择 (1)2.1.1热电偶和热电阻的选择 (1)2.1.2热电偶的分类 (2)2.2采集模块的选择 (3)2.2.1多功能采集卡 (3)2.2.2 USB采集卡 (4)2.2.3采集模块ADAM-4000系列 (4)2.2.4采集模块ADAM-5000系列 (5)三、硬件电路设计 (6)3.1系统结构方框图 (7)3.2采集模块与主机电路 (7)3.3采集模块与设备电路 (8)四、软件设计 (9)4.1组态界面的设计 (9)4.2报警系统的设计 (9)4.3实时温度数据曲线的设计 (11)多路温度检测、显示与报警系统设计一、概述随着现代信息技术的飞速发展,温度测量控制系统在工业、农业和人们的日常生活中扮演着越来越重要的角色,它对人们的生活具有巨大的意义。
在工业生产和日常生活中,经常要对温度进行测量和控制,并且有时是多个点进行温度测量,比如冷库温度监控、环境温度测量等。
在这种情况下多点温度检测系统应运而生。
多点温度检测系统通常能对多个工作点进行温度检测,显示当前温度,并且能够对温度进行存储和报警,还能将温度上传到PC机上进行后续处理。
本次课程设计将采用研华数据采集卡ADAM-5000,选用K型镍铬-镍硅热电偶,利用组态软件MCGS和通过计算机,完成6点温度的检测、显示和报警系统。
任务要求:采用研华数据采集卡ADAM-5000,选用合适的测温元件,利用组态软件MCGS和通过计算机,完成10点温度的检测、显示与报警系统。
⑴测温范围及报警要求⑵自动连续读取并显示温度测量值,测绘测量温度实时变化曲线;⑶统计采集的温度平均值,最大值与最小值;⑷实现温度上、下限报警。
二、方案论证2.1测温元件的选择2.1热电偶和热电阻的选择热电阻温度计是基于热电阻效应而工作的。
所谓热电阻效应,是指电阻体阻值随温度变化而变化的性质。
多路温度采集与控制1(C51、ADC0808)
单片机原理与应用课程设计设计题目:温度测控系统设计设计时间:2011-2012第一学期专业班级:电自化2008级3班姓名学号:王勇20082390指导老师:赵丽清2011 年12 月25 日目录目录 0第一章设计要求及目的 (2)第二章系统总体方案选择与说明 (3)第三章系统方框图与工作原理 (4)第四章器件说明 (6)4.1 单片机89C51说明 (6)4.2 ADC0809说明 (6)4.3 ADC0809 应用说明 (7)4.4 LED显示器 (8)4.5 8255可编程器件扩展并行接口 (9)第五章软件设计与说明.................. 错误!未定义书签。
5.1 程序设计 (17)总结.................................. 错误!未定义书签。
参考文献 (25)第一章设计要求及目的数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一.这次设计用到的集成芯片主要有8051单片机、ADC0808等.ADC0800主要作用是对八路模拟信号进行选择采集,并将其转化为八位数字信号,再送至主控制器(8051单片机);软件部分即为控制单片机的工作进程,程序由汇编语言完成并在PROTEUCE开发软件中进行的调试与仿真.设计要求:●温度检测范围0 ℃ ~ 64℃;●选择合适的方式对采集的值应进行数字滤波;●数码管显示,同时显示通道号;●具有超限报警功能;●可通过键盘设置上、下限值。
第二章系统总体方案选择与说明为了充分利用学校的有效资源,我们仅仅对本课题做一个简单的设计,八路模拟信号数值测量显示电路由A/D转换、数据处理及显示控制等组成。
多路温度采集与处理
第五章 结论............................................................................................ 47 致 谢......................................................................................................... 48 参考文献.................................................................................................... 49
3.3 ZLG7289A........................................................................... 30
第四章 通信系统设计........................................................... 33
4.1 串行通信概述................................................................... 33 4.1.1 并行数据传送与串行数据传送............................. 33 4.1.2 单工方式、半双工、全双工方式......................... 34 4.1.3 异步传输和同步传输............................................. 35 4.1.4 波特率..................................................................... 35 4.2 RS232 总线...................................................................... 35 4.2.1 4.2.2 RS-232-C.............................................................. 36 RS-232 收发器..................................................... 37
基于LABVIEW串口的现场实时多通道温度采集测量与实现
Abstract
Temperature is one of the most basic parameters in the machining and temperature detection and monitoring is commonly found in the production. In CNC machining, thermal error of CNC machine need to be calculated, and thermal error compensation is implemented. Through the thermal error compensation techniques to achieve the purpose of the improvement of precision CNC machining. So the study of a multi-channel temperature acquisition and real-time monitoring system based on serial communication has an important significance to improve the performance of industrial control and production efficiency. This article design a multi-channel temperature acquisition circuit of CNC machine. It can acquire four channel temperature data at the same time, also the display of these data is real-time. The method also can set temperature alarming range and if the data exceed the range the system will warn. And using the serial port to realize the single chip microcomputer and computer communication, using upper computer to complete data processing and display of temperature, etc. Temperature measuring precision less than 0.5 ℃. STC89C52 is the main control chip of the design, and LCD1602 is used to display the temperature value, and temperature sensor TC1047 is used for temperature acquisition. Temperature sensor output voltage will by RC filter circuit and amplifier circuit which is composed of operational amplifier OP07, and then through the A/D conversion .finally, through the RS232 serial port sent the digital quantity to upper computer for data processing and display, and the upper computer is wrote by LABVIEW. Can set the temperature data acquisition rate, and can set temperature limit through upper computer, and the collected data can be stored your computer in TXT or XLS format. The design of hardware circuit is based on stable, viable, low-cost design ideas. And the design of software uses modular method. And finally by finishing and debugging of the circuit, we verify the feasibility of the design and also we achieve to the expected results of the design.
多路温度监测显示系统设计
目录1 设计任务 (1)1.1任务条件 (1)1.2 技术要求 (1)1.3 已知条件 (1)2 系统整体框图设计 (1)2.1设计原理 (1)2.2系统框图 (2)2.3 系统总体说明 (2)3 系统硬件设计 (3)3.1 稳压电源设计 (3)3.1.1 稳压电压设计原理 (3)3.1.2 稳压电源设计电路 (4)3.2 传感器与多路开关的选择 (5)3.2.1 传感器选用 (5)3.2.2 多路开关选择 (5)3.3 信号处理电路设计 (7)3.3.1 减法电路 (7)3.3.2 陷波器电路 (8)3.3.3 放大电路 (9)3.4 A/D转换电路设计 (9)3.5 显示电路设计 (11)3.6 声光报警电路设计 (12)3.7 键盘输入设计 (13)4 系统软件设计 (15)4.1 系统主程序 (15)4.2 定时程序 (16)4.3 LED显示程序 (16)4.4故障报警程序 (17)4.5波码盘输入程序 (18)4.6 数字滤波程序 (19)5 系统仿真与误差分析 (19)6 设计小结 (20)参考文献 (21)附录一软件程序 (22)附录二电路图 (26)智能温度采集和显示系统设计1 设计任务1.1任务条件某化工厂需要连续监测8个反应罐的温度,设计一个智能温度数据采集和显示系统。
1.2 技术要求① 0-3号罐温度允许范围:101℃-199℃,测量精度不低于±0.5℃;② 4-7号罐温度允许范围:301℃-349℃,测量精度不低于±0.3℃;③罐号和温度同时显示,显示精度均为1℃,显示间隔为2秒;④温度越限±1℃,进行声光报警并持续显示故障罐号及温度,同时不影响其它罐的温度测量;1.3 已知条件①已知温度传感器的灵敏度均为10mV/℃,工作电压为+5V;(为简单起见,设8位A/D的分辨率为20mV)②现场有较严重的随机脉冲干扰(幅值≥5V)和50Hz工频干扰(最大值达20mV)。
多路温度采集和显示系统设计与实现
目录1、课程设计的题目与要求 (2)1.1课程设计题目 (2)1.2课程设计任务与要求 (2)2、课程设计实现的方案 (2)3、模块功能 (2)3.1 温度监控 (2)3.2 显示模块 (2)3.3 报警电路 (2)3.4 无线传送模块 (3)4、温度监控的实现 (3)4.1 DS18B20简介 (3)4.2电路设计 (3)5、显示模块的实现 (4)5.1字符型液晶显示模块 (4)5.2字符型液晶显示模块引脚 (5)5.3字符型液晶显示模块内部结构 (5)6、无线传送模块的实现 (6)6.1无线发送电路 (6)6.2无线接收模块 (6)7、程序设计流程图 (7)8、课程设计体会 (8)9、参考文献 (8)附录1:程序 (9)附录2:实物图 (12)小型多路温湿度采集系统1、课程设计的题目与要求1.1课程设计题目课程设计的题目是小型多路温湿度采集系统。
用于测量掌握多点的温湿度信息。
1.2课程设计任务与要求设计任务:设计并制作一个至少2路的温度采集系统。
设计要求:(1) 测温范围0~100℃;(2) 测温精度±2℃;(3) LED数码管显示,显示方式为点测与巡测(多点测);(4) +5V,±15V外部电源供电;(5) 用1个按键用于显示摄氏度或华氏度切换(6) 设计报警电路,当温度高于一定的温度时就报警;(7) 测温点与控制显示部分拉长距离,即无线测温。
遥测距离100m。
(8) 增加湿度的测量2、课程设计实现的方案采用数字温度传感器DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线性度较好。
在0~100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
Z7-882多路无线温度采集仪使用说明pdf
一.用途:多路无线温度信号(Pt100、Pt1000、Ni1000等)采集,适用于高精度多路的温度测量。
本产品支持最多8路两线制或4路三线制温度测量。
使用标准Modbus RTU通讯协议通讯,能够和组态软件、PLC、触屏等标准设备直接连接使用。
二.特点:长期稳定性好测量温度范围宽、精度高抗干扰设计灵敏度高,温漂小使用灵活,两线制三线制自由配置支持433MHz无线通讯,通过无线转换模块Z7-871,可以与各种设备进行通讯。
三.主要技术参数:测温范围:-100℃~ +270℃(取决于传感器类型)测温路数:最多8路两线制、4路三线制(或者4-8路两三线制混合使用)最小测量精度:0.1℃传感器类型:Pt100、Pt1000、Ni1000(其他可定制)环境温度:-10 ~ +60℃环境湿度:5%RH~95%RH供电电源:+9V~ +30V精确度:±0.2℃AD 精度:16位传输距离:>1.2Km通讯接口:RS485(Modbus RTU通讯协议)通讯波特率:1200(默认),2400,4800,9600通讯参数:N,8,1(默认);N,8,2;O,8,1;E,8,1传输方式:433MHz四.外形及尺寸:安装方式: 导轨安装外型尺寸:121mm ×71.5mm ×25.5mm五.接线:1.两线制接线方法(此图为产品通用接线示意图)COM AI6COMAI5AI4AI3AI2AI1注:COM 为公共端,端子上2个COM 内部已连接在一起。
AI1-AI8分别接8路温度传感器(热电阻)一端,COM 接入所有传感器另一端,完成最多8路温度测量。
不使用通道可以不接传感器。
上图中为使用1、2、3通道接入3个传感器,其他未接。
2.三线制接线方法(此图为产品通用接线示意图)注:如果传感器与本设备之间所用线缆长度过长(线缆电阻不可忽略不计),建议使用3线制消除线缆的影响。
1路三线制测量占用2路两线制通道(最多可以同时测量4路三线制)。
TC系列多路温度测试仪操作指导书
TC系列多路温度测试仪操作指导书
一、前面板有一个显示窗口共七位数码管,其中左边二位显示对应于后面板的信号路数,右四位显示对应于显示路数的温度测量值。
各按键功能介绍如下;
二、设定、↑、→、。
.键为参数设定键。
测量前,需正确设定参数,按设定键,仪表设置的参数和参数值依次循环出现在窗口第一位和末两位,第一位显示参数符号,依次是:h(定时打印间隔小时值);n(定时打印间隔分钟值);b(串行口波特率);A(串行口地址)。
三、以上的四个参数设定完毕,参数值自动写入EPROM中,因此,仪器断电后,参数值仍将保存在仪表中。
注:用→键指定当前设定位,(当前设定位闪烁显示),用↑键设定位当前的值,用•键设定当前参数小数点的位置。
巡检键:按下该键,对应指示灯亮,仪器处于循环检测状态,显示窗口右四位先显示1——X(X为设定的路数),而后自动逐路显示对应路数的温度测量值。
连续按该键,X值自动递减。
定点键:按下该键,对应指示灯亮,显示窗口右第一位先显示所要定点测量的路数,而后显示对应路数的温度测量值。
连续按该键,路数递增。
打印键:按下该键,对应指示灯亮,仪器处于打印状态,打印机准备就绪,打印机以固定格式打印各路温度值。
注意事项:该多路温度测试仪用于非带电物体温度场的检测。
多路温度采集及显示报告
湖北理工学院课程设计报告课程名称:电子设计开放性试验设计题目:多路温度采集及显示系统系别:数理学院专业:应用物理学班级:学生姓名:学号:起止日期:指导教师:教研室主任:指导教师评语:指导教师签名:年月日成绩评定项目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字:年月日教学系审核意见:主任签字:年月日答辩记录摘要在工业控制领域中,温度是一个十分重要的参考量,准确而实时的控制温度对于我们的工作有事半功倍的效果。
而在一些传统的温度测控系统中,存在着数据显示方式单一、数据无法长期存储、调用以及系统接口过于复杂的问题,寻求这些问题的解决方案成为当前研究的焦点。
多路温度采集系统由主控制器、温度采集电路、温度显示电路、报警控制电路及键盘输入控制电路组成。
它利用单片机P87C51做控制及数据处理器、ADC0809N做温度检查器、LED数码显示管做温度显示输出设备。
硬件电路比较简单,成本较低,测温范围大,测量精度高,读数显示直观,使用方便。
近年来单线多点数字化测量技术的发展使温度检测技术实现了快速、可靠、低成本、数字化与网络化。
新型的温度采集系统能采用新型单线智能化温度传感器,能以数字形式直接输出被测点温度值,具有测温误差小、分辨率高、抗干扰能力强、成本低、能远程传输数据等优点。
关键词: 单片机控制;温度测量;模数转换电路;数码管显示器目录设计内容、要求及分工 (1)1 实现方案及总体设计 (1)2 原理图的设计 (3)2.1 温度采集电路设计 (3)2.2 显示电路设计 (4)3 系统程序设计 (5)3.1 主程序设计 (5)3.2 子程序设计. (6)4 详细仪器清单 (9)5 总结与思考及致谢 (9)参考文献 .................................................................................................. 错误!未定义书签。
多路温度采集系统设计
摘要:本次设计介绍了基于单片机AT89C51控制DS18B20的智能温度显示,给出了该显示仪的硬件电路及详细说明,重点介绍了DS18B20与单片机的接口设计以及数字温度计的软件的主程序、DS18B20读写程序和显示程序,并给出了基于PROTEUS软件的电路仿真图。
该仪表具有简单、稳定、实用、精度高等优点。
关键字:单片机、DS18B20、温度、精度高、实用。
1.前言 (3)2.设计总体方案 (4)2.1设计内容 (4)2.2设计要求 (4)3.器件的选择 (5)3.1 单片机A T89C51 (5)3.2 温度传感器DS18B20 (5)3.3 1602LCD显示屏 (7)4.模块设计 (9)4.1晶振电路与复位电路 (9)4.2温度采集电路 (10)4.3显示电路 (11)4.4 报警系统 (12)5.总结 (13)附录1:电路图 (14)附录2:源代码 (15)1.前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。
单片机在测控领域中具有十分广泛的应用,它既可以测量电信号,又可以测量温度湿度等非电信号。
由单片机构成的温度检测、温度控制系统可广泛应用于很多领域。
单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。
今天,我们的生活环境和工作环境有越来越多称之为单片机的小电脑在为我们服务。
时下,家用电器和办公设备的智能化、遥控化、模糊控制化己成为世界潮流,而这些高性能无一不是靠单片机来实现的。
人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
测量温度的关键是温度传感器,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域。
温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
基于单片机的远程多路温度采集系统
基于单片机的远程多路温度采集系统
基于单片机的远程多路温度采集系统是一种常见的温度监测系统。
它通过多个传感器来采集各个位置的温度,并通过无线通信技术将数据上传至远程服务器进行处理,最终实现对多个位置的温度监测和远程管理。
该系统由多个温度传感器、单片机、无线通信模块、显示屏等部分组成。
采用数字温度传感器来检测环境的温度,并将温度值通过单片机进行采集和处理。
之后,单片机再将处理后的数据通过无线通信模块发送到远程服务器上进行处理和存储。
通过显示屏可以直观地显示温度信息,也可以通过远程管理系统进行远程查看和调整。
基于单片机的远程多路温度采集系统具有许多优点。
首先,通过数字温度传感器进行温度测量,精度更高且测量数据更加稳定。
其次,该系统实现了远程无线数据通信,避免了数据传输的受限和线路的限制。
最后,可视化的显示屏和远程管理系统方便用户对温度数据进行监测和管理。
该系统适用于许多领域。
例如,田间地头或实验室实时监测不同位置的温度变化,以确保样品或产品在特定环境下的稳定性;也适用于疾病预防和监测领域,在医院和公共场合中监测人员的体温情况以预防疾病的传播。
总之,基于单片机的远程多路温度采集系统是一种方便实用
的温度监测系统。
它可以帮助用户实现对多个位置的温度监控,
通过远程无线通信技术实现数据传输。
在实际应用中,该系统为不同领域的使用者提供了更为方便的温度监测和管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖北理工学院课程设计报告课程名称:电子设计开放性试验设计题目:多路温度采集及显示系统系别:数理学院专业:应用物理学班级:学生姓名:学号:起止日期:指导教师:教研室主任:ﻩ答辩记录摘要在工业控制领域中,温度就就是一个十分重要得参考量,准确而实时得控制温度对于我们得工作有事半功倍得效果。
而在一些传统得温度测控系统中,存在着数据显示方式单一、数据无法长期存储、调用以及系统接口过于复杂得问题,寻求这些问题得解决方案成为当前研究得焦点。
多路温度采集系统由主控制器、温度采集电路、温度显示电路、报警控制电路及键盘输入控制电路组成。
它利用单片机P87C51做控制及数据处理器、ADC0809N做温度检查器、LED数码显示管做温度显示输出设备。
硬件电路比较简单,成本较低,测温范围大,测量精度高,读数显示直观,使用方便。
近年来单线多点数字化测量技术得发展使温度检测技术实现了快速、可靠、低成本、数字化与网络化。
新型得温度采集系统能采用新型单线智能化温度传感器,能以数字形式直接输出被测点温度值,具有测温误差小、分辨率高、抗干扰能力强、成本低、能远程传输数据等优点。
关键词: 单片机控制;温度测量;模数转换电路;数码管显示器目录设计内容、要求及分工 (1)1实现方案及总体设计ﻩ12 原理图得设计ﻩ32、1 温度采集电路设计ﻩ32、2显示电路设计 (4)3 系统程序设计 (5)3、1主程序设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、53、2子程序设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、64详细仪器清单、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、95 总结与思考及致谢 (9)参考文献1ﻩ0附录一:原理图 (11)附录二:PCB图 (12)附录三:程序、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、12多路温度采集及显示系统设计内容、要求及分工温度就就是一种最基本得环境参数,人们得生活与环境温度息息相关,因此研究温度得测量方法与装置具有重要得意义。
温度测量装置得关键就就是温度传感器,温度传感器得发展经历了三个发展阶段:(1)传统得分立式温度传感器,(2)模拟集成温度传感器,(3)智能集成温度传感器。
目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化得方向飞速发展。
本人选择多路温度采集系统设计。
系统主要技术指标:(1)4路温度采集电路;(2)A/D转换;(3)电子开关;(4)实时温度显示,采用LED数码管显示。
本次设计我们由五人为一组,朱其攀就就是我们小组得组长,负责实验报告部分;胡仲祥负责课程设计部分;黄治雄主要负责部分,黄明负责原理图与PCB图得完成;胡永志则负责软件部分得设计及其调试。
1实现方案及总体设计P87C51RA2/RB2/RC2/RD2 单片8 位微控制器采用先进得CMOS 工艺制造,就就是80C51 微控制器家族得派生品。
其指令集与80C51指令集完全相同。
该器件可通过并行编程得方法对一个OTP 位进行编程,从而选择6时钟或12时钟模式。
此外,也可通过时钟控制寄存器CKCON 中得X2 位选择6 时钟或12 时钟模式。
该器件还包含有4 个8 位I/O 口、个16 位定时/计数器、多个中断-4中断优先级-嵌套得中断结构、1个型UART、片内振荡器及实序电路。
新增得特性使得P87C51RA2/RB2/RC2/RD2成为功能更强大得微控制器,更地支持应用于脉宽调制,高速I/O 递增/递减计数能力如电机控制等场合。
图1 数字式多路温度采集系统结构框图采用智能温度传感器采集环境温度并进行简单得模数转换;单片机P87C51执行程序对温度传感器传输得数据进行进一步得分析处理,转换成环境对应得温度值,通过I/O 口输出到数码显示管(L ED )显示;由键盘输入控制选择某采集电路检测温度及显示;报警电路对设定得最高最低报警温度进行监控报警。
主要由温度传感器、P87C51单片机微控制器、以及数据传输显示三部分组成。
图2系统原理简易图 本系统采用得主要硬件元件分别为P 87C 51单片机作为微控制器,使用单总线温度传感器芯片AD C0809N 作为温度传感器。
温度传感器采集温度数据,温度传感器采集完一次数据后,经过A/D 转换后,再由微控制器根据现场对数据得不同要求可以选择L CD 显示以及上机PC 机显示两种方式来显示数据。
2原理图得设计温度传感器单片机P87C51 温度显示器2、1温度采集电路设计温度采样处理电路由温度传感器、放大电路、A/D转换电路等组成。
采用分块结构得温度采样处理电路,其硬件电路结构复杂,也不便于数据得处理。
采用智能温度传感器采样处理电路,能够方便得进行温度得采集及简单得数据处理。
并且可以达到设计得技术指标要求。
本系统选择智能温度传感器ADC0809N作为温度采集电路得核心器件。
图3 芯片图2、1、1温度采集电路结构温度采集电路结构如图所示。
工作时,由程序控制读取某智能温度传感器ADC0809N采集得温度数据,送单片机处理。
单片机控制电路核心就就是单片机芯片,其加上工作基本电路,就可以展开控制工作。
图4单片机P87C51引脚图2、2显示电路结构显示电路由单片机P87C51得P1、0端作数据输出,连接到低位SN54F04J 得数据输入引脚端。
单片机P87C51得P3、0、P3、1端分别接到一个与门电路得输入端。
显示电路结构图如图4所示。
图5 温度显示部分3系统程序设计3、1 主程序设计主程序主要功能就就是控制调用子程序,实现温度得实时显示、读出并处理ADC0809N得测量温度值(温度测量每1s进行一次)。
其程序流程图如图6所示。
图6数字式多路温度采集系统主程序流程图3、2子程序设计(1)键盘扫描子程序键盘扫描子程序对按下得键进行判断,并转到按下得相应键对应得程序段,执行相应得功能。
其程序流程图如图7所示。
(2)温度转换命令子程序温度转换命令子程序主要就就是发送温度转换开始命令。
在发送匹配ROM 命令后,紧跟着发送要进行测温得ADC0809N得64位ROM序列(这个序列号一般由厂方提供或通过实验得方式获得)。
采用12位分辨率,转换时间约为750ms。
其程序流程图如图8所示。
图7 键盘扫描子程序流程图 图8 温度转换命令子程序流程图(3)读出温度子程序读出温度子程序主要功能就就是读出R AM 中得9个字节,在读出时需进行CRC 校验,校验有错时不进行温度数据得改写。
其程序流程图如图9所示。
(4)计算温度子程序从AD C0809N 读取出得二进制值必须先转换成十进制值,才能用于字符得显示。
在系统采用12位转换精度,温度寄存器里得值就就是以0、0625为步进得,即温度值为温度寄存器里得二进制值乘以0、0625,就就就是实际得十进制温度值。
通过观察可以发现一个十进制值与二进制值之间有很明显得关系。
低字节得高半字节乘以0、0625恰好就就就是原整数。
因此,把二进制得高字节得低半字节与低字节得高半字节组成一个字节,这个字节得二进制值化为十进制值后,就恰好就就是温度值得百、十、个位值;剩下得低字节得低半字节化成十进制后,就就就是温度值得小数部分。
小数部分因为就就是半个字节,所以二进制值范围就就是0~F,转换成十进制小数值就就就是0、0625得倍数。
这样需要4位得数码管来显示小数部分,实际应用不必有这么高得精度,采用1位数码管来显示小数,可以精确到0、1℃。
表5就就就是二进制与十进制小数得近似对应关系。
其程序流程图如图10所示。
表1 小数部分二进制与十进制得近似对应关系表小数部分 二进制数 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制数67889图9 读出温度子程序流程图 图10 计算温度子程序流程图(5)显示数据刷新子程序显示数据刷新子程序[9]主要就就是对显示缓冲区中得显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
其程序流程图如图11所示。
图11显示数据刷新子程序流程图4详细仪器清单编号元件名称型号及规格数量1单片机芯片P87C112移位寄存器SN54ALS02J 23七段数码显示器LED 24串转并芯片SN54F04J 1ADC0815A/D转换器09N6 开关-- 4SN74ALS17 逻辑电路304N8 电阻10K 129 电阻8、2K 110 可变电阻-- 811 电容10UF 112 电容30PF 25 总结与思考及致谢本文设计了一种以P87C51单片机为核心控制器、以SN54ALS02作为温度传感器得多路温度采集与显示系统,该系统结构简单、低功耗、方便实用,并且硬件实现简单,得到了比教理想得实验效果。
本系统能够通过单片机灵活编程进行各种功能得设定与修改。
特别适用于大中型企业生产过程中多点温度得巡回测量与监控。
本设计说明了集成化得优点及作用,也表明了科技发展得重要性,也让我们瞧到了单片机得未来生产控制中得地位,让我认识到了学习单片机得重要性。
在本次课程设计中朱其攀为我们组得组长,在她得带领下,我们各组员都积极配合,很好得完成了自己得任务。
我主要负责撰写课程设计报告,朱其攀开始绘制系统原理图与PCB图,在原理图与PCB图得绘制过程中胡永志也开始了软件部分得设计,黄志雄也很好得完成了她得设计。
在本次设计得过程中确确实实遇到很多问题,从而发现自己得很多不足。
如何将自己所学在所用展现出来就就是自己在本次课程设计中得到得最大收获。
几人为一小组得分配方式也让同学之间深深体会到了团队得重要性,每人出一份力才能事半功倍。
很多问题在老师得指导下也迎刃而解。
在这里我们特别感谢余宏生老师对我们孜孜不倦得辅导以及同学们热心得帮助,同时也感谢学校给我们这样好得机会来学习单片机设计。
从本次设计中得到很多宝贵得经验,同时也学习了很多知识。
参考文献[1]蔡明文,冯先成。
单片机课程设计、武汉:华中科技大学出版社,2007、3。