文档库 最新最全的文档下载
当前位置:文档库 › 基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)
基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

TEMP_ZH EQU 24H ;实测温度值存放单元

TEMPL EQU 25H

TEMPH EQU 26H

TEMP_TH EQU 27H ;高温报警值存放单元

TEMP_TL EQU 28H ;低温报警值存放单元

TEMPHC EQU 29H ;正、负温度值标记

TEMPLC EQU 2AH

TEMPFC EQU 2BH

K1 EQU P1.0 ;查询按键

K2 EQU P1.1 ;设置/调整键

K3 EQU P1.2 ;调整键

K4 EQU P1.3 ;确定键

BEEP EQU P3.7 ;蜂鸣器

RELAY EQU P3.6 ;指示灯

LCD_X EQU 2FH ;LCD 字符显示位置

LCD_RS EQU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号

LCD_EN EQU P2.2 ;LCD 允许信号

FLAG1 EQU 20H.0 ;DS18B20是否存在标志 KEY_UD EQU 20H.1 ;设定按键的增、减标志 DQ EQU P2.7 ;DS18B20数据信号

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN: MOV SP,#60H

MOV A,#00H

MOV R0,#20H ;将20H~2FH 单元清零

MOV R1,#10H

CLEAR: MOV @R0,A

INC R0

DJNZ R1,CLEAR

LCALL SET_LCD

LCALL RE_18B20

START: LCALL RST ;调用18B20复位子程序

JNB FLAG1,START1 ;DS1820不存在

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

MOV TEMP_TH,#055H ;设置TH初值85度

MOV TEMP_TL,#019H ;设置TL初值25度

LCALL RE_18B20A ;调用暂存器操作子程序

LCALL WRITE_E2 ;写入DS18B20

LCALL TEMP_BJ ;显示温度标记

JMP START2

START1: LCALL MENU_ERROR ;调用显示出错信息子程序 LCALL TEMP_BJ ;显示温度标记

SJMP $

START2: LCALL RST ;调用DS18B20复位子程序

JNB FLAG1,START1 ;DS18B20不存在

MOV A,#0CCH ;跳过ROM匹配命令

LCALL WRITE

MOV A,#44H ;温度转换命令

LCALL WRITE

LCALL RST

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

MOV A,#0BEH ;读温度命令

LCALL WRITE

LCALL READ ;调用DS18B20数据读取操作子程序

LCALL CONVTEMP ;调用温度数据BCD 码处理子程序

LCALL DISPBCD ;调用温度数据显示子程序

LCALL CONV ;调用LCD显示处理子程序

LCALL TEMP_COMP ;调用实测温度值与设定温度值比较子程序

LCALL PROC_KEY ;调用键扫描子程序

SJMP START2 ;循环

;*************************** 键扫描子程序*****************************

PROC_KEY:JB K1,PROC_K1

LCALL BEEP_BL

JNB K1,$

MOV DPTR,#M_ALAX1

MOV A,#1

LCALL LCD_PRINT

LCALL LOOK_ALARM

JB K3,$

LCALL BEEP_BL

JMP PROC_K2

PROC_K1: JB K2,PROC_END

LCALL BEEP_BL

JNB K2,$

MOV DPTR,#RST_A1

MOV A,#1

LCALL LCD_PRINT

LCALL SET_ALARM

LCALL RE_18B20 ;将设定的TH,TL值写入

DS18B20

LCALL WRITE_E2

PROC_K2: LCALL MENU_OK

LCALL TEMP_BJ

PROC_END:RET

;*************************** 设定温度报警值TH、TL ***************************

SET_ALARM:LCALL LOOK_ALARM

AS0: JB K1,AS00

LCALL BEEP_BL

JNB K1,$

CPL 20H.1 ;UP/DOWN 标记

AS00: JB 20H.1,ASZ01 ;20H.1=1,增加

JMP ASJ01 ;20H.1=0,减小

ASZ01: JB K2,ASZ02 ;TH值调整(增加)

LCALL BEEP_BL

INC TEMP_TH

MOV A,TEMP_TH

CJNE A,#120,ASZ011

MOV TEMP_TH,#0

ASZ011: LCALL LOOK_ALARM

LCALL DELAY

JMP ASZ01

