基于STC89C52的数字温度计目录1、方案选择1.1、主控芯片选择 (2)1.2、显示模块 (2)1.3、温度检测模块 (2)2、系统硬件设计2.1、51单片机最小系统设计 (2)2.2、温度检测电路设计 (2)3、系统软件设计3.1、LED显示电路设计 (2)3.2、温度检测电路设计 (2)3.3、仿真界面 (3)4、实训与焊接过程4.1、焊接与调试 (4)4.2、焊接实物图 (4)6、总结 (4)7、附录附录1、原理图 (5)附录2、程序清单………………………………………….5~91、系统方案选择1.1 主控芯片选择STC89C52RC是采用8051核的ISP在线可编程芯片,最高工作时钟频率80MHz,片内含8KB的可反复擦写1000次的Flash只读存储器,器件兼容MCS-51指令系统及8051引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在线可编程特定,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。
STC89C52RC系列单片机是单时钟周期、高速、低功耗的新一代8051单片机。
1.2 时钟及显示模块数码管亮度高,显示大,特别是显示的温度很直观,价格比较便宜。
1.3 温度检测模块DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
它在实际应用中不需要外部任何元器件即可实现测温,测量温度范围在-55到+125摄氏度之间。
2、系统硬件设计2.1 51单片机最小系统设计以STC89C52单片机为核心,选用12M的晶振,这是最常用的选择,外接电容没有特别的要求,但是外接电容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选用30pf的电容作为起振电容。
复位电路为按键低电平复位,当按键按下,RET端为高电平,当高电平持续4us的时间就可以使单片机复位。
2.2 电源供电电路设计我们采用USB作为电源,D1为电源指示灯,当开关打开,显示灯亮,表示给电路供+5V电压。
3、系统软件设计3.1 LED显示电路设计数码管我们用四位一体共阳数码管,A~B笔段加上350欧电阻接单片机的P1.0~7口,位选段我们加上三极管作为驱动接单片机的P2.3~0口。
3.2 温度检测电路设计DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如基于STC89C52的数字温度计下:•独特的单线接口仅需一个端口引脚进行通讯•简单的多点分布应用•无需外部器件•可通过数据线供电•零待机功耗•测温范围-55~+125℃,以0.5℃递增。
华氏器件-67~+2570F,以0.90F 递增•温度以9 位数字量读出•温度数字量转换时间200ms(典型值)•用户可定义的非易失性温度报警设置•报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DQ 为数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD 为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
3.3仿真界面4、实训与焊接过程4.1、焊接与调试4.1、焊接实物图6、总结1、选择芯片和传感器时,够用易用就可以,综合考虑选择性价比最好的。
2、在进行电路实际制作之前,应该用仿真软件进行仿真,可以使开发进程加快。
3、在实际制作电路时,需要注意电源端和地端要检测过不导通后才能通电检测,防止烧坏芯片。
7、附录附录1、原理图附录2、程序清单ORG 00HTMPL EQU 29HTMPH EQU 28HFLAG1 EQU 38HDATAIN BIT P3.7MAIN: LCALL GET_TEMPERLCALL CVTTMPLCALL DISP1AJMP MAININIT_1820:SETB DATAINNOPCLR DATAINMOV R1,#3TSR1: MOV R0,#107DJNZ 0,$DJNZ R1,TSR1SETB DATAINNOPNOPMOV R0,#25H TSR2: JNB DATAIN,TSR3DJNZ R0,TSR2CLR FLAG1SJMP TSR7TSR3: SETB FLAG1CLR P1.7MOV R0,#117 TSR6: DJNZ R0,$TSR7: SETB DATAINRETGET_TEMPER:SETB DATAINLCALL INIT_1820JB FLAG1,TSS2NOPRETTSS2: MOV A,#0CCHLCALL WRITE_1820MOV A,#44HLCALL WRITE_1820ACALL DISP1LCALL INIT_1820MOV A,#0CCHLCALL WRITE_1820MOV A,#0BEHLCALL WRITE_1820LCALL READ_18200RETWRITE_1820:MOV R2,#8CLR CWR1: CLR DATAINMOV R3,#6DJNZ R3,$RRC AMOV DATAIN,CMOV R3,#23DJNZ R3,$SETB DATAINNOPDJNZ R2,WR1SETB DATAINREAD_18200:MOV R4,#2MOV R1,#29HRE00: MOV R2,#8RE01: CLR CSETB DATAINNOPNOPCLR DATAINNOPNOPNOPSETB DATAINMOV R3,#9RE10: DJNZ R3,RE10MOV C,DATAINMOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RETCVTTMP: MOV A,TMPHANL A,#80HJZ TMPC1CLR CMOV A,TMPLCPL AADD A,#1MOV TMPL,AMOV A,TMPHCPL AADDC A,#0MOV TMPH,AMOV 73H,#0BHSJMP TMPC11 TMPC1: MOV 73H,#0AH TMPC11: MOV A,TMPLANL A,#0FHMOV DPTR,#TMPTABMOVC A,@A+DPTRMOV 70H,AMOV A,TMPLANL A,#0F0HSWAP AMOV TMPL,AMOV A,TMPHANL A,#0FHSWAP AORL A,TMPLH2BCD: MOV B,#100DIV ABJZ B2BCD1MOV 73H,AB2BCD1: MOV A,#10XCH A,BDIV ABMOV 72H,AMOV 71H,BTMPC12: NOPDISBCD: MOV A,73H;ANL A,#0FH;CJNE A,#1,DISBCD0;SJMP DISBCD1DISBCD0: MOV A,72HANL A,#0FHJNZ DISBCD1MOV A,73H;MOV 72H,AMOV 73H,#0AH DISBCD1: RETTMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9 DISP1: MOV R1,#70HMOV R5,#0FEHPLAY: MOV P1,#0FFHMOV A,R5MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV A,R5JB ACC.1,L00P1CLR P1.7L00P1: LCALL DL1MSINC R1MOV A,R5JNB ACC.3,ENDOUTRL AMOV R5,ASJMP PLAYENDOUT: MOV P1,#0FFHMOV P2,#0FFHRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90H,0FFH,0BFH DL1MS: MOV R6,#14HDL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1RETEND实训报告数字温度计姓名:学号:班级:专业:基于STC89C52的数字温度计。