1、温度检测实训报告 电子系统综合设计报告 设计课题: 温敏电阻数字温度计的设计专业班级: 15电气工程(1)班 学生姓名: 傅XX 指导教师: 罗XX 设计时间: 2016.12.5-2016.12.14 物理与电子工程学院温敏电阻数字温度计的设计一、设计任务与要求 设备整机结构及硬件电路框图根据设计要求与设计思路,设计硬件电路框图如下图所示,按照系统设计功能的要求,确定系统由4个模块组成:主控制器、测温电路、显示电路和报警电路。AT89C51对LCD1602初始化、温度采集、温度转换、液晶显示屏显示、蜂鸣器的驱动。本装置详细组成部分如下: a.主控模块:AT89C51片机; b.测温电路:10
2、3温敏电阻; c.显示电路:LCD1602液晶显示屏; d.报警电路:无源蜂鸣器。5设计目标:(1)搭建一个单片机最小系统;(2)通过温敏电阻检测温度,拟合曲线频率和温度的关系,通过程序,将温度显示在LCD1602上。二、方案设计与论证1单片机选择采用STC89C52芯片,STC89C52是我们较为常用的一种单片机,对其烧写调试都比较熟悉,所以选之为本次使用的单片机,避免给本次设计带来新的设计压力。 2测温电路:103温敏电阻、555震荡电路 103温敏电阻的特点:1) 搭配555振荡电路即可产生一定频率的脉冲;2) 电气性能佳,可焊性好;3) 测量温度范围在40到125之间;4) 价钱合适,
3、性价比高热敏电阻与温度对照表:已知条件B常数3380单位k创建人:LXF日期:2008-6-11R值10计算公式:Rt=R*EXP(B*(1/T1-1/T2)说明:1、Rt是热敏电阻在T1温度下的阻值; 2、R是热敏电阻在T2常温下的标称阻值; 3、B值是热敏电阻的重要参数; 4、EXP是e的n次方; 5、这里T1和T2指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度;温度T1阻值Rt温度T1阻值Rt温度T1阻值Rt温度T1阻值Rt-40235.83075593225.795966881445.070437823861.4580779678-39221.67240981324.6
4、73611964454.9034011598871.4204703156-38208.47382602423.607666567464.7428627464881.3840329328-37196.16305694522.594945784474.5885344983891.3487237721-36184.67403487621.632463086484.4401425688901.314502486-35173.94605364720.717416866494.2974265762911.2813303512-34163.92329912819.847177965504.160138876
5、9921.2491701959-33154.55442376919.019278111514.028043881931.2179863314-32145.792160681018.231399185523.9009174074941.1877444861-31137.592973521117.481363273533.7785460774951.1584117439-30129.916738431216.767123414543.6607267421961.1299564843-29122.726455061316.086755023553.5472659437971.1023483265-2
6、8115.98798391415.438447903563.4379794071981.075558075-27109.669807111514.820498836573.3326915609991.0495576687-26103.742810931614.231304683583.2312350849100.024*-2598.1800873621713.669355966593.13345048391010.99981952932-2492.9567534361813.133230897603.03918568521020.97603091812-2388.0497863131912.6
7、21589814612.94829565811030.95293030945-2283.4378728352012.133170007622.86064205551040.93049462625-2179.10127212111.666780884632.77609287481050.90870166515-2075.0216899022211.221299475642.69452213721060.88753005982-1971.1821639242310.795666238652.61580958551070.86695924602-1867.5669587172410.38888113
8、8662.5398403981080.84696942817-1764.1614695662510672.46650491721090.8275415475-1660.952134444269.628131096682.39569839471100.80865725166-1557.926353332279.2724319585692.32732074881110.79029886564-1455.072414241288.9321064055702.2612763351120.77244936406-1352.379425349298.6064017588712.197473731130.7
9、5509234467-1249.837252709308.2946062436722.13582552551140.73821200302-1147.436463044317.9960465557732.07624813411150.72179310832-1045.168271181327.710085586742.01866160541160.70582098028-943.024491729337.4361202907751.96298945091170.69028146703-840.997494622347.1735796969761.90915847931180.675160924
10、04-739.080164223356.9219230346771.85709863911190.66044619385-637.26586165366.6806379874781.80674287021200.64612458683-535.54839008376.4492390516791.75802696291210.63218386263-433.921962772386.2272659994801.71088942441220.61861221257-332.381173574396.0142824362811.66527135141230.60539824268-230.92096
11、9714405.809874448821.621116311240.59253095752-129.536626693415.6136493318831.57837022141250.57999974472028.223725086425.4252344036841.53698125331260.56779436007126.978129124435.2442758792851.49689971661270.55590491342555振荡电路的特点: 电源接通时,555的3脚输出高电平,接至单片机T0口。同时电源通过R1R2向电容C充电,当C上的电压到达555集成电路6脚的阀值电压(2/3电
12、源电压)时,555的7脚把电容里的电放掉,3脚由高电平变成低电平。当电容的电压降到1/3电源电压时,3脚又变为高电平,同时电源再次经R1R2向电容充电。这样周而复始,形成振荡。电路简单并且稳定性好。3.显示模块的选择:LCD1602液晶显示 LCD1602特点:a. 耗电量较传统CRT相比较小b. 体积轻巧,不占地方c. 显示内容丰富d. 可以精简为四线传输 各个拐角作用如下表:4.报警电路:蜂鸣器 蜂鸣器优点:1程序控制方便2频率可调三、单元电路设计与参数计算1振荡电路的设计 晶体和电容决定了单片机的工作时间精度为1微秒。晶体可在1.2-12MHz之间选择。由于本次设计涉及到串口通信模块,考
13、虑其波特率设置问题,所以本次设计采用12MHz的石英晶体片。对电容无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一点影响。C1和C2可在20-100PF之间取值,一般情况取20PF。振荡电路的电路图如图1所示。Y1为12MHz的晶振,C1与C2是22PF的普通电容。C1、C2、Y1三者一起构成了石英振荡器。图1:晶振模块2. 显示电路的设计 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和
14、行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。具体电路如图 3 所示:图2:LCD16023.测温电路的设计 通过555定时器和103温敏电阻结合,设计测温电路。具体电路如图 3 所示:图3:测温模块 4.报警电路的设计 连接一个无源蜂鸣器在设计需要的情况下进行报警。其具体电路如图 4所示:图4:报警电路模
15、块五、原理图、PCB、仿真运行图及元件清单(附录)六、硬件设计调试1.检测元器件在领到元件后,我们必须首先确保所领的元件都是能正常工作的,从而能减少焊接后的许多调试的麻烦。如何检测元器件是否能正常工作呢,我觉得最好的方法就是将器件放在成品的电路板上测试,以验证其是否能正常工作时最好的方法。若没有成品电路,我们则只能做一些最基本的外科式的检测,如用电压表检测其引脚测试其阻抗,以及接上电源后其,各个引脚的电压是否正常。2.焊接及调试 在单面板上涂一层助焊剂,对照原理图将元件合理安装在单面板上,检查元件位置是否正确。检查无误后,用电烙铁将每个元件用焊锡焊牢,保证每个元件不虚焊。在焊元件时根据不同元件
16、耐热性能尽量减少焊接时间。焊集成块时,先焊插槽。焊接完毕后用万用表检查是否短路和断路。通电后检测各个引脚上的电压是否与期望值相符或相近。七、软件设计调试1. 程序流程图:图8:实物图八、结论与心得在做之前,我以为很简单,就像以前做物理实验一样,做完实验能够两下子就将实验报告做完。直到板子做出来,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅。做的时候一定要一步一步来,仿真要通过了才能进行下一步实物的制作。期间学到了电容的读数,因为电容使用的不正确,所以一直无法达到预期效果。程序部分我学到一个很方便的显示语句比原先书上的简单很多。两周的实训让我学到了不少使用的知识,更重要的是,这
17、个过程,还有思考问题的方法,这是通用的。期间培养了良好的工程素质和科学道德,例如合作精神、交流能力、独立思考、测试前沿信息的捕获能力等;提高了自己动手能力,培养理论联系实际的作风,增强创新意识。经过这次实训设计,我觉得自己学到了不少东西。以前我们基本上是学习书本上的知识,只懂得理论,通过这次实际的操作和锻炼,学会了怎样查阅资料和利用工具书,怎样制作电路图。当在设计过程中需要用一些不曾见过的东西或不曾学过的知识时,我就会去有针对性地进行查找资料,然后加以利用,把它搞清楚,以提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识,并学会了用PROTEL软件画电路图。通过本次设计,我觉得我还需
18、要进一步的学习,特别在软件程序方面更要重视,以便在以后的学习或工作中,能够学有所用。附 录附录1:总原理图附录2:PCB图附录3: +LCD1602 元件清单附录4:仿真运行截图附录5:程序清单:/* /频率检测,得到电阻,得到温度#include #include #include/#include #include #define uchar unsigned char#define uint unsigned intsbit rs=P20;sbit rw=P21;sbit ep=P22;sbit beep=P23;uchar dispcount,a;/uchar tem;/uchar r
19、es;/uchar m,n,l;uchar T0count,timecount;bit flag;float x,y; /频率x,温度y/uchar code dis1= rate:;/uchar code dis1=rate:;/uchar code dis2=tem:;void delay(uint ms) uint i; while(ms-) for(i=0;i9999) dispcount=x/10; / if(x99999) dispcount=x/100; TH0=0; TL0=0;/ TH1=(65536-50000)/256;/ TL1=(65536-50000)%256; t
20、imecount=0; T0count=0; TR0=1; / TR1=1; y=22.487*(log10 (x)/(log10 (exp(1)-121.44; void timer0() interrupt 1 T0count+; void timer1() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; timecount+; if(timecount=20) TR0=0;/ TR1=0; flag=1; timecount=0; void Time_init() TMOD=0x15; TH0=0; TL0=0; TH1
21、=(65536-50000)/256; TL1=(65536-50000)%256; ET0=1; ET1=1; EA=1; TR1=1; TR0=1;uchar Busy_Check(void) uchar LCD_Status; rs=0; /忙检状态 rw=1; /忙检状态 ep=1; _nop_(); _nop_(); _nop_(); _nop_(); LCD_Status=P0&0x80; /最高是0 ep=0; return LCD_Status;void lcd_wcmd(uchar cmd) while(Busy_Check(); rs=0; rw=0; ep=0; _nop
22、_(); _nop_(); P0=cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep=1; /产生一个上升沿交换数据 _nop_(); _nop_(); _nop_(); _nop_(); ep=0;void lcd_wdat(uchar dat) while(Busy_Check(); rs=1; rw=0; ep=0; P0=dat; _nop_(); _nop_(); _nop_(); _nop_(); ep=1; _nop_(); _nop_(); _nop_(); _nop_(); ep=0;void lcd_init(void) /初始化 lcd
23、_wcmd(0x38); delay(1); lcd_wcmd(0x0c); /光标不闪烁 delay(1); lcd_wcmd(0x06);/读写后指针加一! delay(1); lcd_wcmd(0x01); /清屏 delay(1);void lcd_string(uchar lin,uchar k) /lin是位置,k是字符数据 char i=0; lcd_wcmd(lin+0x80);/显示位置 while(ki) lcd_wdat(ki+);/写字符数据 void LCD_disp() uchar tab112=0; uchar tab212=0; if(y0) sprintf(t
24、ab1,pinlv: %.2fHz,(float) x);/把数据写入某个字符串缓冲区,就是前面的tab1 lcd_string(0x00,tab1); sprintf(tab2,wendu: %.2fC ,(float) y); lcd_string(0x40,tab2); else beep=0; delay(1); beep=beep; delay(1); sprintf(tab1,warning!); lcd_string(0x03,tab1); delay(10); lcd_wcmd(0x01); /清屏 delay(1); void main (void) lcd_init(); delay(10); Time_init(); delay(10); while(1) cmp(); LCD_disp();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1