ASZ02: JB K3,ASZ03 ;TL值调整(增加) LCALL BEEP_BL

INC TEMP_TL

MOV A,TEMP_TL

CJNE A,#99,ASZ021

MOV TEMP_TL,#00H

ASZ021: LCALL LOOK_ALARM

MOV R5,#10

LCALL DELAY

JMP ASZ02

ASZ03: JB K4,AS0 ;确定调整

LCALL BEEP_BL

JNB K4,$

RET

ASJ01: JB K2,ASJ02 ;TH值调整(减少) LCALL BEEP_BL

DEC TEMP_TH

MOV A,TEMP_TH

CJNE A,#0FFH,ASJ011

ASJ011: LCALL LOOK_ALARM

MOV R5,#10

LCALL DELAY

JMP AS0

ASJ02: JB K3,ASJ03 ;TL值调整(减少)

LCALL BEEP_BL

DEC TEMP_TL

MOV A,TEMP_TL

CJNE A,#0FFH,ASJ021

JMP ASJ022

ASJ021: LCALL LOOK_ALARM ;

MOV R5,#10

LCALL DELAY

JMP AS0

ASJ022: CPL 20H.1

JMP ASZ01

ASJ03: JMP ASZ03

RET

RST_A1: DB " SET ALERT TEMP: " ,0

;*********************** 实测温度值与设定温度值比较子程序

**********************

TEMP_COMP:MOV A,TEMP_TH

SUBB A,TEMP_ZH ;减数>被减数,则

JC CHULI1 ;借位标志位C=1,转 MOV A,TEMPFC

CJNE A,#0BH,COMP

SJMP CHULI2

COMP: MOV A,TEMP_ZH

SUBB A,TEMP_TL ;减数>被减数,则

JC CHULI2 ;借位标志位C=1,转

MOV DPTR,#BJ5

LCALL TEMP_BJ3

CLR RELAY ;点亮指示灯

RET

CHULI1: MOV DPTR,#BJ3

LCALL TEMP_BJ3

CPL P2.3

SETB RELAY ;熄灭指示灯

LCALL BEEP_BL ;蜂鸣器响

RET

CHULI2: MOV DPTR,#BJ4

LCALL TEMP_BJ3

SETB RELAY ;熄灭指示灯

LCALL BEEP_BL ;蜂鸣器响

RET

;-----------------------------------------

TEMP_BJ3: MOV A,#0CEH

LCALL WCOM

MOV R1,#0

MOV R0,#2

BBJJ3: MOV A,R1

MOVC A,@A+DPTR

LCALL WDATA

INC R1

DJNZ R0,BBJJ3

RET

BJ3: DB ">H"

BJ4: DB "

BJ5: DB " !"

;

;**************************** 显示温度标记子程序***************************

TEMP_BJ: MOV A,#0CBH

MOV DPTR,#BJ1 ;指针指到显示消息

MOV R1,#0

MOV R0,#2

BBJJ1: MOV A,R1

MOVC A,@A+DPTR

LCALL WDATA

INC R1

DJNZ R0,BBJJ1

RET

BJ1: DB 00H,"C"

;******************************** 显示正确信息子程序***************************

MENU_OK: MOV DPTR,#M_OK1 ;指针指到显示消息

MOV A,#1 ;显示在第一行

LCALL LCD_PRINT

MOV DPTR,#M_OK2 ;指针指到显示消息

MOV A,#2 ;显示在第一行

LCALL LCD_PRINT

RET

M_OK1: DB " Made by GYYQ ",0

M_OK2: DB " temp is: ",0

;******************************** 显示出错信息子程序***************************

MENU_ERROR:MOV DPTR,#M_ERROR1 ;指针指到显示消息

MOV A,#1 ;显示在第一行

LCALL LCD_PRINT

MOV DPTR,#M_ERROR2 ;指针指到显示消息1

MOV A,#2 ;显示在第一行

LCALL LCD_PRINT

RET

M_ERROR1: DB " DS18B20 ERROR ",0

M_ERROR2: DB " temp is: ",0

;****************************DS18B20复位子程序*****************************

RST: SETB DQ

NOP

CLR DQ

MOV R0,#6BH ;主机发出延时复位低脉冲

MOV R1,#04H

