当前位置:文档之家› 箱变温度计检测报告模板

箱变温度计检测报告模板

箱变温度计检测报告模板

检测试验报告

客户名称:中国核工业二三建设有限公司

工程名称:华能仪征风电场一期(60MW)主体建筑与安装工程

项目名称:温度计

检验时间: 2017.11.20~2017.12.03

报告编号: JNJC-RK-YZFD-WS-001-----JNJC-RK-YZFD-WS-027 报告编写/日期:

报告审核/日期:

报告批准/日期:

(检测报告章)

江苏江南检测有限公司

数字温度计说明书

单片机课程设计 题目:数字温度计 院别:机电学院 专业:机械电子工程 班级: 姓名: 学号: 指导教师: 二〇一三年十二月二十一日

摘要 本设计即用单片机对温度进行实时检测与控制,本文所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,本次课程设计采用51单片机以及锁存器74HC573N、四位共阴数码管、DS18B20温度传感器、蜂鸣器、三极管等组成的自动过温报警器,该过温报警器测温准确,使用方便,显示清晰,最高精度可达到0.0625度,最长温度转换时间不到1秒,应用范围广泛。用四位共阴数码管实现温度显示,能准确达到设计要求。本温度计属于多功能温度计,功能较强,可以设置上下限报警温度,且测量准确、误差小。当测量温度超过设定的温度上下限时,启动蜂鸣器和指示灯报警。 关键词 过温报警;锁存器;单片机;温度传感器

目录 前言 (1) 一.本次课程设计实践的目的和意义 (2) 二.设计任务和要求 (2) 2.1 设计题目 (2) 2.2 主要技术性能指标 (2) 2.3 功能及作用 (2) 三. 系统总体方案及硬件设计 (2) 3.1查阅相关资料后有以下两个方案可供选择 (2) 3.2元件采购 (3) 3.3系统总体设计 (3) 四.接口电路设计 (6) 4.1模块简介 (6) 4.2 主控制器 (6) 4.3 显示电路 (7) 4.4温度传感器 (7) 4.5温度报警电路 (9) 五. 系统软件算法分析 (10) 5.1主程序流程图 (10) 5.2读出温度子程序 (11) 5.3温度转换命令子程序 (11) 5.4 计算温度子程序 (12) 5.5 显示数据刷新子程序 (12) 5.6按键扫描处理子程序 (13) 六. 电路仿真 (14) 七.焊接好的电路实体图 (15) 八.检查与调试 (16) 九.作品的使用 (16) 十.设计心得 (20) 参考文献 (20) 附录 (21)

数字温度计的设计

数字温度计的设计 【摘要】 本文将介绍一种基于单片机控制的数字温度计,就是用单片机实现温度测量,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于AT89S52单片机的数字温度计的设计用LCD数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。 【关键词】关键词1温度计;关键词2单片机;关键词3数字控制;关键词4DS1620 目录 第一章绪论 (2) 1.1 前言 (3) 1.2 数字温度计设计方案 (3) 1.3 总体设计框图 (3) 第二章硬件电路设计............................ 错误!未定义书签。 2.1 主要芯片介绍 (5) 2.1.1 AT89C51的介绍 (5) 2.1.2 AT89C51各引脚功能介绍 (5) 2.2 温度传感器 (7) 2.2.1 DS1620介绍 (7) 第三章软件设计................................ 错误!未定义书签。

3.1 主程序流程图 (11) 3.4 计算温度子程序流程图 (13) 3.5 显示数据刷新子程序流程图 (13) 第四章 Proteus仿真调试......................... 错误!未定义书签。 4.1 Proteus软件介绍 (15) 4.2 Proteus界面介绍 (16) 4.2.1 原理图编辑窗口 (18) 4.2.2 预览窗口 (23) 4.2.3 模型选择工具栏 (31) 4.2.4 元件列表 (35) 4.2.5 方向工具栏 (37) 4.2.6 仿真工具栏 (38) 4.3 本次设计仿真过程 (39) 4.3.1 创建原理图 (40) 设计总结 (50) 结论 (57) 参考文献 (59) 致谢 (62) 附录 (72)

数字显示温度计程序

TIMEL EQU 0E0H TIMEH EQU 0B1H TEMPHEAD EQU 36H ;*********************************************************** ; 工作内存定义 ;*********************************************************** BITST DATA 20H TIME1SOK BIT BITST.1 TEMPONEOK BIT BITST.2 TEMPL DATA 26H TEMPH DATA 27H TEMPHC DATA 28H TEMPLC DATA 29H ;********************************************************** ; 引脚定义 ;********************************************************** TEMPDIN BIT P3.4 TH BIT P1.3 TL BIT P1.4 ;*********************************************************** ; 中断向量区 ;*********************************************************** ORG 0000H LJMP START ORG 00BH LJMP T0IT ;************************************************************ ; 系统初始化 ;************************************************************ ORG 0100H START: MOV SP,#60H CLSMEM: MOV R0,#20H MOV R1,#60H CLSMEM1: MOV @R0,#00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,#00100001B MOV TH0,#TIMEH MOV TL0,#TIMEL SJMP INIT ERROR: NOP LJMP START NOP INIT: NOP

单片机数字温度计汇编程序

ORG 0000H LJMP MAIN ORG 0100H ;********************************************* DAT BIT P1.0 TEMPER_L EQU 40H TEMPER_H EQU 41H A_BIT EQU 60H B_BIT EQU 61H C_BIT EQU 62H D_BIT EQU 63H ;***主程序**************************************** MAIN: MOV A,#7FH LCALL WRITE_1820 LCALL INIT_1820 LCALL GET_TEMPER LCALL CONVER LCALL DISPLAY LJMP MAIN ;***初始化db18b20**************************************************** INIT_1820: CLR EA INI10: SETB DAT

MOV R2,#200 INI11: CLR DAT DJNZ R2,INI11 SETB DAT MOV R2,#30 INT12: DJNZ R2,INT12 CLR C ORL C,DAT JC INI10 MOV R6,#80 INI13: ORL C,DAT JC INI14 DJNZ R6,INI13 SJMP INI10 INI14: MOV R2,#240 INT15: DJNZ R2,INT15 RET ;**读温度子程序********************************************************* GET_TEMPER: MOV A,#0CCH

简易数字温度计课程设计

唐山学院 单片机原理课程设计 题目简易数字温度计 系 (部) 智能与信息工程学院 班级 姓名 学号 指导教师 2017 年 1 月 2 日至 1 月 6 日共 1 周 2017年1月4日

《单片机原理》课程设计任务书

课程设计成绩评定表

目录 1.方案论证 0 2.硬件设计............................................ 错误!未定义书签。 2.1系统构成 (1) 2.2器件选择 (1) 2.2.1 AT89C51概述 (1) 2.2.2 AT89C51引脚功能 (3) 2.2.3复位电路的设计 (4) 2.3数字温度传感器 (5) 2.3.1 DS1621的技术指标 (5) 2.3.2 DS1621的工作原理 (6) 2.4 单片机和DS1621接口电路...................... 错误!未定义书签。 2.5 七段LED数码显示电路 (7) 3.系统软件设计 (9) 3.1 编程语言选择 (9) 3.2 主程序的设计 (9) 3.3 温度采集模块设计 (10) 3.4 温度计算模块设计 (10) 3.5 串行总线编程 (11) 4.软硬件调试结果分析 (12) 5.设计总结 (13) 6.参考文献 (14) 附录A 多点温度采集系统电路原理图 (15)

1.方案论证 该系统可以使用方案一:热敏电阻;方案二:数字温度芯片DS1621实现。采用数字温度芯片DS1621 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS1621 的最大特点之一采用了单总线的数据传输,由数字温度计DS1621和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。 控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 该系统利用AT89C51芯片控制温度传感器DS1621进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。故采用了方案二。 测温电路的总体设计方框图如图1-1所示,控制器采用单片机AT89C51,温度传感器采用DS1621,用5位LED数码管以串口传送数据实现温度显示。 图1-1 测温电路的总体设计方框图

(完整版)基于51单片机的数字温度计

硬件课程设计实验报告课题:数字温度计 班级: 作者: 学号: 指导老师: 课设评价: 课设成绩:

目录 一.需求分析 (1) 二.概要设计 (1) 三.硬件电路设计 (3) 四.系统软件设计 (5) 五.软件仿真 (8) 六.实际连接与调试 (9) 七.本次课设的收获与感受 (11) 附录(程序源代码) (12)

一.需求分析 功能要求: 测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。 设计要求: (一)功能要求 (1) 由4位数码管显示当前温度。 (2) 具备报警,报警门限通过键盘设置。 (3) 精度为0.5℃。 (二)画出参考的电路原理图 (三)画出主程序及子程序流程图、画出MCS51内部RAM分配图,并进行适当地解释。 (四)写出实现的程序及实现过程。并进行适当地解释说明。 二.概要设计 (一)方案选择 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 (二)系统框图 该系统可分为以下七个模块: (1)控制器:采用单片机STC89C52对采集的温度数据进行处理; (2)温度采集:采用DS18B20直接向控制器传输12位二进制数据; (3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值; (4)门限设置:主要实现模式切换及上下门限温度的调节; (5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光; (6)复位电路:对整个系统进行复位; (7)时钟振荡模块:为整个系统提供统一的时钟周期。

数字温度计C程序

实验内容:DS18b20温度传感器 晶振:11.0592M 实验连线: */ #include #include #include unsigned char disp0, disp1, disp2, disp3; sbit DQ = P2^7; sbit led0=P2^0; sbit led1=P2^1; sbit led2=P2^2; sbit led3=P2^3; sbit led4=P2^4; sbit led5=P2^5; #define Com_Buf 0x45//命令缓冲单元 #define Dat_Buf 0x46//数据缓冲单元 #define Leng 0x47//读写字节长度存放单元 #define Table 0x78//表首地址存放单元 #define SoftRes 0xe2//液晶软件复位指令 #define Disp_On 0xaf//液晶显示指令 #define Page_Add 0xb8//液晶页面选择指令 #define Col_Add 0x00//液晶列设置指令 #define Colen 0x43//列地址长度存储单元 #define dd 0xd0 typedef unsigned char BYTE; #define Lcd_Bus P0 //MCU P1<------> LCM unsigned char code HK_HZ[12][16]; unsigned char code HK_HZ1[11][32]; sbit A0=P2^3; //Master chip enable sbit E1=P2^0; //Slave chip enable sbit E2=P2^1; //6800 mode Enable single sbit RW=P2^2; //Data or Instrument Select sbit Lcd_Rst=P2^4; //Lcm reset /*------------------延时子程序-----------------------------*/ void delay(unsigned int t)

DS18B20数字温度计设计实验报告

单片机原理及应用 课程设计报告书 题目:DS18B20数字温度计 姓名学号:080 赵晓磊 096 段石磊 028 付成 指导老师:万青 设计时间:2015年12月

电子与信息工程学院 目录 1.引言错误!未定义书签。 .设计意义错误!未定义书签。 .系统功能要求错误!未定义书签。 2.方案设计错误!未定义书签。 3.硬件设计2 4.软件设计5 5.系统调试7 6.设计总结8 7.附录9 8.作品展示15 9.参考文献17

DS18B20数字温度计设计 引言 设计意义 在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下: 硬件电路复杂; 软件调试复杂; 制作成本高。 本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达℃。 DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。 系统功能要求 设计出的DS18B20数字温度计测温范围在-55~125℃,误差在±℃以内,采用LED数码管直接读显示。 方案设计 按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。 数字温度计总体电路结构框图如图所示:

图 3. 硬件设计 温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED数码管以动态扫描法实现温度显示。 主控制器单片机AT89C2051 具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用。系统可用两节电池供电。AT89C2051的引脚图如右图所示: 1、VCC:电源电压。 2、GND:地。 3、P1口:P1口是一个8位双向I/O口。 口引脚~提供内部上拉电阻,和要求外 部上拉电阻。和还分别作为片内精密模 拟比较器的同相输入(ANI0)和反相输 入(AIN1)。P1口输出缓冲器可吸收 20mA电流并能直接驱动LED显示。当 P1口引脚写入“1”时,其可用作输入 端,当引脚~用作输入并被外部拉低时, 它们将因内部的写入“1”时,其可用 作输入端。当引脚~用作输入并被外部 拉低时,它们将因内部的上拉电阻而流 出电流。 4、P3口:P3口的~、是带有内部上拉电阻的 七个双向I/O口引脚。用于固定输入片内比 较器的输出信号并且它作为一通用I/O引脚 而不可访问。P3口缓冲器可吸收20mA电 流。当P3口写入“1”时,它们被内部上拉 电阻拉高并可用作输入端。用作输入时,被 外部拉低的P3口脚将用上拉电阻而流出电

数字温度计设计汇编源程序

;================================================================ ;DS18B20温度计 ;采用4位LED共阳显示器显示测温值,显示精度0.1℃,测温范围-55~+125℃ ;用AT89C51单片机,12MHz晶振 ;DS1302时钟芯片实现日历年月日时分秒的显示 ;============================常数定义============================= TIMEL EQU 0E0H ;20ms,定时器0时间常数 TIMEH EQU 0B1H SECOND EQU 30H MINUTE EQU 31H HOUR EQU 32H DAY EQU 33H MONTH EQU 34H WEEK EQU 35H YEAR EQU 36H TEMPHEAD EQU 38H TEMP_UPPER EQU 2AH TEMP_LOWER EQU 2BH ;==========================工作内存定义============================ BITST DATA 20H TIME1SOK BIT BITST.1 TEMPL DATA 26H TEMPH DATA 27H TEMPHC DATA 28H TEMPLC DATA 29H ;============================= 引脚定义=========================== TEMPDIN B IT P3.7 ALARMDIN BIT P1.6 RST BIT P1.2 CLK BIT P1.1 IO BIT P1.0 ;============================= 中断向量区========================= ORG 0000H LJMP START ORG 000BH LJMP T0IT ;=============================系统初始化========================== ORG 0100H START: MOV SP,#60H CLSMEM: MOV R0,#20H MOV R1,#60H CLSMEM1: MOV @R0,#00H INC R0 DJNZ R1,CLSMEM1

51单片机设计数字温度计(流程图+源码+实物图片)要点

DS18B20获取温度程序流程图 DS18B20的读字节,写字节,获取温度的程序流程图如图所示。 DS18B20初始化程序流程图 DS18B20读字节程序流程图DS18B20写字节程序流程图 DS18B20获取温度 程序流程图 图3-4 DS18B20程序流程图

显示程序设计 显示电路是由四位一体的数码管来实现的。由于单片机的I/O 口有限,所以数码管采用动态扫描的方式来进行显示。程序流程图如图所示。 图显示程序流程图 按键程序设计 按键是用来设定上下限报警温度的。具体的程序流程图如图所示。 N 图按键程序流程图

附1 源程序代码 /******************************************************************** * 程序名; 基于DS18B20的测温系统 * 功能:实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:ZPZ * 编程时间: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头文件包含到主程序 /***********************主函数************************/ void main() { beer=1; //关闭蜂鸣器 led=1; //关闭LED灯 timer1_init(0); //初始化定时器1(未启动定时器1) get_temperature(1); //首次启动DS18B20获取温度(DS18B20上点后自动将 EEPROM中的上下限温度复制到TH和TL寄存器)while(1) //主循环 { keyscan(); //按键扫描函数 get_temperature(0); //获取温度函数 keyscan(); //按键扫描函数

基于单片机的数字温度计程序

#include #include #define uchar unsigned char #define uint unsigned int #define delayNOP() {_nop_();_nop_();_nop_();_nop_();} sbit DQ=P2^2; sbit dula=P2^6; //定义锁存器锁存端 sbit wela=P2^7; sbit rs=P3^5; //定义1602液晶RS端 sbit lcden=P3^4;//定义1602液晶LCDEN端 sbit s1=P3^0; //定义按键--功能键 sbit s2=P3^1; //定义按键--增加键 sbit s3=P3^2; //定义按键--减小键 sbit s4=P3^6;//闹钟查看键 sbit rd=P3^7; sbit beep=P2^3; //定义蜂鸣器端 uchar code Temp_Disp_Title[]={" Current Temp : "}; uchar Current_Temp_Display_Buffer[]={" TEMP: "}; uchar code Alarm_Temp[]={"ALARM TEMP Hi Lo"}; uchar Alarm_HI_LO_STR[]={"Hi: Lo: "}; uchar temp_data[2]={0x00,0x00}; uchar temp_alarm[2]={0x00,0x00}; uchar display[5]={0x00,0x00,0x00,0x00,0x00}; uchar display1[3]={0x00,0x00,0x00}; uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9}; uchar CurrentT=0; //当前读取的温度整数部分 uchar Temp_Value[]={0x00,0x00}; //从DS18B20读取的温度值uchar Display_Digit[]={0,0,0,0}; //待显示的各温度数位 bit DS18B20_IS_OK=1;//传感器正常标志 //------------------------------------- //延时1 //------------------------------------- void delay1(uint x) { uchar i; while(x--) for(i=0;i<200;i++); } //------------------------------------- //延时2 //------------------------------------- void Delay(uint x) { while(x--); }

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

基于单片机的数字温度计设计方案 1.1 数字式温度计的设计目的与要求 要想基于AT89C51系列单片机的应用与开发,就要了解单片机的构造及原理,熟悉单片机最小系统及其应用。同时巩固和加强“单片机接口技术”课程的理论知识,掌握单片机系统一般的设计方法,并了解电子产品研制开发过程。 在设计完成过程中,学会培养独立分析问题和解决问题的能力以及创新能力和创新思维。不断提高自身分析问题和解决问题的能力以及创新能力和创新思维。 作为此次毕业设计的最终成果,本文对数字式温度计的设计要求如下: 1、数字式温度计的基本围在-50℃-110℃之间; 2、数字式温度计的精度误差小于0.5℃; 3、数字式温度计要用LED数码管直读显示; 4、同时要具有支持扩展的相关功能; 5、要具有任意设定数字式温度计温度上下限功能; 6、超过温度计上下限,要具有报警功能。 1.2 数字式温度计设计思路 本次设计将以AT89C51单片机作为核心器件,组成一个具有多种拓展功能的数字式温度计。此次设计采用模块化编程方法,将各个功能细化,逐个完成,最终实现整个温度计功能。 在最初的设计方案中,有两种方式可供选择: 一种是可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度

显示出来,这种设计需要用到A/D转换电路。 另外一种则是考虑到用温度传感器。采用一只温度传感器DS18B20,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 以上两种方案第二种更为简单明了,避免了AD转换电路的复杂应用。因此本次设计采用了第二种方案。 1.3 数字式温度计设计原理框图 图1.1 数字式温度计设计原理框图 1.4 数字式温度计工作过程简要分析 当系统启动后,各模块电路开始工作,温度传感器随机提供一个温度值,生成的温度信号脉冲经过AT89C51单片机处理显示在LED数码显示管上。此时可以通过手动设置整个系统的上限温

数字温度计原程序.doc

数字温度计程序清单 S1OK EQU 5FH TEMPUTER EQU 39H TEMPH EQU 5EH TEMPL EQU 5DH MS50EQU 5CH SIGN EQU 5BH S1 BIT P1.0 S2 BIT P1.1 S3 BIT P1.2 S4 BIT P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TOIT ORG 0030H MAIN: MOV SP, #60H MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H SETB ET0 SETB TR0 SETB EA MOV TEMPH, #30 MOV TEMPL, #9 MOV TEMPUTER, #15 ;温度最始值 MOV S1OK, #00H MOV SIGN, #00H MOV 38H, #0BH MOV 37H, #0CH MOV 36H, #0BH ACALL DISP ACALL T1S ; ***************************************** ; 主程序 START: JB S1, NET1 ACALL T12MS JB S1, NET1 JNB S1, $ INC SIGN MOV A, SIGN CJNE A, #1, TIAO ACALL TIAOTL TIAO:CJNE A, #2, NET1 MOV SIGN, #0 ACALL TIAOTH ; ***************************************** NET1: MOV A, S1OK CJNE A, #1, START MOV A, TEMPUTER SUBB A, TEMPH JNB ACC.7, ALEM MOV A, TEMPUTER SUBB A, TEMPL JB ACC.7, ALEM SETB P2.1 ACALL WENDU ACALL DISP MOV S1OK, #00H AJMP START ALEM: MOV 36H, #0CH MOV 37H, #0CH MOV 38H, #0CH CLR P2.1 ACALL DISP ACALL T1S LCALL WENDU LCALL DISP MOV S1OK, #00H SJMP START ;***************************************** TIAOTL:MOV 50H, TEMPUTER MOV 37H, TEMPL ACALL BIN_BCD ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS MOV 36H, #0AH MOV 37H, #0AH MOV 38H, #0AH ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS JB S2, ADD1 ACALL T12MS JB S2, ADD1 JNB S2, $ INC TEMPL MOV A, TEMPL CJNE A, #100, ADD1 MOV TEMPL, #0 ADD1: JB S3, ADD2 ACALL T12MS JB S3, ADD2 JNB S3, $ DEC TEMPL MOV A, TEMPL CJNE A, #00 , ADD2 MOV TEMPL,#100 ADD2: JB S4, TIAOTL ACALL T12MS JB S4, TIAOTL JNB S4, $ MOV TEMPUTER, 50H LJMP START ; 高位调整 ; ***************************************** TIAOTH:MOV 50H, TEMPUTER MOV 37H, TEMPH ACALL BIN_BCD ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS MOV 36H, #0AH MOV 37H, #0AH MOV38H, #0AH ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS JB S2, ADD11 ACALL T12MS JB S2, ADD11 JNB S2, $ INC TEMPH MOV A, TEMPH CJNE A, #100, ADD11 MOV TEMPH, #0 ADD11: JB S3, ADD22

单片机数字温度计C语言程序设计

电路设计图

源程序 #include #include unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40}; unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,25,28,31,34,38,41,44,48, 50,53,56,59,63,66,69,72,75,78,81,84,88,91,94,97}; unsigned char displaycount; unsigned char displaybuf[8]={16,16,16,16,16,16,16,16}; unsigned char timecount; unsigned char readdata[8]; sbit DQ=P3^7; bit sflag; bit resetpulse(void) { unsigned char i; DQ=0; for(i=255;i>0;i--); DQ=1; for(i=60;i>0;i--); return(DQ); for(i=200;i>0;i--); } void writecommandtods18b20(unsigned char command) { unsigned char i; unsigned char j; for(i=0;i<8;i++) { if((command & 0x01)==0) { DQ=0; for(j=35;j>0;j--); DQ=1; } else { DQ=0; for(j=2;j>0;j--); DQ=1; for(j=33;j>0;j--); } command=_cror_(command,1); } } unsigned char readdatafromds18b20(void) { unsigned char i; unsigned char j; unsigned char temp; temp=0; for(i=0;i<8;i++) {

51单片机数字温度计程序

#include #define uchar unsigned char #define uint unsigned int sbit DS=P2^2; //define interface uint temp; // variable of temperature uchar flag1; // sign of the result positive or negative sbit dula=P2^6; sbit wela=P2^7; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//带小数点的 unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef};//不带小数点的 void delay(uint count) //delay { uint i; while(count) { i=200; while(i>0) i--; count--; } } void dsreset(void) //send reset and initialization command//DS18B20复位,初始化函数{ uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--; } bit tmpreadbit(void) //read a bit//读1位数据函数 { uint i; bit dat; DS=0;i++; //i++ for delay DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat); } uchar tmpread(void) //read a byte date//读一个字节数据函数

数字温度计课程设计报告

一.数字温度计的总体方案设计 根据系统设计的功能,本时钟温度系统的设计必须采用单片机软件系统实现,用单片机的自动控制能力来测量、显示温度数值。 初步确定设计系统由单片机主控模块、测温模块、显示模块共3个模块组成,电路系统框图如图1.1所示。 图1.1 系统基本方框图 对于单片机的选择,如果用8051系列,由于它没有部RAM,系统又需要一定的存存储数据。AT89S52是一个低功耗、高性能CMOS 8位的单片机,片含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。而AT89S52与AT89C51相比,外型管脚完全相同,AT89C51的HEX程序无须任何转换可直接在AT89S52运行,且AT89S52比AT89C51新增了一些功能,相比较后,在本设计中选用AT89S52更能很好的实现温度计控制功能。 测温电路可以使用热敏电阻之类的器件,利用其感温效应,将被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据处理。但是这种感温电路比较复杂,且采用热敏电阻精度低,重复性、可靠性都比较差。 如果采用温度传感器DS18B20可以减少外部硬件电路,而且可以很容易直接读取被测温度值,进而转换,且成本低、易使用,可以很好的满足设计要求。所以本文采用传感器DS18B20代替传统的测温电路。 温度的显示可以采用LED数码管来显示,LED亮度高、醒目,但是电路复杂,占用资源多且信息量小。而采用液晶显示器有明显的优点:工作电流比LED 小几个数量级,功耗低;尺寸小,厚度约为LED的1/3;字迹清晰、美观、使人舒服;寿命长,使用方便,可得性强。故本设计采用LCD来显示温度。 二、系统器件的具体选择 2.1单片机的选择 本次设计采用的是单片机AT89C52。 AT89C52是一个低电压,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

数字温度计课程设计报告

硬件课程设计实验报告课题:数字温度计

目录 一.需求分析 (1) 二.概要设计 (1) 三.硬件电路设计 (3) 四.系统软件设计 (5) 五.软件仿真 (8) 六.实际连接与调试 (9) 七.本次课设的收获与感受 (11) 附录(程序源代码) (12)

一.需求分析 功能要求: 测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。 设计要求: (一)功能要求 (1) 由4位数码管显示当前温度。 (2) 具备报警,报警门限通过键盘设置。 (3) 精度为0.5℃。 (二)画出参考的电路原理图 (三)画出主程序及子程序流程图、画出MCS51内部RAM 分配图,并进行适当地解释。 (四)写出实现的程序及实现过程。并进行适当地解释说明。 二.概要设计 (一)方案选择 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用

到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 (二)系统框图 该系统可分为以下七个模块: (1)控制器:采用单片机STC89C52对采集的温度数据进行处理; (2)温度采集:采用DS18B20直接向控制器传输12位二进制数据; (3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值; (4)门限设置:主要实现模式切换及上下门限温度的调节; (5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光; (6)复位电路:对整个系统进行复位; (7)时钟振荡模块:为整个系统提供统一的时钟周期。

相关主题
文本预览
相关文档 最新文档