基于单片机的电脑时.docx

上传人:b****1 文档编号:2140832 上传时间:2023-05-02 格式:DOCX 页数:13 大小:68.32KB
下载 相关 举报
基于单片机的电脑时.docx_第1页
第1页 / 共13页
基于单片机的电脑时.docx_第2页
第2页 / 共13页
基于单片机的电脑时.docx_第3页
第3页 / 共13页
基于单片机的电脑时.docx_第4页
第4页 / 共13页
基于单片机的电脑时.docx_第5页
第5页 / 共13页
基于单片机的电脑时.docx_第6页
第6页 / 共13页
基于单片机的电脑时.docx_第7页
第7页 / 共13页
基于单片机的电脑时.docx_第8页
第8页 / 共13页
基于单片机的电脑时.docx_第9页
第9页 / 共13页
基于单片机的电脑时.docx_第10页
第10页 / 共13页
基于单片机的电脑时.docx_第11页
第11页 / 共13页
基于单片机的电脑时.docx_第12页
第12页 / 共13页
基于单片机的电脑时.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电脑时.docx

《基于单片机的电脑时.docx》由会员分享,可在线阅读,更多相关《基于单片机的电脑时.docx(13页珍藏版)》请在冰点文库上搜索。

基于单片机的电脑时.docx

基于单片机的电脑时

毕业论文诚信声明

 

本人郑重声明:

所呈交的毕业论文《 基于单片机的电脑时钟设计 》是本人在指导老师的指导下,独立研究、写作的成果。

论文中所引用是他人的无论以何种方式发布的文字、研究成果,均在论文中以明确方式标明。

本声明的法律结果由本人独自承担。

 

        毕业论文作者签名:

        

               年  月  日

 

江西科技师范学院毕业设计(论文)

 

题目(中文):

基于单片机的电脑时钟

设计 

  (外文):

         

  院(系):

 通信与电子学院        

  专 业:

 电子信息工程        

 学生姓名:

 冷中秋       

 学  号:

 20061698       

 指导教师:

 宗文军       

 

       年  月  日

目录

引言.............................................................................................................1

1基本功能.....................................................................................................1

2硬件框图......................................................................................................1

2.1单片机.................................................................................................1

2.2 时间显示电路..................................................................................2

2.3 时间、闹钟设置电路......................................................................2

2.4 闹钟电路..........................................................................................2

2.5 复位电路采用按钮电平复位电路(如下图)...................................2

3 软件设计...................................................................................................3

3.1 初始化参数设置...............................................................................4

3.2 键盘设置子程序...............................................................................5

3.3 显示子程序.......................................................................................6

3.4 控制子程序........................................................................................7

3.5 中断定时子程序................................................................................8

4.结束语..............................................................................................................8

参考文献..............................................................................................................9

附录Ⅱ部分软件程序代码..................................................................................11

 

基于单片机的电脑时钟设计

摘 要:

时钟电路是保证计算机系统正常工作的基础,概述了用单片机实现电子时钟的硬件框图及软件实现方法

关键词:

电脑时钟;单片机;8155芯片;时钟芯片

1.引言

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:

一是用软件实现,即用单片机内部的可编程定时/计数器来实现;二是用专门的时钟芯片实现,本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法。

1 基本功能

(1)时间显示功能:

显示时、分、秒。

(2)时间和闹钟设置功能:

可以通过键盘的任意设定、修改显示时间和闹钟时间。

2 硬件框图

2.1 单片机

MCS-51单片机内部定时计数器概述MCS-51单片机内部包含2个定时计数器T。

和T。

,它们都是16位的加法计数器,既可用于定时,也可用于计数,在用于定时的情况下,计数脉冲由内部提供,因此计数速率固定为CPU振荡频率的1/12;在用于计数的情况下,计数脉冲来自外部,外部计数脉冲通过MCS一51的引脚T。

(第14脚)或Tl(第15脚)输入[1。

2],在发生从1到0的跳变时计数加1。

每个定时计数器又有4种工作方式可供选择:

方式0构成13位定时计数器,高3位未用;方式1构成16位定时计数器;方式2构成8位定时计数器,低位字节用于计数,高位字节存放初值[3—1;方式3只适合于T。

,构成两个独立的8位定时计数器。

在方式0、方式1及方式3时,初值不能自动装入,当定时时间已到或计数次数已满时,若要进行下一次定时计数,必须利用软装入初值,否则,系统会按上限自动定时或计数,即以0初值进行定时或计数[5卅;而在方式2时,初值可自动装入,只需向高位字节写入一次初值,则当低位字节定时时间到(或计数满)时,高位字节的初值会自动装入低位字节,且高位字节的值保持不变。

当系统需用MCS-51单片机的串行接口进行串行通信时,定时计数器T。

被固定为波特率发生器,因此,在软时钟设计中,总是选择T。

作为定时器m]。

单片机采用AT89C51型,它是一种带4K字节闪烁可编程可擦除只读存储的低电压、高性能CMOS8位微处理器,该器件采用ATMEL高密度非易失性存储器制造技术与工业标准的MCS—51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入控制系统提供了一种灵活性高且价廉的方案。

2.2 时间显示电路

由于AT89C51单片机I/O口有限,采用可编程的并行I/O口芯片8155进行扩展,时间显示电路为了简化硬件线路,降低成本,利用LED动态显示接口电路实现。

2.3 时间、闹钟设置电路

由于时间的设置只需四个按键(秒、分、时、闹钟时间设置启动),电路简单,所以可以采用独立式按键来实现。

2.4 闹钟电路

当时间与设置闹钟时间相等时,通过I/O口控制继电器接通闹钟实现。

2.5 复位电路采用按钮电平复位电路(如下图)

3 软件设计

软件采用模块化设计,其流程图如下:

3.1 初始化参数设置

包括数据堆栈区、定时/计数器的初始化、8155芯片的初始化及时间、显示数据的初始化设置。

定时/计数器的初始化:

包括对TMOD、TCON以及根据定时时间对时间初值的设置。

设电子钟采用中断定时100ms,fosc=6MHZ,采用T0方式1,则X=216.100ms=15536=3CB0H,则TH0=3CH,TL0=0BOH。

8155芯片的初始化:

8155对单片机来讲是一个外部接口芯片,它与外部RAM的操作方法一样。

即:

MOV DPTR,#addr16

MOV A,#03H

MOVX @DPTR,A

3.2 键盘设置子程序

这里主要介绍秒设置子程序的部分代码。

KEY:

JBKEY-S,M-SET;秒设置键按下吗?

如没按下则判断分设置键是否压下

LCALLDELAY

JBKEY-S,M-SET

INCDATA-S;如秒设置键压下,则秒单元加1

MOVA,DATA-S

CJNEA,#60,DATA-S;秒单元=60;则清0

MOVDATA-S,#00H

S-DIS:

MOVA,DATA-S

LCALLHEX-BCD;调用BCD码转换子程序

MOV69H,A

MOV6AH,B

S-REP:

LCALLDIS

JNBKEY-S,S-REP;待秒设置键释放

M-SET:

……;分设置键判断程序略

其中KEY-S,DATA-S需在主程序中用伪指令定义后,才能使用。

3.3 显示子程序

采用动态扫描的方式和查表程序可实现实时时间的显示。

3.4 控制子程序

作用是判断时间是否与设置的闹钟时间是否相等,如相等则开启闹钟。

3.5 中断定时子程序

是电子时钟的核心,在这里主要介绍一下秒单元的定时过程,其中5FH存放100ms单元的数值。

CLOCK:

PUSH ACC;参数入栈保护

PUSH PSW

CLR TR0

MOV TL0,#0B0H;定时参数重新设置

MOV TH0,#03CH

SETB TR0

INC 5FH

MOV A,5FH

CJNE A,#10,FK;100ms单元内容=10,则秒单元加1

MOV 5FH,#00H;100ms单元内容清0

MOV A,DATA-S

ADD A,#01H;秒单元加1

MOV DATA-S,A

CJNE A,#60,FK;秒单元内容=60,则秒单元清0

MOVDATA-S,#00H(分、时单元定时过程略)

FK:

POPPSW;出栈,退出中断子程序

POP ACC

RETI

4.结束语

由于时钟电路的重要性,时钟电路在很多应用系统中必不可少,用软件方法可以实现,但误差很大,主要用在对时间精度要求不高的场合,在对时间精度要求很高的情况下,通常采用时钟芯片来实现。

典型的时钟芯片有:

DS1302,DS12887,X1203等都可以满足精度要求.提出了采用MCS-51内部定时计数器作为软时钟设计的方法,不仅节省了硬件开销,而且提高软时钟的

定时精度,具有广泛的应用价值。

在实际测试中,当晶体振荡器的振荡频率不是标准6MHz时,通过调整中断周期常数,以及必要时通过增加秒以下时间单元缓冲区的字节数,可使中断周期常数准确到所需精度。

参考文献

[1]陈建铎.单片机原理与应用[M].北京:

科学出版社,2004.

[2]李群芳,方事明,游华杰.单片机原理与应用[M].湖北:

武汉大学出版社,2006.

[3]李刚,林凌,姜苇.51系列单片机系统设计与应用技巧[M].北京:

北京航空航天大学出版社。

2004.

[4]高峰.单片微机应用系统设计及实用技术[M].北京:

机械工业出版社,2004.

E5]李广弟,朱月秀,冷祖祁.单片机基础[M].北京:

北京航空航天大学出版社,2001.

[6]张专成.多参量火警监测器的软判决与单片机实现[J].微计算机信息,2008,[7]黄天录.PICl2F675单片机在复合式火灾探测器设计中的应用[J].西安通信学院学报,2006

[8]窦振中.单片机外围器件使用手册EM3.北京:

北京航空航天大学出版社,2003.

[9]邵贝贝.MotorolaDSP型16位单片机原理与实践[M3.北京:

北京航空航天大学出版社,2003.

[10]马忠梅,籍顺心,张凯,等.单片机的c语言应用程序设计[M].北京:

北京航空航天大学出版社,2003.

附录Ⅱ部分软件程序代码

#include"reg52.h"

#defineTHCO0xee

#defineTLCO0x0

UnsignedcharcodeDuan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F};//共阴极数码管,0-9段码表

unsignedcharData_Buffer[4]={0,0,0,0};//四个数码管显示数值,数组变量定义

unsignedcharHour=0,Min=0,Sec=0;

bitflag=0;//1分时间到标志

sbitP10=P1^0;//四个数码管的位码口定义

sbitP11=P1^1;

sbitP12=P1^2;

sbitP13=P1^3;

sbitK_Mode=P2^0;//按键定义

sbitK_UP=P2^1;

sbitK_DN=P2^2;

sbitLED1=P2^3;//四个指示灯

sbitLED2=P2^4;

voidmain()

{

TMOD=0x11;//定时器0初始化

TH0=THCO;

TL0=TLCO;

TR0=1;

ET0=1;

EA=1;

while

(1)

{

if(flag==1)

{

flag=0;

Data_Buffer[0]=Hour/10;

Data_Buffer[1]=Hour%10;

Data_Buffer[2]=Min/10;

Data_Buffer[3]=Min%10;

}

}

}

voidtimer0()interrupt1

{

staticunsignedcharBit=0;//静态变量,退出程序后,值保留

staticunsignedcharcount=0,K_count=0;

staticunsignedcharMode=0;

//MODE,0:

实时时钟;1:

修改小时;2:

修改分钟

TH0=THCO;

TL0=TLCO;

count++;

if(count>=200)//秒计时,定时器定时5ms,计200次为一秒

{

count=0;

Sec++;

if(Sec>=60)

{

Sec=0;

Min++;flag=1;//更新数码管显示

if(Min>=60)//时间计时

{

Min=0;Hour++;

if(Hour>=24)Hour=0;

}

}

}

Bit++;

if(Bit>=4)Bit=0;

P1|=0x0f;//先关位码

P0=Duan[Data_Buffer[Bit]];//开段码

if(count<100&&Bit==1)P0|=0x80;//0.5S中间小数点亮,之后灭,不断循环

switch(Bit)//送位码

{

case0:

P10=0;break;

case1:

P11=0;break;

case2:

P12=0;break;

case3:

P13=0;break;

}

if(K_Mode==0||K_UP==0||K_DN==0)//有键按下

{

K_count++;

if(K_count>=30)//消抖处理

{

K_count=0;

flag=1;

if(K_Mode==0)//修改Mode,

{

Mode++;

if(Mode>=3)Mode=0;

if(Mode==0){LED1=1;LED2=1;}//实时时间

elseif(Mode==1)LED1=0;//修改小时

elseif(Mode==2){LED1=1;LED2=0;}//修改分钟

}

elseif(K_UP==0)

{

if(Mode==1)//小时加

{Hour++;if(Hour>=24)Hour=0;}

elseif(Mode==2)//分钟加

{Min++;if(Min>=60)Min=0;}

}

elseif(K_DN==0)

{

if(Mode==1)//小时减

{

if(Hour==0)Hour=23;

elseHour--;

}

elseif(Mode==2)//分钟减

{

if(Min==0)Min=59;

elseMin--;

}

}

}

}

elseK_count=0;

}

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2