TSR1: DJNZ R0,$

MOV R0,#6BH

DJNZ R1,TSR1

SETB DQ ;拉高数据线

NOP

NOP

NOP

MOV R0,#32H

TSR2: JNB DQ,TSR3 ;等待DS18B20回应

DJNZ R0,TSR2

JMP TSR4 ; 延时

TSR3: SETB FLAG1 ; 置1标志位,表示DS1820存在

JMP TSR5

TSR4: CLR FLAG1 ; 清0标志位,表示DS1820不存在 JMP TSR7

TSR5: MOV R0,#06BH

TSR6: DJNZ R0,$ ; 时序要求延时一段时间

TSR7: SETB DQ

RET

;************************ DS18B20暂存器操作子程序***************************

RE_18B20:JB FLAG1,RE_18B20A

RET

RE_18B20A:

LCALL RST

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

WR_SCRAPD:

MOV A,#4EH ;写暂器

LCALL WRITE

MOV A,TEMP_TH ;TH(报警上限)

LCALL WRITE

MOV A,TEMP_TL ;TL(报警下限)

LCALL WRITE

MOV A,#7FH ;12位精度

LCALL WRITE

RET

;************************ 复制暂存器子程序*******************************

WRITE_E2:LCALL RST

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

MOV A,#48H ;把暂存器里的温度报警值拷贝到EEROM

LCALL WRITE

RET

;*********************** 重读EEROM子程序********************************

READ_E2:LCALL RST

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

MOV A,#0B8H ;把EEROM里的温度报警值拷贝回暂存器

LCALL WRITE

RET

;************************ 将自定义字符写入LCD的CGRAM中*********************

STORE_DATA:

MOV A,#40H

LCALL WCOM

MOV R2,#08H

MOV DPTR,#D_DATA

MOV R3,#00H

S_DATA: MOV A,R3

MOVC A,@A+DPTR

LCALL WDATA ;写入数据

INC R3

DJNZ R2,S_DATA

RET

D_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H

;*********************** DS18B20数据写入操作子程序************************

WRITE: MOV R2,#8 ;一共8位数据

CLR C

WR1: CLR DQ ;开始写入DS18B20总线要处于复位(低)状态

MOV R3,#07

DJNZ R3,$ ;总线复位保持16微妙以上

RRC A ;把一个字节DATA 分成8个BIT 环移给C

MOV DQ,C ;写入一位

MOV R3,#3CH

DJNZ R3,$ ;等待100微妙

SETB DQ ;重新释放总线

NOP

DJNZ R2,WR1 ;写入下一位

SETB DQ

RET

;********************** DS18B20数据读取操作子程序**************************

READ: MOV R4,#4 ;将温度低位、高位、TH、TL从DS18B20中读出

MOV R1,#TEMPL ;存入25H、26H、27H、28H单元

RE00: MOV R2,#8

RE01: CLR CY

SETB DQ

NOP

NOP

CLR DQ ;读前总线保持为低

NOP

NOP

NOP

SETB DQ ;开始读总线释放

MOV R3,#09 ;延时18微妙

DJNZ R3,$

MOV C,DQ ;从DS18B20总线读得一位

MOV R3,#3CH

DJNZ R3,$ ;等待100微妙

RRC A ;把读得的位值环移给A

DJNZ R2,RE01 ;读下一位

MOV @R1,A

INC R1

DJNZ R4,RE00

RET

;************************ 温度值BCD 码处理子程序*************************

CONVTEMP: MOV A,TEMPH ;判温度是否零下

ANL A,#08H

JZ TEMPC1 ;温度零上转

CLR C

MOV A,TEMPL ;二进制数求补(双字节)

CPL A ;取反加1

ADD A,#01H

MOV TEMPL,A

MOV A,TEMPH

CPL A

ADDC A,#00H

MOV TEMPH,A

MOV TEMPHC,#0BH ;负温度标志

MOV TEMPFC,#0BH

SJMP TEMPC11

TEMPC1: MOV TEMPHC,#0AH ;正温度标志

MOV TEMPFC,#0AH

TEMPC11: MOV A,TEMPHC

SWAP A

MOV TEMPHC,A

MOV A,TEMPL

MOV TEMPLC,A ;TEMPLC LOW=小数部分 BCD

MOV A,TEMPL ;整数部分

ANL A,#0F0H ;取出高四位

SWAP A

MOV TEMPL,A

MOV A,TEMPH ;取出低四位

ANL A,#0FH

SWAP A

ANL A,#0FH ;乘0.0625

MOV DPTR,#TEMPDOTTAB

MOVC A,@A+DPTR

ORL A,TEMPL ;重新组合

MOV TEMP_ZH,A

LCALL HEX2BCD1

MOV TEMPL,A

ANL A,#0F0H

SWAP A

ORL A,TEMPHC ;TEMPHC LOW = 十位数 BCD MOV TEMPHC,A

MOV A,TEMPL

ANL A,#0FH

SWAP A ;TEMPLC HI = 个位数 BCD ORL A,TEMPLC

MOV TEMPLC,A

MOV A,R4

JZ TEMPC12

ANL A,#0FH

SWAP A

MOV R4,A

MOV A,TEMPHC ;TEMPHC HI = 百位数 BCD ANL A,#0FH

ORL A,R4

MOV TEMPHC,A

TEMPC12: RET

;************************ 二-十进制转换子程序*****************************

HEX2BCD1: MOV B,#064H

DIV AB

MOV R4,A

MOV A,#0AH

XCH A,B

DIV AB

SWAP A

ORL A,B

RET

TEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H ; 小数部分码表

DB 05H,05H,06H,06H,07H,08H,08H,09H

;********************** 查询温度报警值子程序***************************

LOOK_ALARM: MOV DPTR,#M_ALAX2 ;指针指到显示信息区

MOV A,#2 ;显示在第二行

LCALL LCD_PRINT

51系列单片机闭环温度控制 实验报告

成绩: 重庆邮电大学 自动化学院综合实验报告 题目:51系列单片机闭环温度控制 学生姓名:蒋运和 班级:0841004 学号:2010213316 同组人员:李海涛陈超 指导教师:郭鹏 完成时间:2013年12月

一、实验名称: 51系列单片机闭环温度控制实验 ——基于Protuse仿真实验平台实现 基本情况: 1. 学生姓名: 2. 学号: 3. 班级: 4. 同组其他成员: 二、实验内容(实验原理介绍) 1、系统基本原理 计算机控制技术实训,即温度闭环控制,根据实际要求,即加温速度、超调量、调节时间级误差参数,选择PID控制参数级算法,实现对温度的自动控制。 闭环温度控制系统原理如图: 2、PID算法的数字实现 本次试验通过8031通过OVEN 是模拟加热的装置,加一定的电压便开始不停的升温,直到电压要消失则开始降温。仿真时,U形加热器为红色时表示正在加热,发红时将直流电压放过来接,就会制冷,变绿。T端输出的是电压,温度越高,电压就越高。

8031对温度的控制是通过可控硅调控实现的。可控硅通过时间可以通过可控硅控制板上控制脉冲控制。该触发脉冲想8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制级上。偏差控制原理是要求对所需温度求出偏差值,然后对偏差值处理而获得控制信号去调节加热装置的温度。 PID控制方程式: 式中e是指测量值与给定值之间的偏差 TD 微分时间 T 积分时间 KP 调节器的放大系数 将上式离散化得到数字PID位置式算法,式中在位置算法的基础之上得到数字PID 增量式算法: 3、硬件电路设计 在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分,对这两部分调节仪表进行调节,但都存在着许多缺点,用单片机进行温度控制使构成的系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、单片机系统模块、计算机显示与控制模块和输出控制模块。输入模块主要完成对温度信号的采集和转换工作,由温度传感器及其与单片机的接口部分组成。利用模拟加热的

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于51单片机的DS18B20数字温度计的实训报告

电子信息职业技术学院 暨国家示性软件职业技术学院 单片机实训 题目:用MCS-51单片机和 18B20实现数字温度计 姓名: 系别:网络系 专业:计算机控制技术 班级:计控 指导教师: * 伟 时间安排:2013年1月7日至 2013年1月11日

摘要 随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。 在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。 我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度围为-55~125 oC,最高分辨率可达0.0625 oC。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 本文介绍一种基于AT89C51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量围0℃-~+100℃,使用LED模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用。该电路设计新颖、功能强大、结构简单。 关键词:单片机,数字控制,温度计, DS18B20,AT89S51

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.wendangku.net/doc/7718395373.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

