版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、11多路温度巡回检测仪的设计一设计任务及要求:设计一个多路温度检测仪,共有 8个测温点,每个点连续检测 8 次,以平均值代表该点温度,并轮流在 LED显示器上显示。测试检测 元件为钳热电阻Pt1000,温度测量范围为100c +500C,测量 精度为土 1C。系统每隔10秒完成一个点的测量,测量值除在LED显 示器上显示外,还必须通过串行口( RS485发送到上位机。任何时 刻,可以通过按键切换显示通道。二设计框图温电路、0路指示灯山扩展接口(S2C55).LED数码管显不1驱动显不电路-谯盘搜建输入电路4三实验原理以AT89C51单片机为核心的多路温度巡回检测控制系统,主要用来对多路温度测量
2、结果进行选择性监控; 该系统主要由单片机、传感器、多路转换开关、A/D转换器和驱动显示电路等组成。其中温度传感器将温度信号转化成电压的信号, 为了提高设计的精度,用具有低 零点漂移繁荣放大器OP193各采集来的微弱的电压信号放大。由于单 片机处理的是数字信号,所以用模数转换电路将放大的模拟电信号转 换成数字量输入到单片机,通过AT89C51的软件控制对输入的数字信 号进行处理后输出,通过八位共阴极 LED数码管动态扫描驱动电路 MAX7219寸测量结果进行显示。四实验电路设计营-丁H A1k务圣芟EH.FKg 酷科商CDTIII- rT: n(1)温度传感器18B20DS18B20的温度检测与
3、数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20数字温度传感器具有超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强。DS18B20的主要特征:全数字温度转换及输出。先进的单总线数据通信。最高12位分辨率,精度可达土 0.5摄氏度。 12位分辨率时的最大工作周期为750毫秒。 可选择寄生工作方式。检测温度范围为100 C +500 C 内置EEPROM限温报警功能。64位光刻ROM内置产品序列号,方便多机挂接。(2) CPUft控模块AT89C51At89C51是一种低功耗、高性能 CMOS菽微控制器,具有8K在
4、系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器 技术制造,与工业80C51产品指令和引脚完 全兼容。片上Flash允 许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash ,使得AT89S52为众多嵌 入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash , 256字节RAM 32位I/O 口线, 看门狗定时器,2个数据指针,三个16位 定时器/计数器,一个6 向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻 辑操作,支持2种软件可选择节电
5、模式。 空闲模式下,CPU停止工作,允许 RAM定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash 。五实验调试及运行结果IWHi ALEISnRE5PACK:网 p,iiIthe temp af Na.O the IBmp of Na.O the iBinp of Na.O the lamp of Na»0 the l2力口 of No. 1 the lenp of N61 the Uhp of Nb.l the Uhp of No.1 the lehP o
6、f No.1 the lenp of No.?333303333033335999953333211112:口FZSAIkpin-ra.irpz jTTH F3.4nB F35ml vncXaJTEVirtual TerrninglRESPACKVirtual Tenmiinalthe temp of the temp of the temp of the tewp of Lht ttmp of the temp of the gP of the tevip gf the ietip of the lemp of the temp of the temp of the temp of the
7、tHip of the t&iip of the temp ofn .r + 1 n V + + n!T No附NONbNCI电电NOlfcNO电防NOlfoNO加o ooo22:333:333;333:3392250:I93:206:1I93:193:250:I13;333:333:383:!50:283六设计体会通过这次对多路温度巡回检测系统的设计,让我了解了利用所学单片机知 识设计电路的程序与方法,也让我了解了关于多路温度巡回检测系统的基本原理 与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。 通过这 次学习,让我对各种电路都有了大概的了解,对proteus软件的
8、使用也更为熟练。 对于这些电路还是应该自己动手实际操作才会有深刻理解。七试验程序源代码#include <reg52.h>#include<I2C.H>#include<LCD1602.H>#include<UART.h>/PCF8591的地址选择第零号通道/OXff代表没有按键按下/ 0x00代表PCF8591开始转化的命令/CD4051的通道值 用于选择输入的通道号#define PCF8591 0x90#define NOKEY 0xff#define START 0x00sbit cd4051A= P2A4;sbit cd4051B= P
9、2A3;sbit cd4051c= P2A2;unsigned char OPEN=1; 总开关标志unsigned char keynumber; 按键值unsigned char volatile send; 串 口发送标志unsigned char volatilechannel=0;/ 当前通道unsigned char volatiletick=0;code unsigned char disc1="Temp of No. :"unsigned int temperature8=250,250,250,250,250,250,250,250;/ 设置温度初始值*/
10、unsigned char Keyscan(void);键盘扫描void AD_Convert(unsigned char); /AD 转换程序void Display(unsigned char k);/ 显示程序voidTargetInit(void);voidDelay(unsigned char delay);voidLcddisplay(unsigned char number);voidDelay(unsigned char);/*/void Delay(unsigned char timedelay)延时函数unsigned char i;for(;timedelay<0;
11、timedelay-)for(i=0;i<110;i+);/硬件的初始化 void TargetInit(void)TMOD=0x21;TR1=0;TH1=0xfd;TL1=0xfd;TR0=0;TH0=(65536-46080)/256;/11.0592Mhz 下的 50ms 定时TL0=(65536-46080)%256;ET0=1;SM0=0;SM1=1;REN=1;ES=1;EA=1;TR0=1;TR1=1;重载计数器初值中断处理/* 函数 */void Timer_ISR(void) interrupt 1TR0=0;TH0=(65536-46080)/256;TL0=(655
12、36-46080)%256;tick+;if(tick % 20)=0)发送标志每隔1秒置位一次即每隔send=1;秒 使用串口发送一次数据发送标志置位if(tick=100) tick=0;channel+;if(channel>7)channel=0;隔 10 秒切换到下一个通道TR0=1;/*AD*/void AD_Convert(unsigned char number) float AD_data;float sum=0;unsigned char ch;switch(number)12case 0: cd4051c=0;/选择转换通道18cd4051B=0;cd4051A=0
13、; break;case 1: cd4051c=0;cd4051B=0;cd4051A=1; break;case 2: cd4051c=0;cd4051B=1;cd4051A=0; break;case 3: cd4051c=0;cd4051B=1;cd4051A=1; break;case 4: cd4051c=1;cd4051B=0;cd4051A=0; break;case 5: cd4051c=1;cd4051B=0;cd4051A=1; break;case 6: cd4051c=1;cd4051B=1;cd4051A=0; break;case 7: cd4051C=1;cd40
14、51B=1;cd4051A=1;break;Delay(5);for(ch=0; ch<8; ch+)ISendByte(PCF8591,START);开始转换选择通AD_data=(float)IRcvByte(PCF8591);读取转换结果AD_data=(AD_data/256)*5.0;/转换结果/256 *5VAD_data=AD_data*100;/if(AD_data<100)AD_data=100;sum=sum+AD_data;sum=sum/8;百位十位取连续转换八次的的平均值temperaturenumber=(unsigned int)sum;/*/void
15、 Lcddisplay(unsigned char number) unsigned int dis3;dis0=temperaturenumber/100+'0'dis1=(temperaturenumber%100)/10+'0'dis2=(temperaturenumber)%10+'0'/ 各位lcd_pos(0,0);prints(discl);lcd_pos(11,0);lcd_wdat(number+'0');lcd_pos(5,1);lcd_wdat(dis0);lcd_wdat(dis1);lcd_wdat(di
16、s2);lcd_wdat('');lcd_wdat('C');/*按键扫描函*/*unsigned char Keyscan(void) unsigned char number;如果无按键按下则返回0xffnumber=0xff;if(P1!=0xff)Delay(10);if(P1!=0xff) switch(P1)按键号如果有按键按下则返回按下的case 0xfe:number=0; break;case 0xfd:number=1; break;case 0xfb:number=2; break;case 0xf7:number=3; break;case 0xef:number=4; break;case 0xdf:number=5; break;case 0xbf:number=6; break;case 0x7f:number=7; break;return(number);void main()TargetInit();lcd_init();while(1) if(OPEN)如果上位机发送OFF命令则停止显示lcd_wcmd(0x01);while(OPEN)while(Keyscan()!=NOKEY) keynumber=Keyscan();AD_Convert(keynumb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论