第一范文网 - 专业文章范例文档资料分享平台

多功能数字钟设计报告

来源:用户分享 时间:2020-06-21 本文由南巷清风 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

多功能数字钟设计报告

摘 要

本设计采用一块单片机(AT89S52)作为多功能数字钟的控制核心,加以温度传感器、红外接收管、蜂鸣器、液晶显示器(LCD1602)、电源电路及其他电路构成。实现了时间设置、闹铃设置、闹铃开和关的功能;LCD显示小时、分钟,有AM、PM指示灯,闹钟就绪灯,闹钟到点蜂鸣器报警,220V供电基本功能。另外,本设计还实现了通过切换键盘显示现场温度,红外停止闹铃的功能。

Abstract

This design uses a single chip (AT89S52) as the core controller of a multi-functional digital clock,complemented by temperature sensor,infrared receiver,buzzer,liquid crystal display(LCD1602),power circuit and other circuit. It implementes time setting,alarm setting,and alarm on/off functions.Moreover, it has some basic functions such as displaying hour and minute,AM/PM indicator light,alarm clock ready light,buzzer alarm and 220V power supply.In the end,this design also can show the scene temperature through switching the keyboards,and stop the alarm by infrared circuit.

一、 方案比较与设计

1、 数字时钟显示器的选择与控制

方案一:采用5只7段共阴极数码管,分别显示小时、’—’及分钟(如23-30),P0口连接数码管的段选端(a、b、c、d、e、f、g),P2口(0-4端)控制数码管位选端(cs1-cs5)。 方案二:采用一块液晶显示器(LCD1602),显示内容多,可以显示AM(PM)、小时、“:”、分钟及秒钟(如PM 23:30:30),另外控制也较为方便,只用两个控制线(lcdrs、lcden)。 方案一编程较简单,但硬件电路较乱;方案二编程与硬件电路实现都较为方便。考虑到本设计的需要,采用方案二。 2、 按键的选择与控制

方案一:采用4只轻触按键完成各项功能的设置,分别为功能键、增加键、减少键、开关闹铃键,采用按键复用的设计思路。此种方案硬件简单,软件实现困难。

方案二:采用6只轻触按键完成各项功能的设置,分别为设置时间、设置闹铃、调整小时、调整分钟、开闹铃、关闹铃,采用分模块的设计思路。此种方案必第一种只多2只按键,软件实现较为方便。所以采用方案二。

二、 系统设计

1、 系统框图

AM、PM 闹铃就绪 LED指示灯 蜂鸣器,温度传感器与红外 接收装置 AT89S52 单片机 键盘 1 LCD1602液晶显示器

电路说明:

? AM、PM、闹铃就绪LED指示灯部分,三只LED发光二极管分别作为AM、PM、闹铃就绪

指示灯。

? LCD1602液晶显示器部分,作为本系统的显示器,显示时间、闹钟与温度。

? 蜂鸣器、温度传感器、红外接收部分,分别用来闹铃到点报警,显示现场温度及非接触

时停止闹铃。

? 键盘部分,作为本系统的控制部分,用来设置时间、闹铃与显示温度。 2、 方案实现

1) 电源电路

本系统采用5V直流电源作为整个电路的供电模块,电路如下:

电容滤波,LED电源指示灯。

2) 系统电路图。

除电源模块外,由单片机复位电路,单片机晶振电路,LED指示灯电路,温度传感器(DS18B20),蜂鸣器,LCD1602,红外接收电路,键盘接口电路组成。系统整体电路如下图所示

2

3) 系统电路说明:

? LED指示灯电路:分别用3只发光二极管作为AM、PM和闹铃就绪的指示的灯。 ? LCD1602液晶显示器接口电路:将单片机的P2.7和P2.6分别连接LCD的RS

和EN端,P0口接LCD的数据端(DB0-DB7)。LCD1602显示时间、闹铃、温度。 ? 温度传感器接口电路:将单片机的P1.5与温度传感器的数据口相连。用单片

机控制温度传感器,采集实时温度,并通过LCD显示。

? 蜂鸣器接口电路:通过一个PNP三极管放大电路,将单片机的P3.6与三极管

的基极相接,实现单片机控制蜂鸣器发声。 ? 键盘接口电路:本系统共用6只接触式按键,分别与单片机的P2.0-P2.5相连,

实现单片机控制键盘。

? 红外接口电路:红外接收管的数据端与单片机的P3.2相连,通过中断实现单

片机对红外的控制,进而实现非接触式停止闹铃功能。

4) 键盘功能说明:

