nbhkdz.com冰点文库

单片机温度计c语言

时间:2015-01-05


DS18B20 数字温度计 下面是 DS18B20 测温实验源程序 ORG 0000H SP,#60H P0,#0FFH ;开机初始化

START: MOV MOV MOV MOV

P1,#0FEH P2,#0FFH P3,#0FFH

MOV

MAIN:

LCALL LCALL AJMP

GET_TEMPER DISP

;调用读温度子程序 ;调用数码管显示子程序 ;重复循环

MAIN

;------ 读 DS18B20 传感器的温度值 -----GET_TEMPER: SETB P3.3 LCALL JB RET DSS2: MOV LCALL MOV LCALL LCALL MOV LCALL MOV LCALL A,#0CCH WR18B20 A,#44H WR18B20 RST18B20 ;准备读温度前先复位 DS18B20 ;跳过 ROM 匹配 ;向 DS18B20 发出温度转换命令 ;跳过 ROM 匹配 RST18B20 00H,DSS2 ;复位 DS18B20

A,#0CCH WR18B20 A,#0BEH WR18B20

;向 DS18B20 发出读温度命令

LCALL RET

RE18B20

;读出温度数据

;------ DS18B20 复位初始化程序 -----RST18B20: SETB NOP CLR MOV MOV DSR1: DJNZ MOV DJNZ SETB NOP NOP NOP MOV DSR2: JNB DJNZ R0,#25H P3.3,DSR3 R0,DSR2 DSR4 00H DSR5 00H DSR7 R0,#06BH R0,DSR6 P3.3 ;延时一段时间 ;清标志位,表示 DS1820 不存在 ;置标志位,表示 DS1820 存在 ;等待 DS18B20 回应 P3.3 R0,#06BH R1,#03H R0,DSR1 R0,#6BH R1,DSR1 P3.3 ;拉高数据线 ;主机发出复位低脉冲 P3.3

LJMP DSR3: SETB LJMP DSR4: CLR LJMP DSR5: MOV DSR6: DSR7: DJNZ SETB

RET ;------ 写 DS18B20 的子程序 -----WR18B20: MOV CLR WR1: CLR MOV DJNZ RRC MOV MOV DJNZ SETB NOP DJNZ SETB RET ;------ 从 DS18B20 中读温度数据程序 -----RE18B20: MOV MOV RE00: RE01: MOV CLR SETB NOP NOP CLR P3.3 R4,#2 R1,#2FH R2,#8 C P3.3 R2,WR1 P3.3 R2,#8 C P3.3 R3,#6 R3,$ A P3.3,C R3,#23 R3,$ P3.3

NOP NOP NOP SETB MOV RE10: DJNZ MOV MOV RE20: DJNZ RRC DJNZ MOV DEC DJNZ RET ;-------- 显示子程序 -------DISP: MOV MOV RRC MOV RRC MOV RRC MOV RRC MOV MOV A,2FH C,70H A C,71H A C,72H A C,73H A 2FH,A A,2FH A R2,RE01 @R1,A R1 R4,RE00 P3.3 R3,#09 R3,RE10 C,P3.3 R3,#23 R3,RE20

MOV DIV MOV MOV MOV MOV MOVC MOV CLR SETB SETB SETB SETB LCALL MOV MOV MOVC MOV CLR SETB SETB SETB SETB

B,#10 AB 30H,A 31H,B A,30H DPTR,#SGTB A,@A+DPTR P0,A P2.2 P2.0 P2.1 P2.3 P2.4 YS4722U A,31H DPTR,#SGTB A,@A+DPTR P0,A P2.3 P2.0 P2.1 P2.2 P2.4 YS4722U ;显示温度“个位”值 ;显示温度“十位”值

LCALL MOV MOV CLR

A,#01000110B P0,A P2.4 ;显示温度符号“ ℃”

SETB SETB SETB SETB LCALL RET

P2.0 P2.1 P2.2 P2.3 YS4722U

;************* 8 位共阳数码管显示器字型码表 ***************** SGTB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,89H,0A3H,8CH,0C8H YS4722U: MOV Y3: MOV DJNZ DJNZ RET END R4,#10 ;延时子程序 R5,#216 R5,$ R4,Y3


赞助商链接

C51单片机C语言程序100例_Keil

C51单片机C语言程序100例_Keil - 目录 目录...

c51单片机c语言应用100例

c51单片机c语言应用100例 - 目录 目录...

51单片机C语言程序设计源代码

51单片机C语言程序设计源代码 - -1- 51 单片机 C 语言教程 例 2.2.1 编写程序,点亮第一个发光二极管(part2_1.c #include <reg52.h> //52 系列...

单片机c语言编程实例大全

单片机c语言编程实例大全 - 学习单片机, //实例 1:用单片机控制第一个灯亮 更多单片机学习视频教程,protues 仿真电路图,keil 程序免费下载网址: http://mxroom.c...

51单片机C语言编程100例

51单片机C语言编程100例_电子/电路_工程科技_专业资料...132 实例 90:DS18B20 温度检测及其液晶显示 ......(TF0==0) //如果未计满就等待 { 31 / 190 if...

单片机C语言学习(非常通俗易懂!)——

单片机C语言学习(非常通俗易懂!)—— - 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机, 他的全称是什么也许并不...

51单片机C语言编程基础及实例

51单片机C语言编程基础及实例_信息与通信_工程科技_专业资料。基础知识:51 ...[9] 下一页 第六节:低频频率计 实例目的:学时定时器、计数器、中断应用 ...

基于STC单片机恒温控制系统的设计及C语言程序

基于STC单片机恒温控制系统的设计及C语言程序_电子/电路_工程科技_专业资料。恒温...温度测量 被控制对象 单片机 温度控制 人机 交互 模块 2.1 单片机主控制电路主...

实用的51单片机C语言编程实例_图文

实用的51单片机C语言编程实例_电子/电路_工程科技_专业资料。http://www.elec...} 52. } 第六节:低频频率计 实例目的:学时定时器、计数器、中断应用 说明:...

基于单片机C语言电子时钟完整版(闹钟_整点报时)_图文

基于单片机C语言电子时钟完整版(闹钟_整点报时) - 提供全套毕业设计,欢迎咨询 《单片机技术》课程设计说明书 数字电子钟 系、部: 电气与信息工程学院 学生姓名: ...