数字钟的设计_毕业设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计
数字钟的设计
摘要:随着电子工业的发展,电子产品日新月异。

钟表的数字化给人们生产生
活带来了极大的方便,而且大大地扩展了钟表原先的功能。

诸如数字钟、万年历、电子表、定时自动报警、定时启闭电路、通断动力设备,甚至各种定时电气的自动启用、通信、网络等众多领域,所有这些都是以钟表数字化为基础的。

由于其功能的不断增加,使用方便性不断提高,很多产品已经成为人类日常生活中不可或缺的助手。

本文是基于单片机控制的数字钟系统的设计。

该系统主要以单片机芯片AT89C51为核心结合按键选择模块来控制数码管显示模块和蜂鸣器模块工作,从而实现时钟和闹钟功能,并可对时钟及闹钟的时、分、秒进行单独校对,使其校正到标准时间。

此设计以软件控制硬件及软硬件结合为指导思想,充分发挥单片机功能。

同时,该数字钟系统还具有功耗小、成本低的特点,具有很强的实用性。

由于系统实现的功能简单,因此具有一定的可扩展性。

关键词:AT89C51单片机;数码管显示;
The design of digital clock
Abstract
With the development of the electronics industry, electronic products are different from before day by day. Watches digital has brought great convenience to people's production and living, and greatly expanded the original watch function. Such as digital clock, calendar, electronic watches, timed automatic alarm, timed to open and close circuits, open and close the power equipment, even a variety of timed electrical auto-enabled, communications, networking and many other fields, all of which are based on watches digital. Increasing its functionality, ease of use continue
to increase, many products have become an indispensable assistant to human daily life.
This article is based on single chip microcomputer control of digital clock system design. This system mainly by the
single-chip microcomputer AT89C51 as the core in combination with key choice module to control the digital tube display and buzzer module work, so as to realize the clock and alarm clock function, and can be on the clock and alarm clock, minutes and seconds to individually check, make the correction to standard time. This design in order to control the hardware and software and hardware combined with software as the guiding ideology, give full play to the MCU function. At the same time, the digital clock system also has the characteristics of low consumption, low cost, strong practicability. Due to the function of the system is simple, thus has certain extensibility.
Key words: AT89C51 single chip microcomputer; Digital tube display;
目录

要........................................................................................................................................ ..i
Abstract .................................................................................................................................. ...ii第一章绪论.....................................................................................................................- 1 -
1.1 课题研究的背景....................................................................................................- 1 -
1.2课题研究的内容................................................................................................. -
2 -
第二章KEIL集成开发环境的应用.................................................................................. - 3 -
2.1AT89C51单片机概述............................................................................................-
3 -
2.2 KEIL集成开发环境的应用与操作.................................................................... -
3 -
2.2.1KEIL集成开发环境简介............................................................................. -
3 -
2.2.2 KEIL集成开发环境的基本仿真流程...................................................... - 4 -
第三章数字钟系统的原理与设计.................................................................................. - 6 -
3.1 数字钟系统的总体方案设计..............................................................................- 6 -
3.2 数字钟系统的硬件设计..................................................................................... - 6 -
3.2.1 复位电路的设计................................................................................ - 7 -
3.2.2 振荡电路的设计...................................................................................... - 8 -
3.2.3 按键选择电路的设计............................................................................ - 10 -
3.2.4 数码管显示电路的设计.......................................................................... - 11 -
3.2.
4.1 数码管的显示原理..................................................................... - 13 -
3.2.
4.2数码管的连接............................................................................. - 14 -
3.2.5蜂鸣器电路设计...................................................................................... - 14 -
3.3 数字钟系统的软件设计.....................................................................................- 16 -
3.3.1 初始化参数设置..................................................................................... - 17 –
3.3.2 时钟计时程序..................................................................................... - 17 -
3.3.3 按键处理程序..................................................................................... - 17 -
3.3.3.1 时钟调时程序............................................................................. - 17 -
3.3.3.2 闹钟调时程序............................................................................. - 17 -
3.3.4 数码管显示程序..................................................................................... - 17 -
3.3.
4.1 时钟当前值显示程序................................................................ - 17 -
3.3.
4.2 闹钟调时显示程序................................................................ - 17 -
第四章系统实现与分析................................................................................................ - 20 -
4.1 系统总体电路原理图的设计.......................................................................... - 20 -
4.2 系统整体软件设计............................................................................................ - 21
第五章总结与展望....................................................................................................... - 26 -
5.1 工作总结............................................................................................................ - 26 -
5.2 技术展望............................................................................................................. - 27 -
参考文献......................................................
第一章绪论
1.1 课题研究的背景
近年来随着科技的发展,任何设备和产品的自动化、数字化和智能化都离不开单片机,单片机已成为人类生活中不可或缺的助手。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。

