文档库 最新最全的文档下载
当前位置:文档库 › EDA课程设计-万年历电子钟的设计

EDA课程设计-万年历电子钟的设计

EDA课程设计-万年历电子钟的设计
EDA课程设计-万年历电子钟的设计

课程设计(论文)任务书

信息工程学院学院通信工程专业2009.2 班

一、课程设计(论文)题目电子钟设计

二、课程设计(论文)工作自2012年1月 3日起至 2012 年 1月 6 日止。

三、课程设计(论文) 地点: 华东交通大学4-410,图书馆

四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)掌握EDA技术及CPLD/FPGA的开发流程;

(2)掌握自顶向下的设计思想;

(3)掌握实用电子钟的设计原理;

(4)掌握系统设计的分析方法;

(5)提高学生的科技论文写作能力。

2.课程设计的任务及要求

1)基本要求:

(1)用HDL设计一个多功能数字钟,包含以下主要功能:精确计时,时间可以24小时制或12小时制显示;

(2)日历:显示年月日星期;

(3)能把设计文件进行仿真并下载到实验箱实现功能验证。

2)创新要求:

在基本要求达到后,可进行创新设计,如增加报时等、秒表功能模块。

3)课程设计论文编写要求

(1)要按照书稿的规格打印誊写论文

(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等

(3)论文装订按学校的统一要求完成

4)答辩与评分标准:

(1)完成系统分析:20分;

(2)完成设计过程:20分;

(3)完成仿真:10分;

(4)完成下载:10分

(5)回答问题:10分。

5)参考文献:

(1)潘松,黄继业编著 .《EDA技术实用教程》,2005 ,科学出版社

(2)徐志军,徐光辉编著.《CPLD/FPGA的开发与应用》,电子工业出版社,2001.1(3)https://www.wendangku.net/doc/e113263413.html,/html/85/t-113885.html

6)课程设计进度安排

内容天数地点

构思及收集资料1图书馆

设计与调试3实验室

撰写论文1图书馆、实验室

学生签名:

年月日

课程设计(论文)评审意见

(1)设计程序(40分):优()、良()、中()、一般()、差();

(2)仿真结果(10分):优()、良()、中()、一般()、差();

(3)下载结果(10分):优()、良()、中()、一般()、差();

(4)回答问题(10分):优()、良()、中()、一般()、差();

