电子钟课程设计报告DS1302LCD1602AT89C52.docx

上传人:b****4 文档编号:1369801 上传时间:2022-10-21 格式:DOCX 页数:16 大小:406.20KB
下载 相关 举报
电子钟课程设计报告DS1302LCD1602AT89C52.docx_第1页
第1页 / 共16页
电子钟课程设计报告DS1302LCD1602AT89C52.docx_第2页
第2页 / 共16页
电子钟课程设计报告DS1302LCD1602AT89C52.docx_第3页
第3页 / 共16页
电子钟课程设计报告DS1302LCD1602AT89C52.docx_第4页
第4页 / 共16页
电子钟课程设计报告DS1302LCD1602AT89C52.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

电子钟课程设计报告DS1302LCD1602AT89C52.docx

《电子钟课程设计报告DS1302LCD1602AT89C52.docx》由会员分享,可在线阅读,更多相关《电子钟课程设计报告DS1302LCD1602AT89C52.docx(16页珍藏版)》请在冰豆网上搜索。

电子钟课程设计报告DS1302LCD1602AT89C52.docx

电子钟课程设计报告DS1302LCD1602AT89C52

实验总成绩:

报告份数:

1份

西安邮电大学

通信与信息工程学院

课程设计实验报告

专业班级:

学生姓名:

学号(班内序号):

年—月—日

成绩鉴定表

学生姓名

班级/学号

进行时间

成绩鉴定

学习内容

(20分)

与教学任务计划结合程度(10分)

与专业培养结合程度(6分)

其它(4分)

学习态度评价

(20分)

实践能力(10分)

学习态度(6分)

学习纪律(4分)

报告鉴定

(60分)

报告内容与实践过程紧密结合(15分)

报告内容与教学计划内容紧密结合(15分)

报告质量(主题、结构、观点、逻辑、资料、字数30分)

评阅教师姓名

职称讲师成绩

评语

评阅教师签字

年月日

、设计任务和目的

1.用单片机设计基于STC89C52,DS1302,LCD1602的电子钟,显示时间和日期

2.具有时间和日期的校准,记忆功能

3.搭建仿真电路,模拟要实现的功能

4.焊接单片机实物

5.熟练掌握相关软件的使用方法,以及各个器件的基本工作原理

6•编写程序,下载并调试,实现要求的功能

二、设计思路和方案

电路整体上分为控制和显示部分,以单片机最小系统为核心电路,控制LCD显示,具体的显示内容和方式由软件来完成;由于有时钟和H期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加1键、减1键,共四键,计时功能由DS1302完成,显示功能则由LCD1602液晶完成

3.基本设计原理

该电子时钟是利用单片机内部的定时器\计数器来实现的,它的处理过程如下:

首先设定单片机内部的一个定时器\计数器工作于定时方式,对机器周期计数形成基准时间,然后用另一个定时器\计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。

然后通过LCD1602液晶把它们的内容在相应位置显示出来即可。

译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。

在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。

在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。

另外,为了使用方便,设计了简单的按键,可以通过按键实现时、分和H期的调整,这样在主程序中就加入了键盘设置子程序。

由于使用了时间记忆芯片DS1302故断电后下次通电时间能够保持不变,更加的合理人性化。

四、设计方案原理与设计特点分析

1、电子钟总的设计框图:

2、总原理图

I

ZTAL2

I

K0

CS

3

I

1—1X2rz=-eu

L二一

KZ

W2

XI

terr

h?

ns

•XTAU

rocr*icrorwi»oiMtaros^xas丹stosr^Mroari'Mror'i'i-i

•2XU

>2A*-aFsa*\^FXWB

KJD^frj.irrxtiauwrofaawn>2hTCr35TTl*3X«KFcrE

COM

URFl

*TC

 

 

各个模块电路原理分析:

3、DS1302时钟釆集模块:

 

首先DS1302是DALLAS公司推出的涓流充电时钟芯片。

内含

有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/H历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作。

DS1302芯片广脚介绍:

X1、X2为32.768KHZ晶振管脚。

GND为

地。

RST复位脚。

I/O数据输入/输出引脚oSCLK串行时钟oVccl,Vcc2

4、按键处理模块:

其中下按键为模式调节键,上按键为减1键,左按键为加1键,与单

片机连线如下:

加1键连接P3T;减1键连接P3八2;模式调节键连接P3八3;

5、LCD显示模块:

液晶显示器是一种功耗极低的被动式显示器件,1602广脚介绍:

DO—D7数据传送引脚,VSS为接地线,VDD为电源线,VEE为LCD驱动电压调节,由此可以调节显示亮度。

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

RW为读写控制信号,高电平读,低电平写。

EN使能信号,读状态下高电平有效,写状态下下降沿有效。

RS连接P2A0;寄存器选择信号

RW连接P2A1;读写控制信号线

EN连接P2A2;使能信号线

6、protues仿真结果:

 

五、设计结果性能分析

该设计电路系统较大,电路只要一出有错误就会对检测造成很大的不便,应该注意元器件的正确放置与安装及布线的合理以便于电路的检修和维护,为了减少复杂度,可以使用Protues进行仿真。