基于51单片机SHT11温湿度传感器检测程序.doc

基于51单片机SHT11温湿度传感器检测程序(含电路图) ? 下面是原理图: 下面是SHT11与MCU连接的典型电路:

下面是源代码: #include #include /******************************************************** 宏定义 ********************************************************/ #define uint unsigned int #define uchar unsigned char #define noACK 0 #define ACK 1 #define STATUS_REG_W 0x06 #define STATUS_REG_R 0x07 #define MEASURE_TEMP 0x03 #define MEASURE_HUMI 0x05 #define RESET 0x1e enum {TEMP,HUMI}; typedef union //定义共用同类型 { unsigned int i; float f; } value; /******************************************************** 位定义 ********************************************************/ sbit lcdrs=P2^0; sbit lcdrw=P2^1; sbit lcden=P2^2; sbit SCK = P1^0; sbit DATA = P1^1; /******************************************************** 变量定义 ********************************************************/ uchar table2[]="SHT11 温湿度检测"; uchar table3[]="温度为:℃"; uchar table4[]="湿度为:"; uchar table5[]="."; uchar wendu[6]; uchar shidu[6]; /******************************************************** 1ms延时函数 ********************************************************/ void delay(int z) {

基于51单片机的DS18B20温度检测设计报告

课程名称:微机原理课程设计题目:温度检测课程设计

摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。本设计使用简便,功能丰富。可以实现温度采集,温度报警,重设上下限温度值等功能。 在现代化的工业生产中,需要对周围环境的温度进行检测和控制。本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。 关键字:温度报警器STC89C51单片机数码管DS18B20

目录 一、课程设计目的和要求 (1) 1.1 设计目的 (1) 1.2 设计要求 (1) 二、总体设计方案 (1) 三、硬件设计 (2) 3.1 DS18B20传感器 (2) 3.2 STC89C51功能介绍 (6) 3.3 时钟电路 (8) 3.4 复位电路 (8) 3.5 LED显示系统电路 (9) 3.6 按键控制电路 (11) 3.7 蜂鸣器电路 (11) 3.8 总体电路设计 (12) 四、软件设计 (14) 4.1 keil软件 (14) 4.2 系统主程序设计 (14) 4.3 系统子程序设计 (15) 五、仿真与实现 (18) 5.1 PROTEUS仿真软件 (18) 5.2 STC-ISP程序烧录软件 (19) 5.3 使用说明 (20) 六、总结 (21)

基于51单片机的温度控制系统的设计

基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

51单片机热敏电阻测温程序

//本程序是通过热敏电阻测温度(30c-50c),采用六位串行数码管显示,前三位显示ds18b20测得数据,后三位是热敏电阻测得数据 #include #include #include #define uchar unsigned char #define uint unsigned int uchar smg[]={0x88,0xeb,0x4c,0x49,0x2b,0x19,0x18,0xcb,0x08,0x09}; uchar b,d; uint shuju; int a,temp; sbit start=P2^7; sbit ale=P2^7; sbit addc=P2^6; sbit addb=P2^5; sbit adda=P2^4; sbit eoc=P2^3; sbit oe=P2^2; sbit clk=P3^2;//0809时钟脚 sbit dat=P3^0; //串行数码管数据端 sbit clock=P3^1; //串行数码管时钟端 sbit DQ=P2^0; /******************delay**************************/ void delay(uint x) { while(x--); } void delay1(uint x) { uint i,j; for(i=0;i

51单片机温度采集系统设计需要说明的问题以及设计的心得体会

51单片机温度采集系统设计需要说明的问题以及设计的心得体会 篇一:单片机温度采集系统设计 摘要:本设计为基于单片机8 05l设计的实时温度采集仪。采用一个以单片机为核心的重小系统。访问系统有:单片机.显示器,键盘、串口通讯、模拟开关、A/D转换器等以及整个系统中所要需要的电源组成的一个系统,对于超过此限的温度数据将产生报警信号。 关键词:单片机温度采集 A/D转换器 引言: 近年来,随着大规模集成电路的发展,单片机继续朝快速,高性能方向发展,从位、8位单片机发展到16位,32位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机在家用电器业中应用得十分广泛:例如全自动冼衣机、智能玩具;除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。它成本低、集成度高j功耗低、控制功能多、能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性处理等问题。 本文设计的就是利用805l单片机进行管理和控制的,具有能采集并显示温度,对于超出范围的温度发出蜂鸣声警

报的温度采集系统。 1 系统设计 采用Intel公司生产的805l单片机作为主控制器进行对采集到的信号处理再输送给八段数码显示。Intel公司生产的8051是一个低功耗,字长为8位的单片微型计算机,由中央处理器、片内128B RAM、片内4KBROM、两个16位的定时计数器、四个8位的I/O口(P 0、P l、P 2、P 3)、一个全双工的串行口、五个中断源以及时钟等组成。它具有体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好。 本设计是以单片机为核心的最小温度采集系统。它主要是采用热敏传感器采集温度并进行信号处理。再经过A/D 转换电路转换成数字信号后,送给单片机进行信号处理与计算。计算的结果从显示台上显示出来。。 本设计中模块的功能如下: (1)温度采集电路:将被测温度量经过温度传感器转换为供给A/D转换的电量。 (2)A/D转换电路:是将电量转换成可供单片机识别接收的二进制数值。 (3)单片机:对接收到的二进制数值按照设计目的进行相应的处理。 (4)显示器:是将采集到的温度并经过单片机的处理完

基于51单片机的心率体温测试系统

摘要 本文介绍了一种基于51单片机的心率体温采集系统。首先介绍了51系列单片机的内部相关配置、工作原理以及编程方法,其次介绍了温度传感器PT100的相关测温方法以及通过红外光电传感器TCRT5000对射的方法来抓取人体脉搏信号。此次设计的电路部分主要包括:传感测量电路、放大电路、滤波整形电路、AD转换电路、计数显示电路、控制电路、电源供电电路等。通过按键开始测试,将PT100及TCRT5000输入的微弱信号进行放大整形,最后AD采集转换传送给单片机,在LCD1602上显示相关体温及心率信息。 本次硬件设计基于比较稳定可行、低成本的设计思想,软件设计采用模块化的设计方法,并且详细分析了红外传感器TCRT5000应用于心率测量上以及PT100应用于温度测量上的原理及优点,阐述了其他各配合电路的组成与工作特点,并且通过仿真进行电路的可行性验证,最后完成实物电路的设计,使得本次课题的预期结果得以实现。 关键词:51单片机;传感器;仿真;AD转换 -I

Abstract This paper introduced a heart rate and body temperature acquisition system that based on 51 single chip microcomputer. First the internal configurations of 51 single chip microcomputer are introduced. And the paper also tell how 51 single chip microcomputer works and how can we program on it. Then the method of using temperature sensor PT100 to get body temperature is introduced, and we use infrared photoelectric sensor TCRT5000 to get the pulse signal of human body.The design of the circuit mainly comprises sensing circuit , amplifying circuit, filtering and shaping circuit, AD converting circuit, counting and displaying circuit, controlling circuit, power supplying circuit and so on. When the keyboard is pressed, the system starts to get signal. The small signal from PT100 and TCRT5000 will be amplified and shaped. Then ad converter will change the analog signal into digital signal and send to 51 single chip microcomputer . At last LCD1602 will display the information of body temperature and heart rate. Keywords: Piezoelectric sensors;control circuit;counters;Multisim2001 simulation software control circuit. -II

基于单片机的数字温度计设计开题报告

****大学综合性设计实验 开题报告 ?实验题目:数字温度计的设计 ?学生专业10电气工程与自动化 ?同组人:———————— ?指导老师: 2013年4月

1.国内外现状及研究意义 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: ①传统的分立式温度传感器 ②模拟集成温度传感器 ③智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。 2.方案设计及内容 (一)、方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,

基于51单片机温湿度检测+电子万年历的毕业设计论文

毕业设计论文 基于51单片机温湿度检测+电子万年历的设计

[摘要]:温湿度检测是生活生产中的重要的参数。本设计为基于51单片机的温湿度检测与控制系统,采用模块化、层次化设计。用新型的智能温湿度传感器SHT10主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52RC进行数据的分析和处理,为显示提供信号,显示部分采用LCD1602液晶显示所测温湿度值。系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用价值。 [关键字]:STC89C52RC SHT10 LCD1602 按键指示灯蜂鸣器电子万年历Based on 51 single chip microcomputer temperature and humidity detection + electronic calendar design Abstract:Temperature and humidity detection is important parameters in the production of life. This design is based on 51 single chip microcomputer temperature and humidity detection and control system, adopting modular, hierarchical design. With new type of intelligent temperature and humidity sensor SHT10 main realization about the detection of temperature, humidity, temperature humidity signal acquisition is converted into digital signals through the sensor signal, using SCM STC89C52RC for data analysis and processing, provides the signal for display, display part adopts LCD1602 LCD display the measured temperature and humidity values. Simple circuit, high integration, work stability, convenient debugging, high detection precision, has certain practical value. Key words:STC89C52RC SHT10 LCD1602 key indicator light buzzer The electronic calendar

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计 一.课题选择 随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这方面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子,它可广泛应用与生产生活的各个方面,具有巨大的市场前景。 二.设计目的 1.理解掌握51单片机的功能和实际应用。 2.掌握仿真开发软件的使用。 3.掌握数字式温度计电路的设计、组装与调试方法。 三.实验要求 1.以51系列单片机为核心器件,组成一个数字式温度计。 2.采用数字式温度传感器为检测器件,进行单点温度检测。 3.温度显示采用4位LED数码管显示,三位整数,一位小数。 四.设计思路 1.根据设计要求,选择STC89C51RC单片机为核心器件。 2.温度检测采用DS18B20数字式温度传感器。与单片机的接口为P 3.6引脚。 3.采用usb数据线连接充电宝供电,接电后由按钮开关控制电路供电。 硬件电路设计总体框图为图1: 五.系统的硬件构成及功能 1.主控制器 单片机STC89C51RC具有低电压供电和体积小等特点,有40个引脚,其仿真图像如下图所示:

2.显示电路 显示电路采用4位共阳LED数码管,从P3口RXD,TXD串口输出段码。LED数码管在仿真软件中如下图所示: 3.温度传感器 DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下: 1.独特的单线接口仅需一个端口引脚进行通讯。 2.简单的多点分布应用。 3.无需外部器件。 4.可通过数据线供电。 5.零待机功耗。 6.测温范围-55~+125摄氏度。 其电路图如下图所示:

单片机测体温【课程设计报告】

沈阳航空航天大学 综合课程设计基于单片机的数字温度计设计

课程设计任务书 课程设计的内容及要求: 一、设计说明 1.以单片机芯片为核心,设计一个简易的数字温度计。 2.能够实时测量某一点的环境温度,并具有超限报警功能。 3.可以根据需要设定上下限报警温度,超限后报警提示。 二、设计要求 1. 选择AT89C51单片机为核心器件; 2. 采用LED作为显示模块; 3. 温度传感器采用DS18B20。 三、实验要求 1.根据技术指标制定实验方案;设计具体电路。 2.进行程序仿真和软硬件联调。 四、推荐参考资料 [1] 陈小忠.单片机接口技术实用子程序.北京:人民邮电出版社,2005 [2] 杨恢先,黄辉先. 单片机原理及应用.长沙:国防科技大学出版社,2003 [3] 徐敏.基于AT89C51单片机的数字温度计设计.数字技术与应用,2009.12 [4] 胡天明.基于DS18B20的数字温度计设计及其应用.黑龙江工程学院学报,2008.2 五、按照要求撰写课程设计报告 成绩评定表

一、引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 二、设计内容及性能指标 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: ●利用温度传感器(DS18B20)测量某一点环境温度 ●测量范围为-50℃~+11℃,精度为±0.5℃ ●用LED进行实际温度值显示 ●按键设定温度报警阀值 三、设计方案 采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100 摄氏度时,最大线形偏差小于 1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。方案的总体设计框图,如图1所示: 图1 总体设计框图

单片机课程设计—数字温度计

