基于51单片机数字电子时钟带程序完美实现 - 图文

更新时间:2023-12-23 02:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机数字钟

目 录

摘 要 ............................................................................................................................................. 1 前 言 ............................................................................................................................................. 2 概 论 ............................................................................................................. 错误!未定义书签。 第一章 ............................................................................................................................................... 3 1.1概述 ......................................................................................................................................... 3 1.2 单片机的发展历程 .................................................................................................................... 3 1.3 时钟的特性 .............................................................................................................................. 3 2 系统原理与硬件设计 ....................................................................................................................... 4 2.1 硬件选择 .................................................................................................................................. 4 2.2 单片机的构成 ........................................................................................................................... 4 2.3 AT89C52单片机的引脚说明 ........................................................................................................ 5 2.4LED简介 .................................................................................................................................... 6 第三章 软件设计 ............................................................................................................................. 9 3.1 框架图 ..................................................................................................................................... 9 4 调试过程及数据分析 ..................................................................................................................... 22 4.1 硬件调试 ................................................................................................................................ 22 4.2 KEIL调试................................................................................................................................ 22 4.3开发板调试 ............................................................................................................................. 23 结论 ................................................................................................................................................ 24

1

单片机数字钟

摘 要

本次设计采用AT89c52内部定时器、中断等功能,和外部数码管,驱动器等构成。电子时钟电路采用24小时制记时方式,时间用6位数码管动态显示。使用5V电源供电,并且在按键的作用下可以进入省电(不显示LED 数码管)和正常显示两种状态。

关键词:数码管、AT89c52

The design of the adjustable digital clock base on AT89S52

Abstract

This paper introduced the design of the adjustable digital clock based on AT89S52, the specific process of how the system hardware and software achieved were detailed description through the design of adjustable digital clock. The modular design and production, which consisted of MCU module, clock module and the associated control module, were mainly recounted;As well as hardware designing,software design use the same method, consists suspension module, time adjust module, and that use the C language to achieve because of its simple and strong negotiability. In this design the functions of time run and change, functions of the year, month and day display have been achieved. Key words :AT89S52 microcontroller;

1

单片机数字钟

前 言

一块单片机芯片就是一台计算机,由于单片机以其集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点使它应用于智能仪器仪表、机电一体化、实时程控、人类生活中。除此之外还广泛应用办公自动化领域、商业营销领域、汽车及通信系统、计算机外部设备等各领域中,并且单片机已成为计算机发展和应用的一个重要方面。由此可见掌握单片机的使用方法和利用单片机解决实际问题具有重要的意义。

本次设计根据AT89c51单片机系统扩展的基本原理和方法、常用总线标准和典型接口电路的应用,结合本次设计的题目要求进行系统扩展,通过单片机驱动时、分、秒显示,最后通过74LS04驱动LED动态显示的方式完成设计任务,设计论文中附有电路图、程序清单、各数据存储单元的所在地址和输入输出口对应表。因水平有限,难免有疏落不足之处,恳请老师和同学能给予批评指正。

2

单片机数字钟

第一章

1.1概述

随着电子技术的迅速发展,特别是随着大规模集成电路产生而出现的微型计算机,给人类生活带来了极大的方便。走入家庭,从洗衣机、微波炉到音响、汽车,到处都可以见到单片机应用的踪影。如果说微型计算机技术的出现使现代科学研究得到了质的飞跃,那么也可以毫不夸张的说:“单片机技术的出现则是给现代工业测控领域带来了一次新的工业革命”。目前,单片机以其可靠性高和智能性等特点被广泛应用到工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等领域中,并已经进入家庭,因此,单片机技术的开发和应用水平已经逐步成为一个国家自动化发展水平的标志之一。

1.2 单片机的发展历程

单片机是微型计算机的一个重要分支,也是一种非常活跃和颇具生命力的机种,特别适用于工业控制领域。1971年微处理器研制成功不久,就出现了单片机,但最早的单片机是1位的,处理能力有限。单片机的发展共分四个阶段:第一阶段是初级阶段,功能非常简单;第二阶段是低性能阶段, 16位定时器/计数器,片内ROM、RAM容量加大,直到现在仍被广泛应用,是目前应用数量较多的单片机。、32位单片机推出阶段,以满足不同的用户需要。纵观单片机几十年的发展历程,单片机的今后发展方向将向多功能、高性能、高速度、低功耗、低价格、外围电路内装化以及内存储器容量增加和FLASH存储器化方向发

