当前位置:文档之家› 单片机课程设计-电子日历

单片机课程设计-电子日历

单片机课程设计-电子日历
单片机课程设计-电子日历

湖南科技大学

信息与电气工程学院《课程设计报告》

题目:电子日历

专业:通信工程

班级:3班

姓名:黄夏妮

学号:1304040322

指导教师:陈君

2016年 6 月 16 日

单片机原理与应用课程设计评阅书

信息与电气工程学院

课程设计任务书

2015—2016学年第二学期

专业:通信工程班级:3班学号:1304040322姓名:黄夏妮

课程设计名称:单电片机原理与应用

设计题目:电子日历

完成期限:自2016年6月6日至2016年6月17日共2周

设计依据、要求及主要内容(可另加附页):

设计依据:

本方案以STC15F2K60S2单片机作为主控核心,与时钟芯片、LED显示、按键等模块组成硬件系统,通过《单片机原理与应用》这门课的课程设计,学生应能对STC15系列单片机有一个全面的认识,掌握以STC15系列单片机为核心的电子电路的设计方法和应用技术。

设计要求:

(1)利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。

(2)利用LED分别显示当前时间和日历。

(3)利用尽可能少的开关实现:校正日历和时间

(4)定制闹钟(时、分、表)

设计内容:

该课程设计是利用STC15F2K60S2单片机内容的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并通过按键实现时间和暂停、启动控制等。我们选择的方法是单片机开发设计使用的传统方法,通过本次设计,可以了解整个单片机开发的流程。文章首先介绍了单片机的基本知识,然后同时给出了框图,流程图等。论文涵盖了从系统设计,编程,原理图等产品开发的基本过程。

指导教师(签字):

批准日期:年月日

摘要

本设计是根据我们所学的单片机课程,按照大纲要求利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类对时钟进行不断研究,不断创新纪录。而本设计以数字集成电路技术为基础,单片机技术为核心,软件设计采用模块化结构,C语言编程,系统通过数码管显示数据,设置了可以显示公历日期(年、月、日、时、分、秒)、闹钟响应以及便携设置时间的电子日历和电子钟。在内容安排上首先描述系统硬件工作原理,着重介绍了各硬件接口技术和各个接口模块;其次,详细的阐述了程序的各个模块和实现过程。

关键词:电子日历单片机STC15F2K60S2

目录

一、前言 (1)

二、设计目的 (1)

三、设计要求 (1)

四、设计总体方案

1、基本框架 (1)

2、设计总原理图 (2)

五、单位模块设计

1、STC15F2K60S2单片机 (3)

2、数码管显示电路 (3)

3、矩阵键盘接口电路 (4)

六、程序设计 (4)

七、个人总结 (13)

八、参考资料 (13)

一、前言

随着社会的不断发展及人们生活水平的不断提高,单片机控制已经越来越普及,它已经成为人们生活中必不可少的工具之一,它已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,其中电子日历就是一个典型的例子。

本设计采用STC15F2K60S2单片机作为电子日历的控制模块。单片机可把由74LH594中的数据利用软件来进行处理,从而把数据传输到显示模块,实现日历和闹铃的显示。以数码管为显示模块,把单片机传来的的数据显示出来,并且显示多样化,在显示电路中,主要靠键盘来实现各种显示要求的选择与切换。

二、设计目的

(1)掌握数字电子钟的设计方法和制作过程。

(2)掌握常用数字集成电路的功能和使用。

(3)了解各芯片的逻辑功能、引脚安排和使用方法。

(4)熟悉了解通过软件控制试验箱来实现所需的功能。

三、设计要求

(1)利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。

(2)利用LED分别显示当前时间和日历。

(3)利用尽可能少的开关实现:校正日历和时间

(4)定制闹钟(时、分、表)

四、设计总体方案

1、基本框架

2、设计总原理图

本系统采用PCF8563时钟芯片进行计时,STC15F2K60S2单片机通过IIC总线进行数据读写,并采用IO方式控制两片74HC595芯片驱动8位数码管,数码管可以实时显示秒,分,小时,日期,月份和年等信息,并且实现闹铃功能时,数码管闪烁显示。阵列式键盘采用行列扫描方式,可以实现秒,分,小时,日期,月份和年信息的校准,以及时钟显示与日历显示的切换功能。

五、单位模块设计

1、STC15F2K60S2单片机

STC系列单片机是深圳宏晶科技公司研发的增强型8051内核单片机,相对于传统的8051内核单片机,在片内资源、性能以及工作速度上都有很大的改进,尤其采用了基于Flash的在线系统(ISP)技术,使得单片机应用系统的开发变得简单了,无须仿真器或专用编程器就可进行单片机应用系统的开发。

本STC15系列单片机采用STC-Y5超告诉CPU内核,在相同频率下,速度比早期1T系列单片机(如STC12、STC11、STC10系列)的速度快20%。

2、数码管显示电路

这是由两个74HC595芯片控制数码管显示电路。

74HC595是具有8位移位寄存器和一个存储器,三态输出功能,串行输入并行输出的芯片。移位寄存器和存储器分别具有独立的时钟信号。数据在SHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中

去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。用两个75HC595芯片分别控制数码管的位选和段选,实现数码管对时间的显现。

3、矩阵键盘接口电路

矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。

虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。

六、程序设计

