单片机课程设计报告2Word格式.docx
- 文档编号:20699479
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:18
- 大小:449.20KB
单片机课程设计报告2Word格式.docx
《单片机课程设计报告2Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告2Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
温度传感器
目录
1概述.............................................................31.1传感器.....................................................3
1.2设计任务及指标.............................................3
2系统总体方案及硬件设计...........................................42.1总体设计方案...............................................4
2.2方案的总体设计框图.........................................4
2.2.1主控制器...............................................4
2.2.2显示电路...............................................5
2.2.3温度传感器.............................................5
2.2.4DS18B20温度传感器与单片机的接口电路...................7
2.3系统硬件主要构成............................................7
3软件设计.........................................................8
3.1主程序方案..................................................8
3.2读出温度子程序..............................................8
3.3温度转换命令子程序..........................................9
3.4计算温度子程序..............................................9
3.5显示数据刷新子程序.........................................10
4Proteus软件仿真................................................11
5课程设计体会....................................................12
参考文献
附1:
源程序代码
附2:
系统原理图
1、概述
1.1传感器
传感器(英文名称:
transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
1.2设计任务及指标
1.2.1设计任务
利用单片机和数字温度传感器,实现一个能精确测量并显示温度的实际应用系统,为低成本的数字温度测量系统设计提出一种新的解决方案。
并需说明设计方案的构思依据、设计思路、系统原理、设计过程及系统工作流程图。
1.2.2技术指标:
①系统稳定性高;
②使用四位数码管显示温度值;
③测量精度达0.1℃;
④要求系统具备复位功能;
2系统总体方案及硬件设计
2.1总体设计方案
在单片机电路设计中,使用传感器,是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
2.2方案的总体设计框图
温度计电路设计总体设计方框图如2-1所示,控制器采用单片机AT89C2051,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
图2-1 总体设计方框图
2.2.1主控制器
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图2-1所示。
图2-4中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。
图2-2单片机主板电路
2.2.2显示电路
显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。
2.2.3温度传感器
DS18B20的测温原理如图2-3所示.图中低温度系数晶振的振荡频率受温度的影响很小,用于产生的信号作为减法计数器1;
高温度系数晶振随温度变化其振荡频率明显变,所以产生的信号作为减法计数器2的脉冲输入。
图中还隐含着计数门,当计数门打开时,DS18B20对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器决定,每次测量前,首先将—55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,减法计数器1和温度寄存器被预置在—55℃所对应的一个基数值。
图2-3DS18B20测温原理图
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。
斜率累加器用于温度补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
2.2.4DS18B20温度传感器与单片机的接口电路
图2-4DS18B20的测温电路与单片机的连接电路
2.3系统硬件主要构成
整个系统硬件可以分为主控制器模块,测温电路模块和显示电路模块。
每个模块执行其相应的功能,共同组成了一个有序,协调的系统。
主要元件有控制器—AT89C2051,温度传感器DS18B20、数码管—LED。
3、软件设计
3.1主程序方案
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图3-1所示。
图3-1主程序流程图图3-2读温度流程图
3.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图3-2示
3.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如上图,图3-3所示
图3-3温度转换流程图
3.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3-4所示。
图3-4 计算温度流程图
3.5显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
程序流程图如图3-5。
图3-5 显示数据刷新流程图
4、Proteus软件仿真
5、课程设计体会
在这次设计中,经过自身的努力,不但加深了对单片机与传感器的进一步的认识和理解,并将所学的知识充分应用于实践中。
通过毕业设计,使我认识到理论联系实际的重要性,在实践中扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,从各方面提高了自身的综合素质。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:
北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京:
北京航空航天大学出版社,1994
[3] 阎石.数字电子技术基础(第三版).北京:
高等教育出版社,1989
[4] 廖常初.现场总线概述[J].电工技术,1999
[5]李道华,李玲,朱艳编著.传感器电路分析与设计[M].武汉:
武汉大学出版社,2003
[6]沙占友编著.智能化集成温度传感器原理与应用[M].北京:
机械工业出版社,2002
[7]方佩敏编著.新编传感器原理·
应用·
电路详解[M].北京:
电子工业出版社,1993
ORG0000H;
0-125度的温度计
TEMPER_LEQU41H;
用于保存读出温度的低8位
TEMPER_HEQU40H;
用于保存读出温度的高8位
FLAG1EQU38H;
是否检测到DS18B20标志位
A_BIT1EQU30H;
数码管小数点位数存放内存位置
B_BIT1EQU31H;
数码管个位数存放内存位置
C_BIT1EQU32H;
数码管十位数存放内存位置
D_BIT1EQU33H;
数码管百位数存放内存位置
DQEQUP3.7;
30H,31H,32H,33H:
小数点位个位十位百位
MOD7:
MOVSP,#60H
LCALLGET_TEMPER;
调用读温度子程序
LCALLTEMPCOV
LCALLDISPLAY;
调用数码管显示子程序
AJMPMOD7
TEMP0:
INCA
AJMPTEMP1
TEMPCOV:
MOVA,TEMPER_L;
数据处理子程序TEMPCOV
MOVB,#10H
DIVAB
JBB.3,TEMP0
TEMP1:
MOV34H,A;
将TEMPER_L的高四位右移四位,存入34H中(温度值)
MOVA,B;
将TEMPER_L的低四位X10/16得小数后一位数
MOVB,#0AH
MULAB
MOV30H,A;
将小数后一位数.存入30H中
MOVA,TEMPER_H;
TEMPER_H中存放高8位数,权重16
ADDA,34H;
34H中存入温度值的整数部分
MOV31H,B;
个位存入31H中
MOV32H,B;
十位存入32H中
MOV33H,B;
百位存入33H中
MOVA,TEMPER_H
MOV34H,#10H
JBACC.7,EXIT7
MOV34H,#00H
EXIT7:
RET;
;
这是DS18B20复位初始化子程序
INIT_1820:
SETBDQ
NOP
CLRDQ;
主机发出延时537微秒的复位低脉冲
MOVR1,#03H
TSR1:
MOVR0,#6BH
DJNZR0,$
DJNZR1,TSR1
SETBDQ;
然后拉高数据线
MOVR0,#25H
TSR2:
JNBDQ,TSR3;
等待DS18B20回应
DJNZR0,TSR2
LJMPTSR4;
延时
TSR3:
SETBFLAG1;
置标志位,表示DS1820存在
LJMPTSR5
TSR4:
CLRFLAG1;
清标志位,表示DS1820不存在
LJMPTSR7
TSR5:
MOVR0,#75H
DJNZR0,$;
时序要求延时一段时间
TSR7:
RET;
读出转换后的温度值
GET_TEMPER:
SETBDQ
LCALLINIT_1820;
先复位DS18B20
JBFLAG1,TSS2
RET
TSS2:
MOVA,#0CCH;
跳过ROM匹配
LCALLWRITE_1820
MOVA,#44H;
发出温度转换命令
等待AD转换结束,12位的话750微秒
准备读温度前先复位
MOVA,#0BEH;
发出读温度命令
LCALLREAD_1820;
将读出的温度数据保存到35H/36H
写DS18B20的子程序(有具体的时序要求)
WRITE_1820:
MOVR2,#08H;
一共8位数据
CLRC
WR1:
CLRDQ
MOVR3,#06H
DJNZR3,$
RRCA
MOVDQ,C
MOVR3,#17H
DJNZR2,WR1
读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_1820:
MOVR4,#02H;
将温度高位和低位从DS18B20中读出
MOVR1,#TEMPER_L;
低位存入TEMPER_L(TEMPER_L),高位存入(TEMPER_H)
RE00:
数据一共有8位
RE01:
MOVR3,#09H
MOVC,DQ
DJNZR2,RE01
MOV@R1,A
DECR1
DJNZR4,RE00
显示子程序
DISPLAY:
MOVDPTR,#TAB;
指定查表启始地址
MOVR0,#04H
DPL1:
MOVR1,#0FAH;
显示1000次
DPLOP:
MOVA,A_BIT1;
取小数点后位数
MOVCA,@A+DPTR;
查小数点后位数的7段代码
MOVP1,A;
送出小数点后位的7段代码
CLRP3.2;
开小数点后位显示
ACALLD1MS;
显示1MS
SETBP3.2
MOVDPTR,#TAB2;
个位需要小数点点亮
MOVA,B_BIT1;
取个位数
查个位数的7段代码
送出个位的7段代码
CLRP3.3;
开个位显示
SETBP3.3
重新为DPTR赋TAB值
MOVA,C_BIT1;
取十位数
查十位数的7段代码
送出十位的7段代码
CLRP3.4;
开十位显示
SETBP3.4
MOVA,D_BIT1;
取百位数
查百位数的7段代码
送出百位的7段代码
CLRP3.5;
开百位显示
SETBP3.5
MOVP1,#00H
DJNZR1,DPLOP;
小于100次循环
DJNZR0,DPL1;
小于4个100次循环
1MS延时(按12MHZ算)
D1MS:
MOVR7,#0FFH
DJNZR7,$
实验板上的7段数码管0~9数字的共阴显示代码
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
TAB2:
DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告