1.3 时钟的特性

省电(关闭显示)功能(2)以24h(小时)计时方式(3)白来整点报时,晚上22点后不报时(4)用六位LED数码管显示时、分、秒(5)使用按键开关可实现时分调整、秒表功能转换(6)使用按键开关可实现时分调整、时钟功能转换等功能。

这里用到中断,50ms的产生一次。然后累加到20次,秒表就加1.。每60秒分值加1。

每60分时加1,每24小时日加1….

3

单片机数字钟

第2章 系统原理与硬件设计

2.1 硬件选择

(2)单片机的选择 选用AT89c52单片机,并配备12MHz晶振,复位电路采用上电复位。

(3)显示电路选择 采用软件译码动态显示,P3.0-P3.3作数码管的位选口。P1.0-P1.6作数码管的段选口。考虑直接用单片机I/O口作位选时驱动功率不够,

(4)电源选择 采用直流5V电源供电。 (5)选择器的选择 74ls04。

(6)CTC89c52单片机是一种低功耗,高性能的片内含有4KB可编程/擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与AT89C52引脚和指令系统完全兼容。芯片上的FLASH允许在线编程或采用通用的非易失存储编程器对存储器重复编程。

2.2 单片机的构成

AT89c51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件,AT89C52单片机单片机内包含下列几个部件:

(1) 一个8位CPU;

(2)一个片内振荡器及时钟电路; (3)4K字节ROM程序存储器; (4)256字节RAM数据存储器; (5)两个16位定时器/计数器;

(6)可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路; (7)32条可编程的I/O线(四个8位并行I/O端口); (8)一个可编程全双工串行口;

4

单片机数字钟

(9)具有五个中断源、两个优先级嵌套中断结构。 其内部机构框图如图2.2所示:

图2.2 MCS-51单片机内部机构框图

2.3 AT89c52单片机的引脚说明