#define MAIN_Fosc 22118400L

#include "STC15Fxxxx.H"

#define Timer0_Reload (65536UL -(MAIN_Fosc / 1000))

#define DIS_DOT 0x20

#define DIS_BLACK 0x10

#define DIS_ 0x11

u8 code t_display[]={

// 0 1 2 3 4 5 6 7 8 9 A B C D E F 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,

//black - H J K L N o P U t G Q r M y 0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50

,0x37,0x6e,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};

u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P_HC595_SER = P4^0; //pin 14 SER data input

sbit P_HC595_RCLK = P5^4; //pin 12 RCLk store (latch) clock

sbit P_HC595_SRCLK = P4^3; //pin 11 SRCLK Shift data clock

u8 LED8[8];

u8 display_index;

bit B_1ms;

u8 hour,minute,second;

u8 hour1,minute1,second1;

u16 year,month,day;

u16 msecond,delay,flag;

u8 KeyCode;

u8 cnt10ms;

u8 IO_KeyState, IO_KeyState1, IO_KeyHoldCnt;

u8 cnt50ms;

u8 m;

void IO_KeyScan(void); //50ms call

void DisplayRTC(void)

{

if(m==0) //

{

if(hour >= 10) LED8[0] = hour / 10;

else LED8[0] = DIS_BLACK;

LED8[1] = hour % 10;

LED8[2] = DIS_;

LED8[3] = minute / 10;

LED8[4] = minute % 10;

LED8[5] = DIS_;

LED8[6] = second / 10;

LED8[7] = second % 10;

}

else if(m==1) //

{

LED8[0]=2;

LED8[1]=0;

LED8[2]=year/10;

LED8[3]=year%10;

LED8[4]=month/10;

LED8[5]=month%10;

LED8[6] = day / 10;

LED8[7] = day % 10;

}

else if(m==2)//

{

if(hour >= 10) LED8[0] = hour1 / 10;

else LED8[0] = DIS_BLACK;

LED8[1] = hour1 % 10;

LED8[2] = DIS_;

LED8[3] = minute1 / 10;

LED8[4] = minute1 % 10;

LED8[5] = DIS_;

LED8[6] = second1 / 10;

LED8[7] = second1 % 10;

}

if(hour==hour1) //

if(minute==minute1)

if(second==second1)

{

P17=0;

for(delay=0;delay<=50000;delay++);

P17=1;

}

}

void RTC(void)

{

if(++second >= 60)

{

second = 0;

if(++minute >= 60)

{

minute = 0;

if(++hour >= 24)

{

hour = 0;

day++;

if(day>30)

{

day=0;

month++;

if(month>12)

{

month=0;

year++;

}

}

}

}

}

}

void main(void)

{

u8 i,k;

P0M1 = 0; P0M0 = 0;

P1M1 = 0; P1M0 = 0;

P2M1 = 0; P2M0 = 0;

P3M1 = 0; P3M0 = 0;

P4M1 = 0; P4M0 = 0;

P5M1 = 0; P5M0 = 0;

P6M1 = 0; P6M0 = 0;

P7M1 = 0; P7M0 = 0;

AUXR = 0x80; //Timer0 set as 1T, 16 bits timer auto-reload, TH0 = (u8)(Timer0_Reload / 256);

TL0 = (u8)(Timer0_Reload % 256);

ET0 = 1; //Timer0 interrupt enable

TR0 = 1; //Tiner0 run

EA = 1;

display_index = 0;

hour = 11;

minute = 59;

second = 58;

hour1 = 12;

minute1 = 01;

second1 = 00;

year = 16;

month = 6;

day = 13;

m=0;

RTC();

DisplayRTC();

// for(i=0; i<8; i++) LED8[i] = DIS_BLACK;

for(i=0; i<8; i++) LED8[i] = i;

k = 0;

KeyCode = 0;

cnt10ms = 0;

IO_KeyState = 0;

IO_KeyState1 = 0;

IO_KeyHoldCnt = 0;

cnt50ms = 0;

while(1)

{

if(B_1ms)

{

B_1ms = 0;

if(++msecond >= 1000)

{

msecond = 0;

RTC();

DisplayRTC();

}

if(++cnt50ms >= 50)

{

cnt50ms = 0;

IO_KeyScan();

}

if(KeyCode > 0)

{

if(KeyCode == 17) //hour +1

{

if(m==0)

{

if(++hour >= 24) hour = 0;

}

else if(m==1)

if(++year>=100)year=0;

}

else if(m==2)

{

if(++hour1 >= 24) hour1 = 0;

}

DisplayRTC();

}

if(KeyCode == 18) //hour -1

{

if(m==0)

{

if(--hour >= 24) hour = 23;

}

else if(m==1)

{

if(--year>=100)year=99;

}

else if(m==2)

{

if(--hour1 >= 24) hour1 = 23;

}

DisplayRTC();

}

if(KeyCode == 19) //minute +1

{

if(m==0)

{

second = 0;

if(++minute >= 60) minute = 0;

}

else if(m==1)

{

month++;

if(month>=30)month=0;

}

else if(m==2)

{

if(++minute1 >= 60) minute1 = 0;

DisplayRTC();

}

if(KeyCode == 20) //minute -1

{

if(m==0)

{

second = 0;

if(--minute >= 60) minute = 59;

}

else if(m==1)

{

month--;

if(month>30)month=29;

}

else if(m==2)

{

if(--minute1 >= 60) minute1 = 59;

}

DisplayRTC();

}

if(KeyCode == 21) //second +1

{

if(m==0)

{

if(++second >= 60) hour = 0;

}

else if(m==1)

{

if(++day>=30)day=0;

}

else if(m==2)

{

if(++second1 >= 60) second1 = 0;

}

DisplayRTC();

}

if(KeyCode == 22) //second -1

{

if(m==0)

if(--second >= 60) second = 59;

}

else if(m==1)

{

if(--day>=30)day=29;

}

else if(m==2)

{

if(--second1 >= 60) hour1 = 59;

}

DisplayRTC();

}

if(KeyCode ==32)

{

m++;

if(m>2)m=0;

}

KeyCode = 0;

}

}

}

}

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