单片机的应用的重要意义在于,它从根本上改变了传统意义设计理念和设计方法。

数字钟已经成为人们日常生活中不可缺少的生活用品,广泛的应用于各种场所。

给我们生活、学习、工作、娱乐带来了极大的方便。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时功能也可以完成数字钟的电路设计,因此进行数字钟的设计是必要的。

1.2课题研究的内容
本次设计的多功能数字钟就是应用单片机的计时功能为设计核心,采用定时
器中断提供准确的计时,由键盘调整数字钟的功能,并利用软件编程通过数码管
把时间数字显示出来,通过蜂鸣器提醒时间。

本文内容结构安排如下:第一章主要介绍本文的研究背景,及本文的主要研究内容。

第二章是对KEIL集成开发环境的应用的介绍,包括AT89C51单片机概述,KEIL 集成开发环境简介及KEIL集成开发环境的基本仿真流程。

第三章主要介绍数字时钟的原理与设计,分别介绍了数字钟系统的总体方案设计,数字钟系统的硬件设计,数字钟系统的软件设计。

第四章是系统的实现与分析,分别介绍了系统总体电路原理图的设计,系统整体软件设计,将各个模块整合到一起,进行仿真、分析,以实现数字钟系统的整体功能。

第五章是对本文的总结,以及对本设计的技术展望。

第二章KEIL集成开发环境的应用
2.1 AT89C51单片机概述
单片机是计算机、自动控制和大规模集成电路技术相结合的产物,融计算
机结构和控制功能于一体,集成在一个芯片上的计算机,全称单片微型计算机。

AT89C51是8位单片机中一个最基本、最典型的芯片型号,它主要由中央处理器CPU、内部数据存储器、内部程序存储器、定时器/计数器、并行I/O口、串行口、中断控制电路、时钟电路、位处理器、内部总线等组成。

2.2 KEIL集成开发环境的应用与操作
2.2.1KEIL集成开发环境简介
Keil C51是Keil Software公司出品的51系列兼容单片机C语言软件开发系统。

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

在Keil中使用C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势。

2.2.2 KEIL集成开发环境的基本仿真流程
1.新建与保存源程序
第一步:双击KEIL uVision3的桌面快捷方式,启动KEIL集成开发软件。

第二步:新建文本编辑界面或加入原有的程序文件。

选择“File(文件)”→“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”。

第三步:在“Text1”中输入C语言源程序。

第四步:保存源程序。

保存文件时必须加上文件的扩展名并选择路径和文件名进行保存,C语言程序文件的扩展名为“.C”。

2.建立新工程
第五步:新建KEIL工程。

选择“Project(工程)”→“New Project(新建工程)”命令,将出现保存对话框。

在保存工程对话框中输入工程文件名,工程名称不用输入扩展名。

输入名称后保存,将出现“Select Device for Target ”对话框。

第六步:选择CPU型号。

在对话框中选择“公司(Atmel )” →“CPU 型号”,单击“确定”按钮返回主界面。

3.加入源程序到工程中
1 总体方案设计
针对本课题的设计任务,进行分析得到:本次设计以单片机芯片AT89C51为核心进行控制,并由4个按键及一个开关键进行时间的调整和闹铃的设定。

最终由6个数码管显示时间,1个蜂鸣器提醒时间。

根据设计的要求,该多功能数字钟的设计总体上大致可分为以下几个部分:1.复位电路;2.振荡电路;3.按键选择电路;4.数码管显示电路; 5. 蜂鸣器电路。

系统原理框图如下图所示。

22.1复位电路设计
单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出
现混乱。

对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。

单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定的。

RST 引脚是复位信号的输入端,高电平有效。

