G05B19/042 G01K7/00
1.本发明专利涉及一种基于AT89C51单片机控制的数字温度计设计,本发明采取了数字式的设计方法,使用DS1620作为本发明的测温元件,使用AT89C2051来控制DS1620,设计数字温度计。
2.根据权利要求1所述的一种基于AT89C51单片机控制的数字温度计设计,其特征在于,本发明采用数字式温度传感器DS1620,实现温度的传感,控制等。
3.根据权利要求1所述的一种基于AT89C51单片机控制的数字温度计设计,其特征在于,本发明由AT89C51及其外围电路、系统时钟、数据采集模块、显示模块、报警模块、键盘输入等模块组成。
一种基于AT89C51单片机控制的数字温度计设计
技术领域
本发明专利涉及电子设计技术领域,尤其涉及一种基于AT89C51单片机控制的数字温度计设计。
背景技术
温度测量涉及各行各业,而传统的温度测量仪器有酒精温度计、煤油温度计、水银温度计等,都需人工手动测量。传统的玻璃柱形温度计结构虽简单, 但读数不方便,且容易破碎。很多场合(有毒、高温、无人等)用传统的温度测量技术就显得比较麻烦。集成电路的发展, 为温度计的更新换代提供了条件,电子技术的飞速发展,单片机的出现, 使温度计的自动化、数字化就变得容易实现。
温度是实验室与许多生产一线经常需要测量的参数之一。传统温度测量记录方式是逐点放置合适的温度传感器, 并按时逐点记录后,再送入微机中进行处理。随着专用集成电路技术的飞速发展,数显测量以其观测直观方便、测量精确等优势在现代测量技术及日常工作和生活中得到了广泛的应用。
发明专利内容
本发明专利涉及一种基于AT89C51单片机控制的数字温度计设计,本发明采取了数字式的设计方法,使用DS1620作为本发明的测温元件,使用AT89C2051来控制DS1620,设计数字温度计。
附图说明
图1:系统结构框图。
图2:复位电路图。
图3:系统时钟电路图。
图4:接口电路图。
图5:报警电路图。
图6:键盘输入电路图。
图7:七段数码管显示器的引脚和共阴极接法图。
图8:显示接口电路图。
图9:系统程序流程图。
具体实施方式
为了使本发明专利的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明专利进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明专利,并不用于限定本发明专利。
本发明专利涉及一种基于AT89C51单片机控制的数字温度计设计,本发明采取了数字式的设计方法,使用DS1620作为本发明的测温元件,使用AT89C2051来控制DS1620,设计数字温度计。
进一步的,本发明采用数字式温度传感器DS1620,实现温度的传感,控制等。利用单片机芯片AT89C51的串口来发送和接收数据。系统主要以芯片AT89C51为核心实现,本发明由AT89C51及其外围电路;系统时钟;数据采集模块;显示模块;报警模块;键盘输入等模块组成,其系统结构框图如图1所示。
进一步的,AT89C52单片机复位是使CPU (Central Processing Unit,中央处理器)和系统中其它功能部件都处在一个确定的初始状态,无论在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。 单片机的复位条件是RST引脚加上持续两个机器周期(即24个振荡周期)的高电平,复位电路如图2所示。
进一步的,在AT89C51单片机内部有一个反向振荡器放大器。输入端为引脚XTAL2,输出端为引脚XTAL1。在单片机外部的XTAL1和XTAL2之间跨接晶体振荡器和微调电容,构成一个稳定的自激振荡器,如图所示。这里电容C1和C2取22pF左右,晶体的振荡频率范围是1.2-12 MHz,这里取12MHZ。晶体振荡频率越高,则系统的时钟频率越高,单片机运行速度也越快。一般情况下,AT89C51单片机使用的振荡频率为12MHz。时钟电路工作原理:电源经过二极管和电感进入分频器后,分频器开始工作,和晶体一起产生振荡,在晶体的两脚均可以看到波形。系统的时钟电路如图3所示。
进一步的,数据采集模块的功能是采集数据。接口电路如图4所示。本设计用AT89C51单片机作CPU来操作DS1620的。单片机的P3口连接DS1620的三线通信接口:P3.0接DQ,P3.1接CLK/CONY,P3.2接RST,VDD接+5V电压。DS1620的温度值为9位数字量,数据用补码表示,最低位表示0.5℃。通过三线传送数据时,低位在前,高位在后。DS1620读出或写入的温度数据值可以是9位的字(在第9位后将置为低电平),也可以作为两个8位字节的16位字。这时高7位为无关位。
进一步的,报警模块的功能是当温度超过设定限度时,发出报警信号。报警电路如图5所示。该电路由NPN三极管和报警器组成。这里R6取10千欧,输出接P3.7。如果被测温度超过设定的温度,则P3.7被置为高,通过NPN后集电极为低,于是由运算放大器构成的单稳多谐振荡器工作,能自动发出超温报警,通知工作人员采取措施。这里取初始温度为0度,用户开机后可自行设定报警温度。如果温度没有超过设定的温度,则P3.7为低,传送数据到显示电路,报警器不响。三级管在电路中起放大与开关的作用。
进一步的,键盘输入的功能主要包括设定温度、在LED显示中进行显示实际温度和显示工作时间这两者循环显示的时候进行选择。当键盘上没有键闭合时所有的开关都断开,电路都呈高电平。当键盘上某一个键闭合时,则该键所对应的电路被短路。把所有开关接到单片机的输入口,则在单片机的控制下,先使一根开关为低电平,其余3根行线为高电平。如果行线都为高电平,则这一列上没有键闭合。由此也可以判别是哪个键被按下。为确保CPU对一次按键动作只确认一次按键有效,必须消除按键抖动的影响。消除按键抖动的过程是:在第一次检测到有键按下时,执行一段延时程序后,再次确认是否低有键按下;当检测到按键松开时,运行一段延时程序之后再次检测按键是否松开。 键盘的实质上是一组按键开关的集合。通常,键盘的开关利用了机械触点的合、 断作用。键的闭合与否反映在行线输出电压上就是呈现高电平或低电平,如果高电平表示键断开,低电平表示键闭合,通过对电平高低状态物检测,便可确认按键按下与否。图中键盘的按键S1~S4通过电阻接+5V,电阻的取值为10千欧,S1~S4又分别接P1.0 ~P1.4端口。其键盘输入电路如图6所示。
进一步的,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器有八个发光二极管组成,其中七个发光二极管a~g控制七个笔画的亮或暗,另外一个控制小数点的亮或暗。我们把共阴极的LED的发光二极管接在一起,当某个发光二极管显示器的阳极为高电平时发光二极管被点亮,相应的段被显示。常用的七段数码管显示器的引脚和共阴极接法如图7所示。本设计的显示电路由三个数码管组成,采用三位的LED数字显示,提高了精度和准确性,用AT89C51单片机进行控制。a,b,c,d,e,f,g,dp分别接AT89C51上的P0.0—P0.7引脚。三极管在这里起放大作用,驱动数码管。本显示电路为共阴极显示,高点平为亮。显示模块的功能是显示数字信号。显示接口电路如图8所示,显示器有静态和动态两种显示方式。本电路中采用动态显示,即一位一位地轮流点亮各个显示器,对于每一位显示器来说,每隔一段时间点亮一次。其接口电路是把所有显示器的8个笔划段a~h连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
进一步的,系统程序流程如图9所示。各程序模块均为子程序及嵌套有子程序的调用, 其中读、写DS1620 模块为子程序, 完成1 个字节的温度值或指令的读写; 按键服务模块主要完成对报警温度的设定以及模式的选择。显示子程序和温度测量程序的功能分别是数据显示和温度测量。程序代码如下:
WRITE 1620: ; 写DS1620
MOV R0, #08H ; 每次写入8 B
NEXT BIT WRITE:
CLR CLK ;脉冲置零
RRC A ; 右移A , 使最低位移入进位位C 中
MOV DQ , C ; 输出1 B (即C) 到DQ
SETB CLK ;时钟脉冲的上升沿
DJNZ R0,NEXT BIT WRITE
RET
READ1620: ; 读DS1620
MOV R0, #08H ;每次读出8 B
SETB DQ ; 置DQ 为1, 使其做为输入端
NEXT BIT READ:
CLR CLK ; 时钟脉冲置零
MOV C,DQ ; 将DQ 来的1 B 移入C
SETB CLK ; 产生时钟脉冲的上升沿
RRC A ; 右移A , 使进位C 移入A 中的最高位
DJNZ R0,NEXT BIT READ
CLR DQ
RET
CONFIGURE:
SETB RST ; 使DS1620 的RST 为高电平, 开始发送
MOV A , # 0CH ; 发送“写”命令给DS1620
ACALL WRITE1620
MOV A , # 00001010B ; 使工作方式寄存器中CUP = 1,
1SHOT- 0THF= 0, TLF= 0
ACALL WRITE1620
CLR RST ; 结束发送
RET
START-CONVERT: ; 使DS1620 开始转换温度
SETB RST ; 使DS1620 的RST 为高电平, 开始发送命令
MOV A , # 0EEH ; 发送“开始转换”命令给DS1620
ACALL WRITE1620
CLR RST ; 结束发送
RET
READ-TEMPERATURE: ; 读取温度值
SETB RST
MOV A ,#0AAH ; 发送“读温度”命令给DS1620
ACALL WRITE1620
ACALL READ1620 ; 读取第1 字节
MOV R1,A ; 首字节送R1
ACALL READ1620 ; 读取第2 字节
MOV R2,A ; 第2 字节送R2
CLR RST
RET
DL25MS: MOV R1,#0FFH
LOOP: LCALL KEY WORK
DJNZ R1,LOOP
RET
END ;程序结束
RST DATA RST
L1 BIT P3.3
L2 BIT P3.4
L3 BIT P3.5
MOV DATA P1
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:CLR/RST
MOV SP,#60H
LCALL LEAR
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV SCON,#00H
CLR ES
MOV R0,#09H
SETB RST
WD1: CLR A
MOVC A, @A+DPTR
LCALL SONG
LCALL DSS10ms
LCALL DSS10ms
INC DPTR
DJNZ R0,WD1
WD2:…
WD3:…
RUFFER:MOV A ,41H
DJNZ BUF1
MOV A,40H
CJNE A,#200,WD4
WD4:JC WD6
WD5WD6:…
WD7:MOV 22H,5
WD8:…
RUF1:MOV A,40H
CPL A
ADD A,#1
CJNE A,#20,BUF2
BUF2: JNC WD5
MOV 20H,#10
CLR C
RRC A
JC BUF3
MOV 22H,#0
SJMP BUF4
BUF3: MOV 20H ,#5
BUF4: MOV 21H ,A
RET
SONG:MOV SBUF,A
JNB T1,$
CLR T1
TABLE:DB 0CH 02H 01H 50H 00H 02H 14H 00H 0EEH
END。
以上所述仅为本发明专利的较佳实施例而已,并不用以限制本发明专利,凡在本发明专利的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明专利的保护范围之内。
本文发布于:2024-09-25 06:25:04,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/1/73607.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |