正文内容

多功能数字温度计(更新版)

2026-03-01 23:38上一页面

下一页面
  

【正文】 。显示缓冲寄存器小数位BUF2 EQU 35H 。*************************************************TEMPER_L EQU 40H 。九、各部分程序的详细设计步骤。发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束 NNYY图7 读出温度子程序流程二进制转换BCD码命令子程序 二进制转换BCD码命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。表3 ROM操作指令指令代码Read ROM(读ROM)[33H]Match ROM(匹配ROM)[55H]Skip ROM(跳过ROM)[CCH]Search ROM(搜索ROM)[F0H]Alarm search(告警搜索)[ECH]存储器操作命令如表4。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第2字节。该字节各位的定义如图所示。DS18B20的性能特点如下:l 独特的单线接口仅需要一个端口引脚进行通信;l 多个DS18B20可以并联在惟一的三线上,实现多点组网功能;l 无须外部器件;l 可通过数据线供电,~;l 零待机功耗;l 温度以9或12位数字;l 用户可定义报警设置;l 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;l 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能常工作; DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图4所示。本次设计采用内部震荡电路,瓷片电容采用30P,晶振采用12MHz。AT89S52有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。表1 P3口第二功能端口引脚第二功能RXD(串行输入口)TXD(串行输出口)INT0(外中断0)INT1(外中断1)T0(定时/计数器0)T1(定时/计数器1)WR(外部数据存储器写选通)RD(外部数据存储器读选通) EA/Vpp(31):内部和外部程序存储器选择线EA=0时访问外部ROM 0000H—FFFFH;EA=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH空间访问外部ROM。图1 AT89S52外部引脚本次设计需要注意的几个端口:P0口(32—39):是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。本设计能完成的温度测量范围是55℃~+128℃,由于能力有限,不能实现报警功能。吉林建筑工程学院电气与电子信息工程学院《单片机原理与应用》课程设计报告设计题目: 多功能数字温度计 专业班级: 信科072 学生姓名: 刘海龙 学 号: 10307212 指导教师: 杨佳 王超 设计时间: - 教师评语:成绩 评阅教师 日期 单片机课程设计报告数字温度计多功能数字温度计设计一、内容摘要本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89S52,四位共阴极数码管一个,电容电阻若干。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。AT89S52外部引脚功能如图1所示。P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如表1所示。时钟电路设计AT89S52时钟有两种方式产生,即内部方式和外部方式。由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。当DS18B20接收到温度转换命令后,开始启动转换。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。2 、ROM操作命令 总线主机检测到DS18B20的存在 便可以发出ROM操作命令之一 这些命令表3。其程序流程图如图7所示。其次,要学以致用,理论联系实际,这样才会取得事半功倍的效果。显示采用4位LED共阴显示测温值 *。温度转换寄存器高8位BUF1 EQU 34H 。主程序入口地址 AJMP MAIN 。外中断1中断入口 DB 00H,00H,00H,00H,00H,00H,00H 。中断返回(不开中断)。LPTEMP: LCALL GET_TEMPER 。*************************************。置标志位,表示DS1820存在 CLR 。 LCALL INIT_1820 。***************************************** LCALL DISPLAY 。写DS18B20的子程序(有具体的时序要求)。延时 DJNZ R3,$ RRC A 。处理温度BCD码子程序。 MOV A, TEMPH 。**************************************TEMPC11: MOV A,TEMPHC 。************************************** MOV A,TEMPL 。 MOV TEMPER_L ,A 。 MOV A,TEMPL 。 SWAP A 。**************************************。**************************************DISPBCD: MOV A,TEMPLC 。 取高字节的低4位(十位数) ANL A,0FH 。 CJNE A,10H,DISPBCD0 。 十位数是0? MOV A,TEMPHC 。单字节十六进制转BCD。 ORL A,B 。 MOV R7,08H 。 POP ACC 。读DS18B20的程序,从DS18B20中读出9个字节数据。 拉高数据端口 NOP NOP CLR TEMPDIN 。 数据右移一位 DJNZ R2,RE01 。 验证出错则不改变温度值 MOV TEMPL,TEMPER_L 。 显示1000次DPLP: SETB 。 小数点不亮 MOV A,BUF3 。 查个位数的7段代码 ADD A,80H MOV P1,A 。 查小位数的7段代码 MOV P1,A 。(按12MHZ算)。AT24C02芯片资料及应用手册
点击复制文档内容
公司管理相关推荐
文库吧 www.wenkub.com
备案图鄂ICP备17016276号-1