常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路,而此数字钟系统复位电路采用按键电平复位电路,如下图所示。

2.2振荡电路
振荡电路由两个皆为30PF 的C1,C2及振荡频率为12MHZ 的晶振组成,
并配合单片机定时器0实现准确计时。

2.2按键选择电路
按键选择电路主要通过按键及开关实现随时输入定时(闹钟)时间和随时对
当前时间进行调整。

本设计选择1个单刀单掷开关为闹钟时间调整开关,4个独立式键盘,分别为:秒钟调整按键、分钟调整按键、时钟调整按键及时钟运行按键。

按键选择电路如下图所示。

其中,秒钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的秒位,反之对时间值的秒位进行调整,分钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的分位,反之对时间值的分位进行调整,时钟调整按键的功能是当闹钟时间调整开关闭合时调整闹钟时间的时位,反之对时间值的时位进行调整。

各按键每按一次+1,当秒位和分位加到60自动转化为0,当时位加到24自动转化为0。

键盘的硬件电路设计只能保证八个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现。

当时间值调整准确,按下时钟运行按键启动定时器中断开始准确计时。

2.2 数码管显示电路设计
在目前的扫描显示电路中为了节省成本广泛使用七段数码管显示,其工业控制、仪表仪器等都应用七段数码管做显示输出。

用十进制数码管直观显示数字系统的运行数据,常常是主要的显示手段,数码管每个线段都是一个发光二极管LED (Light Emitting Diode )组成的。

因其驱动电压小、功耗低、寿命长和可靠性高等优点广泛显示电路中。

2.2.1数码管的显示原理
七段数码管显示就是将七个发光二极管LED (加小数点为八个)按一定的方式排列起来,七段a 、b 、c 、d 、e 、f 、g (小数点DP )各对应一个发光二极管,利用不同发光段的组合,显示不同的阿拉伯数字或字符,要使数码管显示,必须具备两个条件:1.要使COM 端接地;2. 要使(a,b,c,d,e,f,g,dp)某些端口接高电。

O M
(a) 显示器(b) 段组合图
图2.2.1 八段数字显示器及发光段组合图
以共阴极数码管为例
7段数码管的段码为7位,8段数码管的段码为8位,用一个字节即可表示。

段码字节中代码位与各段发光二极管的对应关系如下:
分个位与秒十位结合显示数字及“:”。

2.2.2数码管连接
在使用中,为了给发光二极管加驱动电压,它们应有一个公共引脚,公共引脚共有共阴极和共阳极两种连接方法,如图下图所示。

COM
(a)共阳极接法(b)共阴极接法
其中共阴极接法把发光二极管的阴极连在一起构成阴极公共引脚,使用时阴极公共引脚接地,这样阳极引脚上加高电平的发光二极管就导通点亮;共阳极接法则是把发光二极管的阳极连在一起作为阳极公共引脚,使用时阳极公共引脚接+5V,这样阴极引脚上加低电平的发光二极管即可导通点亮。

此图各数码管的a,b,c,d,e,f,g,DP端分别接P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7。

自秒个位,秒十位,分个位,分十位,时个位,时十位起数码管的COM端分别接P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,对应数
蜂鸣器电路设计
本设计中当闹钟预设时间与当前显示时间值相同时驱动蜂鸣器连续工作1分钟,起到提醒时间的作用,给人们的工作、学习、生活带来方便。

将蜂鸣器一端与P3.6相连,另一端与VCC相连,当P3.6=0时,蜂鸣器开始工作。

具体连
接电路如下图所示:
3软件设计
根据设计方案要求,应用Keil软件和Proteus软件对电路进行仿真,实现设计的要求,具备对时间即时的显示,对时间和闹铃的设定。

该课题的软件设计采用模块化设计的思想即将程序划分为若干个相对独立的功能模块,画出每一个功能模块的详细流程图,并根据流程图编写程序,最后按照软件设计的总体结构框图,将各模块连接成一个完整的主程序。