(5)报告成绩(30分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()

评阅人:职称:

年月日

电子钟的设计

摘要

基于FPGA的电子钟设计,主要完成的任务是使用Verilog语音,在Quartise2上完成电路的设计,程序的开发,基本功能是能够显示、修改年月日时分秒。电路的设计模块分为几个模块:分频、控制、时间显示调整、时分、年月日、译码器。各个模块完成不同的任务,合在一起就构成了电子钟。至于程序编写,使用Verilog语言,根据各个模块的不同功能和它们之间的控制关系进行编写。软件模块直接在Quartis2上进行。进入信息时代,时间观念越来越强,但是老是的钟表以及日历等时间显示工具已经不太合适。如钟表易坏,需经常维修,日历每天都需要翻页等。对此,数字钟表的设计就用了用武之地。

基于FPGA的电子钟设计,采用软件开发模块,开发成本底,而且功能设计上有很大的灵活度,需要在软件上进行简单的修该就能实现不同的功能要求,能够满足不同的环境要求。同时,该设计在精度上远远超过钟表,并且不需要维修,也不用没天的翻页,极其的方便。且能够添加各种不同的功能要求。例如:在其上加闹钟,同时显示阴阳历等。。综上所述本设计具有设计方便、功能多样、电路简洁成本低廉等优点,符合社会发展的趋势,前景广阔。

关键字:电子钟;FPGA;仿真;verilog;QuartusII

目录

摘要 (3)

第一章绪论 (5)

1.1电子钟的发展 (5)

1.2 FPGA简介 (5)

第二章电子钟设计原理 (6)

2.1 组成模块 (6)

2.2 电子钟的工作原理图 (6)

第三章电子钟系统部分程序设计与仿真 (8)

3.1时分秒模块代码与仿真 (8)

3.2年月日模块代码与仿真 (11)

3.3具体的电路图 (13)

谢辞 (15)

参考文献 (15)

附录 (16)

华东交通大学课程设计

第一章绪论

1.1电子钟的发展

钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯等。所有这些,都是以钟表数字化为基础的。因此,研究电子万年历及扩大其应用,有非常现实的意义。数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。电子万年历从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。

因此,我们此次设计与制做电子万年历就是为了了解数字钟的原理,从而学会制作数字钟。而且通过万年历的制作进一步了解各种在制作中用到的中小规模集成电路的作用及使用方法,且由于电子万年历包括组合逻辑电路和时序电路,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。

1.2 FPGA简介

FPGA是现场可编程门阵列(Field programmable gates array)的英文简称。是有可编程逻辑模块组成的数字集成电路(IC)。这些逻辑模块之间用可配置的互联资源。设计者可以对这些器件进行编程来完成各种各样的任务

PLD/FPGA是近几年集成电路中发展最快的产品。由于PLD性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片挤向高端和超复杂应用。据IC Insights的数据显示,PLD市场从1999年的29亿美元增长到去年的56亿美元,几乎翻了一番。Matas预计这种高速增长局面以后很难出现,但可编程逻辑器件依然是集成电路中最具活力和前途的产业。

复杂可编程逻辑器件。可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑(CPLD)。在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。现在最新的FPGA器件,如Xilinx Virtex"系列中的部分器件,可提供八百万"系统门"(相对逻辑密度)。这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛的应用中,从数据处理和存储,以及到仪器仪表、电信和数字信号处理等。

电子钟课程设计

第二章电子钟设计原理

2.1 组成模块

此电子钟系统主要由一下几个模块组成:

1.控制模块 :该模块实现对各个功能模块的整体控制,对时间显示与调整、日期显示与调整,由使用者决定是显示日期还是时间,当使用者不参与控制时,时间和日期每隔一段时间会自动轮流显示。

2.时间及其调整模块:顾名思义就是对时间进行调整。

3.时间显示动态位选模块

4.显示控制模块:显示控制模块的功能是控制显示日期还是时间,在设计的过程中由于没有足够的数码管,把日期和时间分成了两个模块,至于显示那一个这由该模块完成任务。

5.日期显示与设置模块

6.译码器模块:在数码管上显示当前时间和日期。

7.分频模块:是为了得到一个周期为秒的脉冲,该脉冲主要用于秒的走到。

2.2 电子钟的工作原理图

分频模块

控制模块

时间显示

调整模块

时分模块年月模块

显示控制模块

译码器

华东交通大学课程设计

图1 流程图

在电脑上通过软件Max+plus2对万年历电路图的引脚进行绑定,编译,然后与EDA试验箱连接,把文件配置通过JTAG口载入FPGA中,选择实验电路模式进行硬件测试。通过学习,理论上学习了EDA试验箱的原理,对试验箱内部的组件,以及组件之间的链接有了更深的了解.

从开始分析电子钟原理,在定义底层文件名称,编写底层文件程序,生成模块——分频模块,秒模块,分模块,时模块,年月日模块,控制模块,显示模块,然后链接各个模块组成顶层,到最终完成测试,虽然辛苦但是当画出功能图时,还是很高兴的,以下为各模块组成的功能图

图2 功能设计图

电子钟课程设计

第三章电子钟系统部分程序设计与仿真

3.1时分秒模块代码与仿真

时间及其设置模块主要完成时间的自动正常运行与显示,以及在相应的功能号下,实现时间的调整与设置。

计数器

秒脉冲信号经过6级计数器,分别得到“秒”个位、十位、“分”个位、十位以及“时”个位、十位的计时。“秒”“分”计数器为六十进制,小时为二十四进制。

六十进制计数

由分频器来的秒脉冲信号,首先送到“秒”计数器进行累加计数,秒计数器应完成一分钟之内秒数目的累加,并达到60秒时产生一个进位信号,所以,选用两片cc40192和一片cc4011组成六十进制计数器,来实现六十进制计数。其中,“秒”十位是六进制,“秒”个位是十进制。

二十四进制计数

利用异步清零端实现起从23——00的翻转,其中“24”为过渡状态不显示。其中,“时”十位是3进制,“时”个位是十进制。

以下为其具体的代码。

//秒

module second(clrn,clk,jf,qm,enmin);

input clrn,clk,jf;output[7:0] qm;output enmin;

reg[7:0] qm;reg[3:0] qml;reg[7:4] qmh;reg carry1;

always@(posedge clk or negedge clrn) begin

if(~clrn) begin{qmh,qml}=0;end

else if((qmh==5)&&qml==9)

begin{qmh,qml}=0;carry1=1;end

else if ((qmh==5)&&(qml<9))

begin qmh=qmh;qml=qml+1;carry1=0;end

else if((qmh<5)&&(qml==9))

华东交通大学课程设计

begin qmh=qmh+1;qml=0;carry1=0;end

else if((qmh<5)&&(qml<9))

begin qmh=qmh;qml=qml+1;carry1=0;end

qm={qmh,qml};

end

assign enmin=carry1|jf;

Endmodule

图3 秒仿真图

//分

module minute(clrn,clk,jh,qf,enhour);

input clrn,clk,jh;output[7:0] qf;output enhour;

reg[7:0] qf;reg[3:0] qfl;reg[7:4] qfh;reg carry1;

always @(posedge clk or negedge clrn)

begin

if(~clrn) begin{qfh,qfl}=8'h00;carry1=0;end

else if((qfh==5)&&(qfl==9))begin {qfh,qfl}=8'h00;carry1=1;end else if((qfh<5)&&(qfl<9)) begin qfh=qfh;qfl=qfl+1;carry1=0;end else if((qfh<5)&&(qfl==9))begin qfh=qfh+1;qfl=0;carry1=0;end else begin qfh=qfh;qfl=qfl+1;carry1=0;end

qf={qfh,qfl};

end

assign enhour=carry1|jh;

endmodule

电子钟课程设计

图4 分仿真图

//时

module hour(clrn,clk,qs,cout);

input clrn,clk;output [7:0] qs;output cout;

reg[7:0] qs;reg[3:0] qsl;reg[7:4] qsh;reg carry1;

always@(posedge clk or negedge clrn)//miao

begin

if (~clrn) begin {qsh,qsl}=8'h00;carry1=0; end

else if((qsh==1)&&(qsl==7))

begin {qsh,qsl}=8'h00;carry1=1;end

else if((qsh==2)&&(qsl<3)) begin qsh=qsh;qsl=qsl+1;carry1=0;end else if(qsl==9)begin qsh=qsh+1;qsl=0;carry1=0;end

else begin qsh=qsh;qsl=qsl+1;carry1=0;endqs={qsh,qsl};

end

assign cout=carry1;

endmodule

图5 时仿真图

华东交通大学课程设计

3.2年月日模块代码与仿真

该模块实现的是日期的自动工作功能,

//年月日

module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr);

input clrn,clk,jn,jy,jr;

output [15:0] qn;

output[7:0] qy,qr;

reg [15:0] qn;

reg[7:0] qy,qr;

reg clkn,clky;

reg[7:0] date;

reg clkn1,clkn2,clkn3;

initial begin clkn1=1;clkn2=1;clkn3=1;end

