没有合适的资源?快使用搜索试试~ 我知道了~
DS18B20温度控制数码管显示汇编非常详细.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 71 浏览量
2021-10-02
07:36:25
上传
评论
收藏 71KB DOC 举报
温馨提示
试读
16页
DS18B20温度控制数码管显示汇编非常详细.doc
资源推荐
资源详情
资源评论
- -
; DS18B20 温度控制数码管显示(汇编非常详细)
*
;* 1、P1.6= → 进入设定温度报警值 TL 状态: *
;* L--20 *
;* 2、P1.6 → 进入设定温度报警值 TH 状态: *
;* H--28 *
;* 3、P1.6 → 返回 *
;* 4、设定过程: P1.4 →加键 〔UP〕, P1.5 →减键 〔DOWN〕,可快速调。
*
;* **
TIMER_L DATA 23H
TIMER_H DATA 24H
TIMER_COUN DATA 25H
TEMPL DATA 26H
TEMPH DATA 27H
TEMP_TH DATA 28H
TEMP_TL DATA 29H
TEMPHC DATA 2AH
TEMPLC DATA 2BH
TEMP_ZH DATA 2CH
BEEP EQU P3.7
DATA_LINE EQU P3.3
RELAY EQU P1.3
FLAG1 EQU 20H.0
FLAG2 EQU 20H.1
;-------------------------------------------------
K1 EQU P1.4
K2 EQU P1.5
K3 EQU P1.6
K4 EQU P1.7
;==============================================
===
ORG 0000H
JMP MAIN
ORG 000BH
- word.zl-
- -
AJMP INT_T0
;--------------------------------------------------
MAIN: MOV SP,#30H
MOV TMOD,#01H ;T0,方式 1
MOV TIMER_L,#00H ;50ms 定时值
MOV TIMER_H,#4CH
MOV TIMER_COUN,#00H ;中断计数
MOV IE,#82H ;EA=1,ET0=1
LCALL READ_E2
;LCALL RE_18B20
MOV 20H,#00H
SETB BEEP
SETB RELAY
MOV 7FH,#0AH ;熄灭符
CALL RESET ;复位与检测 DS18B20
JNB FLAG1,MAIN1 ;FLAG1=0,DS18B20 不存在
JMP START
MAIN1: CALL RESET
FLAG1,START
LCALL BEEP_BL ;DS18B20 错误,报警
JMP MAIN1
START:
MOV A,#0CCH ; 跳过 ROM 匹配
CALL WRITE
MOV A,#044H ; 发出温度转换命令
CALL WRITE
CALL RESET
MOV A,#0CCH ; 跳过 ROM 匹配
CALL WRITE
MOV A,#0BEH ; 发出读温度命令
CALL WRITE
CALL READ ;读温度数据
CALL CONVTEMP
CALL DISPBCD
CALL DISP1
CALL SCANKEY
LCALL TEMP_P
JMP MAIN1
;==============================================
- word.zl-
- -
=======
;DS18B20 复位与检测子程序
;FLAG1=1 OK, FLAG1=0 ERROR
;==============================================
========
RESET:
SETB DATA_LINE
NOP
CLR DATA_LINE
MOV R0,#64H ;主机发出延时 600 微秒的复位低脉冲
MOV R1,#03H
RESET1: DJNZ R0,$
MOV R0,#64H
DJNZ R1,RESET1
SETB DATA_LINE ;然后拉高数据线
NOP
MOV R0,#25H
RESET2: JNB DATA_LINE,RESET3 ;等待 DS18B20 回应
DJNZ R0,RESET2
JMP RESET4 ; 延时
RESET3: SETB FLAG1 ; 置标志位,表示 DS1820 存在
JMP RESET5
RESET4: CLR FLAG1 ; 清标志位,表示 DS1820 不存在
JMP RESET6
RESET5: MOV R0,#064H
DJNZ R0,$ ; 时序要求延时一段时间
RESET6: SETB DATA_LINE
RET
;==============================================
=============
;
;==============================================
=============
WRITE: MOV R2,#8 ;一共 8 位数据
CLR CY
WR1:
CLR DATA_LINE ;开场写入 DS18B20 总线要处于复位〔低〕状态
MOV R3,#09
DJNZ R3,$ ;总线复位保持 18 微妙以上
RRC A ;把一个字节 DATA 分成 8 个 BIT 环移给 C
MOV DATA_LINE,C ;写入一个 BIT
MOV R3,#23
DJNZ R3,$ ;等待 46 微妙
SETB DATA_LINE ;重新释放总线
- word.zl-
- -
NOP
DJNZ R2,WR1 ;写入下一个 BIT
SETB DATA_LINE
RET
;==============================================
==============
;从 DS18B20 中读出温度低位、高位和报警值 TH、TL
;存入 26H、27H、28H、29H
;==============================================
==============
READ: MOV R4,#4 ; 将温度高位和低位从 DS18B20 中读出
MOV R1,#26H ; 存入 26H、27H、28H、29H
RE00: MOV R2,#8
RE01: CLR C
SETB DATA_LINE
NOP
NOP
CLR DATA_LINE ;读前总线保持为低
NOP
NOP
NOP
SETB DATA_LINE ;开场读总线释放
MOV R3,#09 ;延时 18 微妙
DJNZ R3,$
MOV C,DATA_LINE ;从 DS18B20 总线读得一个 BIT
MOV R3,#23
DJNZ R3,$ ;等待 46 微妙
RRC A ;把读得的位值环移给 A
DJNZ R2,RE01 ;读下一个 BIT
MOV R1,A
INC R1
DJNZ R4,RE00
RET
;--------------------------------------------
;200ms 对闪动标记取反一次
;--------------------------------------------
INT_T0:
PUSH ACC
PUSH PSW
MOV TL0,TIMER_L
MOV TH0,TIMER_H
INC TIMER_COUN
MOV A,TIMER_COUN
CJNE A,#04H,INT_END
- word.zl-
剩余15页未读,继续阅读
资源评论
- Tombliboos_p2023-05-15资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
- m0_748178242023-06-28资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
wdqsv88
- 粉丝: 3
- 资源: 13万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功