本设计中主要模块包括初始化参数设置、按键处理、数码管显示模块及蜂鸣器工作模块,下面对软件各部分程序进行简要介绍:
初始化参数设置如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
uchar code table3[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd};
uchar dis[6] ={0,0,0,0,0,0}; uchar shihao, second,minite,hour,bsel;
uchar tsecond=0; uchar tminite=0; uchar thour=0; uint i,j,m,n;
sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2; sbit P1_3=P1^3;sbit P1_4=P1^4;sbit beep=P3^6;
void display(); void ndisplay(); void tiaoshi(); void ntiaoshi();
本程序利用定时器中断实现数字钟的时钟计时。

1.时钟计时程序如下:
程序分析
一次10ms定时结束,增加一个计数变量shihao(0——100);当shihao增加到100,second+1,shihao清零;
当second增加到60,minite+1,second清零;
当minite增加到60,hour+1,minite清零;
当hour增加到24,hour清零;
2.初始化
(1)TMOD:定时器T0方式1,TMOD=0x01。

(2)计算初值:fosc=12MHZ,机器周期为1us。

一次定时时间=10ms,T0定时10ms=10ms/1us=10000,即
TH0=(65536-10000)/256;
TH1=(65536-10000)%256;
(3)中断方式:允许定时器T0中断。

EA=1;ET0=1;
具体程序如下:
void timer0(void) interrupt 1 using 1
{
TH0=(65536-10000)/256; //定时时间为10ms/次
TL0=(65536-10000)%256;
shihao++;
if(shihao>100)
{
shihao=0;//定时=1s
second++;
if(second>=60)
{
second=0; //定时=1分钟
minite++;
if(minite>=60)
{
minite=0; //定时=1小时
hour++;
if(hour>=24)
hour=0;
}
}
}
}
2.按键处理程序如下:
本程序主要在闹钟调时开关断开的前提下实现时钟当前显示时间的可调性。

程序分析
当闹钟调时开关P1.4断开时,首先判断秒钟调整按键P1.0是否按下;
若秒钟调整按键P1.0按下,按下一次second+1;若P1.0没有按下,判断分钟调整按键P1.1是否按下;
若分钟调整按键P1.1按下,按下一次minite+1;若P1.1没有按下,判断时钟调整按键P1.2是否按下;
若时钟调整按键P1.2按下,按下一次hour+1;
如若P1.0、P1.1、P1.2皆没按下,判断运行键P1.3是否按下。

若P1.3按下启动T0工作;若P1.3没有按下,返回主程序。

具体程序如下:
if(P1_4==1)
{
delay(100,100);
if(P1_4==1)
display();
tiaoshi();
if(P1_3==0)
{
delay(100,100);
if(P1_3==0)
TR0=1;
while (P1_0==0 );
}
}
void tiaoshi()
{
while(1)
{
if(P1_0==0)
{
delay(100,100);
if(P1_0==0)
{
second++;
if(second>=60)
second=0;
while (P1_0==0 );
}
}
else if(P1_1==0)
{
delay(100,100);
if(P1_1==0)
{
minite++;
if(minite>=60)
minite=0;
while (P1_1==1 );
}
}
else if(P1_2==0) {
delay(100,100);
if(P1_2==0)
{
hour++;
if(hour>=24)
hour=0;
while (P1_2==0);
}
}
}
}
本程序主要在闹钟调时开关闭合的前提下实现闹钟时间的可调性。

程序分析
当闹钟调时开关P1.4闭合时,首先判断秒钟调整按键P1.0是否按下。

若秒钟调整按键P1.0按下,按下一次tsecond+1;若P1.0没有按下,判断分钟调整按键P1.1是否按下。

若分钟调整按键P1.1按下,按下一次tminite+1;若P1.1没有按下,判断时钟调整按键P1.2是否按下。

若时钟调整按键P1.2按下,按下一次thour+1。

如若P1.0、P1.1、P1.2皆没按下,返回主程序。