? 本系统共用到6只按键,分别用来设置时间、设置闹铃、调整小时、调整分钟、

开闹铃、关闹铃。

? 实时时间显示在LCD的第二行,闹钟时间与温度显示在第一行。

? 设置时间与设置闹铃处于同一优先级,不可同时有效。当设置完闹铃时,闹钟

时间在第一行消隐掉。

? 调整小时与调整分钟必须在设置时间或设置闹铃按下时才有效。 ? 开闹铃与关闹铃相对独立,不受其他按键的影响。 ? 调整小时的按键作为切换显示温度的开关,当他作为第二功能用时,设置时间

与设置闹铃的功能无效。

三、 理论分析与计算

1、时间的控制与计算。用定时器实现单片机的时间走动,定时器0定时50ms,经20次中

3

断就过了1s,每过1s在中断服务程序中,通过软件编程让秒、分、时显示在LCD上。单片机不停的扫描键盘,当有按键按下时,就进入相应的服务程序。如:当设置时间键按下时,时间停止,进入调整时间状态,通过调时与调分两个按键可调整时间,再按下设置时间键就推出设置,时间继续。

2、温度的采集与计算。通过温度传感器采集实时温度,由于室温大于0度小于100度,本系统对温度不要求特别精确,故保留两位整数,一位小数显示在LCD上。通过调时按键的第二功能,可切换键盘将温度显示在LCD的第一行。

3、蜂鸣器报警的设计。当闹铃到点时,蜂鸣器就发出“滴滴”的声音以报时。软件实现方法就是:当闹钟的时间与实施时间对应相等就代表闹铃到点。若不打开闹铃,蜂鸣器就不发声;在蜂鸣器发声的过程中,若关掉闹铃,蜂鸣器就停止发声。

4、红外止闹的设计。本系统只利用红外接收管,通过单片机的外部中断0作为红外的控制入口。在蜂鸣器发声过程中,按下遥控器的任意一个键,单片机就可控制蜂鸣器使其停止发声。软件实现方法就是:在外部中断0的服务程序中,关闭蜂鸣器。

四、 测试方法与调试

本系统为多功能数字钟,一切功能的测试均通过6只按键来完成。可分别设置时间、设置闹铃、调整小时、调整分钟、开闹铃、关闹铃。

本程序较大,采用C51语言编写。先调试各功能模块,在调试整个系统。 具体电路见附件。 程序见附页。

程序:

//DS18B20.h

#include

#define uint unsigned int #define uchar unsigned char uchar lsb,msb; uchar disbuf[7]; uchar t1,t2; sbit dq=P1^5; bit presence;

void delay(uint z) {

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--); }

void delay1(uint i)//延时14us,12MHz {while(--i);}

bit rst_ds18b20()//dq复位;没有检测从机 {

dq=1 ;

_nop_(); //稍做延时

dq=0 ; //单片机将dq拉低

4

delay1(60); //延时480us-960us,主要是此延时要长最好800us以上 dq=1 ; //拉高总线

delay1(5); //延时16-60us,等待从机发存在信号

presence=dq; //从机发送60-240us的低脉冲作为存在脉冲 delay(30); //至少延时(480us-720us),等待dq拉为高电平(自动的) return presence; }

uchar rd_byte() //读时,先拉低数据线至少1us,再释放。每两次读至少有1us的间隔 {

uchar i,dat; dq=1;

for(i=0;i<8;i++) {

dq = 0 ; // 给脉冲信号 dat>>=1; //该句4us dq=1; // 给脉冲信号

delay1(1);//主机马上释放总线,并延时至少14us,等待数据送上 if(dq) dat|=0x80;

delay1(5);//保持数据至少(60us-15us),等待上拉电阻将dq拉高 }

return dat; }

void wr_byte(uchar dat)//数据线由高拉低产生写信号 {

uchar i; dq=1;

for(i=0;i<8;i++) {

dq=0;//dq由高拉低后,在15内期间采样dq状态 dq=dat&0x01;

delay1(8);//写数据要维持60us-120us dq=1 ; //然后拉高dq dat>>=1; } }

void rd_temperature() //读取温度 {

rst_ds18b20();

wr_byte(0xCC) ; // 只有一个从机,跳过读序列号的操作 wr_byte(0x44) ; //启动温度转换 rst_ds18b20(); // 复位

wr_byte(0xCC) ; //跳过读序号列号的操作

5

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育多功能数字钟设计报告 全文阅读和word下载服务。

多功能数字钟设计报告 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1089232.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top