1、单片机课程设计说明书 题 目: 温度检测系统设计 系 部: 专 业: 班 级: 学生姓名: 学 号: 指导老师: 12 月 14 日目 录1 设计任务和要求11.1 设计任务11.2 设计要求12 设计方案12.1 设计思绪12.2 单片机STC89C52RC22.2.1 单片机STC89C52RC功效介绍22.2.2 STC89C52RC管脚介绍2 2.2.3 STC89C52RC单片机器件参数32.3 温度传感器DS18B2032.3.1 DS18B20关键特征32.3.2 DS18B20外形和内部结构32.4 液晶显示器LCD160242.4.1 液晶显示器LCD1602功效介绍4 2.
2、4.2 LCD1602管脚介绍53 硬件电路设计5 3.1 系统框图6 3.2 最小单片机系统63.2.1 时钟电路6 3.2.2 复位电路6 3.3 温度检测系统设计7 3.4 液晶显示电路设计74 关键参数计算和分析85 软件设计85.1 整体系统分析85.2 程序步骤图96 proteus软件仿真107 实物制作117.1 器材清单117.2 最小系统板制作127.3 温度检测系统电路板制作127.4 温度检测展示127.5 焊接点展示137.6 作品检验138 结论14附录15参考文件201 设计任务和要求11 设计任务 利用电阻、瓷片电容、电解电容、12MHz晶振、STC89C52单
3、片机、DS18B20温度传感器、液晶显示器、1P杜邦线彩色、排针、最小系统板、电位器、洞洞板等,完成一个温度检测系统。 1、采取单片机及温度传感器设计温度检测系统; 2、温度检测结果采取液晶显示器输出; 3、必需含有上电自检功效及外接电源,公共地线接口。1. 2 设计思绪 1、熟悉此电路工作原理。 2、掌握组装和调试方法。 3、画出Proteus原理图,PCB图。 4、用Proteus仿真。 5、测量范围099摄氏度,精度误差小于1摄氏度。 6、一份设计说明书。 7、做出所设计系统实物。2 设计方案2. 1 设计方案 因为本设计是测温电路,能够使用热敏电阻之类器件利用其感温效应,在将随被测温度
4、改变电压或电流采集过来,进行A/D转换后,就能够用单片机进行数据处理,在显示电路上,就能够将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多全部是使用传感器,所以能够采取温度传感器DS18B20,此传感器,能够很轻易直接读取被测温度值,进行转换,就能够满足设计要求。 故针对上述现象,本文设计了一个由单片机控制温度采集和显示系统,它以STC89C52单片机为关键,采取温度传感器DS18B20实现对温度信号采集和利用LCD1602液晶显示器来显示数据。在温度信号采集方面,采取DS18B20型温度传感器,和传统热敏电阻相比,它能够直
5、接读出被测温度,并可依据实际要求经过简单编码实现912位数字式读数方法,可在-50300范围内显示数据,在-10+85时精度为0.5。2.2 单片机STC89C52RC2.2.1 单片机STC89C52RC功效介绍 STC89C52RC是STC生产单时钟/机器周期(1T)单片机,是高速、低功耗、超强抗干扰新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。含有以下标准功效: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中止,一个7向量4级中止结构(兼容传统51
6、5向量2级中止结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,许可RAM、定时器/计数器、串口、中止继续工作。掉电保护方法下,RAM内容被保留,振荡器被冻结,单片机一切工作停止,直到下一个中止或硬件复位为止。最高运作频率35MHz,6T/12T可选。2.2.2 STC89C52RC管脚介绍STC89C52RC单片机,选择PDIP封装。管脚图3-1所表示:图2-1 PDIP封装STC89C52 单片机引脚功效说明: 1、电源引脚 VCC(40 脚):电源端,工作电压为5V。 GND(20脚): 接地端。 2、时钟
7、电路引脚XTAL1(19 脚)和XTAL2(18 脚)。 3、复位 RST(9 脚)。 4、输入输出(I/O)引脚 P0.0-P0.7(39脚-32脚):输入输出脚,称为P0 口,是一个8 位漏极开路型双向I/O 口,内部不带上拉电阻。 P1.0-P1.7(1脚 - 8脚):输入输出脚,称为P1 口,是一个带内部上拉电阻8 位双向I/0 口。 P2.0-P2.7(21脚28脚):输入输出脚,称为P2 口,是一个带内部上拉电阻8 位双向I/O 口。 P3.0-P3.7 (10脚17脚):输入输出脚,称为P3 口,是一个带内部上拉电阻8 位双向I/O 口。P3 端口含有复用功效。 2.2.3 ST
8、C89C52RC单片机器件参数 1、增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期能够任意 选择,指令代码完全兼容传统8051。 2、工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机)。 3、工作频率范围:040MHz,相当于一般8051 080MHz,实际工作 频率可达48MHz 4、用户应用程序空间为8K字节。 5、片上集成512 字节RAM。 6、通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 7、ISP(在系统可编程
9、)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可经过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片 8、含有EEPROM 功效。 9、共3 个16 位定时器/计数器。即定时器T0、T1、T2。 10、外部中止4 路,下降沿中止或低电平触发电路,Power Down 模式可 由外部中止低电平触发中止方法唤醒。 11、通用异步串行口(UART),还可用定时器软件实现多个UART。 12、工作温度范围:-40+85(工业级)/075(商业级)。 13、PDIP封装。2.3 温度传感器DS18B20 DS18B20数字温度传感器接线方便,封装成后可应用于
10、多个场所,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多个多样,有LTM8877,LTM8874等等。关键依据应用场所不一样而改变其外观。2.3.1 DS18B20关键特征 1、适应电压范围更宽,电压范围:3.05.5V,在寄生电源方法下可由数 据线供电。 2、独特单线接口方法,DS18B20在和微处理器连接时仅需要一条口线即可实现微处理器和DS18B20双向通讯。 3、 DS18B20支持多点组网功效,多个DS18B20能够并联在唯一三线上,实现组网多点测温。 4、DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管集成电路内。 5、温范围-55+125
11、,在-10+85时精度为0.5。 6、可编程 分辨率为912位,对应可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。2.3.2 DS18B20外形和内部结构 DS18B20内部结构关键由四部分组成:64位光刻ROM 、温度传感器、非挥发温度报警触发器TH和TL、配置寄存器。DS18B20外形及管脚排列图3-2所表示:图2-2 温度传感器DS18B20 DS18B20引脚定义: (1)GND为电源地; (2)DQ为数字信号输入/输出端; (3)VDD为外接供电电源输入端(在寄生电源接线方法时接地)。2.4 液晶显示器LCD16022.4.1 液晶显示器LCD1602
12、功效介绍 1602液晶显示器也叫1602字符型液晶显示器,它是一个专门用来显示字母、数字、符号等点阵型液晶模块。它由若干个5X7或5X11等点阵字符位组成,每个点阵字符位全部能够显示一个字符,每位之间有一个点距间隔,每行之间也有间隔,起到了字符间距和行间距作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。图3-3所表示:图2-3液晶显示器LCD16022.4.2 LCD1602管脚介绍LCD1602采取标准16脚接口,图3-3所表示,其中从左到右为1-16脚: 第1脚:GND为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对
13、比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时能够经过一个10K电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时实施指令。 第7-14脚:D0D7为8位双向数据端。第15-16脚:空脚或背灯电源,15脚背光正极,16脚背光负极。2.4.3 LCD1602关键特征 1、3.3V或5V工作电压,对比度可调。 2、内含复位电路。 3、提供多种控制命令,如:清屏、字符闪
14、烁、光标闪烁、显示移位等多个功效。 4、有80字节显示数据存放器DDRAM。 5、内建有192个5X7点阵字型字符发生器CGROM。6、8个可由用户自定义5X7字符发生器CGRAM。3 硬件电路设计3.1 系统框图温度检测系统由USB接口电源,DS18B20温度传感器组成温度检测模块,STC89C52单片机组成关键电路,复位电路、时钟电路及液晶显示器组成显示电路组成。图3-4所表示:STC89C52单片机时钟电路模块复位电路模块LCD1602 显示模块 DS18B20 温度检测模块电源模块图3-1 系统框图3.2 最小单片机系统单片机最小系统以AT89C52RC为关键,外加时钟电路和复位电路,
15、电路结构简单,抗干扰能力强,成本相对较低,很符合本设计全部要求。3.2.1 时钟电路时钟电路在单片机外部经过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,组成稳定自激振荡器。本系统采取为12MHz晶振,一个机器周期为1us,C1、C2为22pF。图3-5所表示图3-2 时钟电路仿真图3.2.2 复位电路复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号输入端,复位信号是高电平有效。上电自动复位经过电容C3和电阻R1来实现。图3-6所表示:图3-3 复位电路原理图 按键手动复位是复位键来实现,上图3-6中未添加复位键,复位键可添加在正5V电源和单片机RST管脚之间。3.3
16、温度检测系统设计DS18B20采取单线进行数据传输,第2管脚外接一个4.7k上拉电阻和单片机P3.6口相连进行数据双向传输,第3管脚外接正5V电源,第1管脚接地。图3-7所表示:图3-4 温度检测仿真图 外部电源供电方法是DS18B20最好工作方法,工作温度可靠,抗干扰能力强,电路也简单,而且能够开发出稳定可靠多点温度监控系统。3.4 液晶显示电路设计LCD1602液晶显示器采取标准16脚接口,VSS管脚接地,VDD管脚接正5V电源,VEE管脚接电位器RV1,RS管脚外接单片机P1.1口,RW管脚接地,E管脚外接单片机P1.2口,D0-D7管脚分别接单片机P2.0-P2.7口,仿真图未标识出A
17、、K管脚为背光灯电源管脚,分别接正5V电源和地。图3-8所表示: 图3-5液晶显示电路原理图液晶显示器即使加了驱动电路,但并不发光,液晶显示器发出来光是由背光发出,灯管特征类似于家用日光灯,工作时需要高压。这部分电路通常称为高压背光电路。或叫高压背光驱动电路。液晶显示器所消耗电能基础全是由背光消耗。相对而言,这部分电路工作在高压大电流下,很轻易出现故障,液晶显示器自然故障大多数是这个部分出现了电路故障。4 关键参数计算和分析温度显示一共 2 个字节,LSB 是低字节,MSB 是高字节,其中 MSB 是字节高位,LSB 是字节低位。大家能够看出来,二进制数字,每一位代表温度含义,全部表示出来了。
18、其中 S表示是符号位,低 11 位全部是 2 幂,用来表示最终温度。DS18B20 温度测量范围是从-55 度到+125 度,而温度数据表现形式,有正负温度,寄存器中每个数字如同卡尺刻度一样分布。如表一所表示:TEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+125度0000 0111 1101 000007D0h+25.0625度0000 0001 1001 00010191h+10.125度0000 0000 1010 001000A2h+0.5度0000 0000 0000 10000008h0度0000 0000 0000 000
19、00000h-0.5度1111 1111 1111 1000FFF8h-10.125度1111 1111 0101 1110FF5Eh-25.0625度1111 1110 0110 1111FF6Fh-55度1111 1100 1001 0000FC90h表一 实际温度对照表二进制数字最低位改变 1,代表温度改变 0.0625 度映射关系。当 0 度时候,那就是0x0000,当温度 125 度时候,对应十六进制是 0x07D0,当温度是零下 55 度时候,对应数字是 0xFC90。反过来说,当数字是 0x0001 时候,那温度就是0.05,达成了设计要求。5 软件设计5.1 整体系统分析温度检
20、测系统由温度及中止初始化,温度检测,温度输入处理,温度显示等几部分模块组成。图5-1所表示: 图5-1 软件设计5.2 程序步骤图程序步骤图包含:开始后优异行各个模块初始化,然后再进行温度(数据)采样处理,最终由液晶显示器输出温度。图5-2所表示:开始单片机开始初始化LCD显示初始化中止初始化DS18B20初始化 DS18B20进行温度采集LCD显示实时温度等候图5-2 程序步骤图6 Proteus软件仿真温度检测系统设计 Proteus原理图设计,找到12MHz晶振、STC89C52单片机、DS18B20温度传感器、液晶显示器等器件,并用线进行连接,注意电源和地。图6-1所表示:图6-1 温
21、度检测系统仿真图 加载程序液晶屏显示温度。图6-2所表示:图6-2 温度检测系统模拟运行 经过调整DS18B20中“+”“-”即可改变显示数值。7 实物制作7.1 器材清单 实物制作用到器件有以下多个,如表二所表示: 名称封装型号参数数量瓷片电容直插30PF2石英晶体直插11.0592MHZ1电阻直插1/4W10K1电解电容直插22UF/16V1CPU双列直插STC89C52RCHD1CPU座双列直插DIP-401电阻直插1/4W4.7K1温度传感器直插DS18B201电位器直插3296W-10310K1液晶显示器LCD160211P杜邦线彩色母对母两头插好杜邦头孔对孔40根一排单根长度20c
22、m30针排针直插脚距2.54高111X40单排插针30线最小系统板1洞洞板9X7CM单面1表二 温度检测单片机元器件明细表7.2 最小系统板制作 焊接最小系统板,把电容、极性电容、12Mhz晶振、电阻、排针、底座插到最小系统板上,因为后面电路全部已连接好,只需在各个位置焊上个元器件即可。实物图图7-1所表示:图7-1 最小系统电路实物图7.3 温度检测系统电路板制作DS18B20焊接时应注意1,2,3脚,电路板最右面焊排针,方便输入信号。输入程序前用杜邦线将各个模块进行连接。实物图图7-2所表示:图7-2 温度检测系统电路实物图7.4 温度检测展示室内温度测量图7-3所表示:图7-3 室温 用
23、手指捏住DS18B20一段时间,再次进行温度测量。图7-4所表示:图7-4 手指加热7.5 焊接点展示每个焊点以方正,不带刺,均匀为好。当焊好电路后,仔细检验焊点质量和是否导通。图7-5所表示:图7-5 焊接点展示7.6 作品检验 1、首先根据仿真图将实物焊接,注意焊接质量,不要出现虚焊等现象。 2、通电观察现象。 3、通电后无反应。 4、将单片机换一块最小系统板,检验是否原来最小系统板有问题及单片机是否有问题。 5、液晶显示器显示和仿真是否有不一样。 6、检验单片机引脚和液晶显示器连接次序是否正确.程序是否匹配。 7、液晶显示器不亮或亮很暗。 8、检验线路正负极是否接反,检验限流电阻阻值是否
24、正确,检验是否有断路现象。当焊好电路后通电以后,发觉电路不亮,检验了一下单片机向外接口,虚焊了个地方,重新焊好后,接入液晶显示器,发觉有一组液晶显示器不亮,原因是未连接背光电路,重新连接后,通电,试验成功。8 结论 本系统充足利用了STC89C52RC芯片I/O引角。系统统采取MSC-51系列单片机为中心器件来设计温度检测系统,实现了能依据实际温度经过单片机芯片P2口控制液晶显示器显示;系统设计简便、实用性强、操作简单、程序设计简便。系统不足之处于于电路18B20易损坏、和液晶显示不显著等。因为本设计包含到知识面比较广,再加上本人在相关领域知识缺乏,所以本设计性能指标还是有待改善,并让我明白了
25、仿真和真实动手是含有差距,想和做并不一样。要尤其重视细节,制作实物时出现液晶屏不显示故障,当初只认为是程序或焊接有问题,最终才发觉只是电位器没调整好。这次课程设计,使我对所学知识和技能、分析和处理问题能力进行了可贵锻炼,使我深刻领会了单片机基础原理和了解到单片机应用系统开发过程艰苦。在常见编程设计思绪技巧掌握方面全部向前迈了一大步。经过这次课程设计,我充足意识到了自己所学东西还是很有限,明确了认为要努力方向,不能只学习书本上理论知识,还要了解部分书本上无法学到东西,为自己以后奠定了一定基础。 附录:C语言程序:#include#include#define uchar unsigned cha
26、r #define uint unsigned int#define LCDIO P2 /1602数据口sbit DQ=P36;/ds18b20和单片机连接口sbit rs=P11; /1602数据命令选择引脚/sbit rd=1;/读写选择 sbit lcden=P12;/1602选通引脚float f_temp; /浮点型温度值 uint tvalue;/温度值uchar tflag;uchar code table=The temperature ; /每行显示16个字符uchar code table1=is: 000.0C wfu;uchar data disdata5;void d
27、elay(uint z)/短延时uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com)/1602写命令子程序rs=0;/RS是数据命令选择短,高电平写数据,低电平写命令/rd=1; lcden=0;/1602选通端,高电平选通,低电平严禁P2=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)/1602写数据子程序rs=1;/RS是数据命令选择短,高电平写数据,低电平写命令/rd=1;/?lcden=0;/1602选通端,高电平选通,低电平
28、严禁P2=date;delay(5);lcden=1;delay(5);lcden=0;void init()/1602初始化程序uchar num;lcden=0;write_com(0x38);/0011 1000B,功效模式设置,设置为8为数据口,两行显示,5*7点阵write_com(0x0c);/0000 1011B,显示开及光标设置,关显示,显示光标,光标闪烁write_com(0x06);/0000 0110B,显示光标移动设置,读或写一个字符,地址指针减一且光标减一,写一个字符屏幕显示不移动write_com(0x01);/0000 0001B,显示清屏,数据指针和全部显示清屏
29、write_com(0x80);/1000 000B,关闭显示delay(5);write_com(0x80);/1000 000B,设置为2行显示,写入第一行字符地址,第一行地址是00-2Ffor(num=0;num16;num+) write_date(tablenum);/写入第一行数据delay(5);write_com(0x80+0x40);/1100 0000B,设置为2行显示,写入第二行字符地址,第而行地址是40-67for(num=0;num0;i-) DQ = 0; /给脉冲信号dat=1;DQ = 1; /给脉冲信号if(DQ)dat|=0x80;delay_18B20(1
30、0);return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata=1;read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst(); ds1820wr(0xCC);/跳过ROM_nop_();/ds1820wr(0x4E);/写EEPROM,发出向内部RAM3、4 字节写上、下限温度数据命令,紧跟该命令以后,是传送两字节数据/ ds1820wr(0x00);/Th
31、/ds1820wr(0x00);/Tlds1820wr(0x7f);/12 bits温度分辨率x1f, 0x3f, 0x5f ,0x7f温度读数分辨率分别对应0.5, 0.25, 0.125 ,0.0625 /ds1820wr(0xcc); /跳过读EPROM序列 /ds1820wr(0x48); 将RAM 中第3 、4 字节内容复制到EEPROM中ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/_nop_();ds1820wr(0x44);/*开启温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe)
32、;/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0?0.5:-0.5);return(tvalue);void ds1820disp()/温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x20;/正
33、温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/假如百位为0,不显示 if(disdata1=0x30) disdata1=0x20;/假如百位为0,十位为0也不显示 write_com(0x80+0x44); /1100 0000B,设置为2行显示,写入第二行字符地址,第而行地址是40-67 write_date(flagdat);/显示符号位 write_com(0x80+0x45); write_date(disdata0);/显示百位 write_com(0x80+0x46); write_da
34、te(disdata1);/显示十位 write_com(0x80+0x47); write_date(disdata2);/显示个位 write_com(0x80+0x48); write_date(0x2e);/显示小数点 write_com(0x80+0x49); write_date(disdata3);/显示小数位 write_com(0x80+0x4a); write_date(C);void main()init();read_temp();/读取温度ds1820disp();/显示while(1)read_temp();/读取温度ds1820disp();/显? 参考文件:1 吴拂晓、王桂棠、洪添胜等. 单片机原理及应用技术 M . 北京: 科学出版社,.2 冯文旭. 单片机原理及应用 M . 北京: 机械工业出版社,.3 康华光. 电子技术基础M.北京:高等教育出版社,.4 张兰红、邹华等. 单片机原理及应用 M . 北京: 机械工业出版社,5 李伯成. 基于MCS-51单片机嵌入式系统设计M.北京:电子工业出 版社,.6 楼然苗、李光飞. 单片机课程设计指导M.北京:北京航空航天大学出版 社,1997.
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100