77范文网 - 专业文章范例文档资料分享平台

DS18B20+DS1302项目报告(2)

来源:网络收集 时间:2020-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

LCALL RST ;调用18B20复位子程序(初始化)

///////////////////////////////////////////////////////////////////

lcall

ds1302csh ;调用1302初始化子程序

;调用lcd初始化子程序 ;调用1302写子程序 ;调用1302读子程序

;调用显示子程序

lcall lcdcsh lcall w1302 lcall lcall

r1302

display

;************************************************************* main:

CALL MK1

;ds18b20的写读及显示加1302时钟显示

;判断DS18B20是否响应以及初始值的设定

CALL MK3 AJMP MAIN

;************************************************************* MK4: MK1:

AJMP MK2

;跳转到错误子程序

;DS1820不存在

JNB FLAG1,MK4

LCALL MENU_OK 序

CALL RET

RD_EEPROM

;DS1820存在,调用显示正确信息子程

;将报警温度值从EEPROM中读出来

;************************************************************* MK3:

LCALL RST

;调用DS18B20复位子程序

;DS18B20不存在跳转到错误显示子程

JNB FLAG1,MK4 序

MOV A,#0CCH LCALL WRITE

;跳过ROM匹配命令

;DS18B20数据写入操作子程序

;温度转换命令

MOV A,#44H LCALL WRITE LCALL RST

;DS18B20数据写入操作子程序

;调用DS18B20复位子程序

6

MOV A,#0CCH LCALL WRITE

;跳过ROM匹配

;DS18B20数据写入操作子程序

;读温度命令

MOV A,#0BEH LCALL WRITE LCALL READ

;调用DS18B20数据读取操作子程序 ;调用温度数据BCD 码处理子程序 ;调用温度数据显示子程序 ;调用LCD显示处理子程序

;调用实测温度值与设定温度值比较子

LCALL CONVTEMP LCALL DISPBCD LCALL CONV

LCALL TEMP_COMP 程序

LCALL PROC_KEY ;调用键扫描子程序

;**************************************************************************

LCALL

SHIZHONG

;调用1302时钟模块

SJMP MK3

;*********************************************************************

SHIZHONG:mov tmod,#01h ;用定时器0,方式一工作 mov th0,#70h ;为定时器赋初值 mov tl0,#00h setb tr0 lp1:

jbc tf0,lp2 ;定时器溢出跳到lp2处并将tf0清零 clr tr0

lp2: mov th0,#70h ;为定时器赋初值 mov tl0,#00h

lcall r1302 ;调用读1302子程序 lcall display ;调用显示程序 setb tr0

7

RET

;******************LCD初始化********************************** set_lcd:

CLR EN

LCALL INIT_LCD ;初始化 LCD

LCALL STORE_DATA ;将自定义字符存入LCD的CGRAM RET

;///////////////////////////////////////////////////////////////////////////

;设置1302初值子程序

ds1302csh:mov second,#00h

mov minute,#57h mov hour,#15h mov day,#17h mov month,#03h mov week,#06h mov year,#12h

;miao秒

;分

;时 ;天 ;月 ;周 ;年

;/////////////////////////////////////////////////////////////////////

;lcd初始化子程序 lcdcsh:

mov

lcd,#38h

lcall xzl mov

lcd,#08h

lcall xzl mov

lcd,#01h

lcall xzl

lcd,#06h

mov

lcall xzl mov

lcd,#0ch

8

lcall xzl

;///////////////////////////// ;1302写数据子程序 w1302: clr ce

clr clk nop setb

ce

;复位脚置高电平 ;复位脚置低电平

;串行时钟置低电平

mov b,#8eh ;送操作地址 lcall wbit

;调用写字节子程序

mov b,#00h ;送操作数 lcall wbit setb

;调用写字节子程序

clk ;串行时钟置高电平,下降沿有效

clr ce ;禁止写入数据

mov r0,#second ;将秒寄存器送到r0 mov r1,#80h

;将80h送到A

mov r7,#7 ;将r7送7

//////////////////////////////////////////////////////////////////////////

wloop: clr ce

;复位脚置低电平

clr clk nop setb

;复位脚置低电平

ce ;复位脚置高电平,准备写数据

mov b,r1 ;将r1内的数据送给b

;调用写字节子程序

lcall wbit

mov a,@r0 ;将r0内地址中的数送到A mov hex,a ;将a中的数送到十进制寄存器 lcall hex_bcd mov b,a

;调用十进制转bcd码子程序

;将a内的数送给b

;调用写字节子程序

9

lcall wbit

inc r0 inc r1 inc r1 setb

;r0加一 ;r1加一

clk ;串行时钟下降沿写入

clr ce djnz

;禁止写入

r7,wloop ;判断是否将年月日等七组数写入1302

;禁止写入 ;

clr ce clr clk nop setb

ce ;准备写入

mov b,#8eh ;送操作地址 lcall wbit

;调用写字节子程序

mov b,#80h ;送操作数 lcall wbit setb

clk

;调用写字节子程序 ;下降沿有效

clr ce ret

;禁止写入

;子程序返回

;///////////////////////////// ;写字节子程序

wbit: mov r2,#08h ;给r2送8 w_loop:

a,b

;b送给a ;带进位的右移A

mov

rrc a mov b,a

mov dio,c ;sclk上升沿时写入数据 setb clk nop

clr clk

;禁止写入

djnz r2,w_loop ;判断是否送完

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库DS18B20+DS1302项目报告(2)在线全文阅读。

DS18B20+DS1302项目报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/778745.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: