ds18b20汇编设计报告(附电路图和程序)Word文档下载推荐.doc
- 文档编号:14562494
- 上传时间:2022-10-23
- 格式:DOC
- 页数:18
- 大小:606KB
ds18b20汇编设计报告(附电路图和程序)Word文档下载推荐.doc
《ds18b20汇编设计报告(附电路图和程序)Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《ds18b20汇编设计报告(附电路图和程序)Word文档下载推荐.doc(18页珍藏版)》请在冰豆网上搜索。
AT89C51
复位电路
电源电路
LED显示
DS18B20
温度传感器
图1DS18B20温度测温系统框图
3硬件设计
3.1单片机最小系统设计
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汇编语言程序源代码
27
DATA_BUS BIT P3.3
FLAG BIT 00H
TEMP_L EQU 30H
TEMP_H EQU 31H
TEMP_DP EQU 32H
TEMP_INT EQU 33H
TEMP_BAI EQU 34H
TEMP_SHI EQU 35H
TEMP_GE EQU 36H
DIS_BAI EQU 37H
DIS_SHI EQU 38H
DIS_GE EQU 39H
DIS_DP EQU 3AH
DIS_ADD EQU 3BH
ORG 0000H
AJMP START
ORG 0050H
START:
MOV SP, #40H
MAIN:
LCALL READ_TEMP
LCALL PROCESS
AJMP MAIN
;
读温度程序
READ_TEMP:
LCALL RESET_PULSE
MOV A, #0CCH
LCALL WRITE
MOV A, #44H
LCALL WRITE
LCALL DISPLAY
LCALL RESET_PULSE
MOV A, #0CCH
LCALL WRITE
MOV A, #0BEH
LCALL READ
RET
复位脉冲程序
RESET_PULSE:
RESET:
SETB DATA_BUS
NOP
CLR DATA_BUS
MOV R7, #255
DJNZ R7, $
SETB DATA_BUS
MOV R7, #30
DJNZ R7,$
JNB DATA_BUS, SETB_FLAG
CLR FLAG
AJMP NEXT
SETB_FLAG:
SETB FLAG
NEXT:
MOV R7, #120
JNB FLAG, RESET
RET
写命令
WRITE:
MOV R6, #8
CLR C
WRITING:
MOV R7, #5
RRC A
MOV DATA_BUS, C
MOV R7, #30H
DJNZ R6, WRITING
循环显示段位
DISPLAY:
MOV R4, #200
DIS_LOOP:
MOV A, DIS_DP
MOV P2, #0FFH
MOV P0, A
CLR P2.7
LCALL DELAY2MS
MOV A, DIS_GE
SETB P0.7
CLR P2.6
MOV A, DIS_SHI
CLR P2.5
MOV A, DIS_BAI
MOV A, TEMP_BAI
CJNE A, #0,SKIP
AJMP NEXTT
SKIP:
CLR P2.4
NEXTT:
DJNZ R4, DIS_LOOP
读命令
READ:
MOV R0, #TEMP_L
MOV R6, #8
MOV R5, #2
READING:
MOV C, DATA_BUS
DJNZ R6, READING
MOV @R0, A
INC R0
DJNZ R5, READING
数据处理
PROCESS:
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ds18b20 汇编 设计 报告 电路图 程序