u8 code T_KeyTable[16] = {0,1,2,0,3,0,0,0,4,0,0,0,0,0,0,0};

void IO_KeyDelay(void)

{

u8 i;

i = 60;

while(--i) ;

}

void IO_KeyScan(void) //50ms call

{

u8 j;

j = IO_KeyState1;

P0 = 0xf0;

IO_KeyDelay();

IO_KeyState1 = P0 & 0xf0;

P0 = 0x0f;

IO_KeyDelay();

IO_KeyState1 |= (P0 & 0x0f);

IO_KeyState1 ^= 0xff;

if(j == IO_KeyState1)

{

j = IO_KeyState;

IO_KeyState = IO_KeyState1;

if(IO_KeyState != 0)

{

F0 = 0;

if(j == 0) F0 = 1;

else if(j == IO_KeyState)

{

if(++IO_KeyHoldCnt >= 20)

{

IO_KeyHoldCnt = 18;

F0 = 1;

}

}

if(F0)

{

j = T_KeyTable[IO_KeyState >> 4];

if((j != 0) && (T_KeyTable[IO_KeyState& 0x0f] != 0))

KeyCode = (j - 1) * 4 + T_KeyTable[IO_KeyState & 0x0f] + 16;

}

}

else IO_KeyHoldCnt = 0;

}

P0 = 0xff;

}

void Send_595(u8 dat)

{

u8 i;

for(i=0; i<8; i++)

{

dat <<= 1;

P_HC595_SER = CY;

P_HC595_SRCLK = 1;

P_HC595_SRCLK = 0;

}

}

void DisplayScan(void)

{

Send_595(~T_COM[display_index]);

Send_595(t_display[LED8[display_index]]);

P_HC595_RCLK = 1;

P_HC595_RCLK = 0;

if(++display_index >= 8) display_index = 0;

}

void timer0 (void) interrupt TIMER0_VECTOR

{

DisplayScan();

B_1ms = 1;

}

七、个人总结

本项目已经经过调试运行最终实现了功能要求,通过多次测试表明,电子日历的各项性能完全达到设计要求。对电子日历的发展具有实际推广价值。在未来的几年中电子日历装置一定会被广泛的应用各种场所,人们对这种电子日历系统一定会倍加青睐。

电子日历制造成本低,环保,方便,省电,安全。总控制单元的硬件电路中多采用简易芯片,简化了电路设计,系统开发容易,在日常生活中都具有很强的适用性,具有实际推广价值;采用模块化设计,易于维护。

在论文工作中,遇到了不少困难,一直得到老师和同学们的亲切关怀和悉心指导,使我学到了许多平时学不到的知识,让我明白了理论联系实际,不能好高骛远。回顾这两周以来的学习经历,面对现在的收获,我感到无限欣慰。为此,我向热心帮助过我的所有老师和同学表示由衷的感谢!我会再接再厉,在以后的学生生活中,谦虚上进,不让各位老师和同学们失望!

八、参考资料:

丁向荣.单片机微机原理与接口技术[M].电子工业出版社,2012,159-178

数电EDA课程设计电子日历

燕山大学 EDA课程设计报告书 电子日历 姓名:王斌 班级:05级电子信息工程3班 学号:050104020064 日期:2007/11/05——2007/11/14 一、设计题目:电子日历 二、设计要求:

1.能显示年,月,日,星期; 2.例如: 01.11.08. 6,星期日显示8; 3.年月日,星期可调; 4.不考虑闰年 三.设计思路: 为实现本电路得功能,采取模块电路设计方法,本电路系统主要包括以下三三大模块:. 1: 电子日历记数模块 2: 中间控制模块 3: 译码器显示模块 由于不同的月份,决定了不同的天数,因此须设计反馈电路,协调月日的关系,通过不同的月选择相应的天数:比如二月二十八天,十二月三十一天,……..这是利用真值表列出逻辑表达式,从而画出电路图如图1: 仿真图如下: 四、设计过程: 一、电子日历记数模块 1、实现星期计时: 为实现星期计时模块,计到星期日时,显示“8”,采用一般的计数器难以实现,

即可通过四个jk触发器设计而成。其电路图如下: 仿真图如下: 2、实现天数计时: 由于不同的月份,决定了不同的天数,因此须设计三个独立完成计数的计数器电路,如日计数器周期性的(28,30或31)向月计数器进位调月日的关系,即通过三个选择端(c28,c30,c31),同一时刻只能有一个有效,由其中的任一个有效端来控制相应日计数器。其电路原理图