第1章概述 1.1 数字温度计简介 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 此次课程设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 1.2 设计内容及要求 本次单片机课程设计将以51系列单片机为核心,以开发板为平台;设计一个数字式温度计,要求使用温度传感器(可以采用DS18B20或采用AD590)测量温度,再经单片机处理后,由LED数码管显示测量的温度值。测温范围为0~100℃,精度误差在0.5℃以内。

第2章系统总体方案设计 2.1数字温度计设计的方案 在做数字温度计的单片机电路中,对信号的采集电路大多都是使用传感器,这是非常容易实现的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。 2.2系统设计框图 温度计电路设计总体设计方框图如图 2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用6位LED数码管以串口传送数据实现温度显示。此外,还添加了报警系统,对温度实施监控。 图2.1 数字温度计框图

基于51单片机——Ds18B20温度采集-LCD显示汇编程序(附带proteus仿真图)

TEMP_ZH EQU 24H ;实测温度值存放单元 TEMPL EQU 25H TEMPH EQU 26H TEMP_TH EQU 27H ;高温报警值存放单元 TEMP_TL EQU 28H ;低温报警值存放单元 TEMPHC EQU 29H ;正、负温度值标记 TEMPLC EQU 2AH TEMPFC EQU 2BH K1 EQU P1.4 ;查询按键 K2 EQU P1.5 ;设置/调整键 K3 EQU P1.6 ;调整键 K4 EQU P1.7 ;确定键 BEEP EQU P3.7 ;蜂鸣器 RELAY EQU P1.3 ;指示灯 LCD_X EQU 2FH ;LCD 字符显示位置 LCD_RS EQU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号 LCD_EN EQU P2.2 ;LCD 允许信号 FLAG1 EQU 20H.0 ;DS18B20是否存在标志 KEY_UD EQU 20H.1 ;设定按键的增、减标志 DQ EQU P3.3 ;DS18B20数据信号

ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV A,#00H MOV R0,#20H ;将20H~2FH 单元清零 MOV R1,#10H CLEAR: MOV @R0,A INC R0 DJNZ R1,CLEAR LCALL SET_LCD LCALL RE_18B20 START: LCALL RST ;调用18B20复位子程序 JNB FLAG1,START1 ;DS1820不存在 LCALL MENU_OK ;DS1820存在,调用显示正确信息子程序 MOV TEMP_TH,#055H ;设置TH初值85度 MOV TEMP_TL,#019H ;设置TL初值25度 LCALL RE_18B20A ;调用暂存器操作子程序 LCALL WRITE_E2 ;写入DS18B20 LCALL TEMP_BJ ;显示温度标记 JMP START2

基于51单片机的温度检测系统程序及仿真

//**************************************** //**用DS18B20进行测量,lcd1602显示** //**************************************** #include "reg51.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int uchar code table1 []={"ID: "}; //欢迎显示,包括空格在内<=16 uchar code table2 []={"Name: "};//欢迎显示,包括空格在内<=16 uchar code str1 []={" Temperature "}; uchar code str2 []={" "}; //************管脚定义************************ sbit lcd_rs = P3^0; //液晶数据命令选择端 sbit lcd_en = P3^1; //液晶使能 sbit DQ = P3^6; //液晶使能 //************参数定义************************ uint tvalue;//温度值 uchar tflag;//温度正负标志 uchar data disdata[5]; //************子函数定义************************

void delay(uchar z); //delay延时子程序 void init_lcd(); //LCD1602初始化函数 void write_com(uchar com); //LCD1602写指令函数 void write_data(uchar date); //LCD1602写数据函数 void lcd1602_display(uchar *q,uchar *p);//LCD1602显示函数 void welcome(); //LCD1602显示欢迎函数 void delay_DS18B20(uint i); //delay_DS18B20函数 void Init_DS18B20_display(); //DS18B20初始化显示 void Init_DS18B20(); //DS18B20初始化 uchar ReadOneByte(); //DS18B20读一字节 void WriteOneByte(uchar dat); //DS18B20写一字节 Read_Temperature(); //DS18B20读取温度值并转换 void DS18B20_display(); //DS18B20温度显示 //************主函数************************ void main() { welcome(); delay(2000); Init_DS18B20_display(); while(1) { Read_Temperature(); DS18B20_display(); } } //************delay延时子程序************************ void delay(uchar z) { uchar x,y; for(x=0;x

相关文档
相关文档 最新文档