当前位置:首页 > 基于C51单片机数字温度计设计制作
结 论
本次毕业设计基于MCS-51系列的单片机芯片STC89C51来设计一个数字温度计,该设计充分利用了温度传感器DS18B20功能强大的优点,如DS18B20可以直接读出被测温度值,进行转换;而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本与易使用的特点,大大减少了硬件电路,也使得该数字温度计具有结构简单、成本低廉、精确度较高、反应速度较快、数字化显示和不易损坏等特点,而且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。
14
参考文献
[1] 李建忠?单片机原理及应用?第二版?[M] ?西安:西安电子科技大学出版社 ,2008.5。
[2] 何立民?单片机应用技术大全?[M] ?北京:北京航空航天大学出版社,1994。 [3] 袁希光?传感器技术手册?[M] ?北京:国防工业出版社,1986。 [4] 冯英?传感器电路原理与制作?[M] ?成都:成都科技大学出版社,1997。 [5] 张有德,赵志英.《单片微型机原理、应用于实验》.复旦大学出版社,2000.4。 [6] 赵新民,王祁.智能仪器设计基础.哈尔滨:哈尔滨工业大学出版社,1999。 [7] 黄亮?基于AT89C2051串口的LED数码管显示电路?[J]《?电子制作》,2006,第08期。
[8]truelmz,DS18B20工作原理
http://wenku.http://www.china-audit.com//view/1134cc8271fe910ef12df858.html,2010.8。 [9] yh3099 ,DS18B20,http://baike.http://www.china-audit.com//view/1341776.htm,2011,10。
15 22
附录A 源程序
#include
#define uchar unsigned char #define uint unsigned int #include\#include\
unsigned char code digit[10]={\定义字符数组显示数字 unsigned char code Str[]={\说明显示的是温度 unsigned char code Error[]={\说明没有检测到DS18B20
unsigned char code Temp[]={\说明显示的是温度 unsigned char code Cent[]={\温度单位 uchar time;
/********函数功能:显示没有检测到DS18B20******/ void display_error(void) {
uchar i;
WriteAddress(0x00);//显示的数据是在第一行第一列 i = 0;
while(Error[i] != '\\0') {
lcd_wdat(Error[i]); i++;
delay_ms(100); }while(1) ;
16 22
}
/***************************************************** 函数功能:显示说明信息
**********************************************/ void display_explain(void) {
uchar i;
WriteAddress(0x00);//显示的数据是在第一行第一列 i = 0;
while(Str[i] != '\\0') {
lcd_wdat(Str[i]); i++;
delay_ms(100); } }
/**************显示温度Temp符号**************/ void display_symbol(void) {
uchar i;
WriteAddress(0x40); //写显示地址,将在第2行第1列开始显示
i = 0 ;
while(Temp[i] != '\\0') {
lcd_wdat(Temp[i]); i++;
delay_ms(50);
17 22
共分享92篇相关文档