uchar tsecond=0;
uchar tminite=0;
uchar thour=0;
while(1)
{
if(P1_4==0)
{
delay(100,100);
if(P1_4==0)
ndisplay();
ntiaoshi();
}
void ntiaoshi()
{
while(1)
{
if(P1_0==0)
{
delay(100,100);
if(P1_0==0)
{
tsecond++;
if(tsecond>=60)
tsecond=0;
while (P1_0==0 );
}
}
else if(P1_1==0)
{
delay(100,100);
if(P1_1==0)
{
tminite++;
if(tminite>=60)
tminite=0;
while (P1_1==1 );
}
}
else if(P1_2==0)
{
delay(100,100);
if(P1_2==0)
{
thour++;
if(thour>=24)
thour=0;
while (P1_2==0);
}
}
}
}
3.数码管显示程序
1.本程序在闹钟调时开关P1.4断开的前提下实现当前时间显示0.5s,熄灭0.5s及当闹钟预设时间与当前时间相等时实现蜂鸣器间断工作1分钟。

uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
uchar code table3[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd};
uchar dis[6] ={0,0,0,0,0,0};
void display()
{
dis[0]=second%10;
dis[1]=second/10;
dis[2]=minite%10;
dis[3]=minite/10;
dis[4]=hour%10;
dis[5]=hour/10;
P3=bsel;
bsel=0xfe;
P2= table1[dis[0]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[1]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[2]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[3]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[4]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table1[dis[5]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
if(hour==thour&&minite==tminite)
beep=0;
else
beep=1;
delay(500,1000);
P3=0xff;
delay(500,1000);
}
2.本程序在闹钟调时开关P1.4闭合的前提下实现闹钟调时的显示。

void ndisplay()
{
dis[0]=tsecond%10;
dis[1]=tsecond/10;
dis[2]=tminite%10;
dis[3]=tminite/10;
dis[4]=thour%10;
dis[5]=thour/10;
P3=bsel;
bsel=0xfe;
P2= table1[dis[0]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[1]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[2]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[3]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[4]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table1[dis[5]];
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
}
附录1电路原理图
附录2 程序清单
//按下运行按键,启动定时器0,开始计时;
//当闹钟调时开关P1.4闭合时,可通过时分秒调整按键实现闹钟预设值的调整;
//当闹钟调时开关P1.4断开时时,可通过时分秒调整按键实现时钟当前时间的调整;
//在进行闹钟调时过程中,数码管只显示闹钟预设值,不显示时钟当前时间,直到闹钟调时开关P1.4闭合;
//不可以在设置闹铃的过程中设置时间;
//每当设置闹铃时,闹钟时间需在之前的基础上修改;
//可通过开关控制闹钟的运行;
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9数字uchar code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9数字及小数点
uchar code table3[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xb8,0xff,0xfd};//数码管倒置后显示小数点及正立的数字
uchar dis[6] ={0,0,0,0,0,0};//对各数码管显示的数初始化
uchar shihao, second,minite,hour,bsel;
uchar tsecond=0;
uchar tminite=0;
uchar thour=0;
uint i,j,m,n;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit beep=P3^6;
void display();
void ndisplay();
void tiaoshi();
void ntiaoshi();
delay(m,n)
{
for(i=m;i>0;i--)
for(j=n;j>0;j--);
}//可调延时程序
void main(void)
{
TMOD=0x10;//T0方式1定时
TH0=(65536-10000)/256;//预置计数初值
TL0=(65536-10000)%256;
ET0=1;
EA=1;//开中断
while(1)
{
if(P1_4==0)
{
delay(100,100);//软件消抖动
if(P1_4==0)
ndisplay();
ntiaoshi();
}
else if(P1_4==1)
{
delay(100,100);
if(P1_4==1)
display();
tiaoshi();
if(P1_3==0)
{
delay(100,100);
if(P1_3==0)
TR0=1;//启动定时
while (P1_0==0 );
}
}
}
}
void timer0(void) interrupt 1 using 1//T0中断服务程序{
TH0=(65536-10000)/256;//定时时间10ms/次
TL0=(65536-10000)%256;
shihao++;
if(shihao>100)
{
shihao=0;
second++;
if(second>=60)
{
second=0;
minite++;
if(minite>=60)
{
minite=0;
hour++;
if(hour>=24)
hour=0;
}
}
}
}
void display()
{
dis[0]=second%10;//秒个位
dis[1]=second/10;//秒十位
dis[2]=minite%10;//分个位
dis[3]=minite/10;//分十位
dis[4]=hour%10;//时个位
dis[5]=hour/10;//时十位
P3=bsel;
bsel=0xfe;
P2= table1[dis[0]];//送秒个位
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[1]]; //送秒十位和小数点
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[2]]; //送分个位和小数点
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[3]]; //送分十位和小数点
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[4]];//送时个位和小数点
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table1[dis[5]];//送时十位
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
if(hour==thour&&minite==tminite)//判断是否满足驱动蜂鸣器的条件beep=0;// 驱动蜂鸣器
else
beep=1;
delay(500,1000);//延时0.5s
P3=0xff;//数码管熄灭
delay(500,1000);//延时0.5s
}
void ndisplay()
{
dis[0]=tsecond%10; //闹钟秒个位
dis[1]=tsecond/10; //闹钟秒十位
dis[2]=tminite%10; //闹钟分个位
dis[3]=tminite/10; //闹钟分十位
dis[4]=thour%10; //闹钟时个位
dis[5]=thour/10; //闹钟时十位
P3=bsel;
bsel=0xfe;
P2= table1[dis[0]]; 送闹钟秒个位
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[1]]; //送闹钟秒十位和小数点bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[2]]; //送闹钟分个位和小数点bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table3[dis[3]]; //送闹钟分十位和小数点bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table2[dis[4]]; //送闹钟时个位和小数点bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
P2=table1[dis[5]]; //送闹钟时十位
bsel=(bsel<<1)|1;
delay(10,100);
P2=0x00;
}
void tiaoshi()
{
while(1)
{
if(P1_0==0)//判断秒调整键
{
delay(100,100);//软件消抖动
if(P1_0==0)
{
second++;//秒位加1
if(second>=60) //判断是否超过秒钟最大值
second=0; //清零
while (P1_0==0 );//判断按键松开
}
}
else if(P1_1==0) //判断分调整键
{
delay(100,100); //软件消抖动
if(P1_1==0)
{
minite++;//分位加1
if(minite>=60)//判断是否超过分钟最大值
minite=0;//清零
while (P1_1==1 ); //判断按键松开
}
}
else if(P1_2==0)
{
delay(100,100); //软件消抖动
if(P1_2==0)
{
hour++;//时位加1
if(hour>=24) //判断是否超过时钟最大值
hour=0; //清零
while (P1_2==0); //判断按键松开
}
}
}
}
void ntiaoshi()
{
while(1)
{
if(P1_0==0)
{
delay(100,100);
if(P1_0==0)
{
tsecond++;
if(tsecond>=60)
tsecond=0;
while (P1_0==0 );
}
}
else if(P1_1==0)
{
delay(100,100);
if(P1_1==0)
{
tminite++;
if(tminite>=60)
tminite=0;
while (P1_1==1 );
}
}
else if(P1_2==0)
{
delay(100,100);
if(P1_2==0)
{
thour++;
if(thour>=24)
thour=0;
while (P1_2==0);
}
}
}
}
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:
指导教师签名:日期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日
导师签名:日期:年月日
指导教师评阅书
评阅教师评阅书
教研室(或答辩小组)及教学系意见
学位论文原创性声明
本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。

尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。

本人完全意识到本声明的法律结果由本人承担。

学位论文作者(本人签名):年月日
学位论文出版授权书
本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。

论文密级:
□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)
作者签名:_______ 导师签名:_______
_______年_____月_____日_______年_____月_____日
独创声明
本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。

尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。

对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

本声明的法律后果由本人承担。

作者签名:
二〇一〇年九月二十日
毕业设计(论文)使用授权声明
本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。

本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。

(保密论文在解密后遵守此规定)
作者签名:
二〇一〇年九月二十日
致谢
时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。

首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。

本次毕业设计大概持续了半年,现在终于到结尾了。

本次毕业设计是对我大学四年学习下来最好的检验。

经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。

这期间凝聚了很多人的心血,在此我表示由衷的感谢。

没有他们的帮助,我将无法顺利完成这次设计。

首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。

郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。

从他身上,我学到了许多能受益终生的东西。

再次对周巍老师表示衷心的感谢。

其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。

另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。

最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。

四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。

从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。

回首四年,取得了些许成绩,生活中有快乐也有艰辛。

感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。

学友情深,情同兄妹。

四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。

在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。

最后,我要特别感谢我的导师***老师、和研究生助教***老师。

是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。

老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。

他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。

在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。

相关文档
最新文档