3、实现月份及年份计时: 由用两个74160采用整体同步置数分别构成100进制和12进制计数器,分别完成年,月的计数功能。然后将两者依次异步连接,每隔12个月,月计数器向年计数器进一位,从而实现年月的周期性计数。 月份计数器电路原理图如下: 年份计数器电路图如下:

新型多功能电子闹钟设计毕业设计论文

本科生毕业设计(论文)

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在

不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

2009届 本科毕业设计(论文)资料第一部分毕业论文

(2009届) 本科毕业设计(论文) 新型多功能电子闹钟设计 2009年6月

摘要 本文提出了一种基于AT89C51单片机的新型多功能电子闹钟。通过对设计方案的比较与论证,选择了适合本设计的时钟模块、闹铃模块、温度检测模块、键盘及显示模块、电源模块设计方案。其中实时时钟采用DS12C887实现年月日时分秒等时间信息的采集和闹钟功能;温度检测模块由DS18B20集成温度传感器对现场环境温度进行实时检测;键盘和数码管与ZLG7289连接,通过键盘数码管可方便地校对时钟和设置闹钟时间;用蜂鸣器进行声音指示;采用7805 三端稳压集成芯片稳定输出5V直流电压。通过对AT89C51单片机最小系统的原理分析,结合论文的设计要求,完成了系统流程图及系统程序的设计。 本设计可实现时间显示、闹钟设置、环境温度测量、交直流供电电源等功能。 关键词:单片机,电子闹钟多功能设计,温度检测,交直流供电

基于51单片机的电子台历设计

摘要 本设计是一个基于单片机AT89S51的简易电子台历,附有复位电路,时钟电路,键盘电路。复位电路是单片机的初始化操作,除了正常的初始化外,当程序运行出错后或者操作失误使系统进入死锁状态时,为摆脱困境,也需要能够通过独立式键盘电路进行启动,调整,再运行,时钟电路采用12MHZ的晶振,作为系统的时钟源,具有较高的准确性。 在上电或者复位时数码管显示年,月,日,时,分,秒。A键用于模式调整,形成一个循环,按一次键,即对秒调整。再按一次对分调整,如此循环。B键用于按下A键之后进行加1的操作,按一次加1,C键用于减1的操作,按一次减1。能够完成从00时00分00秒到23时59分59秒的循环计时,过23时59分59秒,日期增加1,当日期达到1个月后,月进位1,满12个月后,年进位1,年的首2位保持不变,始终为20。单片机并行口的电子台历的设计在AT89S51的P0口和P2口外接由14个LED数码管(LED7~LED0)构成的显示器,用P0口作LED的段码输出口(P0.0~P0.7对应于LED的a~dp),P2.7~P2.0作LED的段码年月日的位控输出线(P2.7~P2.0对应于LED7~LED0),P1.7~P1.0对应时间的数码管,P3口外接三个按键A、B、C(对应于P3.0~P3.2)。数码管为4位一体的共阳极的数码管,数码管采用动态扫描法,从右往左依次点亮,显示数字。 关键字:单片机、电子台历、数码管 ABSTRACT The design is a single electrical calendar basing SCMC of AT89S51. There are restoration circuit, clock circuit and keyboard circuit. Restoration circuit is used as an original operation, besides normal start-up, when the program runs mistakenly and system loses its order ,in order to get rid of the trouble, it also need to restart ,adjust and run through keyboard. Clock circuit uses 12MHZ Crystal as the source of the calendar ,with a high accuracy. When the system starts, the display shows year, month ,day, week and time the A keyboard is used to start and adjust, the B keyboard is used to add 1,when press it ,the date will add 1, the C keyboard is used to minus 1, when press it , the date will minus 1.It can make a cycle from 00:00 to 23:59:59.The display includes 14 LEDS, the SCMC joins the display in the P1, P0 ports and P2 ports, the SCMC joins the keyboards in the P3 scan, lighting the LEDS from right to left , showing the numbers. Keywords: SCMC, Calendar LED

基于单片机的电子日历时钟设计

#include #define uchar unsigned char #define uint unsigned int //----端口定义--- sbit ACC_7=ACC^7; sbit RST1=P2^5; sbit IO=P2^6; sbit SCLK=P2^7; sbit k1=P3^2; sbit k2=P3^3; sbit k3=P2^2; sbit k4=P2^3; //uchar wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // 数码的位选,左到右 uchar tab_1302[7]={45,50,11,19,1,1,15}; uchar tab_time[8]={0,0,10,0,0,10,0,0}; //时间 uchar tab_day[8]={0,0,10,0,0,10,0,0,}; //年月日 uchar tab_num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //0 1 2 3 4 5 6 7 8 9 - {"0123456789-"} ////////////=============函数声明============//////////////// void display_time(); void delayms(uint); void display_day(); void ds1302(); //获取DS1302的时间 void ds1302_init(); //DS1302的初始化 void write1302(uchar,uchar); //指定地址向DS1302写数据 uchar read1302(uchar); //指定地址向DS1302读数据 void ds1302(); void int0_init(); /////////=======中断初始化=======/////////// void int0_init() { EX0=1;

电子日历时钟设计

