基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx

上传人:b****3 文档编号:14706487 上传时间:2022-10-24 格式:DOCX 页数:24 大小:366.93KB
下载 相关 举报
基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx_第1页
第1页 / 共24页
基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx_第2页
第2页 / 共24页
基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx_第3页
第3页 / 共24页
基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx_第4页
第4页 / 共24页
基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx

《基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

基于DS1302多功能数字钟电子电工课程设计Word文档格式.docx

DS1302

数字式温度传感器:

DS18B20

总共设有四个按键,为节约资源考虑,每个按键都有多种功能。

四个按键分别标号为key1,key2,key3,key4。

第一次按下key2,key3,key4都没有反应,首先按下key1键可选择指针位置,key2键为加键,key3为减键,key4键为闹钟设置清零键。

操作简单,按键灵活。

整点报时功能,可以按下key4键终止报警。

系统设计框图:

系统硬件需求介绍:

STC89C52单片机一片,DS1302实时时钟芯片一个,DS18B20数字式温度传感器一个,+5V无源蜂鸣器一个,12MHZ、32KHZ晶振各一个,多个按键和开关,常用电容电阻,连接线,三极管,二极管若干,滑动变阻器一个,+3V纽扣电池一个。

3、实施方案:

1、单片机核心控制模块:

核心控制器件选用STC89C52单片机。

STC89C52单片机为40管脚双列直插芯片,它是一种高性能,低功耗的8位CMOS微处理器芯片,市场应用最多。

而且价格便宜,控制方便,便于应用有4个I/O口分别为P1,P2,P3,P4。

其中每一个管脚都能做独立的输入输出管脚,它的第9脚位复位管脚,接上电容和上拉电阻再带个开关构成复位电路。

18,19管脚接外部晶振和两个微调电容构成外部晶振电路。

单片机,复位电路,晶振,5V电源构成单片机最小系统。

其中与AT89C52单片机管脚连接如下图:

2、实时时钟电路模块:

DS1302引脚排列:

如下图

引脚说明:

1)1脚,Vcc2:

后备电源,此设计中接+3V纽扣电池;

8脚,VCC1:

主电源,接+5V。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

2)X1、X2即2脚3脚:

振荡源,外接32.768kHz晶振。

3)4脚END,接地端。

4)5脚RST:

复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;

其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc>

2.0V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

5)I/O为串行数据输入输出端(双向)。

6)SCLK为时钟输入端。

**特别注意:

5,6,7脚在硬件电路实现中,必须接上拉电阻,接+5V.

3、DS18B20工作模块:

DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。

其一个工作周期可分为两个部分,即温度检测和数据处理。

DS18B20的主要特征:

全数字温度转换及输出。

先进的单总线数据通信。

最高12位分辨率,精度可达土0.5摄氏度。

 

12位分辨率时的最大工作周期为750毫秒。

可选择寄生工作方式。

检测温度范围为–55°

C~+125°

C(–67°

F~+257°

F)

内置EEPROM,限温报警功能。

64位光刻ROM,内置产品序列号,方便多机挂接。

多样封装形式,适应不同硬件系统。

4、液晶显示模块:

1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本设计采用16列*2行的字符型LCD1602带背光的液晶显示屏。

引脚接口说明:

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

5、蜂鸣器电路模块

本实验设计中蜂鸣器用CS8050三极管驱动,蜂鸣器用5V的无源蜂鸣器,并接一个发光二极管作为指示灯,同时在负极串接一个限流电阻,数据端口接P3^7.

4、Proteus仿真原理总框图:

5、硬件电路实现:

6、源程序:

Shuzizhong.c

#include<

reg51.h>

#include"

ds18b20.h"

#defineucharunsignedchar

#defineuintunsignedint

ucharshi,fen,miao,ringshi,ringfen,nian,yue,ri,week,temp,count,m;

sbitrs=P2^2;

sbitrw=P2^3;

sbiten=P2^4;

sbitkey1=P3^4;

//设置键

sbitkey2=P3^5;

//加键

sbitkey3=P3^6;

sbitkey4=P3^7;

sbitIO=P1^1;

//DS1302数据线

sbitSCLK=P1^2;

//DS1302时钟线

sbitRST=P1^0;

//DS1302复位线

sbitbeep=P1^4;

sbitACC0=ACC^0;

sbitACC7=ACC^7;

ucharcodetable[]="

20--"

;

ucharcodetable1[]="

:

"

ucharcodetone[]={212,212,190,212,159,169,212,212,190,212,142,159,

212,212,106,126,159,169,190,119,119,126,159,142,159,0};

ucharcodelon[]={9,3,12,12,12,24,9,3,12,12,12,24,

9,3,12,12,12,12,12,9,3,12,12,12,24,0};

voiddelay(uintz)

{uintx,y;

for(x=z;

x>

0;

x--)

for(y=120;

y>

y--);

}

voidyinyue()

{

uinti,j,k=0,l;

{for(l=0;

l<

26;

l++)

{

for(i=0;

i<

codelon[k]*20;

i++)

{if(key4==0){beep=0;

break;

}

beep=~beep;

for(j=0;

j<

codetone[k]/3;

j++);

delay(10);

k++;

}}}

voidwrite_LCD_com(ucharcom)

{rs=0;

rw=0;

P0=com;

delay(5);

en=1;

en=0;

voidwrite_LCD_da(uchardata1)

{rs=1;

P0=data1;

voidInit_LCD()

{ucharnum;

write_LCD_com(0x38);

delay

(1);

write_LCD_com(0x01);

write_LCD_com(0x06);

write_LCD_com(0x0c);

write_LCD_com(0x80);

for(num=0;

num<

10;

num++)

{write_LCD_da(codetable[num]);

write_LCD_com(0x80+0x40);

8;

{write_LCD_da(codetable1[num]);

}}

voidwrite_LCDsfm(ucharadd,uchardate)

{ucharge,shi;

shi=date/10;

ge=date%10;

write_LCD_com(0x80+0x40+add);

write_LCD_da(0x30+shi);

write_LCD_da(0x30+ge);

voidwrite_LCDnyr(ucharadd,uchardate)

write_LCD_com(0x80+add);

write_LCD_da(0x30+shi);

voidwrite_LCDweek(ucharweek)

{write_LCD_com(0x80+0x0b);

switch(week)

{case1:

write_LCD_da('

M'

);

write_LCD_da('

O'

write_LCD_da('

N'

break;

case2:

T'

U'

E'

case3:

W'

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

当前位置:首页 > 工程科技 > 建筑土木

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

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