数字钟.docx

上传人:b****5 文档编号:2935212 上传时间:2022-11-16 格式:DOCX 页数:16 大小:236.82KB
下载 相关 举报
数字钟.docx_第1页
第1页 / 共16页
数字钟.docx_第2页
第2页 / 共16页
数字钟.docx_第3页
第3页 / 共16页
数字钟.docx_第4页
第4页 / 共16页
数字钟.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数字钟.docx

《数字钟.docx》由会员分享,可在线阅读,更多相关《数字钟.docx(16页珍藏版)》请在冰豆网上搜索。

数字钟.docx

数字钟

目录

摘要3

概述5

1.1设计要求及任务5

1.2设计原理5

1.2.1、AT80S51最小系统:

6

1.2.2、LED显示电路技术6

1.2.3、18B20传感器技术7

二、系统总体方案及硬件设计7

2.1传感器总体思想8

2.2硬件的选择与连接8

三、软件设计8

3.1、完整程序8

四、设计体会与总结14

五、参考文献15

附录15

附录1:

原理图16

附录2:

PCB效果图……………………………………………………………………………………….16

摘要

本次设计是用单片机来设计数字温度传感器。

本设计系统是以AT89C51为单片机芯片和LED液晶显示器为核心,辅以必要的电路,构成了一个单片机数字传感器。

,以DS18B20为温度传感器的新型数字温度计主要包括硬件电路的设计和系统程序的设计。

硬件电路主要包括主控制器,测温电路和显示电路等,主控制器采用单片机AT89S52,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用4位共阳极LED数码管以动态扫描法直读显示。

由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。

DS18B20温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。

关键词:

单片机AT89S52,温度传感器,DS18B20,显示电路

关键词:

键盘接口、C语言、DS1602

Thisdesignisusedtodesignsinglechipdigitaltemperaturesensor.ThisdesignsystemisbasedonAT89C51microcontrollerchipandLEDtoLCDasthecore,supplementedbythenecessarycircuitrytoformasinglechipdigitalsensors.ToDS18B20asthetemperaturesensorincludesanewdigitalthermometerhardwarecircuitdesignandsystemdesignprocedures.Hardwarecircuitincludesamaincontroller,temperaturemeasurementcircuitanddisplaycircuit,themaincontrollerusingmicrocontrollerAT89S52,thetemperaturesensorisproducedbytheU.S.DALLASSemiconductorDS18B20,displaycircuitusingfourcommonanodeLEDdigitaltubedirectreadingdynamicscanningdisplay.AsaresultofimprovedtemperaturesensorDS18B20asthedetectionelement,comparedwiththetraditionalthermometer,digitalthermometertoreducetheexternalhardwarecircuitry,alow-costandeasytousefeatures.DS18B20thermometercanalsobeatahightemperaturealarm,remotemulti-pointtemperaturecontrolandotheraspectsofapplicationdevelopment,withgooddevelopmentprospects.

Keywords:

MCUAT89S52,temperaturesensor,DS18B20,displaycircuit

Keywords:

keyboardinterface,Clanguage,DS1602

概述

1.1设计要求及任务

AT89C51为单片机,P3口作为输入端,外接DS18B02温度传感器,通过温度传感器感应外界温度,在P0口2口接了驱动电路。

用来保证LCD2的工作正常。

它的硬件主要由三四部分构成,一个80S51单片机芯片,DS18B02温度传感器,采用LCD16L动态显示。

1.2设计原理

1.2.1、AT89S51最小系统:

 

图表1AT80C51最小系统

AT89S51最小系统包括了晶振电路,复位电路,以及总线扩展部分,如上图,我们使用11.0592M晶振,由于51复位时要2个周期的高脉冲,所以复位电路如上图左上脚部分。

51由5V供电,在P0口接上拉电阻。

由于是仿真,精简了很多电路。

1.2.2、LED液晶显示器接口技术

图表2LCD驱动电路

LED显示器有共阴极和共阳极两种。

共阴极就是把发光二极管的连载一起构成公共阴极,使用时公共阴极接地,某端接高电平时才发亮。

共阳极则是把发光二级管的阳极连在一起构成公共阳极。

使用公共阳极接5V端。

某端接低电平时才发亮。

此次设计中采用的是液晶显示技术,他能更直观的显示出要观察的数据。

1.2.3、DS18B20温度传感器

四个独立按键调整时间,

二、系统总体方案及硬件设计

2.1数字时钟总体思想

显示部分:

采用LCD液晶显示。

按键部分:

采用四个按键调整相应的时间显示并执行相应的操作。

执行过程:

开机无显示,等待键入数值,当键入正确密码,经通过数码管显示出来,数码管内部执行数值转换和存储,并等待再次键入数值,显示时间随之改变。

2.2硬件的选择与连接

本设计选用型号为89S51的单片机,与两个四位数码显示管相连接和P1直接接四位键盘。

LCD数码显示电路的设计:

复位电路:

上拉电阻:

三、软件设计

3.1、完整程序

#include

#include

#include

voidmain()

{

initlcd();

lcd_disp_string("CurretTemp:

");

lcd_command(0xc0);

lcd_dat('');

lcd_dat('');

lcd_dat('T');

lcd_dat('E');

lcd_dat('M');

lcd_dat('P');

lcd_dat(':

');

while

(1)

{

Display_ds18b20();

}

}

#defineucharunsignedchar

#defineuintunsignedint

#definexsP0

sbitRS=P2^0;

sbitRW=P2^1;

sbitEN=P2^2;

voiddelay(uchari)//delay40us

{

for(;i!

=0;i--);

}

voidlcd_command(ucharch)

{

delay(100);

RS=0;//寄存器选择:

1数据寄存器,0指令寄存器

RW=0;//读写线信号:

1读操作,0写操作

xs=ch;

EN=1;//使能端设置:

下降沿有效

delay

(1);

EN=0;

}

voidlcd_dat(ucharch)

{

delay(100);

RS=1;

RW=0;

xs=ch;

EN=1;

delay

(1);

EN=0;

}

voidlcd_disp_string(uchar*p)

{

ucharnum;

for(num=0;num<16;num++)

{

lcd_dat(*p++);

}

}

voidinitlcd()

{

lcd_command(0x38);//设置工作方式:

16×2显示,5×7点阵,8位数据接口

lcd_command(0x0c);//设置显示状态:

D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)

lcd_command(0x06);//设置输入方式:

光标移动设置

lcd_command(0x01);//清屏

}

#defineDQP3_3//温度接收口

uchartpl;

uchartph;

ucharx1,y1,y2,x2,y3;//y4;

/************************************************************

voiddelay_b(uintt)

{

uinti;

while(t--)

{

for(i=0;i<125;i++);

}

}

************************************************************/

voidtxreset(void)

{

uinti;

DQ=0;

i=100;

while(i>0)i--;

DQ=1;

i=4;

while(i>0)i--;

}

/************************************************************/

voidrxwait(void)

{

uinti;

while(DQ);

while(!

DQ);

i=4;

while(i>0)i--;

}

/************************************************************/

bitrdbit(void)

{

uinti;

bitb;

DQ=0;

i++;

DQ=1;

i++;i++;

b=DQ;

i=8;

while(i>0)

i--;

return(b);

}

/************************************************************

*Function:

读18B20的一个字节

*************************************************************/

ucharrdbyte(void)

{

uchari,j,b;

for(i=1;i<=8;i++)

{

j=rdbit();

b=(j<<7)|(b>>1);

}

return(b);

}

/************************************************************

*Function:

向18B20写入一个字节

*************************************************************/

voidwrbyte(ucharb)

{

uinti;

uchar

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1