目录 1题目设计的要求 (1) 2 系统硬件设计 (1) 2.1设计原理 (1) 2.2器件的功能与作用 (1) 2.2.1 MCS51单片机AT89C51 (1) 2.2.2 串行时钟日历片DS1302 (2) 2.2.3 液晶显示LCD1602 (3) 3 系统软件设计 (4) 3.1程序流程 (4) 3.2程序代码 (5) 4 系统仿真调试 (12) 4.1仿真原理图设计 (12) 4.2仿真运行过程 (12) 4.3仿真运行结果 (13) 5 总结 (13) 6 参考文献 (13)

1题目设计的要求 通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。 2 系统硬件设计 2.1 设计原理 图3.1 电路原理图 2.2 器件的功能与作用 2.2.1 MCS51单片机AT89C51 XX AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件

采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。 由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。 AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2.2.2 串行时钟日历片DS1302 系统的组成与工作原理: 系统由单片机AT89C52,串行日历时钟片DS1302,液晶显示模组LCD1602。 DS1302的CLOCK与AT89C52的P1.6相连,RST与P1.5相连,IO与P1.7相连。 LCD1602的D0~D7与AT89C51的P0.0~P.7相连,并接上拉电阻,RS与P2.0相连,RW与P2.1相连,E与P2.2相连。 DS1302是DALLAS公司拖出的涓流充电时钟芯片,内含有一个实时时钟/日历和31个季节静态RAM,通过简单地串行接口与单片机进行通信,实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24小时或12小时格式,DS1302与单片机之间能简单地采用同步串行方式进行通信,仅需用到RES复位、I/O 数据线、SCLK串行时钟3个口线。对时钟、RAM的读/写,可以改用单字节方式或多达31个字节的字符组方式。DS1302工作时功耗很低,保持数据和时钟信息是功率小于1mW。DS1302广泛应用于电话传真、便携式仪器及电池供电的仪器仪表等产品领域中。 RT-1602 字符型液晶模块是以两行16个子的5*7点阵吐信来显示字符的液晶显示器。 DS1302有8个引脚: X1、X2:32.768kHz晶振介入引脚。 GND:地。 RST:复位引脚,低电平有效。 I/O:数据输入/输出引脚,具有三态功能。 SCLK:串行时钟输入引脚。 Vcc1:工作电源引脚。 Vcc2:备用电源引脚。 DS1302有一个控制寄存器,12个日历,时钟寄存器和31个RAM。 控制寄存器 控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下:

基于FPGA的数字时钟设计_毕业设计论文

基于FPGA的数字时钟设计 基于FPGA的数字时钟设计 摘要 本设计为一个多功能的数字时钟,具有时、分、秒计数显示功能,以24小时循环计数;具有校对功能。本设计采用EDA技术,以硬件描述语言Verilog HDL为系统逻辑描述语言设计文件,在QUARTUSII工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。 系统由时钟模块、控制模块、计时模块、数据译码模块、显示以及组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,按键进行校准,整点报时,闹钟功能。 关键词:数字时钟,硬件描述语言,Verilog HDL,FPGA

Abstract The design for a multi-functional digital clock, with hours, minutes and seconds count display to a 24-hour cycle count; have proof functions function. The use of EDA design technology, hardware-description language VHDL description logic means for the system design documents, in QUAETUSII tools environment, a top-down design, by the various modules together build a FPGA-based digital clock. The main system make up of the clock module, control module, time module, data decoding module, display and broadcast module. After compiling the design and simulation procedures, the programmable logic device to download verification, the system can complete the hours, minutes and seconds respectively, using keys to cleared , to calibrating time. And on time alarm and clock for digital clock. Keywords:digital clock,hardware description language,Verilog HDL,FPGA

电子日历单片机课程设计报告

湖南科技大学 信息与电气工程学院《单片机原理与应用课程设计报告》 题目:电子日历 专业:电子信息工程 班级: 姓名: 学号: 指导教师: 2016年 07月13日

单片机原理与应用课程设计评阅书

信息与电气工程学院 课程设计任务书 2015-2016学年第2学期 专业:电子信息工程学号:姓名: 课程设计名称: 设计题目: 完成期限:自 2016 年 7 月 4 日至 2015 年 7 月 15 日共 2 周 设计依据、要求及主要内容(可另加附页): 设计依据:STC15F2K60S2单片机的定时/计数器,74HC59芯片的串并输出,数码管显示。 实验要求: (1)、利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。 (2)、利用LED分别显示当前时间和日历。 (3)、利用尽可能少的开关实现:校正日历和时间 (4)、定制闹钟(时、分、表)。 主要内容: 本系统是用STC15F2K60S2单片机的T0定时器的16位自动重装来产生1ms节拍,程序运行于这个节拍下,通过计数1000次从而自动定时于1s,以实现时钟的仿真。另外通过STC15F2K60S2单片机的IO方式控制74HC595驱动8位数码管。数码管可以实时显示秒,分,小时,日期,月份和年等信息,并且实现闹铃功能时,数码管闪烁显示。矩阵式键盘采用编程扫描方式,可以实现秒,分,小时,日期,月份和年信息的校准。同时通过STC15F2K60S2单片机的外部中断INT0实现年月日与时分秒显示的切换。 指导教师(签字): 批准日期:年月日

本设计是基于51系列的单片机进行的实时日历和时钟显示设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由STC15F2K60S2单片机,LED显示电路,以及调时按键电路等组成,系统通过74HC595驱动8位数码管现实数据,所以具有人性化的操作和直观的显示效果。软件方面主要包括时钟程序、键盘程序,显示程序等。本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计 采用模块化结构,使程序设计的逻辑关系更加简洁明了,以便更简单地实现调整时间及日期显示功能。所有程序编写完成后,在wave软件中进行调试,确定没有问题后,在Protel99se 软件中嵌入单片机内进行仿真。 关键词:STC15F2K60S2;Protel99se;74HC595

基于51单片机的万年历的设计

单片机课程实训SCM PRACTICAL TRAINING

目录 第一部分课程设计任务书 (1) 一、课程设计题目 (1) 二、课程设计时间 (1) 三、实训提交方式 (1) 四、设计要求 (1) 第二部分课程设计报告 (2) 一、单片机发展概况 (2) 二、MCS-51单片机系统简介 (2) 三、设计思想 (3) 四、硬件电路设计 (3) 1. 总体设计 (3) 2. 晶振电路 (4) 3. 复位电路 (4) 4. DS1302时钟电路 (5) 5. 温度采集系统电路 (5) 6. 按键调整电路 (6) 7. 闹钟提示电路 (6) 五、软件设计框图 (7) 六、程序源代码 (8) 1. 主程序 (8) 2. 温度控制程序 (11) 3. 日历设置程序 (13) 4. 时钟控制程序 (18) 5. 显示设置程序 (20) 七、结束语 (23) 八、课程设计小组分工 (23) 九、参考文献 (23)