AT89c52单片机采用40条引脚双列直插式器件,引脚除5V(电源地(

40脚)和

20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,

逻辑框图及引脚图分别如图2.4(a)(b)所示

(a) (b)

图2.4 AT89c52单片机逻辑图与引脚图

5

单片机数字钟

AT89C52单片机的内部硬件结构中除了程序存储器由FLASH取代了87C51单片机的EPROM外,其余部分完全相同,其管脚说明如下:

(1)VCC:供电电压 (2)GND:接地 (3)时钟电路

XTAL1(19脚)——芯片内部振荡电路(单级反相放大器)输入端。 XTAL2(18脚)——芯片内部振荡电路(单级反相放大器)输出端。 (4)控制信号

RST(9脚)复位信号:时钟电路工作后,在此引脚上将出现两个机器周期的高电平,芯片内部进行初始复位,P0口~P3口输出高电平,将初值07H写入堆栈指针。

ALE(30脚)地址锁存信号:当访问外部存储器时,P0口输出的低8位地址由ALE输出的控制信号锁存到片外地址锁存器,P0口输出地址低8位后,又能与片外存储器之间传送信息。另外,ALE可驱动4个TTL门。

PSEN(29脚)片外程序存储器读选通:PSEN低电平有效,PSEN作为程序存储器的读信号,输出负脉冲,将相应的存储单元的指令读出并送到P0口,

PSEN可驱动8个TTL门。

EA/Vpp(30脚):当EA为高电平且PC值小于0FFFH时,CPU执行内部程序存储器

程序;当EA为低电平时,CPU仅执行外部程序存储器程序。

2.4LED简介

LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2.7(a)是共阴和共阳极数码管的内部电路图,它们的发光原理是一样的,只是它们的电源极性不同而已。

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会

6

单片机数字钟

发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将\和\段接上正电源,其它端接地或悬空,那么\和\段发光,此时,数码管显示将显示数字“1”。而将\、\、\、\和\段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它数字的显示原理与此类同。

LED的7段数码管利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。在这次的设计中采用的均是共阴极的LED显示,当I/O口输出为高电平的时候,对应段就被点亮。LED数码管的结构图如图2.7(b)所示。

(a)

(b)

图2.7 LED分类结构图和结构图

这次设计的显示部分采用AT89c51单片机动态扫描完成, 在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。在没有富余端口的情况下,应通过优化设计程序和扩展电路达到预期的目的。动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。

7

单片机数字钟

LED显示电路 (1) 静态显示电路

LDE显示器工作在静态显示时,其公共阳极(或阴极) 接VCC(或GND) ,一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。

(2) 动态显示电路

将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位的分时选通,即同一时刻只有被选通位是能显示相应的字符,而其他所有位都是熄灭的。由于人眼有视觉暂留现象,只要每位显示间隔足够短,则会造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,CPU需要不断地进行显示刷新,动态显示电路参见图2.8,图2.8中是扩展了五位的LED数码管显示,用一个74LS04作为五个LED的段选输入,采用动态显示的方式连接。类似地,16位的LED数码管显示也可以用这种方法来实现。

图2.8 五位LED数码管的动态显示

8

单片机数字钟

第三章 软件设计

3.1 框架图

整点报时 (6:00-22:00) 短击P0 闹钟开 时间到 开始闹铃 (45s) P0 P1 P2 退P0 P2 时钟分调节 P1 分加一长按连加 分减一长按连减 长击P0 P2 秒表功能 P1 开始 P1 停止 P2 P0 显示闹钟2S 显示时钟 P2长击P2切换开关闹钟 P1 显示日历2S P3开关显示 时钟时调节 P0 P0 P1 时加一长按连加 时减一长按连减 P2 闹钟分调节 P1 分加一长按连加 分减一长按连减 P0 P2 闹钟时调节 P1 时加一长按连加 时减一长按连减 同理年月日调节固定20xx年开始 按键流程与工作状态的转变 按键用到:闭合动作、断开动作 单击、连击、短击、 长击 9

单片机数字钟

闹钟关(ON XX XX)如00:00

闹钟开(OF XX XX)如00:00

关显示(省电模式)

显示日历格式(20XX XX XX) 如:2010-04-21

10

单片机数字钟

程序清单如下

/********************************************************** 电子时钟设计

功能描述: 时钟 日历 秒表 闹钟 整点报时等功能 版本:v5

日期:2010.3.5 设计者:龚飞

邮箱:724089471@qq.com

********************************************************/

#include #define com P2

sbit w=P1^0; //功能转换按键

sbit w1=P1^1; //加与秒表开始与暂停键 sbit w2=P1^2; //减与秒表复位键 sbit pin=P1^3; //显示开关键

sbit nao=P1^5; //整点报时信号输出

unsigned char leab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; char times[11]={0,0,0,0,0,0,0,100,1,1,10}; //数组

#define s times[0] //显示时钟秒存放位置 #define f times[1] //显示时钟分存放位置 #define h times[2] //显示时钟时存放位置 #define nf times[3] //显示闹钟分存放位置 #define nh times[4] //显示闹钟时存放位置 #define dnf times[5] //定时闹钟分存放位置 #define dnh times[6] //定时闹钟时存放位置 #define dnsw times[7] //定时开始/关闭 100为关,101为开 #define day times[8] //显示DAY存放位置 #define mon times[9] //显示月存放位置 #define yeal times[10] //显示年存放位置,固定从2000~2099年之间调整 unsigned char x=0,y=0,n=0,z,k,j,sss; //X为中断次数,y秒表计数器,z为hao秒计数器,n为状态值

bit v,q=1,nw;//v表示秒表起停状态 NW表示闹钟开停状态 char days_sum() { char a; switch(mon) //判断这月有多少天 {

case 1:a=31;break; case 3:a=31;break; case 5:a=31;break;

11

单片机数字钟

case 7:a=31;break; case 8:a=31;break; case 10:a=31;break; case 12:a=31;break; case 4:a=30;break; case 6:a=30;break; case 9:a=30;break; case 11:a=30;break;

case 2: if(yeal%4==0) a=29;else a=28; break; //是润年二月加一天 }

return a; }

