单片机的实时时钟.docx

上传人:b****5 文档编号:6991318 上传时间:2023-01-15 格式:DOCX 页数:9 大小:45.76KB
下载 相关 举报
单片机的实时时钟.docx_第1页
第1页 / 共9页
单片机的实时时钟.docx_第2页
第2页 / 共9页
单片机的实时时钟.docx_第3页
第3页 / 共9页
单片机的实时时钟.docx_第4页
第4页 / 共9页
单片机的实时时钟.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

单片机的实时时钟.docx

《单片机的实时时钟.docx》由会员分享,可在线阅读,更多相关《单片机的实时时钟.docx(9页珍藏版)》请在冰豆网上搜索。

单片机的实时时钟.docx

单片机的实时时钟

微处理器原理与接口课程设计

设计题目:

单片机的实时时钟

学院:

年级:

专业:

姓名:

学号:

指导教师:

 

年月日

 

课程设计题目1

1.1设计目标1

1.1.1使用电路1

1.1.2总体思路图4

1.1.3三级标题4

1.1.4三级标题4

1.1.5三级标题4

1.2单元电路设计4

1.2.1时钟4

1.2.2复位电路4

1.2.3控制电路4

1.2.4显示电路5

1.2.5三级标题5

1.3软件设计5

1.3.1程序设计思路5

1.3.2流程图5

1.3.3源程序5

1.3.4三级标题5

1.3.5三级标题5

1.4元器件介绍5

1.4.1AT89C516

1.4.26位7段共阳极显示数码管6

1.4.3三级标题6

1.4.4三级标题6

1.4.5三级标题6

1.5设计原理6

1.5.1电路仿真6

1.5.2三级标题6

1.5.3三级标题7

1.5.4三级标题7

1.5.5三级标题错误!

未定义书签。

 

1.1设计目标

1.实现最基本的计时功能,显示时、分、秒,可以通过按键设置时间。

要求:

时钟计时精确,按键操作不影响计时。

2.具备秒表计时功能。

要求:

记时精度达到100ms,计时支持启动、暂停、继续和停止操作。

3.具备整点响铃提示功能。

要求:

整点闹铃五短一长,闹钟响铃时可以按键清楚响铃。

4.具备日期显示和调整功能。

1.1.1

本设计使用89C51芯片作为控制芯片,复位电路和时钟电路构成单片机最小系统。

利用P0口8个引脚接上拉电阻,驱动LCD液晶显示时钟。

1.1.2

1.2单元设计电路

本设计主要分为时钟电路模块,复位电路模块,显示模块和控制模块。

设计方案如下:

1.2.1

89C51单片机的时钟信号通常用内部振荡方法得到,在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方法。

由于单片机内部有一个高增益反相放大器,当外接晶振后就构成了自激振荡器并产生振荡时钟脉冲。

晶振通常选择6MHz、12MHz、24MHz。

本设计采用12MHz晶振。

图中电容C1、C2起到稳固振荡频率、快速起振的作用。

电容值一般为5—30pF。

本设计选用33pF电容。

1.2.2

复位操作完成电路的初始化,使单片机从一种确定的状态开始运行。

由上图可知,控制模块实际上就是单片机的最小系统。

本设计采用常用的上电且开关复位电路。

上电后,由于电容的充电,使RST持续一段高电平时间。

当单片机已在运行中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。

此处C3电容取10uF,R2=K。

1.2.3

1.3源程序

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineOrd8279XBYTE[0xCFE9]

#defineDat8279XBYTE[0XCFE8]

ucharcodeSEG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

ucharcodekeyval[]={0xC1,0xC2,0xC3,0xC6,0xC7,0xC8,0xC0,0xC9};

ucharyear=15,month=12,day=7,hour=0,minute=0,second=0,num=0;

sbitP1_0=P1^0;

voidInit_timer0(void)

{

TMOD=0x10;

TL0=0xaf;

TH0=0x3c;

}

voidInit8279(void)

{

Ord8279=0x10;

Ord8279=0xD1;

while(Ord8279&0x80);

Dat8279=0x34;

}

ucharReadkey(void)

{

uchari,j;

if(Ord8279&0x07)

{

Ord8279=0x40;

i=Dat8279;

j=0;

while(i!

=keyval[j])

{

j++;

if(j>5)

return0;

}

return(j+1);

}

return0;

}

voidcheck(void)

{

ucharkey=0;

key=Readkey();

switch(key)

{

case1:

year+=1;break;

case2:

month+=1;break;

case3:

day+=1;break;

case4:

hour+=1;break;

case5:

minute+=1;break;

case6:

second+=1;break;

}

}

voidDisp(uchara,ucharb,ucharc)

{

ucharge,shi;

ge=a%10;

shi=a%100/10;

XBYTE[0xCFE9]=0x80;

XBYTE[0xCFE9]=0x81;

Dat8279=SEG[shi];

XBYTE[0xCFE9]=0x82;

Dat8279=SEG[ge];

ge=b%10;

shi=b%100/10;

XBYTE[0xCFE9]=0x83;

Dat8279=SEG[shi];

XBYTE[0xCFE9]=0x84;

Dat8279=SEG[ge];

ge=c%10;

shi=c%100/10;

XBYTE[0xCFE9]=0x85;

Dat8279=SEG[shi];

XBYTE[0xCFE9]=0x86;

Dat8279=SEG[ge];

}

intmain()

{

ET0=1;

EA=1;

TR0=1;

Init_timer0();

Init8279();

while

(1)

{

check();

if(second==20||second==19||second==39||second==40||second==58||second==59)

{

Disp(year,month,day);

}else{

Disp(hour,minute,second);

}

}

return0;

}

voidInterruptTimer0()interrupt1

{

num++;

if(10==num)

{

num=0;

second++;

if(60==second)

{

second=0;

minute++;

P1_0=1;

}

if(60==minute)

{

minute=0;

hour++;

P1_0=0;

}

if(24==hour)

{

hour=0;

day++;

}

if(30==day)

{

day=1;

month++;

}

if(12==month)

{

month=1;

year++;

}

}else{

;

}

}

1.4元器件介绍

1.4.1

AT89C51:

AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.4.2

六位是同时显示六位阿拉伯数字,而每一个数字又是七段码显示的;七段是指一个数码显示的阿拉伯数字是由七位二进制数控制的,共阳是指相应的二进制为1时不亮,为0时亮。

在实验中显示器的作用是显示时间。

1.5设计原理

设计程序分为主程序,中断程序和各种功能程序。

主程序要完成系统的初始化,接受键值并根据键号实现不同的功能,以及判断闹铃时间是否到,如果时间到,则启动响铃。

中断服务程序包括定时计数器0和定时计数器1的中断服务程序,定时计数器0的中断程序实现20ms定时,并每中断20次就修改当前的时,分,秒值,定时计数器1的中断服务程序实现响铃功能和控制响铃一段时间后停止响铃。

1.5.1

KeiLC51是美国KeLlSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。

因而易学易用。

KeiL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

 

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

当前位置:首页 > 初中教育 > 语文

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

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