initial begin qn='h2000;qy=1;qr=1;end

always@(posedge (clk^jr) or negedge clrn)//日计数

begin if(~clrn) qr=1;

else begin if(qr==date)

begin qr=1;clky=1;end

else if(qr[7:4]==date[7:4]&&qr[3:0]==date[3:0])

Begin qr[7:4]<=qr[7:4];qr[3:0]<=qr[3:0];clky<=1;end

else if(qr[3:0]==9)

begin qr[7:4]<=qr[7:4]+1;qr[3:0]=0;end

else if(qr[7:4]

Begin qr[7:4]<=qr[7:4];qr[3:0]<=qr[3:0]+1;clky<=0;end

else begin qr[7:4]=qr[7:4];qr[3:0]=qr[3:0]+1;clky<=0;end end

end

always @ (posedge (clky^jy) or negedge clrn )//月计数

begin if(~clrn) qy=1;

else begin if(qy=='h12)qy=1;

else qy=qy+1;if(qy[3:0]=='ha)

Begin qy[3:0]=0;

qy[7:4]=qr[7:4]+1;end

if(qy=='h12)clkn=1;else clkn=0;

End

end

always//每月的天数

Begin case(qy)

'h01:date='h31;

'h02: if(((qn%4==0)&(qn%100!==0))||(qn%400==0)) date='h29;

电子钟课程设计

else date='h28;

'h03:date='h31;'h04:date='h30;'h05:date='h31;

'h06:date='h31;'h07:date='h31;'h08:date='h31;

'h09:date='h30;'h10:date='h31;'h11:date='h30;

'h12:date='h31;default:date='h30;

endcase

end

always@(posedge (clkn^jn) or negedge clrn )//年计数begin

if(~clrn) qn[3:0]=0;

else begin if(qn[3:0]==9) qn[3:0]=0;

else qn[3:0]=qn[3:0]+1;if(qn[3:0]==9) clkn1=0;

else clkn1=1;end

end

always@(posedge (clkn1) or negedge clrn)

Begin

if(~clrn) qn[7:4]=0;else begin

if(qn[7:4]==9) qn[7:4]=0;else qn[7:4]=qn[7:4]+1;

if(qn[7:4]==9)clkn2=0;else clkn2=1;end

end

always@(posedge (clkn2) or negedge clrn)

begin

if(~clrn) qn[11:8]=0;else begin

if(qn[11:8]==9) qn[11:8]=0; else qn[11:8]=qn[11:8]+1; if(qn[11:8]==9) clkn3=0;else clkn3=1;end

end

always@(posedge (clkn3) or negedge clrn)

Begin if(~clrn) qn[15:12]=2;

else begin if(qn[15:12]==9) qn[15:12]=0;

else qn[15:12]=qn[15:12]+1;end

end

endmodule

华东交通大学课程设计

图5 年月日仿真图

3.3具体的电路图

将时间和日期两个模块连接起来之后,便可得到大体的框架图了。时间和日期两个模块生成封装。用画图的形式将其连接,就组成了顶层模块。其电子钟的模块也就弄好了,其他控制的模块只要在这上面加就可以了。时间和日期的顶层模块如下图。

图6 时间和日期连接图

图7 时间和日期仿真图

电子钟课程设计

第四章小结

通过这次课设实训,在硬件方面,使我们对EDA试验箱有了很多的了解,弥补了我们的知识的缺陷,同时对EDA试验箱内部的工作原理,以及EDA试验箱各个实验模式的功能很作用有了一定的了解,学习了硬件引脚绑定过程,以及绑定的一些基本常识,并动手完成了绑定,这样不仅拓宽我们的知识面,增强动手能力和实践能力,同时还培养我们的分析和解决实际问题的能力。

在软件方面,我们通过分组在软件Max+plus2上独立完成老师给我们的实训题目——电子钟。从开始分析点钟原理,在定义底层文件名称,编写底层文件程序,然后链接各个模块,到最终完成测试,并运行成功,这些加强了我们的分析问题的能力,提高了我们编程的能力,同时还培养了我们独立完成任务和查阅资料删选资料的能力,虽然完成的软件在实际运用中还有很多不足,比如软件运行的环境有限,程序的效率不高,在老师的要求上也不能全部到达预期的最好效果,等等一些问题,这都需要我们以后更深层次的加以修改,使其更加简单更加方便更加通俗易懂。

电子日历一路编来可谓是坎坎坷坷,但大家都没有放弃,积极主动的找老师、找同学帮忙解决难题。后来,又重新分析原理,重复操作,遇到困难马上向老师提问,及时解决问题,这样的效果很明显。

在这次实训中,我深深的感受到上课听讲的重要性,课设中遇到的很多问题都是老师上课讲解的一些难点,自己没有很好的领悟的地方。每个学生对老师课堂上讲的内容的接收都是不一样的,通过向老师请教,同学讨论,最后才得以解决问题,实训才能得以成功。

从整体看这次实训是很成功的,让我们都有很大的收获,同时也非常感谢在实训过程中给予我们很大帮助的朱老师和黄老师,在老师耐心细心的指导下,我才能很好的完成实训认务。

华东交通大学课程设计

谢辞

在这里我要感谢我的老师朱路,朱老师上课的思路很清晰,很有调理。这样也吸引我对EDA的兴趣,朱老师在上课讲的内容很生动,举的例子也很符合题意,这样更有利于我的学习。当自己有不懂问朱老师时,朱老师很热情的分析给我听,这样有利于我的理解,总之很感谢朱老师。

参考文献

[1] 潘松,黄继业.EDA技术实用教程,科学出版社,2002

[2] 侯伯亨,顾新. VHDL硬件描述语言修订版,西安技大学出版社,2004.

[3] 赵曙光,郭万有. 可编程逻辑器件原理,西安电子科技大学出版社,2000.

[4] 徐志军,徐光辉. CPLD/FPGA的开发与应用,电子工业出版社,2002.

[5] 夏宇闻. Verilog HDL数字系统设计教程,北京航空航天大学出版社,2003.

[6] 黄智伟. FPGA系统设计与实践,电子工业出版社,2003.

[7] 王金明等.数字系统设计与verilog HDL,电子工业出版社,2002

电子钟课程设计

附录附录一时间实拍图

数字电子课设:万年历的设计

编号 北京工商大学 数字电子技术基础 《万年历的设计》 姓名 学院 班级 学号 设计时间

一、设计目的 1、熟悉集成电路的引脚安排 2、掌握芯片的逻辑功能及使用方法 3、了解数字电子钟及万年历的组成及工作原理 4、熟悉数字电子钟及万年历的设计与制作 5、熟悉multisim电子电路设计及仿真软件的应用 二、设计思路 1、设计60进制秒计数器芯片 2、设计24进制时计数器芯片 3、设计31进制天计数器芯片 4、设计12机制月计数器芯片 5、设计7进制周计数器芯片 6、设计闰年平年不同月份不同进制逻辑 三、设计过程 1、Tr_min and s 60进制计数器芯片: “秒”、“分”电路都六十进制,它由一级十进制计数器和一级六进制计数器组成,六十进制计数器的设计图如下,采用四个片74ls161N串联而成,低位芯片的抚慰信号作为下级输入信号,串接起来构成“秒”、“分”计数器芯片。

2、Tr_hour24进制计数器芯片: 24进制计数器芯片的设计图如下,时计数电路由两片74ls161串联组成。当时个位计数为4,十位计数为2时,两片74ls160N复零,从而构成24进制计数。 3、Tr_day天计数器芯片: 采用两片74ls160N和一片74ls151N串联而成,天计数器的进制受到月计数器反馈M、N影响和年计数器反馈R4的影响,在M、N不收到反馈信息的时候,天计数器为28进制,电路设计图如下:

4、Tr_week周计数器芯片: 周计数器由一块74ls161N构成一个七进制计数器,原理与秒、分、时计数器相似,电路设计图如下 5、Tr_month月计数器芯片: 采用两片74160N和两片74HC151D_2V串联而成,月计数器的反馈信息M、N影响

电子万年历课程设计报告

课程:创新与综合课程设计 电子与电气工程系 实践教学环节说明书 题目名称电子万年历 院(系)电子与电气工程学院 专业电子信息工程 班级119411 学号1109635010 学生姓名11 指导教师q1 起止日期13周周一~14周周五

电子万年历 一.设计目的 设计一个具有报时功能、停电正常运行(来电无需校时)、带有年月日、时分秒及星期显示的电子日历。 二.方案设计 硬件控制电路主要用了AT89S52芯片处理器、LCD1602显示器等。根据各自芯片的功能互相连接成电子万年历的控制电路。软件控制程序主要有主控程序、电子万年历的时间控制程序、时间显示及星期显示程序等组成。主控程序中对整个程序进行控制,进行了初始化程序及计数器、还有键盘功能程序、以及显示程序等工作,时间控制程序是电子万年历中比较重要的部分。时间控制程序体现了年、月、日、时、分、秒及星期的计算方法。时间控制程序主要是定时器0计时中断程序每隔10ms中断一次当作一个计数,每中断一次则计数加1,当计数100次时,则表示1秒到了,秒变量加1,同理再判断是否1分钟到了,再判断是否1小时到了,再判断是否1天到了,再判断是否1月到了,再判断是否1年到了,若计数到了则相关变量清除0。先给出一般年份的每月天数。如果是闰年,第二个月天数不为28天,而是29天。再用公式s=v-1 +〔(y-1/4〕-〔(y-1/100〕+〔(y-1/400〕+ d计算当前显示日期是星期几,当调节日期时,星期自动的调整过来。闰年的判断规则为,如果该年份是4或100的整数倍或者是400的整数倍,则为闰年;否则为非闰年。在我们的这个设计中由于只涉及100年范围内,所以判断是否闰年就只需要用该年份除4来判断就行了。 三.系统的设计框图 本系统以AT89S52单片机为核心,结合时钟芯片DS1302,LCD1602,键盘等外围器件,实现电子万年历的一系列功能,并通过液晶屏和按键控制完成人机交互的功能。系统总体设计框图如图(1)所示

万年历电子钟设计报告

课程设计报告课程设计名称 SOPC原理及应用专业电子科学与技术 班级电子13-1班 学号 姓名郑航 指导教师冯丽 成绩

2016年1月13日

目录 一、设计目的 (1) 二、设计内容要求 (1) 三、系统软、硬件需求分析 (1) 1. 硬件系统组成规划 (1) 2. 软件系统规划 (2) 四、设计步骤 (3) 3. 新建工程“count_binary” (3) 4. 添加ip核 (4) 5. 添加SDRAM Controller (5) 6. 添加flash (6) 7. 添加外部RAM总线(Avalon三态桥) (7) 8. 添加pio核 (7) 9. 添加cpu核 (8) 10. 添加LCD核 (9) 11. 自动分配基地址并生成系统 (9) 12. 设置顶层模块图 (10) 13. 管脚分配并编译 (11) 14. 启动Nios II IDE,新建工程 (12)

15. 导入设计程序 (12) 16. 编译工程并烧录 (13) 五、设计结果 (14) 六、源程序 (16) 1. 程序......................................... 错误!未定义书签。 2. 程序......................................... 错误!未定义书签。 3. 程序......................................... 错误!未定义书签。 4. 程序 (16) 七、实验心得 (28)

项目基于NiosII系统的电子钟设计 一、设计目的 1.掌握基本的开发流程。 2.熟悉QUARTUS II软件的使用。 3.熟悉NIOS II软件的使用。 4.掌握SOPC硬件系统的搭建和NIOSII软件编程方法。 5.掌握SOPC系统设计方法。 6.进一步了解简单的设置及其编程。 二、设计内容要求 NiosII系统的硬件设计,软件设计,该系统能实现一个电子钟功能。 三、系统软、硬件需求分析 1.硬件系统组成规划 根据系统要实现的功能和开发板配置,本项目中需要用到的Cyclone II开发板上的外围器件有: LCD:电子钟显示屏幕 按钮:电子钟设置功能键 Flash存储器:存储软、硬件程序 SRAM存储器:程序运行时将其导入SRAM 根据所用到的外设和器件特性,在SOPC Builder中建立系统要添加的模块包括:NiosII CPU定时器,按键PIO,LCD,外部RAM总线(Avalon三态桥),

Java万年历课程设计报告

杭州师范大学钱江学院课程设计 题目万年历 学院钱江学院 专业信电分院计算机科学与技术 班级计算机1101 姓名崔伊平 指导教师王李冬 2013 年9 月20 日

目录 一.概述 (1) 二.总体方案设计 (2) 三.详细设计 (3) 四.最终输出 (7) 五.课程设计总结 (8) 参考文献 (9)

一、概述 1.课程设计的目的 通过显示年日历程序的设计,培养学生综合利用java语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力。 通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《java语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了java语言的好处和其可用性! 2.课程设计的要求 2.1 输入查询的年份与月份,单击“更新”按扭,则可得到相应的日历。本实验是对图形用户界面,布局管理器的综合运用。要掌握APPLET容器中添加组件的方法,理解JAVA 的事件处理机制,编写独立的运行窗口。 2.2 输出形式 使用独立的运行窗口进行显示。界面主要由两部分组成——查询输入部分和结果显示部分。查询输入部分包括两个文本域,一个用于输入年份:一个用于选择月份:一个更新按扭,用来触发查询事件。

二总体方案设计 1.程序开发环境 a.开发环境:eclipse b.系统环境:windows xp/7 c.设计工具:Microsoft office 2003 2.整体流程图 图1 流程图 3.功能模块图

C语言万年历设计报告

C语言课程 设计报告题目:编写万年历系统 年级: 专业: 班级: 姓名: 学号:

目录 第1章设计目的 第2章需求分析 第3章概要设计 第4章源程序清单 第5章执行结果 1)登陆界面 2)显示当前日月历 3)显示具体日期信息 第6章程序问题调试与课程设计心得

第1章设计目的 设计目的(实验要求): 1.模仿现实生活中的挂历. 2.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几). 3.当系统日期变到下一月时,系统自动翻页到下一月. 第2章需求分析 (1)程序运行时,首先给出菜单选项和输入提示: (2)用户可以通过主菜单选择不同选项。输入1,通过输入当前日期可显示当前月的日历;输入2,通过输入具体日期(中间以空格分开)可显示该日具体信息;输入3,则退出查询系统。

第3章概要设计 1.菜单选择界面可通过下面所示函数时现; 主要思路: 通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选 项的功能实现。 闰年与平年的判断: 代码如下: void main() { int year,month,day,a,b; while(1) { printf("\n\n\n\n"); printf(" **********************************************************\n\n"); printf(" * * \n");

printf(" Welcome to enter calendar system \n"); printf(" * * \n\n"); printf(" **********************************************************\n\n\n" ); printf(" 1 The month of current date 2 Date 3 Exit\n"); printf(" please import your choose<1~3>,press Enter to define: "); scanf("%d",&b); switch(b) { case 1: printf("\n Please import the year,month and day which you want to check,the year,month and day separation by blank space: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,1); if(a==0) { printf("Error!Please import again.\n"); break;} yueli(year,month,day); break; case 2: printf("\n Please import the year,month and day which you want to check, the year,month and day separation by blank space: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,day); if(a==0) { printf("Error!Please import again.\n"); break;} rili(year,month,day); break; case 3: exit(0); default: printf("Error!Please import again.\n\n"); } }

Java课程设计-万年历

河北科技大学课程设计报告 号:学生姓名:学 专业班级:程序设计课程设计Java课程名称:学期学年第 2 2 015 学年学期: 2 014 — 指导教师:刘伟月年 2 0

的?.................................................................. ................................1?? 2.需求分................................................................... .........析................................1? 3.总体设计................................................................... ........................................1? 4.详细设计................................................................... ........................................1?

5.软件测试................................................................... . (10) 6.课程设计总结................................................................... ................................11. 一、课程设计目的(1)熟练使用java语言编写程序,解决实际问题。? (2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;? (3)学会自己调试程序的方法并掌握一定的技巧。 二、需求分析本程序的要求为: 1.使用图形用户界面;? 2.本程序能够实现日期与星期的查询。 ?三、总体设计(1)可以通过图形界面显示日历。? (2)能以月历形式显示日期与星期。? (3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。? ?四、详细设计1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。 ,0若是取余得几既为星期几,7使总天数除以输出月份第一天为星期几的算法:2. 则为星期日。? 3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。? 4.查询年份必须为四位有效数字,否则不予显示。 程序源代码: import import import import import import; import import import ; import ; import import import java.awt.*; import import java.text.*; import ;

基于单片机电子万年历的毕业设计说明

单片机课程设计报告 电子万年历设计 姓名:建强 学号: 专业班级: 08电气(2)班指导老师:吴永 所在学院:科技学院 2011年6月30日

摘要 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。 具体实现功能: (1)显示年月日时分秒及星期信息 (2)具有可调整日期和时间功能 (3)与即时时间同步

目录 1方案论证 (3) 1.1单片机芯片的选择方案和论证 (3) 1.2显示模块选择方案和论证 (3) 1.3时钟芯片的选择方案和论证 (4) 1.4电路设计最终方案决定 (4) 2系统的硬件设计与实现 (5) 2.1电路设计框图 (5) 2.2系统硬件概述 (5) 2.3主要单元电路的设计 (5) 2.3.1单片机主控制模块的设计 (5) 2.3.2时钟电路模块的设计 (6) 2.3.3电路原理及说明 (7) 2.3.4显示模块的设计 (8) 3系统的软件设计 (9) 3.1程序流程框图 (9) 4测试与结果分析 (11) 4.1硬件测试 (10) 4.2软件测试 (10) 4.3测试结果分析与结论 (10) 4.3.1 测试结果分析 (10) 4.3.2 测试结论 (10) 5prodeus软件仿真........................................ ..........错误!未定义书签。 5.1Proteus ISIS简介 (12) 5.2Proteus运行流程 (13) 5.3Proteus功能仿真 (13) 6课程设计总结与体会.......................................... .....错误!未定义书签。 参考文献...........................................................错误!未定义书签。 附录一:系统电路图.................................................错误!未定义书签。 附录二:系统程序...................................................错误!未定义书签。

基于STM32的智能万年历课程设计说明书

课程设计说明书 设计题目:基于STM32的智能万年历 专业:电气工程及其自动化 班级: 设计人:

课程设计任务书 学院电气信息系专业电气工程及其自动化 一、课程设计题目:基于STM32的智能万年历 专题名称:最小应用系统 二、课程设计主要参考资料 (1)刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社.2013.5 (2)ADS7943中文参考资料[M/CD]. (3)ILI9320控制器中文参考资料[M/CD]. 三、课程设计应解决主要问题 (1)最小应用系统:包括MCU、复位、启动、晶振、电源等。 (2)日历的显示和设置; (3)万年历的算法和实现; (4)定时闹钟功能; (5)无线设置功能。 四、课程设计相关附件(如:图纸、软件等) (1)软件:Keil μVision4 (2)开发平台:神州Ⅱ号STM32嵌入式技术开发板 五、任务发出日期:课程设计完成日期: 指导教师签字:系主任签字:

指导教师对课程设计的评语 指导教师(签章): 日期:

摘要 单片机应用技术飞速发展,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,从大到国家防卫,小到日常生活,方方面面都离不开单片机。单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。 二十一世纪的今天科技与经济迅速发展,人们的生活节奏变得越来越快,生活水平越来越高,对于生活的品味和质量的要求也更高。人们不再满足于只能提供简单计时功能的时钟,希望在能保证计时精确的基础上能多添加一些其他功能,诸如日历、定时等。 本文主要介绍了以STM32F103VCT6开发板为核心部件来设计的一款万年历,以其内部的RTC时钟模块作为时钟,用TFTLCD液晶显示器作为显示模块,时钟电路能准确提供24小时制时间、平年闰年的判断以及定时。采用Keil uVision4进行编写调试程序,以神州二号嵌入式技术开发板为硬件平台进行设计,最终实现在显示屏上显示时间、日期、以及进行定时等功能。 以基于STM32的智能万年历作为设计的课题,因为它有很好的开放性和可发挥性,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。所以,电子万年历作为设计课题很有价值。 经过两周的课程设计,我们完成了按键和触摸两种方式对万年历的控制,实现了基本的万年历功能和闹钟功能。本次课程设计让我对万年历有了深刻理解,更让我对stm32有了更进一步的学习。 关键词:STM32F103VCT6;最小应用系统;万年历

单片机课程设计—万年历[1]

郑州轻工业学院 软件学院 单片机与接口技术课程设计总结报告 设计题目:电子万年历 学生姓名: 系别: 专业: 班级: 学号: 指导教师: 2011年12月16日

设计题目: 电子万年历 设计任务与要求: 1、显示年月日时分秒及星期信息 2、具有可调整日期和时间功能 3、增加闰年计算功能 方案比较: 方案一:系统分为主控制器模块、显示模块、按键开关模块,主控制模块采用 AT89C52单片机为控制中心,显示模块采用普通的共阴LED数码管,键输入采用中断实现 功能调整,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通 过按键盘开关实现对时间、日期的调整。 方案二:系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,电源 电路、复位电路、晶振电路等模块。主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302时钟芯片实现对 时间、日期的操作。 两个方案工作原理大致相同,只有显示模块和时钟电路不同。LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少; LCD1602液晶显示屏,显示功 能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说 要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管较多,而且不利于控制,因此选择LCD1602作为显示模块。DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的 应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具 有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。单片机有定时 器的功能,但时间误差较大,且需要编写时钟程序,因此采用DS1302作为时钟电路。 对比以上方案,结合设计技术指标与要求我们选择了方案二进行设计。

电子万年历课程设计

烟台南山学院单片机课程设计题目电子万年历 姓名: 所在学院:烟台南山学院 所学专业:自动化 班级: 学号: 指导教师: 完成时间:

摘要 单片机作为当今领域应用广泛的电子器件,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。以AT89C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由5V直流电源供电,通过数码管能够准确显示时间,日期,调整时间,日期,从而到达学习、设计、开发软、硬件的能力。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。本设计由单片机AT89C51芯片和LED数码管为核心,运用DS1302时钟芯片,辅以必要的电路,构成了一个单片机电子时钟。

1 绪论 (1) 2 总体方案设计与论证 (2) 2.1数字时钟方案 (2) 2.2显示方案 (3) 3 硬件系统的方案设计 (4) 3.1 系统框图 (4) 3.2 单片机的选择 (4) 3.3 时钟电路DS1302 (7) 3.4 时钟电路及复位电路 (9) 3.5 驱动电路 (9) 3.6 显示电路 (10) 3.7 按键接口 (11) 4 软件系统设计 (12) 4.1 时间信息获取程序 (12) 4.2 显示程序 (12) 5 系统调试 (13) 5.1 系统调试 (13) 5.2 时钟显示 (13) 5.3 DS1302的调试 (13) 5.4 按键电路调试 (13) 6 总结 (14) 参考文献 (15) 附录:系统程序 (16)

C语言课程设计报告-万年历1

课程设计题目:万年历 实验题目:万年历程序的编写 实验目的:综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用, 使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自 己的编程能力并逐步培养编程思维,进而不断提高同学们解决问 题的能力,并为以后的语言学习打下良好的基础。 实验要求:万年历设计 主要功能包括: 1、查询某年某月每一天对应星期几。 2、可以查询某年某月的上个月或是下个月的日历情况。 3、查询某年某月某日是这一年的第几天,并查询改天 是星期几。 4、判断该年是闰年还是平年,判断这一年的生肖。实现思路(要求有文字描述,并画出流程图):

实现过程(要求有文字说明实现的过程,并对相应的代码添加注释):见程序(程序见后)后的解析。。。运行时只要你输入年月日,你要的星系都会显示出来;如果想继续输入日期的话,只需按y就可以,祥结束按n就可以结束。 实验总结(分析程序的得与失): 得:通过这次程序设计,更使我了解了编程序的严谨性,每个问题,每个不走都得有依据,不得盲目乱造,同时也让我获得了一点 编写简单程序的能力,使自己平时在理论课中很多部明白的东 西明白了好多,学会了好多语句的用法,比如会用‘y’ or‘ n’ 来决定程序是否要继续;怎么控制输出格式等等。总之在这次 程序设计中我学到了很多。 失:在编程序过程中有些函数的用法不怎么会用,偶尔会落下写简单的东西。如‘,’‘;’等;同时在编写输出上下个情况及判断 程序是否要继续的程序上花费了好多时间;函数的声明、调用 既然不清楚,感到很惭愧。实验的过失就是成功的阶梯,在过 失中我也学到很多。 心得体会:我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。 要有耐心,有时候很多的错误就是一个地方引起的,只要认真 检查,一定能突破的,所以在以后的编程序是要细心,有耐心, 人不断调试程序,直至最后成功。 #include struct //定义包含年月日数组结构体 {int year; int month; int day;

多功能电子万年历课程设计

课程设计(论文) 题目名称多功能电子万年历课程设计 课程名称单片机原理及应用 2012年6月18 日

摘要 本设计基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。 关键词:AT89C51;电子万年历; DS1302

目录 1 绪论 (1) 1.1课题研究的背景 (1) 1.2课题的研究目的与意义 (1) 1.3课题解决的主要内容 (1) 2 系统的总体设计 (1) 2.1系统方案构思 (2) 2.2系统硬件框图 (2) 3 系统硬件的设计 (3) 3.1.1 器件的选用 (3) 3.1.2 AT89C51单片机 (3) 3.1.3单片机的选择 (6) 3.1.4 显示电路 (7) 3.1.5 ds1302时钟电路 (11) 4 系统软件的设计 (14) 4.1 算法设计、流程图、主程序 (14) 4.2 从1302读取日期和时间程序 (15) 5 系统仿真 (16) 5.1仿真环境PROTEUS (16) 5.2用PROTEUS ISIS对电子万年历的硬件电路设计 (16) 5.3用PROTEUS ISIS进行电子万年历的仿真测试 (20) 结论 (23) 致谢 (24) 参考文献 (25) 附录 (26) 附录1 (26)

课程设计万年历的设计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)

万年历C++课程设计报告

徐州师范大学科文学院本科生课程设计 课程名称:计算机程序设计实训 题目:万年历的设计 专业班级:电子信息工程08电信 学生姓名: 学生学号: 日期:2010/12/20 指导教师:姜芳艽 科文学院教务部印制

指导教师签字: 年月日

目录 摘要...................................................错误!未定义书签。 Abstract ...................错误!未定义书签。 1 绪论...................................................错误!未定义书签。 课题的设计......................................................................... 错误!未定义书签。 课题的背景……………………………………………………………………….错误!未定义书签。 课题的目的………………………………………………………………………..错误!未定义书签。 课题的意义………………………………………………………………………..错误!未定义书签。 2 设计方案简述 ..................................................... 错误!未定义书签。 设计总体规划..................................................................... 错误!未定义书签。 实现的功能………………………………………………………………………..错误!未定义书签。 结构模块分析……………………………………………………………………...错误!未定义书签。 3 详细设计 ............................................................. 错误!未定义书签。 设计思路............................................................................. 错误!未定义书签。 设计语言…………………………………………………………………………..错误!未定义书签。 设计程序流程图…………………………………………………………………..错误!未定义书签。 模块详细设计....................................................................... 错误!未定义书签。 大月和小月的定义………………………………………………………………..错误!未定义书签。 闰年与非闰年二月的定义………………………………………………………..错误!未定义书签。 日历表的输出……………………………………………………………………..错误!未定义书签。 4 设计结果及分析.................................................. 错误!未定义书签。 软件测试............................................................................... 错误!未定义书签。 设计成果............................................................................... 错误!未定义书签。 5 总结..................................................错误!未定义书签。 参考文献 ................................................................. 错误!未定义书签。

Java万年历课程设计报告

Java课程设计 设计题目:万年历 系别:计算机科学与工程学院 专业:信息管理与信息系统 学号: 1100340116 姓名:岑少兵 指导教师:汪华澄 时间: 2013-6-29

目录 摘要 (3) 系统功能结构图 (3) 1 系统模块设计 (4) 1.1 需求设计 (4) 1.2 开发和运行环境 (4) 1.3 功能设计 (4) 2 万年历详细设计思路 (4) 2.1 程序设计思路 (5) 2.2 程序运行主界面 (5) 2.3 流程图 (6) 3 各模块功能实现及代码说明 (6) 3.1 MainFramel类 (6) 3.2 Lunar类 (14) 3.3 national类 (22) 3.4 SetClock类 (26) 4 小结 (34) 5 参考文献 (34)

基于Myeclipse的万年历 摘要:万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会更加准确地显示时间。无论是对于我们学生还是上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度。 系统功能结构图:主要描述系统要实现的各个模块的功能。

1系统模块设计 1.1需求分析 本程序的要求为:1.使用图形用户界面 2.能够实现日期与星期的查询 3.能够显示农历 4.能够查看世界时间 5.能够添加闹钟 1.2 开发和运行环境 开发工具:Myeclipse 运行环境: windows 7 1.3功能设计 本程序要构建的万年历程序,其功能有以下几个方面: (1)通过 (2)提供年份、月份的下拉形式菜单来选择年份和月份。 (3)通过Lunar类实现农历日期。 (4)通过national类实现世界时间。 (5)能以月历形式显示日期与星期。 (6)通过SetClock类来实现闹钟功能。 (7)通过点击世界时间按钮查询世界时间 (8)通过点击闹钟按钮设置闹钟 (9)显示系统当前时间和日期。 (10)显示作者信息。 2万年历详细设计思路 2.1程序设计思路 1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,

单片机电子万年历课程设计报告书

单片机课程设计 姓名:吕长明 学号:04040804021 专业班级:机电四班

一、单片机原理及应用简介 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术 的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工 业控制系统、数据采集系统、自动测试系统、万年历电子表等。 二、系统硬件设计 8052 是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图图1: 图1 8052引脚 P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 8052芯片管脚说明: VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用

于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如表1所示: 表1 特殊功能口 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

基于单片机的万年历课程设计说明书剖析

郑州工业应用技术学院 课程设计说明书题目:基于单片机控制的电子万年历设计 姓名:许颖福 院(系):机电工程学院 专业班级:13电气工程1班 学号:1302120118 指导教师:祁瑞敏、杨坤漓 成绩: 时间:2015 年12月21 日至2015 年12 月30 日

郑州工业应用技术学院 课程设计任务书 题目: 基于单片机控制的电子万年历设计 专业、班级 13电气工程1班学号1302120118姓名许颖福 主要内容、基本要求、主要参考资料等: 主要内容: 设计一个基于单片机的电子万年历,能够显示时间、日期、温度等信息。并且具备调整时间、日期、定时等功能。 基本要求: 1.利用单片机、时钟芯片、温度传感器、显示模块等实现日期、时间、温度的显示即一个简单的万年历; 2.万年历的设计是几个简单模块的组合,硬件上是这样,软件上也是这样,要熟悉相关模块的设计思路; 3.通过Proteus仿真设计的使用,完成万年历的设计与仿真; 4.通过万年历的设计熟练掌握单片机的各个功能,并且能对单片机有一个总体的把握,在设计的过程中能够凭借对单片机各功能的了解,达到理想的设计效果; 5.通过该设计掌握时钟芯片DS1302、温度传感器DS18B20和LCD1602等芯片的使用方法。 主要参考资料: [1]李全利,单片机原理及接口技术[M],高等教育出版社 [2]王文杰,单片机应用技术[M],冶金工业出版社 [3]朱清慧,PROTEUS教程——电子线路设计、制版与仿真[M],清华大学出版社 [4]单片机实验指导书,天煌教仪 [5]彭伟,单片机C语言程序设计实训100例[M],电子工业出版社 完成期限: 指导教师签名: 课程负责人签名: 年月日

java-万年历课程设计报告

西安科技大学 程序设计综合实训课程设计报告 题目:万年历 班级: 学号: 姓名: 2103年12月

目录 1绪论 (1) 1.1选题目的及意义 (1) 1.2 系统概述 (1) 1.3 人员组成及分工 (1) 2 需求分析 (1) 3 总体设计 (1) 4 详细设计 (1) 5 系统实现 (2) 5.1 开发环境 (3) 5.2 关键技术 (3) 6.运行结果 (6) 7.软件测试 (7) 8.总结 (7) 9 参考文献 (8)

1.绪论 1.1选题目的及意义 选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我们组决定做一个万年历的设计。主要考虑到以前时间少课程内容多,JAVA课程基础内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我们组每个人的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JAVA 的一些基础知识掌握的更加牢固。 1.2 系统概述 随着电子技术的不断发展,人们的不断创新,万年历已经不再局限于书本形式,而是以电脑软件或者电子产品的形式出现。让其更加便捷。在学习了JAVA课程后,将以JAVA 形式编译出一个简易的万年历。 1.3 人员组成及分工 付磊:负责搜集查找资料 王杜超:调试程序 两人共同负责程序的编写与修改 2.需求分析 本程序的要求为:1.使用图形用户界面; 2.本程序能够实现日期与星期的查询。 3.可以添加或者删除日志 3.总体设计 (1)可以通过图形界面显示日历。 (2)能以月历形式显示日期与星期。 (3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。(4)可以添加或者删除并且点击对应日期显示日志。 4.详细设计 1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是 闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,

相关文档
相关文档 最新文档