/******************************************************* 中断函数每过10ms中断一次,每经过100次产生一秒

***********************************************************/ void time(void) interrupt 1 using 1 { unsigned char a; TH0=55556/256 ; //10ms 55536 TL0=55556%6 ; //考虑中断响应时间 x++; // if(w==0||w2==0||w1==0) // z++; // if(x==100) //产生100次中断秒加一 10ms*100=1S { sss++; // x=0;s++;} //

if(s==60) //秒大于60分加一秒等于0 { // s=0,f++;} // if(f==60) //分大于60时时加一分等于0 { // f=0,h++; } // if(h==24) //时大于24时DAY加一 时等于0 { // h=0;day++;} // a=days_sum();

// 判断闰年的公式 yeal@0||(yeal%4&&yeal0!=0) if(day>a)//大于这月的天数月加一DAY等于1 { day=1;mon++; } if(mon>12)//月大于12年加一月等于1 { mon=1;yeal++ ;

12

单片机数字钟

if(yeal>99) yeal=0;//固定从2000~2099年之间调整 } if((n==1&&v)) //秒表计数器y y++; if(y==100) { y=0;k++; if(k==60) { k=0;j++; if(j==60) j=0; } } }

/*********************************** 延时函数 1ms延时 ***********************************/ void delay(unsigned char z) {

unsigned char x,y; for(x=z;x>0;x--) for(y=10;y>0;y--); }

/*************************************

扫描函数 x 控制选中调整数码管闪烁 n判断选中的位闪烁 **************************************/ void disp(unsigned char a,b,c) { com=0; P3=0; if(q) {

if((n==4||n==7)&&x<50&&w1==1&&w2==1) ; else { com=0; P3=1; if(c>=100) //c==100||c==101 com=0x3f; else com=leab[c/10]; delay(20); com=0; P3=2; if(c==100) com=0x52;

13

单片机数字钟

else if(c==101) com=0x71; else com=leab[c]; delay(20); }

if((n==3||n==6||n==8)&&x<50&&w1==1&&w2==1) ; else { com=0; P3=4; com=leab[b/10]; delay(20); com=0; P3=8; com=leab[b]; delay(20); }

if((n==5||n==9)&&x<50&&w1==1&&w2==1) ; else { com=0; P3=16; com=leab[a/10]; delay(20); com=0; P3=32; com=leab[a]; delay(20); } } }

/***************************************************** 主函数

******************************************************/ void main(void) { unsigned char a; // A装载判断当月天数 TMOD=0X01; EA=1,ET0=1,TR0=1; TH0 =55558/256 ; //10ms TL0 = 55558/256 ; while(1) { nao=0;

//状态控制 以n表示

14

单片机数字钟

if(w==0&&q) { do { if(n==5||n==6) disp(dnf,dnh,dnsw); else if(n==7||n==8||n==9) disp(day,mon,yeal); else disp(s,f,h); } while(~w); n=n+1; if(n>10) n=0; } // 切换日历显示

if(w1==0&&q) { do { disp(day,mon,yeal); } while(~w1); sss=0; while(sss<3)disp(day,mon,yeal); }

//切换闹钟显示 if(w2==0&&q) { z=0; do { disp(dnf,dnh,dnsw); if(z>200)z=210; } while(~w2); if(z>200) nw=~nw; if(nw) dnsw=101;else dnsw=100; sss=0; while(sss<3)disp(dnf,dnh,dnsw); } disp(s,f,h);//显示时钟

//显示开关控制模块 if(pin==0) {do

15

单片机数字钟

{ disp(s,f,h);}while(~pin); q=~q; }

//n=1为秒表功能

while(n==1) {

if(w1==0) { v=~v; do{disp(y,k,j);} while(~w1); } if(w2==0){y=0,k=0,j=0,v=0;} disp(y,k,j); z=0; if(w==0) { do { disp(y,k,j); }while(~w); if(z<100) n=0; else n=3; y=0,k=0,j=0;v=0; z=0;break; } }

//n=3为分调节功能

while(n==3) { z=0; if(w1==0) { f++; do { disp(s,f,h); if(z>200){z=180,f++;} if(f==60) f=0; }while(~w1);

16

单片机数字钟

} z=0; disp(s,f,h); if(w2==0) { f=f-1; do { if(z>200){z=180,f--;} disp(s,f,h); if(f<0) f=59; }while(~w2); } if(w==0) break; }

//n=4为时调节功能

while(n==4) { z=0; if(w1==0) { h=h+1; do { if(h>=24) h=0; if(z>200){z=180,h++;} disp(s,f,h); }while(~w1); } z=0; disp(s,f,h); if(w2==0) { h=h-1; do { if(h<0) h=23; if(z>200){z=180,h--;} disp(s,f,h); }while(~w2); }

17

单片机数字钟

if(w==0) break; }

//n=5为d定闹分调节功能

while(n==5) { z=0; if(w1==0) { dnf++; do { if(dnf==60)dnf=0;

if(z>200){z=180,dnf++;} disp(dnf,dnh,dnsw); }while(~w1); } z=0; disp(dnf,dnh,dnsw); if(w2==0) { dnf--; do { if(dnf<0) dnf=59; if(z>200){z=180,dnf--;} disp(dnf,dnh,dnsw); }while(~w2); } if(w==0) break; }

//n=6为定闹时调节功能

while(n==6) { z=0; if(w1==0) { dnh++; do { if(dnh>23) dnh=0; if(z>200){z=180,dnh++;} disp(dnf,dnh,dnsw); }while(~w1); } z=0;

18

单片机数字钟

disp(dnf,dnh,dnsw); if(w2==0) { dnh--; do { if(dnh<0) dnh=23; if(z>200){z=180,dnh--;} disp(dnf,dnh,dnsw);}while(~w2); } if(w==0) break; }

//n==7 年调整功能

while(n==7) { z=0; if(w1==0) { yeal++; do { if(z>200){z=180, yeal++;} if(yeal==100) yeal=0; disp(day,mon,yeal); }while(~w1); } z=0; disp(day,mon,yeal); if(w2==0) { yeal--; do { if(z>200){z=180, yeal--;} if(yeal<0) yeal=99; disp(day,mon,yeal); }while(~w2); } if(w==0) break; } //n==8 月调整功能 while(n==8) { z=0; if(w1==0) {

19

单片机数字钟

mon++; do { if(z>200){z=180, mon++;} if(mon>12)mon=1; disp(day,mon,yeal); }while(~w1); } z=0; disp(day,mon,yeal); if(w2==0) { mon--; do { if(z>200){z=180, mon--;} if(mon<1) mon=12; disp(day,mon,yeal); }while(~w2); } if(w==0) break; }

