设计报告Word下载.docx
《设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《设计报告Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
3.1.1电源电路
图2电源电路
3.1.2振荡电路与复位电路
图3振荡电路图4复位电路
3.2DS18B20与单片机的接口电路
图5DS18B20与单片机的接口电路
3.3PROTEUS仿真电路图
图6PROTEUS仿真电路图
4软件设计
系统程序主要包括主程序、读取温度子程序、数据转换子程序、显示数据子程序等。
4.1程序流程
4.1.1主程序流程图
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图7所示。
图7主程序流程图
4.1.2各子程序流程图
1、初始化程序
所有操作都必须由初始化脉冲开始,波形如图,单片机先输出一个480~960us低电平到DQ引脚,再将DQ引脚置高电平,过15~60us后检测DQ引脚状态,若为低电平则DS18B20工作正常,否则初始化失败,不能正常测量温度。
2、读取温度子程序
读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
主要包括以下三个命令:
(1)写暂存器命令【4EH】
这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。
所有数据必须在复位脉冲前写完。
即如果只想写一个字节的数据到地址2,可按如下流程:
1、初始化;
2、写0CCH,跳过ROM检测;
3、写4EH;
4、写1字节数据;
5、复位,即向DQ输出480~960us低电平
(2)读暂存命令【BEH】
这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程
(3)转换温度命令【44H】
这个命令启动温度转换过程。
转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令,DS18B20将输出0直到转换完成,转换完成后将输出1。
图8读取温度子程序
3、写流程图
写时隙:
写时隙由DQ引脚的下降沿引起。
18B20有写1和写0两种写时隙。
所有写时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。
DS18B20在DQ下降沿后15μs~60μs间采样DQ引脚,若此时DQ为高电平,则写入一位1,若此时DQ为低电平,则写入一位0,如图9所示。
所以,若想写入1,则单片机应先将DQ置低电平,15us后再将DQ置高电平,持续45μs;
若要写入0,则将DQ置低电平,持续60μs。
图9写流程图
4、读流程图
读时隙:
读时隙由DQ下降沿引起,持续至少1μs的低电平后释放总线(DQ置1)DS18B20的输出数据将在下降沿15μs后输出,此时单片机可读取1位数据。
读时隙结束时要将DQ置1。
所有读时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。
图10读流程图
4.4汇编语言程序源代码
DATA_BUSBITP3.3
FLAGBIT00H
TEMP_LEQU30H
TEMP_HEQU31H
TEMP_DPEQU32H
TEMP_INTEQU33H
TEMP_BAIEQU34H
TEMP_SHIEQU35H
TEMP_GEEQU36H
DIS_BAIEQU37H
DIS_SHIEQU38H
DIS_GEEQU39H
DIS_DPEQU3AH
DIS_ADDEQU3BH
ORG0000H
AJMPSTART
ORG0050H
START:
MOVSP,#40H
MAIN:
LCALLREAD_TEMP
LCALLPROCESS
AJMPMAIN
;
读温度程序
READ_TEMP:
LCALLRESET_PULSE
MOVA,#0CCHLCALLWRITE
MOVA,#44H
LCALLWRITE
LCALLDISPLAY
LCALLRESET_PULSE
MOVA,#0CCH
LCALLWRITE
MOVA,#0BEH
LCALLREAD
RET
复位脉冲程序
RESET_PULSE:
RESET:
SETBDATA_BUS
NOP
CLRDATA_BUS
MOVR7,#255
DJNZR7,$
SETBDATA_BUS
MOVR7,#30
DJNZR7,$
JNBDATA_BUS,SETB_FLAG
CLRFLAG
AJMPNEXT
SETB_FLAG:
SETBFLAG
NEXT:
MOVR7,#120
JNBFLAG,RESET
写命令
WRITE:
MOVR6,#8
CLRC
WRITING:
MOVR7,#5
RRCA
MOVDATA_BUS,C
MOVR7,#30H
DJNZR6,WRITING
循环显示段位
DISPLAY:
MOVR4,#200
DIS_LOOP:
MOVA,DIS_DP
MOVP2,#0FFH
MOVP0,A
CLRP2.7
LCALLDELAY2MS
MOVA,DIS_GE
SETBP0.7
CLRP2.6
MOVA,DIS_SHI
CLRP2.5
MOVA,DIS_BAI
MOVA,TEMP_BAI
CJNEA,#0,SKIP
AJMPNEXTT
SKIP:
CLRP2.4
NEXTT:
DJNZR4,DIS_LOOP
读命令
READ:
MOVR0,#TEMP_L
MOVR6,#8
MOVR5,#2
READING:
MOVC,DATA_BUS
DJNZR6,READING
MOV@R0,A
INCR0
DJNZR5,READING
数据处理
PROCESS:
MOVR7,TEMP_L
MOVA,#0FH
ANLA,R7
MOVTEMP_DP,A
MOVA,#0F0H
SWAPA
MOVTEMP_L,A
MOVR7,TEMP_H
ORLA,TEMP_L
MOVB,#64H
DIVAB
MOVTEMP_BAI,A
MOVA,#0AH
XCHA,B
MOVTEMP_SHI,A
MOVTEMP_GE,B
MOVA,TEMP_DP
MOVDPTR,#TABLE_DP
MOVCA,@A+DPTR
MOVDPTR,#TABLE_INTER
MOVCA,@A+DPTR
MOVDIS_DP,A
MOVA,TEMP_GE
MOVDPTR,#TABLE_INTER
MOVDIS_GE,A
MOVA,TEMP_SHI
MOVDIS_SHI,A
MOVDIS_BAI,A
DELAY2MS:
MOVR6,#3
LOOP3:
MOVR5,#250
DJNZR5,$
DJNZR6,LOOP3
TABLE_DP:
DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06H
DB06H,07H,08H,08H,09H,09H
TABLE_INTER:
DB03FH,006H,05BH,04FH,066H
DB06DH,07DH,07H,07FH,06FH
END
5DS18B20简单介绍
DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。
DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。
温度测量范围为-5