第一部分课程设计任务书 一、课程设计题目 用中小规模集成芯片设计制作万年历。 二、课程设计时间 五天 三、实训提交方式 提交实训设计报告电子版与纸质版 四、设计要求 (1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。 (3)具有闹钟功能。 (4)能够显示环境温度,误差小于±1℃ (5)计时精度:月误差小于20秒。

第二部分课程设计报告 一、单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。 二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。8051单片机的基本性能有: ◆8位CPU; ◆布尔代数处理器,具有位寻址能力; ◆128B内部RAM,21个专用寄存器; ◆4KB内部掩膜ROM; ◆2个16位可编程二进制加1定时器/计数器; ◆32个(4×8位)双向可独立寻址的I/O口; ◆1个全双工UART(异步串行通信口); ◆5个中断源,两级中断结构; ◆片内振荡器及时钟电路,晶振频率为1.2MHz~12MHz; ◆外部程序/数据存储器寻址空间均为64KB; ◆111条指令,大部分为单字节指令; ◆单一+5V电源供电,双列直插40引脚DIP封装。

基于单片机的电子日历

设计任务书 设计题目: 电子万年历 设计要求:显示范围:2001-2099;日月正常显示,并能识别闰年闰月;时间采用24 小时制。显示格式:日期按照年月日排列,如2006 年12 月20 日显示为:20061220;时间按时分秒排列,如 12 点 30 分 55 秒显示为 12:30:55。 显示位数:16位 7段 LED数码管作正常显示和节电显示。

目录 摘要 (1) 前言 (2) 1概论 (3) 1.1概述 (3) 1.2单片机的发展历程 (3) 1.3时钟日历的特性 (3) 2系统原理与硬件设计 (5) 2.1硬件选择 (5) 2.2AT89C51 单片机简介 (6) 2.3时钟芯片介绍 (12) 2.4LED 简介 (18) 2.574LS154 简介 (20) 2.6ULN2003 简介 (20) 3软件设计 (22) 3.1主程序 (22) 3.2读取时间的子程序 (24) 3.3显示刷新子程序 (27) 4调试过程及数据分析 (30) 4.1硬件调试 (30) 4.2软件调试 (30) 4.3K EI L 调试 (31) 4.4试验箱调试 (31) 结论 (32) 致谢 (33) 参考文献 (34)

附录 A: (35)

摘要 本次设计采用时钟日历芯片 DS12887,这种时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新在计算机汇编语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。此外,这种时钟芯片带有锂电池做后备电源,具备永不停止的计时功能和可编程方波输出功能,可用作实时测控系统的采样信号等。这种时钟芯片内部还带有非易失性RAM,可用来存放需长期保存但有时也需变更的数据。本次设计中的LED 数码管电子时钟电路采用24 小时制记时方式,日期和时间用16 位数码管显示。设计采用 AT98C51单片机,使用 5V电源供电,并且在按键的作用下可以进入省电(不显示LED 数码管)和正常显示两种状态。 本次设计采用AT89C51单片机的扩展芯片和UNL2003芯片做驱动,由多块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。 关键词:时钟芯片、AT89C51、时钟日历

数电课程设计数字日历电路

题目:数字日历电路 班级: 姓名: 数字日历电路

一、设计任务及要求: 1、用5个数码管分别显示月、日、星期; 2、月、日的计数器显示均从1开始,每月按30天算; 3、对星期的计数显示从1到6再到日(日用8代替)。 二、方案设计与论证: 日历是一种日常使用的出版物,用于记载日期等相关信息。每页显示一日信息的叫日历,每页显示一个月信息的叫月历,每页显示全年信息的叫年历。有多种形式,如挂历、座台历、年历卡等,如今又有电子日历。逢年过节,往往会送亲友日历已显亲情友情可日历在现代社会中是很重要的。而纸制日历对森林保护不利,因此设计电子日历意义重大。在设计日历倒计时器时,采用了模块化的思想,将日历分为三个部分:日期、月份及年份,使得设计简单、易懂。本设计能进行月、日、星期的的计数,在社会生活中具有实际的应用价值。下面就是我们组设计电子日历的主要思路: 本数字日历电路计数显示电路和控制电路组成,计数显示电路主要由同步十进制计数器74LS160构成日期、月份和星期计数器,然后通过译码器数码管显示出来控制调节电路则用了组合控制逻辑电路去控制日期计数器及月计数器的置数端和使能端,从而实现日期和月份的调节功能。星期显示在脉冲作用下,从星期一到星期日循环计数,从而形成星期随着日期循环显示。综上,该方案是具体可行的。 三、设计原理及框图: 本数字日历电路主要由五个加计数器160、五个48译码器、显示器、控制开关构成。它们的工作原理是:用两片十进制计数器74LS160同步预置数(高位置入0000,低位置入0001)构成日期计数器,使其每次从一开始计数,从日期计数器的输出三十这个信号使其同时给月计数器的CP端信号使其计数,最后给日计数器的低位以信号源使其计数,同时在脉冲的作用下,使星期循环计数,随着日期的变化而变化。74LS48译码器将信号传给显示器显示数据。

毕业设计论文_单片机电子时钟的设计

单片机电子时钟的设计 摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机 AT89S51 电子时钟数码管

Design of the singlechip electronics clock Abstract Single slice machine from published in 70's for 20 centuries, is compare with its very high function price, is value by people and pay attention to, apply very widely, develop very quickly. Single slice the machine physical volume is small,the weight is light,the anti- interference ability is strong,the environment haven't high request,the price is cheap,the credibility is high,vivid good,develop more easy. In order to having an above-mentioned advantage, at the our country, single slice the machine is broadly applied already to turn an equipment at industrial automation control,automatic examination,intelligence instrument appearance,home appliances,electric power electronics,the machine electricity integral whole etc. each aspect, but 51 machines is is a typical model most and have a representative most in each machine of a kind. This graduation design passes to its study and application, Take the AT89S51 chips as core, assist with the electric circuit of the necessity, design a simple electronics clock, it from the 4.5 V direct current power supply power supply, pass the figures tube can accurate manifestation time, adjust time。Arrive a study and design, develop thus soft,the ability of the hardware . Keywords:MCU AT89S51electronics clock digital tube

课程设计万年历的设计52503328

课程设计万年历的设计52503328

兰州理工大学 计算机与通信学院 2014年秋季学期 面向对象课程设计 题目:万年历的设计

序言 《面向对象的程序设计》是计算机专业一门重要的专业基础课。此次课程设计的目的是以面向对象程序设计语言为基础,通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C++语言程序设计》的基本理论知识,理论联系实际,进一步培养学生综合分析问题、解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握面向对象的程序设计方法。 (6)进一步掌握在集成环境下如何调试程序、修改程序和程序的测试。

目录 摘要 (2) 第一章系统总体设计 (3) 一.理论说明 (3) 二.流程图说明 (4) 1.总体流程说明图 (4) 2.部分流程说明图 (4) 第二章系统详细设计 (7) 一.主要组成部分 (7) 二.源程序 (9) 第三章系统测试 (34) 四软件使用说明书 (40) 一.系统运行环境 (40) 二.系统操作提示 (40) 总结 (41) 参考文献 (42) 致谢 (42)

本科毕业设计--基于51单片机的电子日历设计

成都电子机械高等专科学校成教院毕业设计(论文) 论文题目:基于51单片机的电子日历设计 教学点:重庆科创职业学院 指导老师:张忠雨职称:讲师 学生姓名:聂燕学号: 2011700558 专业:应用电子技术 成都电子机械高等专科学校成教院制 2012 年 3 月 9 日

成都电子机械高等专科学校成教院毕业设计(论文)任务书 题目:基于51单片机的电子日历设计 任务与要求: 通过单片机设计电子日历数码管正常显示阳历、阴历日期,显示的格式为年-月-日,利用外部按键的操作实现阳历和阴历之间的 转换,实现阴历和阳历显示的暂停、运行等功能。 时间:2011年12月15日至2012 年3月15日共12 周教学点:重庆科创职业学院 学生姓名:聂燕学号:2011700558 专业:应用电子技术 指导单位或教研室: 指导教师:张忠雨职称:讲师 成都电子机械高等专科学校成教院制

毕业设计(论文)进度计划表

摘要 设计以单片机AT89C51为核心部件的电子日历,利用74LS245作为驱动器,74LS138作为译码器使用,六个七段数码管均采用共阴极的方式,P0口作为段选码输出口,P2口作为位选码输出口。 本次设计的题目是基于单片机的电子日历设计,可以正常的显示年、月、日,还可以利用外部按键实现阴历和阳历之间的转换以及暂停等功能。电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。 本次设计可分为两部分:硬件系统、软件系统。 硬件系统包括:AT89S51单片机、74LS245驱动器、74LS138译码器、RC复位电路、+5V直流电源电路、去抖电路、动态显示扫描电路。 软件系统主要有单片机的编程构成。 关键词:单片机,日历,位码,段码,显示

数字电路课程设计 电子日历

数字电路综合设计报告 电子日历 一、 设计要求 1.能显示年、月、日,星期; 2.年月日,星期可调; 3.不考虑闰年。 二、 题目分析 题目可概括如下:通过一个时钟信号计时,电路需要按照历法规则准确计数,并将年月日星期显示出来,此外还要求可以人工调整日期。为了实现功能,主要需搭设出一个可靠的时钟信号发生器,用于计数的计数模块,用于显示计数结果的模块。 三、 设计过程 A. 设计思路 此设计主要分为三个模块:时钟信号发生模块、时分秒计数模块、年月日计数模块。其中,时钟信号发生模块通过晶振发生一定频率的时钟信号,再通过分频,将晶振发出的信号分频成1hz 的秒脉冲信号,最后将秒脉冲信号送入。时分秒计数模块。时分秒计数模块在秒脉冲信号的控制下按规则计数,在满24小时时进位,并将进位信号送入年月日计数模块。年月日模块在时分秒模块进位信号的控制下计数,每收到一个进位信号就加一,并把每一时刻的计数结果通过数码管显示出来。各模块的关系如图一所示: B. 各 框 架 设 计 a) 时钟信号发生模块 此模块采用晶振电路产生时钟信号,再通过390、161以及D 触发器分频最后得到频率为1Hz 的秒脉冲输出信号。 基本框架如下:

仿真电路如下: b) 时分秒计数模块 在此模块中,利用390、 161构成两个六十进制和一个二十四进制计数器,分别对应秒、分、时。在时钟信号发生模块的输出信号控制下进行逐级计数, 最后将二十四进制计数器的进位信号作为输出信号。 基本框架如下:

c)年月日计数模块 此模块中利用一块161、160,分别构成七进制,二十八进制、三十进制、三十一进制、十二进制、100进制计数器。为了实现大小月功能,使用了151数据选择器,将不同触发条件作为输入数据,将12进制的触发信号作为地址输入,因此可根据“月” 的状态选择“日”的清零触发条件。为了实现年月日星期设置功能,采用四个单刀双掷开关,一边连时钟模块,一边连接按键式单脉冲。当需要设置时,将开关拨去按键式单脉冲那端,利用脉冲手动调节。 基本框架如下:

电子日历记事本--Java课程设计

《面向对象程序设计》课程设计报告 题目:电子日历记事本的设计 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号: 20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制 面向对象程序设计课程设计任务书

目录 1需求与总体设计 1 1.1需求分析 1 1.2总体设计思路 1 1.2.1功能图 1 1.2.2类图 2 2详细设计 (3) 2.1 CalendarPad类说明 3 2.2 Year类说明 3 2.3 Month 类模块 4 2.4 NotePad类说明 4 3编码实现 6 3.1 CalendarPad模块 6

3.2 Year模块 11 3.3 Month 模块 14 3.4 NotePad模块 16 4系统运行与测试 23 4.1程序主界面 23 4.2日志查看——无日志 23 4.3建立日志 24 4.4日志查看——有日志 24 4.5删除日志 26 总结 27 1需求与总体设计 1.1需求分析 根据题目要求,将日历与记事本功能相结合,实现对某日期的事件进行记录的功能,设计出简洁方便美观的GUI界面。 将本程序主界面可以分为四个部分:日历日期信息展示、年份、月份、记事本内容、记事本下方的时钟,用四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendarPad创建动日历记事本软件的主界面,且该类中含有main

方法,程序从该类开始执行。再用余下的year、mouth、NotePad类来显示并改变日期和实现记事本的功能。 1.2总体设计思路 1. 可以编辑日历的日期 2. 可以判断当前日期是否存在日志记录 3. 对有日志记录的日期,可以对该日期的日志记录进行修改和删除 4. 对没有日志记录的日期,可以创建并保存新建的日志记录 5. 对保存的日志加密,查看时得输入密码 1.2.1功能图

最全最好的课程设计-51单片机电子日历时钟( 含源程序)

LED日历时钟课程设计 院系: 班级: 姓名: 学号: 指导教师: 2012 年06 月16 日

目录

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 第一章前言 数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k B ytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

单片机课程设计 电子日历时钟显示器设计

目录 1.题目设计要求 (1) 2.开发平台简介 (1) 3.系统硬件设计 (2) 3.1设计原理 (2) 3.2器件的功能与作用 (2) 3.2.1 MCS51单片机AT89C51 (2) 3.2.2复位电路 (3) 3.2.3晶振电路 (4) 3.2.4 DS1302时钟模块 (4) 3.2.5 引脚功能及结构 (4) 3.2.6 DS1302的控制字节 (5) 3.2.7 数据输入输出(I/O) (5) 3.2.8 DS1302的寄存器 (6) 3.2.9 液晶显示LCD1602 (6) 3.2.10 串行时钟日历片DS1302 (8) 4.系统软件设计 (10) 4.1程序流程 (10) 4.2程序代码 (10) 5.系统仿真调试 (20) 5.1仿真原理图设计 (20) 5.2仿真运行过程 (21) 5.3仿真运行结果 (21) 6.总结 (21) 7.参考文献 (22)

1.题目设计要求 通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。 2.开发平台简介 2.1系统仿真平台Proteus Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。 2.2软件开发平台Keil C Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

相关主题
文本预览
相关文档 最新文档