//n==9 日调整功能 while(n==9) { z=0; a=days_sum(); if(w1==0) { day++; do { if(z>200){z=180, day++;} if(day>a) day=1;disp(day,mon,yeal); }while(~w1); } z=0; disp(day,mon,yeal); if(w2==0) { day--; do { if(z>200){z=180, day--;} if(day<1) day=a;

20

单片机数字钟

disp(day,mon,yeal); }while(~w2); } if(w==0) break; }

//闹钟判断 45s

if(f==dnf&&h==dnh&&nw&&s==0) while(s<46) { nao=1; delay(1); disp(s,f,h); if(w==0||w1==0||w2==0)break; }

//5~23小时之间整点报时 1s

if((5

21

单片机数字钟

第4章 调试过程及数据分析

4.1 硬件调试

硬件调试的调试比较困难。因为是调试所以不能对元件进行焊接,只能把各个元件用导线连接起来。调试的整体过程是:各个系统逐个调试,各部分调试成功后再进行组装后的整体调试。

调试过程包括: 1. 显示部分的调试

问题:数码管的显示不稳定,不停的闪烁。

分析:没有考虑到干扰及环境的制约。于是我们把在面包板上连好的电路焊接在印刷板上,并采用电容滤波尽可能去除纹波和干扰。

2. 控制部分的调试

问题:按下按键后数据有时正常有时又不正常,数据的加减不稳定。 分析:根据分析有两个问题可以导致此种现象,一是按键接触不良可能有短路,二是程序部分有问题。用万用表测量后发现按键按下后不稳定,更换质量更好的按键后故障即排除。

4.2 KeiL调试

启动Keil软件,选择“Project”菜单下的“New Project”命令,输入项目的文件名,选择存储路径,点击“保存”按钮。

在“Select Device”窗口中选择“Atmel”下的“AT89C51” 芯片,单击“确定”按钮。展开“Project Workspace”窗口中的“Target 1”, 右击 “Target 1”,选择“Options for Target ’Target 1’”,选择“Target”选项在Keil (MHZ)右边输入“12m”。选择“Debug”选项,选择“Use Keil Monitor-51 Driver”。单击“Settings”按钮,串口选择“COM1”,波特率选择“38400”,单击“OK”按钮。

右击“Source Group 1”,选择“Add files to Group ‘Source Group 1’,在文件类型中选择“Asm Source file”,找到将要编译的程序,单击 “ADD”按

22

单片机数字钟

钮,然后再单击“CLOSE”按钮。单击“Rebuild all target files”,在“Build”窗口中观察编译结果,根据提示修改程序,直到没有错误出现。

4.3开发板调试

根据程序的设计在开发板上分别连接好各个端口的连接线,用串口线把计算机和试验箱的仿真头连接好。

单击Keil软件上的“Start/Stop Debug Session”按钮,再单击“RUN”按钮,运行程序。观察试验箱上出现的效果,分析程序的对错,直到调试出正确的结果。

23

单片机数字钟

结论

经过十几周的努力,顺利完成了基于AT89S52单片机控制的电子时钟日历LED显示系统的设计,所完成的工作主要包括以下几个方面:

(1)准备阶段的工作

准备阶段的工作主要包括:查阅国内外相关文献,了解单片机微控制器的主要作用,发展过程及发展趋势和使用方法,了解用LED数码管显示电子时钟日历的工作原理、分析LED显示系统。详细了解了AT89c51单片机应用中的数据转换显示、数码管显示原理、动态扫描显示原理。

(2)系统硬件设计

本次的设计基于AT89c52单片机的LED显示系统主要由AT89c52单片机处理器控制、位扫描控制电路、端码显示驱动电路及与计算机的接口电路组成。此外还包括一些基本的电路如电源电路,晶振电路,及接口电路。本次设计使用了动态扫描方式进行LED显示,在显示驱动电路中用74573进行显示译码,在行扫描驱动电路中用反相驱动器7404对电路实现信号轮流选通的功能。

(3)系统软件设计

根据LED显示管控制器的功能和系统硬件电路,进行系统软件设计。本系统软件设计采用模块化设计,即控制系统中的各个功能块都按照模块化方式进行程序设计。软件由读取时间的子程序和显示刷新子程序两部分组成,读取时间的子程序完成初始化工作,同时负责进行显示,按要求读出显示数据,显示刷新子程序将时间信号(时、分、秒) 扩充功能:闹钟,日历

24

单片机数字钟

致谢

首先,我谨向机电系的全体老师和各位领导致以我最诚挚的问候,祝愿老师和各位领导在以后的日子里,工作顺心,身体健康!

几个月的毕业设计即将结束了,作为一个大三的学生,此时的心情很复杂,我们将要离开奋斗三年的大学校园,将要带着一种很复杂的感情,迎接下一段人生路程。“谁言寸草心,报的三春晖。”,在大学的生活中,老师和领导们对我的关怀,我不能一一的列举,但我特别的感激的是,本次毕业设计是在彭小军老师的悉心指导下完成的,从课题的选择到论文的最终完成的每一个环节,自始自终得到导师的精心指导和帮助。彭小军老师渊博的学识、严谨的治学态度使我受益非浅。从做毕业设计来,学生不仅从导师那里学到许多专业知识,更重要的是学会了进行科研的学术方法。所有这些都是以后人生生活的重大财富,在此特向导师表示衷心的感谢和崇高的敬意。同时作者还要向帮助我的同学门表示感谢,感谢他们在毕业设计的过程中给予了我热心的帮助。

最后,再一次向两个月来所有支持和帮助过我的老师、同学们表示衷心的感谢。

25

单片机数字钟

参考文献

单片机C语言程序设计.新余:新余高专

李光飞等.单片机C程序设计实例指导.北京: 北京航空航天大学出版社 戴佳 戴卫恒.《51单片机C语言应用程序设计实例精讲》.北京: 电子工业出版社

周润景等《基于PROTEUS的电路及单片机系统设计与仿真》. 北京: 北京航空航天大学出版社

孙育才,王荣兴,孙化芳.新型AT89S52系列单片机及其应用. 北京:清华大学出版社

胡汉才. 单片机原理及系统设计[M]. 北京:清华大学出版社

26

单片机数字钟

附录

27

单片机数字钟

28

单片机数字钟

6位数码管 复位 晶振 74LS04 AT89C52 按键

29

本文来源:https://www.bwwdw.com/article/vvg5.html

Top