欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

铂金属多路温度巡回检测仪东华大学单片机课程设计报告答案学号尾号为7

  • 资源ID:29965304       资源大小:1.65MB        全文页数:25页
  • 资源格式: DOC        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

铂金属多路温度巡回检测仪东华大学单片机课程设计报告答案学号尾号为7

单片机课程设计 多路温度检测 单片机课程设计多路温度巡回检测仪的设计及单片机实验 姓名:东京的樱花 学号:10090# 设计题目:7、多路温度巡回检测仪 指导老师:潘#楼主造福东华学子啦,后面程序可以直接运行哦目录1、 项目设计要求32、 方案可行性分析. . 33、 硬件电路设计. . 4(1)、铂电阻测量单元. 4(2)、按键控制单元. 5(3)、AD转换单元. 6(4)、LED数码管显示单元. 7(5)、数据传输上位机单元. 84、 整体硬件设计连接图. 95、软件设计. . 10(1)、软件设计思想. 10(2)、程序流程图. 11(3)、程序清单. 125、 电路pcb原理图及pcb图设计. 136、 系统protues仿真及调试. 157、 结果与展望. . 169、参考文献. . 1610、附录:程序源代码 + pcb 3d模拟图.161、 项目设计要求题7 多路温度巡回检测仪的设计设计一个多路温度检测仪,共有8个测温点,每个点连续检测8次,以平均值代表该点温度,并轮流在LED显示器上显示。测试检测元件为铂热电阻Pt1000, 温度测量范围为100 +500,测量精度为1。系统每隔10秒完成一个点的测量,测量值除在LED显示器上显示外,还必须通过串行口(RS485)发送到上位机。任何时刻,可以通过按键切换显示通道。2、方案可行性分析在测温系统中,用温度敏感元件通过电路的调整可以把温度信号转换为模拟电压信号,在将模拟电压信号远距离传输并通过A/D转换得到相应的数字信号,通过程序进行处理得到实时的温度数值。铂热电阻测量范围为200850,R0有10 、100和1000三种,分度号分别为Pt10、Pt100和Pt1000。铂热电阻的精度高,体积小,测温范围宽,稳定性好,再现性好,但是价格较贵。其电阻与温度的关系为:当T0时 R(T)= R0(1+AT+BT) 当T< 0时 R(T)= R0 1+AT+BT+CT(T-100) 式中: RT为被测温度T下的阻值,单位为 R0为0下的阻值 T为实际温度值 A为常数3.908310/ B为常数-5.775107/ C为常数-4.1831012/4由于我们要测得温度是100-500,所以,不用考虑小于0的情况了。所以公式为:R(T)= R0(1+AT+BT)由数学知识可以直接解出T=(-A-sqrt(A2-4*B(1-R(t)/R0))/2B(1)因为A、B、R(0)已知,所以只要测到R(t)就能够算出T。所以我们将测量电阻上的电压来算出电阻的阻值,进而得出他现在的温度。2、 硬件电路设计(1)、铂电阻测量单元设计思想:铂金属的阻值会随着温度变化而变化,所以可以通过测量它的电阻来确定温度。我们可以通过串接另一个阻值已知的电阻通过电压的变化而确定铂金属的阻值。由电路知识求得:RV9=3*u/(5-u).(2)式(2)、按键控制单元设计思想:由于有八路信号,所以可以用3*3的矩阵键盘,或者用8各独立的键盘来控制八路信号。我这里由于简化设计就用了8个独立的键盘控制。低电平有效。(3)、AD转换单元设计思想:由于精度要求+-1度,从100-500所以有400个档位,所以要9位(512)或者9位以上的AD转换器才能实现这个精度。我这里使用了TLC1543,这个ad芯片的精度很高,为10位串行逐步逼近型AD转换器(1024)。所以能精确到0.4度。其工作过程分为两个周期:访问周期和采样周期。(4)、LED数码管显示单元设计思想:LED接收来自p0口的数据信号与地址信号,通过地址锁存,分时复用来实现LED数码管的动态显示,我这里用74ls373来作为锁存器,来锁住数据与地址信息。(5)、数据传输上位机单元设计思想:由于rs232传输的距离有限,所以我们这里使用传输距离更远的rs485。Max485位一款rs485。但是由于485电平和rs232电平不符,所以,当我们连接计算机的时候还是要接上max232用来转换电平。4、整体硬件设计连接图软件设计(1)、软件设计思想在本次设计中,mcu主要的工作是将ad采集来的数据,通过一定的计算转化成为温度的值,并且将这个值通过p0口输出到led数码管上。在循环扫描八个检测点的时候,顺便扫描按键部分,看有没有按键被按下,按下则进入按键服务程序,执行按键指定的测量。并通过串口传输到上位机上。由于软件源代码过长,这里简略的写ad部分(详细软件部分见附录)uint ADC(uchar chn1)uchar i;uchar addr8; uint ADresult; AD_eoc=1; AD_cs=0;_nop_();addr8=chn1;addr8<<=4;for(i=0;i<4;i+)/写地址 AD_add=(bit)(addr8&0x80);AD_clk=1;AD_clk=0;addr8<<=1; for(i=0;i<6;i+) /采样AD_clk=1;AD_clk=0;AD_cs=1;while(!AD_eoc);/查询_nop_();ADresult=0;AD_cs=0; /移位传数据for(i=0;i<10;i+)AD_clk=1;ADresult<<=1;m=AD_dat;ADresult+=m;AD_clk=0;AD_cs=1;return(ADresult);(2)、程序流程图(3)、程序清单void delay(uint z)延时z 毫秒void display(num)显示子程序,显示num和数据uint ADC(uchar chn1)AD转换子程序,负责转化模拟信号位数字信号void Send(unsigned char dat)串口发送子程序,负责将收集到的数据发送到上位机上void jianpan(void)键盘检测子程序,负责不断地扫描键盘,看是否有键盘按下void main()主函数5、电路pcb原理图及pcb图设计用altium designer6.9设计并做出原理图pcb图设计画好原理图后电器检查通过后编译,并design-updatato pcb再布局布线覆铜。6、系统protues仿真及调试通过protues仿真,可以了解自己的电路到底能不跑起来,大部分的原件还是找得到的,就是不知道叫什么名字,所以在百度里查查名字后再连线,之后就是通过keil来编译生成的hex文件烧到mcu中去。8、 结果与展望通过本次课程设计,我更深刻理解了单片机,特别是51系列的单片机。当然,我也了解了一点avr的知识。Avr价格上面还是有点高,所以现在51单片机还是有很大的市场的。但是51的引脚比较少,所以还是主要用于简单的控制上面。对于我们大自动化的学生,我们可不要认为会51就好了,至少得学个arm cortex-m3吧。对于有追求,有理想的学生,我们更应该好好学习arm9的内容,以及linux系统。要是更高级的话,x86芯片也可以去研究。可是学校给我们做实验的机会太少了。就那几台设备,而且课内充满做一下,都不到在干什么。对于实验室,我只能说,粥少僧多啊。主要还是没有实验室地皮的问题。建议扩展地皮,要建一个自由实验室,以用来给买不起试验设备的学子一个做实验的平台。我们应该做的是扬长避短,发挥所长,为社会做贡献。9、参考文献郭天祥10天学会单片机视频mcs-51单片机原理与应用张毅刚 刘杰 哈尔滨工业大学出版社郭天祥10天学会PCB教程视频10、附录:程序源代码 + pcb 3d模拟图(见附录)附录#include <reg52.h>#include<intrins.h>#include <math.h>#define uchar unsigned char#define uint unsigned intuint num;float num1; int keyval;int o;int i;int q;int rt;int tr;double n2;uchar port,m;uchar ge,shi,bai,qian;sbit wela=P27; int sy;sbit dula=P26; uchar led10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit AD_eoc=P10;sbit AD_clk=P11;sbit AD_add=P12;sbit AD_dat=P13;sbit AD_cs=P14;sbit S1=P35; /将S1位定义为P1.4引脚sbit S2=P34; sbit S3=P20; sbit S4=P21; sbit S5=P22; sbit S6=P23; sbit S7=P24; sbit S8=P25; void delay(uint z)uint k; for(z;z>0;z-) for(k=1000;k>0;k-); void display(num) n2=num;n2=n2*5/1024; n2=(3*n2)/(5-n2)*1000;/r1=3k电压求电阻 n2=3383.8-8.658*(sqrt(175850-23.1*n2); sy=n2; bai=sy/100%10; shi=sy/10%10; ge=sy%10; P0=0xff; wela=1;wela=0;P0=ledbai; dula=1;dula=0; P0=0Xf7; wela=1;wela=0; delay(1); P0=0xff; wela=1;wela=0;P0=ledshi; dula=1;dula=0;P0=0xef; wela=1;wela=0;delay(1);P0=0xff; wela=1;wela=0; P0=ledge; dula=1;dula=0;P0=0xdf; wela=1;wela=0;delay(1);P0=0xff; wela=1;wela=0;P0=o; dula=1;dula=0;P0=0xfe; /显示哪一路标号 wela=1;wela=0;delay(1);uint ADC(uchar chn1)uchar i;uchar addr8; uint ADresult; AD_eoc=1; AD_cs=0;_nop_();addr8=chn1;addr8<<=4;for(i=0;i<4;i+)/写地址 AD_add=(bit)(addr8&0x80);AD_clk=1;AD_clk=0;addr8<<=1; for(i=0;i<6;i+) /采样AD_clk=1;AD_clk=0;AD_cs=1;while(!AD_eoc);/查询_nop_();ADresult=0;AD_cs=0; /移位传数据for(i=0;i<10;i+)AD_clk=1;ADresult<<=1;m=AD_dat;ADresult+=m;AD_clk=0;AD_cs=1;return(ADresult);void Send(unsigned char dat) SBUF=dat; while(TI=0) ; TI=0; void delay5(void) unsigned char m,n; for(m=0;m<200;m+) for(n=0;n<250;n+) ; void jianpan(void) if(S1=0) /按键S1被按下 tr=0; for(rt=0;rt<10;rt+)port=0x0a; o=led1;num=ADC(port); tr=num+tr; num=tr/10; for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); /发送数据 tr=0; if(S2=0) keyval=2; tr=0; for(rt=0;rt<10;rt+) port=0x09; o=led2;num=ADC(port);tr=num+tr;num=tr/10; for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; if(S3=0) keyval=3; tr=0; for(rt=0;rt<10;rt+) port=0x08; o=led3;num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; if(S4=0) keyval=4; tr=0; for(rt=0;rt<10;rt+) port=0x07;o=led4;num=ADC(port);tr=num+tr;num=tr/10;for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; if(S5=0) tr=0; for(rt=0;rt<10;rt+) port=0x06; o=led5;num=ADC(port);tr=num+tr; num=tr/10; for(rt=0;rt<50;rt+)display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; if(S6=0) tr=0; for(rt=0;rt<10;rt+) port=0x05; o=led6;num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; if(S7=0) tr=0; for(rt=0;rt<10;rt+) port=0x04; o=led7;num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; if(S8=0) tr=0; for(rt=0;rt<10;rt+) port=0x03;o=led8;num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); Send(ledbai); Send(ledshi); Send(ledge); o=led1; ; void main() TMOD=0x20; /TMOD=0010 0000B,定时器T1工作于方式2 SCON=0x40; /SCON=0100 0000B,串口工作方式1 PCON=0x00; /PCON=0000 0000B,波特率9600 TH1=0xfd; /根据规定给定时器T1赋初值 TL1=0xfd; /根据规定给定时器T1赋初值 TR1=1; /启动定时器T1 while(1) jianpan(); tr=0; for(rt=0;rt<10;rt+)port=0x0a; o=led1;num=ADC(port); tr=num+tr;jianpan(); num=tr/10; for(q=0;q<20;q+)display(num);jianpan(); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x09;jianpan(); o=led2;num=ADC(port);tr=num+tr;num=tr/10; for(q=0;q<30;q+)jianpan();display(num); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x08; o=led3;jianpan();num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x07; o=led4; jianpan();num=ADC(port);tr=num+tr;num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x06;o=led5;jianpan();num=ADC(port);tr=num+tr;num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x05; o=led6; jianpan();num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x04; o=led7; jianpan();num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); Send(ledbai); Send(ledshi); Send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x03;o=led8; jianpan();num=ADC(port);tr=num+tr; num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); Send(ledbai); Send(ledshi); Send(ledge); o=led1; 25 / 25

注意事项

本文(铂金属多路温度巡回检测仪东华大学单片机课程设计报告答案学号尾号为7)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!