设计的功能虽然比较简单单程序还是较为复杂的,中间遇到了一些问题。

从性能来看,LCD能够正确的显示DS1302芯片上面的时间和日期;其次,可以通过三个按键键对电子钟进行时间和日期的调整,并且具有时间记忆功能。

总之设计所要求的性能基木得到了实现。

六、实习心得体会体会

通过木次单片机课程设计,使我所学的知识能够得到实际的应用,过程中也发现自身所学的知识存在许多的不足和问题,当然同时也学到了不少宝贵的知识,提高了自己的动手实践能力。

在整个设计过程中从设计方案确定,到具体的电路仿真,最后到总体电路的连接构建以及程序的编写烧制,特别是程序的编写要求对LCD1602的初始化操作,指令和数据的操作都非常熟悉。

通过这次对数字钟的设计与制作让我了解了设计电路的程序也让我了解了关于数字钟的原理与设计理念要设计一个电路总要先用仿真仿真成功之后才实际接线的。

但是最后的成品却不一定与仿真时完全一样因为再实际接线中有着各种各样的条件制约着。

而且在仿真中无法成功的电路接法在实际中因为芯片本身的特性而能够成功。

所以在设计时应考虑两者的差异从中找出最适合的设计方法。

在这次实习中遇到了许多问题,但通过向老师同学请教都得到了解决。

通过这次课程设计,我知道了做任何事都要有一颗平常心,不要想着走捷径,要一步一个脚卬才能取得最后成功,在此过程中更要注重自主学习,发挥自己的主管能动性。

总之这次课程设计试一次很好的锻炼,让我有了全方位的提高,受益匪浅,为我以后的工作学习打下了很好的基础,而且积累了丰富的经验。

七、参考文献

[1]张义和•例说51单片机[M].北京:

人民邮电出版社,2010年

[2]阎石编著数字电子技术基础(第五版)北京高等教育出版社]

2006.1〜550

[3]蔡明文冯先成主编单片机课程设计华中科技大学出版社2007.3

[4]陈明萤编著80"单片机课程设计实训教材清华大学出版社2004

[5]康华光编著模拟电子技术基础(笫五版)高等教育出版社2006

[6]黄智伟编著全国大学生电子设计竞赛电路(第一版)航空航天大学出版社2006.36

八、程序清单

#include

#defineuintunsignedint

#defineucharunsignedchar

#definerstRST=O;

#definenrstRST=1;

voidinit();

voidwrite_com(uchar);

voidwrite_data(uchar);

voiddelay(uint);

voidwrite_sfm(uchar,uchar);

voidkeyscan();

voidwr_byte(uchardat)

ucharcount,num,sinum;

charshifen,miao;

ucharcodetable[]=H2012-11-30FriH;

ucharcodetable1[]=H00:

00:

00”;

sbitrw=P2A5;

〃内部拐角的设置

sbitrd=P2A6;

sbitlcde=P2A7;

sbitsl=P2A4;

sbits2=P2A3;

sbits3=P2A2;

voidmain()

{

init();

while(l)

{

keyscan();

if(count==20)

〃中断1秒

{

count=0;

miao++;

if(miao==60)

{

miao=0;fen++;

if(fen==60){

fen=0;

shi++;if(shi==24)

{

shi=0;

write_sfm(0x04、shi);〃显示小时

)write_sfni(0x07,fen);

〃显示分钟

write_sfm(0x0a,miao);

〃显示秒

}

voidinit()

〃初始化函数

rw=0;

〃进入写操作

write_com(0x38);

〃显示十六位液晶

writjcom(OxOc);

〃打开十六位液晶不显示光标

write_com(0x06);

〃写以为下一个数右移一位写

write_com(OxO1);

〃清屏

write_com(0x80);

〃第一行写

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

{write_data(table[num]);

〃第一行写数据

delay(5);

write_com(Ox80+0x40);

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

〃第二行写数据

{write_data(tablel[num]);

delay(5);

1

TMOD=0x01;

〃定时器0方式1工作

TH0=(65536-50000)/256;〃定时器数数1到50000

TL0=(65536-50000)%256;

EA=1;

〃打开总中断

ET0=l;

〃打开T0中断

TRO=1;

〃启动他TO中断

1

voidwrite_com(ucharcom)

{

rd=O;

〃写指令

lcde=O;

〃使能端拉低

delay(5);

P0=com;

〃输入地址就是命令

lcde=1;

〃使能端拉高工作

delay(5);

〃这五亳秒命令输入

lcde=O;

〃使能端拉低停止工作

delay(5);

>

voidwrite_data(uchardate)

{

rd=l;

〃写数据

Icde=O;

〃使能端拉低

delay(5);

PO=date;

〃输入数据就是你要在液晶上显示什么

lcde=l;

〃使能端拉高开始输入数据

delay(5);

〃五毫秒数据输入

lcde=O;

〃拉低使能端停止工作

delay(5);

voiddelay(uintz)

〃延迟函数

{

uintx,y;

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

for(y=l10;y>0;y—)

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

当前位置:首页 > PPT模板 > 商务科技

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

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