当前位置:文档之家› 日历设计实验报告

日历设计实验报告

日历设计实验报告
日历设计实验报告

佛山科学技术学院

《可视化编程技术》课程设计报告

时钟日历设计

学生姓名:

学号:

年级专业:

指导老师:

学院:

广东★佛山

提交日期:2014年6月

目录

1. 前言 (2)

2.概要设计 (3)

2.1 开发环境 (3)

2.2 时钟日历功能 (3)

2.3 界面设计 (3)

2.4 类的框架结构图 (4)

3. 详细设计 (5)

3.1 使用的java类的说明 (5)

3.2 类的主要方法 (6)

3.2.1 设置3个按钮 (6)

3.2.2 日历、时钟、界面的绘制 (7)

3.2.3 导入素材文件 (10)

3.2.4 设计总体认识 (11)

4. 运行结果 (11)

5. 测试分析 (11)

5.1 程序运行情况 (11)

5.2 程序异常处理 (12)

6. 源程序....................................................................................13 参考文献.......................................................................................23 设计总结 (24)

摘要:该程序是一个图形界面的简单的java时钟日历,具有良好的界面。该程序可以自

动获取系统日期和时间。还可以翻看万年历,在点选日期的时候会有音效。程序中还有个会

移动的图形条,在右侧则有一个时钟图形,会跟着实时时间动。下方三个按钮可以播放一个

声音,play则播放一次,loop则循环播放, stop则停止播放声音。

关键字:java、日历类、时钟类、声音类、方法、事件

1 前言

随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文

本编辑器是个人计算机最司空见惯的应用程序了,在学习了java语言之后,我决定使用java

语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需

要。

java是由sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意

种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”

的目标。正因为如此,java已成为当今internet上最流行、最受欢迎的一种程序开发语言。

java开发小组把java按特性分为基本版、移动版、企业版,每个版本有一个软件开发

包。java基本版本叫java 2标准版(java 2 standard edition,j2se),它包含建立java

应用程序或者是applet所需的应用程序编程接口(api)。java 2移动版(the java 2 mobile

edition,j2me)包含创建无线java应用程序的api。还有java 2企业版(the java 2

enterprise,j2ee)是j2se的增强版本,包含建立多层架构应用程序api。

java语言是由c++语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一

种纯面向对象的程序设计语言,它非常适合大型软件的开发。java语言去掉了c++语言的一

些容易引起错误的特性。java语言的特点有:面向对象、跨平台、安全性、多线程和图形功

能强。

2 概要设计

2.1开发环境

开发平台:microsoft windows 7 旗舰版 service pack 1 开发工具:eclipse + jdk

1.6.0_02

2.2时钟日历功能

功能 1:显示实时日期

功能 2:显示实时时间

功能 3:翻看万年历

功能 4:单次播放声音

功能 5:循环播放声音

功能 6:停止播放声音

2.3界面设计

图2.3 时钟日历面板

2.4类的框架结构

//film是描述滚动图片的类.

class film extends canvas implements runnable { public void run(){} public void paint(graphics g){} public void update(graphics g){} } //audioplayer是描述底部音乐播放条的类.

class audioplayer extends panel { public boolean action(event e, object p){} } //calendar是描述日历和时钟的类.

class calendar extends panel implements runnable { public void run(){} public void paint(graphics g){} public void update(graphics g){} public boolean action(event evt, object arg){}篇二:java实验报告日历设

班级:**** 姓名:*** 学号:****10010127 java实验报告

实验7 日历

一、实验目的

1. 掌握swt 的容器概念及使用方法。

2. 掌握swt 中的工具栏与菜单的使用方法。

3. 掌

握swt 中的表格组件的使用。4. 掌握swt 各种对话框的使用方法。

二、实验内容:简单日历系统的设计与实现。

三、实验步骤:1. 简单日历系统的设计与实现

1) 创建java 类。在“包资源管理器”中用鼠标右击项目“practical”,选择快捷菜单

中“新建”→“visual class”;在打开的“new java visual class ”窗口中,“源文件夹”

的默认值是项目的文件夹,不需要更改,“包”栏中输入程序包的名称“ch7”。“名称”栏中

输入类名“su”,在“style ”列表框中选择“swt”→“shell”,选中“public static void

main(string[] args) ”复选框,使之自动创建一个main 方法,单击“完成”按钮,一个

含有gui 程序界面以及代码的编辑器窗口被打开。2) 添加组件。用鼠标右键单击gui 程序

界面的任何位置,在快捷菜单中选择“set layout”→“filllayout”。在“palette”面板

中用鼠标单击“swt containers ”中的“viewform”,在程序界面sshell 中添加viewform 容

器viewform 。从pallete 工具栏中依次单击组件:toolbar 和table ,在viewform 容器

添加一个工具栏toolbar 和一个表格table ,并在工具栏toolbar 中添加4 个工具栏按钮

toolitem~toolitem3;在表格中添加7 个表列tablecolumn~tablecolumn6 。更改4 个

工具栏按钮的text 属性分别为“上一年”、“上个月”、“下个月”和“下一年”;更改7 个

表列的text 属性分别为“日”~“六”,如图下所示。

(3)注意声明类的成员变量:calendar now=calendar.getinstance(); int year; int

month;

4) 为类“su”编写自定义的“重置”方法。在编辑器中编写代码如下:public class su

{ private shell sshell = null; // @jve:decl-index=0:visual-constraint=138,42 private viewform viewform = null; private toolbar toolbar = null; private table

table = null; private calendar now=calendar.getinstance(); int year; int month;

private void createviewform() { viewform = new

viewform(sshell, swt.none); createtoolbar(); viewform.settopleft(toolbar); table =

new table(viewform, swt.none); table.setheadervisible(true); table.setfont(new

font(display.getdefault(), tahoma, 10, swt.normal)); table.setlinesvisible(true);

tablecolumn tablecolumn = new tablecolumn(table, swt.center);

tablecolumn.setwidth(60); tablecolumn.settext(日); tablecolumn tablecolumn1 = new

tablecolumn(table, swt.center); tablecolumn1.setwidth(60);

tablecolumn1.settext(一); tablecolumn tablecolumn2 = new tablecolumn(table,

swt.center); tablecolumn2.setwidth(60); tablecolumn2.settext(二); tablecolumn

tablecolumn3 = new tablecolumn(table, swt.center); tablecolumn3.setwidth(60);

tablecolumn3.settext(三); tablecolumn tablecolumn4 = new tablecolumn(table,

swt.center); tablecolumn4.setwidth(60); tablecolumn4.settext(四); tablecolumn

tablecolumn5 = new tablecolumn(table, swt.center); tablecolumn5.setwidth(60);

tablecolumn5.settext(五); tablecolumn tablecolumn6 = new tablecolumn(table,

swt.center); tablecolumn6.setwidth(60); tablecolumn6.settext(六);

viewform.setcontent(table);} private void remove(calendar now){ int y; int year =

now.get(calendar.year); int month=now.get(calendar.month)+1; case

2:{ if((year%4==0 && year%100!=0)||(year%400==0))y = 29; else y=28; break; }

case 4:; case 6:; case 9:; case 11:y = 30;break; default: y=31; } now.set(year,

month-1, 1); int d=now.get(calendar.day_of_week)-1; int switch (month) { l=d+y;

string a[]=new string[42]; for(int i=d,n=1;i<l;i++){ a[i]=string.valueof(n++); } table.removeall(); for(int j=0;j<6;j++){ tableitem item = new tableitem(table, swt.left); item.settext(new

string[]{a[j*7+0],a[j*7+1],a[j*7+2],a[j*7+3],a[j*7+4],a[j*7+5],a[j*7+6]}); }

sshell.settext(year+年+(month)+月份); } (5). 依次为工具栏按钮添加选择事件响应。用鼠标右键单击工具按钮,在快捷菜单中

选择“events”→“add events”,在弹出的“add events ”对话框中选择“selection”

→“widgetselected”,单击“完成”按钮。

首先:toolitem 添加的事件响应代码为:toolitem.addselectionlistener(new

org.eclipse.swt.events.selectionlistener() { public void widgetselected(org.eclipse.swt.events.selectionevent e) { year--; now.set(year, month-1, 1); remove (now); } public void widgetdefaultselected(org.eclipse.swt.events.selectionevent e) {} });

其次:为toolitem1 添加的事件响应代码为:

toolitem1.addselectionlistener(new

org.eclipse.swt.events.selectionlistener() { public void widgetselected(org.eclipse.swt.events.selectionevent e)

{ month=month-1; if(month==0){ year--; month=12; } now.set(year, month-1, 1);

remove (now); }

public void widgetdefaultselected(org.eclipse.swt.events.selectionevent e) { } });

再者:为toolitem2 添加的事件响应代码为:toolitem2.addselectionlistener(new

org.eclipse.swt.events.selectionlistener() { public void widgetselected(org.eclipse.swt.events.selectionevent e)

{ month=month+1; if(month==13){ year++; month=1; } now.set(year, month-1, 1);

remove (now); }

public void widgetdefaultselected(org.eclipse.swt.events.selectionevent e) { } });

最后:为toolitem3 添加的事件响应代码为:toolitem3.addselectionlistener(new

org.eclipse.swt.events.selectionlistener() { public void widgetselected(org.eclipse.swt.events.selectionevent e) { year++;

now.set(year, month-1, 1); remove (now); } public void widgetdefaultselected(org.eclipse.swt.events.selectionevent e) { } });

(6)、为了初始化表格中的月历,修改类的createsshell() 方法代码如下:

private void createsshell() { sshell = new shell(); sshell.settext(日历----苏建); sshell.setfont(new font(display.getdefault(), tahoma, 14, swt.normal)); sshell.setforeground(new color(display.getcurrent(), 255, 0, 0)); sshell.setsize(new point(435, 313));createviewform(); sshell.setlayout(new filllayout()); year = now.get(calendar.year); month=now.get(calendar.month)+1; now.set(year, month-1, 1); remove(now); }} (7) 运行程序。选择菜单“运行”→“运行方式”→“3 swt 应用程序”,程序运行结

果如下图所示:使用几个工具栏按钮的结果如下:

四、实验总结及感想:

刚开始学习java,感觉很多东西都没搞懂,特别是面向对象这本书,真的没搞懂,前面

讲的一些简单的面向对象思想,都有一定的道理。书上说到一切物体都可以说是对象,也就

是说什么东西都可以看成是一个对象。面向对象三大基本特征:继承,封装,多态。其实,

之前我就看了一些关于c++和c的一些面向对象的知识都跟java面向对象相类似。例如:继

承就是子类继承父类重写了父类中的公共方法。封装就是把程序的信息隐藏起来,有点抽象。

多态就是同一消息,不同体现方式。java面向对象思想就是把所有的东西看成是一个对象,

对该对象进行程序设计。该对象拥有属性和行为。通过最近的实训我认识到java是个很好的

开发平台,我应该好好的学习它的基本知识,为将来开发软件提供更好的前提条件。

篇三:小日历-java课程设计实验报告.doc 目录

1.设计目标???????????????????3

2.设计思想???????????????????3

3.类及对象设计?????????????????3

4.程序源代码??????????????????4

5.调试记录???????????????????14

6.总结?????????????????????15

7.参考文献???????????????????17 java小日历组件设计

1.设计目标

本课程设计是一个java小日历组件的设计,利用frame框架类、面板类进行图形化界面

设计,实现小日历的公历显示等功能。

2.设计思想

(1)本小日历设计主体结构为:设计一个框架mainframe,然后在mainframe里添加一

个mainpanel面板。定义一个mainpanel面板类,该面板以边布局格式,所有其他面板、标

签等均添加到该面板中。

(2)mainpanel面板北部(上方),添加一个年月面板yearmonthpanel。该年月面板主

要放年份显示、月份显示、标题显示。yearmonthpanel面板也使用边布局格式,西部添加一

个年份面板,放年份信息;中部添加一个textpanel面板,放标题文本显示信息;东部添加

一个月份面板monthpanel,放月份下拉框信息。

(3)mainpanel主面板的中部,添加一个dayspanel面板用于放置月份的天数表格信息。

(4)mainpanel主面板的南部(下方),添加一个infopanel面板,主要用于放置显示

个人信息。

3.设计类及对象设计

在本程序中:定义了一个frame类,主要定义一个窗体框架,用于显示日历信息,并在

主函数中只创建一个该窗体对象实现程序功能。

定义了一个主日历面板类xiaorili,其中包含了日历设计所用到的全局变量、功能函数

等,在frame类里定义了其对象。在该日历面板类里又设计了一个内部类calendartable表

格类,用于布局日历天的显示格式。

为了设计一个超级链接,定义了一个linklable类,单独保存在一个文件linktbale.java

中,在日历面板类xiaorili里定义了其对象。

4.程序源代码

(1)xiaoril.java文件代码:

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*; import javax.swing.table.*; public class xiaorili extends japplet { //================================================== /*定义全局变量*/

public static final color background = color.white;//背景色

public static final color foreground = color.black;//前景色

public static final color headerbackground = color.dark_gray;//星期

public static final color headerforeground = color.white;//星期前景色

public static final color selectedbackground = color.green;//选中背景色

public static final color selectedforeground = color.white;//选中前景色

public static final string weeksun = 星期日; //星期标签名称

public static final string weekmon = 星期一; public static final string weektue = 星期二; public static final string weekwed = 星期三; public static final string weekthu = 星期四; public static final string weekfri = 星期五; public static final string weeksat = 星期六; private jpanel mainpanel;//日历面板

private jlabel yearslabel;//“年份”标签

private jspinner yearsspinner;//年份组合框

private jlabel monthslabel;//“月份”标签

private jlabel textlabel;//标题显示标签

private jlabel infolabel;//个人信息显示标签

private jtable daystable; //日表格

private abstracttablemodel daysmodel;//天单元表格

private calendar calendar;//日历对象

//================================================== /*函数定义*/

public xiaorili() {//构造函数

mainpanel = (jpanel) getcontentpane(); }

public void init() {//初始化面板界面函数

mainpanel.setlayout(new borderlayout()); calendar = calendar.getinstance();//默认方式,以本地的时区和地区来构造

calendar

//-------------------------------------- yearslabel = new jlabel(年份: ); //设置年份标签显示

yearsspinner = new jspinner();//构造年份spinner组合框

yearsspinner.seteditor(new jspinner.numbereditor(yearsspinner, 0000)); yearsspinner.setvalue(new integer(calendar.get(calendar.year)));

yearsspinner.addchangelistener(new changelistener() {//注册该组合框的事件监听

public void statechanged(changeevent changeevent) { int day = calendar.get(calendar.day_of_month); calendar.set(calendar.day_of_month, 1); calendar.set(calendar.year, yearsspinner.getvalue()).intvalue()); int maxday = ((integer) calendar.getactualmaximum(calendar.day_of_month); calendar.set(calendar.day_of_month, day > maxday ?篇四:小日历-java课程设计实验报告

《java2程序设计》

课程设计报告

设计题目 java小日历组件设计

专业计算机科学与技术

班级 0 9计本班

姓名文肇星

学号

2010 年12 月 21 日

目录

1.设计目标???????????????????3

2.设计思想???????????????????3

3.类及对象设计?????????????????3

4.程序源代码??????????????????4

5.调试记录???????????????????14

6.总结?????????????????????15

7.参考文献???????????????????17 java小日历组件设计

1.设计目标

本课程设计是一个java小日历组件的设计,利用frame框架类、面板类进行图形化界面

设计,实现小日历的公历显示等功能。

2.设计思想

(1)本小日历设计主体结构为:设计一个框架mainframe,然后在mainframe里添加一

个mainpanel面板。定义一个mainpanel面板类,该面板以边布局格式,所有其他面板、标

签等均添加到该面板中。

(2)mainpanel面板北部(上方),添加一个年月面板yearmonthpanel。该年月面板主

要放年份显示、月份显示、标题显示。yearmonthpanel面板也使用边布局格式,西部添加一

个年份面板,放年份信息;中部添加一个textpanel面板,放标题文本显示信息;东部添加

一个月份面板monthpanel,放月份下拉框信息。

(3)mainpanel主面板的中部,添加一个dayspanel面板用于放置月份的天数表格信息。

(4)mainpanel主面板的南部(下方),添加一个infopanel面板,主要用于放置显示

个人信息。

3.设计类及对象设计

在本程序中:定义了一个frame类,主要定义一个窗体框架,用于显示日历信息,并在

主函数中只创建一个该窗体对象实现程序功能。

定义了一个主日历面板类xiaorili,其中包含了日历设计所用到的全局变量、功能函数

等,在frame类里定义了其对象。在该日历面板类里又设计了一个内部类calendartable表

格类,用于布局日历天的显示格式。

为了设计一个超级链接,定义了一个linklable类,单独保存在一个文件linktbale.java

中,在日历面板类xiaorili里定义了其对象。

4.程序源代码

(1)xiaoril.java文件代码:

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*; import javax.swing.table.*; public class xiaorili extends japplet { //================================================== /*定义全局变量*/

public static final color background = color.white;//背景色

public static final color foreground = color.black;//前景色

public static final color headerbackground = color.dark_gray;//星期

public static final color headerforeground = color.white;//星期前景色

public static final color selectedbackground = color.green;//选中背景色

public static final color selectedforeground = color.white;//选中前景色

public static final string weeksun = 星期日; //星期标签名称

public static final string weekmon = 星期一; public static final string weektue = 星期二; public static final string weekwed = 星期三; public static final string weekthu = 星期四; public static final string weekfri = 星期五; public static final string weeksat = 星期六; private jpanel mainpanel;//日历面板

private jlabel yearslabel;//“年份”标签

private jspinner yearsspinner;//年份组合框

private jlabel monthslabel;//“月份”标签

private jlabel textlabel;//标题显示标签

private jlabel infolabel;//个人信息显示标签

private jtable daystable; //日表格

private abstracttablemodel daysmodel;//天单元表格

private calendar calendar;//日历对象

//================================================== /*函数定义*/

public xiaorili() {//构造函数

mainpanel = (jpanel) getcontentpane(); }

public void init() {//初始化面板界面函数

mainpanel.setlayout(new borderlayout()); calendar = calendar.getinstance();//默认方式,以本地的时区和地区来构造

calendar

//-------------------------------------- yearslabel = new jlabel(年份: ); //设置年份标签显示

yearsspinner = new jspinner();//构造年份spinner组合框

yearsspinner.seteditor(new jspinner.numbereditor(yearsspinner, 0000)); yearsspinner.setvalue(new integer(calendar.get(calendar.year))); yearsspinner.addchangelistener(new changelistener() {//注册该组合框的事件监听

public void statechanged(changeevent changeevent) { int day = calendar.get(calendar.day_of_month); calendar.set(calendar.day_of_month, 1); calendar.set(calendar.year, yearsspinner.getvalue()).intvalue()); int maxday = ((integer) calendar.getactualmaximum(calendar.day_of_month); calendar.set(calendar.day_of_month, day > maxday ?篇五:日历记事本实验报告课程设计报告

( 2013-- 2014 年度第二学期) 名称:软件设计与实践题目:院系:计算机系班级:

学号:学生姓名:指导教师:软件设计与实践教学组设计周数:

2

成绩:

日期: 2014 年 9 月

3

软件设计与实践

任务书

一、

目的与要求

目的:通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测

试等各种能力,积累软件开发的经验,提高学生进行软件开发所需具备的专业素质以及团队

协作能力。

要求:完成一个gui界面的日历记事本的分析、设计、编程、测试工作。

二、主要内容

1. 编写一个gui界面的日历记事本,结合两者的功能。

2. 用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容;

3. 能够在

对应的日期时间给用户以提醒;

三、进度计划

四、设计(实验)成果要求

程序代码注释丰富,经过测试,运行正常、合理。程序页面友好,使用方便。

五、考核方式

1. 平时成绩占10%。

2. 综合实验完成情况占30%。

3. 实验问答占20%

4. 实验报告

占40%。

学生姓名:

指导教师:软件设计与实践教学组

年月日

一、课程设计的目的与要求

1.目的:通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测试等各种能力,积累软件开发的经验,提高学生进行软件开发所需具备的专业素

质以及团队协作能力。 2.要求:见任务书。二、设计正文

1.需求规格说明书

编写的日历记事本,拥有了现实日历很难很快查询实现的功能。现在电脑使用用户越来

越多,就不需要购买现实的日历,而通过这个小小的程序就可以帮助人们知道现在和未来的

日期,还可以查询你想要的日期。能够给用户带来更加简单和实用的感觉。还可以添加事件

作为备忘,并在你想要的时间里提醒你。

方便性:是一种虚拟的日历而不是现实的,查询日期的速度快,查询准确。使用户能更

快的知道自己想要的日期。并对日期进行日志编辑操作。

实用性:不需要用户去购买其他现实日历,只需拥有这个小小的程序。可以记录所需要

记录的事情。

2.设计说明书 2.1 数据库设计:

设计4列数据,分别为id(事件编号)自动编号主码,rq(日期)文本,txsj(提醒

时间)文本,note(事件内容)文本。

2.2 编写环境:delphi xe2 2.3 设计思想 2.

3.1 连接数据库:

a.新建data module窗体,添加adoconnecion和adotable控件。 b.在每个需要数据

库的窗体上都添加datasourse控件。

2.3.2 主窗体:

a.添加月历和周历空间,方便使用者一打开程序就能获知当天日期。

b.添加查询功能,你想知道某一日期是周几,输入年月日,将它们转化为int输入到周

历中,然后显示那天为周几。

c.添加timer空间作为提醒,加入循环判断数据库中的日期时间与电脑的日期时间的函

数,若相等则显示事件等待完成。提醒也可以人为控制打开或关闭。

2.3.3 添加事件窗体

a.用户打开该窗体,默认datetimepicker时间为当前系统时间。

b.通过radiogroup控件设计的两个按钮来选择你是否想要添加提醒,若是,则把提醒

时间写入到数据库,反之不写入。

c.‘增加’按钮为写入,写入时再加入判断tedit是否为空,‘取消’按钮则把你输入到

tedit的内容置空以重新输入。

d.所有写入的日期时间都转化为string型后写入数据库。

2.3.4 查询事件窗体

4. 这个程序功能比较简单单一,写的时候没有参照其它手机电脑上供人下载安装的日

历记事本相关软件,编写软件经验不足,考虑事情不够周到。

数电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个月,月计数器向年计数器进一位,从而实现年月的周期性计数。 月份计数器电路原理图如下: 年份计数器电路图如下:

课程设计(数字日历钟表的设计)

课程设计说明书(论文) 课程名称:课程设计1 设计题目:数字日历钟表的设计 院系: 班级: 设计者: 学号: 设计时间:2013-6-19

哈尔滨工业大学 哈尔滨工业大学课程设计任务书 姓名:院(系): 专业:班号: 任务起至日期:2013 年 5 月日至2013 年 6 月19 日 课程设计题目:数字日历钟的设计 已知技术参数和设计要求: 1.数码管显示:秒、分、时(可同时显示,也可轮换显示) 2.能够设置时间,“设置按键”数量不限,以简单合理易用为好。 3.误差:1 秒/天(报告中要论述分析是否满足要求) 扩展(优秀必作) 1.设置校准键:当数字钟显示在“整点±30 秒”范围时,按动“校准键”,数字钟即刻被调整到整点,消除了±30 秒的误差。 2.加上“星期”显示(可以预置),并可以对其进行设置。 其他要求: 1.按动员老师的要求、课程设计报告规范进行设计 2.不允许使用时数字钟表、日历专用IC 电路。 3.可以使用通用器件:模拟、数字、单片机、EPLD、模块电路等。 4.设计方法不限。

工作量: 1. 查找资料 2. 设计论证方案 3. 具体各个电路选择、元器件选择和数值计算 4. 具体说明各部分电路图的工作原理 5. 绘制电路原理图 6. 绘制印刷电路图 7. 元器件列表 8. 编写调试操作 9. 打印论文 工作计划安排: 1. 查阅资料: 2. 方案论证 3. 设计、分析、计算、模拟调试、仿真、设计原理 4. 撰写报告:课程设计要求、方案论证、原理论述(原理框图、原理图)、分析、计算、仿真, PCB 图的设计,误差分析、总结,参考文献等 5. 上交课程设计论文2013-6-19 同组设计者及分工:

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

目录 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生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

电子日历时钟设计

目录 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读写过程进行控制,它的格式如下:

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

湖南科技大学 信息与电气工程学院《单片机原理与应用课程设计报告》 题目:电子日历 专业:电子信息工程 班级: 姓名: 学号: 指导教师: 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

Java日历记事本课程设计报告

Java日历记事本课程设计报告 在设计日历记事本时,需要编写6个JAVA源文件:、、、、和 效果图如下 . CalendarWindow类 import .*; import .*; import .*; import .*; public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener{ int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad;

JTextField showYear,showMonth; JTextField[] showDay; CalendarImage calendarImage; String picturename; Clock clock; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; JButton getPicture; File dir; Color backColor= ; public CalendarWindow(){ dir=new File("./dailyRecord"); (); showDay=new JTextField[42]; for(int i=0;i<;i++){ showDay[i]=new JTextField(); showDay[i].setBackground(backColor); showDay[i].setLayout(new GridLayout(3,3)); showDay[i].addMouseListener(this); showDay[i].addFocusListener(this); } calendarMessage=new CalendarMessage(); calendarPad=new CalendarPad(); notePad=new NotePad(); Calendar calendar=(); (new Date()); year=; month=+1; day=; (year); (month); (day); (calendarMessage); (showDay); (year,month,day); (); doMark(); calendarImage=new CalendarImage(); (new File("")); clock=new Clock(); JSplitPane splitV1=new JSplitPane,calendarPad,calendarImage); JSplitPane splitV2=new JSplitPane,notePad,clock); JSplitPane splitH=new JSplitPane,splitV1,splitV2);

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

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

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

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

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

数字电路综合设计报告 电子日历 一、 设计要求 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单片机是各单片机中最为典型和最有代表性的一种。以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)

Java日历记事本课程设计报告

Java 日历记事本课程设计报告 在设计日历记事本时,需要编写6个JAVA源文件:、、、、和 效果图如下 . CalendarWindow 类 import .*; import .*; import .*; import .*; public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener{ int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad; JTextField showYear,showMonth; JTextField[] showDay; CalendarImage calendarImage;

String picturename; Clock clock; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; JButton getPicture; File dir; Color backColor= ; public CalendarWindow(){ dir=new File("./dailyRecord"); (); showDay=new JTextField[42]; for(int i=0;i<;i++){ showDay[i]=new JTextField(); showDay[i].setBackground(backColor); showDay[i].setLayout(new GridLayout(3,3)); showDay[i].addMouseListener(this); showDay[i].addFocusListener(this); } calendarMessage=new CalendarMessage(); calendarPad=new CalendarPad(); notePad=new NotePad(); Calendar calendar=(); (new Date()); year=; month=+1; day=; (year); (month); (day);

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

单片机课程设计 姓名:吕长明 学号: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脚两个机器周期的高电平时间。

java课程设计_简单日历程序

课程设计题目 2. 题目说明 通过编写一个基于JAVA的应用系统综合实例,自定义一个日历组件显示日期和时间并进行适当的功能扩充,实践Java语言编程技术。 3. 系统设计 2.1 设计目标 一个完整的程序应具有以下功能: 1)显示当月日历、当前日期、当前时间; 2)可查寻任意月以及任意年的日历; 3)使用图形化界面能够弹出对话框; 5)正常退出程序。 2.2 设计思想 设计一个类用来构成日历系统的主窗口,然后编写一个框架类显示时间和提示信息。在设计中应用了多种容器和控件。 2.3 系统模块划分 图1:简易日历的程序结构图

2.3.1初始化: public void init()完成界面初始化,形成一个以挂历形式显示当前日期的窗口。 2.3.2 日历描述: (1)public void updateView()改变日期后完成更新界面; (2)抽象类java.util.Calendar获取系统日期并传递日期数据而且在人工改变日期后得出当天是周几; (3)public static void main(String[] args) 主函数完成系统各算法的调用并对主窗口的一些属性进行设置; 2.3.3 滚动时间: 将时间以文本的形式在文本框中滚动播出,并能改变滚动的速度。 4. 使用类及接口 仅仅简单说明类的功能,详细资料请参看《JavaTM 2 Platform Standard Ed. 6》的电子文档,常规的接口与包则省略不屑。 //以下是日历程序块中使用的类 package fancy; import java.awt.*; import java.awt.event.*; import java.util.*; //主要用此包中的日期和时间类 import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; //以下是对滚动时间程序块所使用的类和接口, 用到定时器类Timer

课程设计-电子日历表

课程设计-电子日历表

————————————————————————————————作者:————————————————————————————————日期:

数字电子技术课程设计 河南城建学院自动化专业 题目:电子日历表 姓名:郑文杰 学号:092411257 指导教师:周炎 时间:2013年6月24日~2013年6月27日

指导教师评语:成绩:

摘要 本设计是一个将“年”、“月”、“日”显示出来的电子日历。数字电路具有理解简单、可靠性高、成本低等优点。所以本设计就是以数字电路为核心的时间显示装置。主要由由脉冲源,计数电路,反馈电路,门电路和显示电路构成。 由于此次设计年、月、日均为循环计数,故采用计数器实现循环计数及进位,日计数器有四个不同进制的计数器组成,月计数器输出的脉冲经过门电路来控制各计数器的使能端使被选中的日计数器工作。其中二月份的天数比较特别,在平年和闰年中的天数不同,所以让年计数器的输出脉冲与二月份信号一起控制对二月份天数的选择。最后用七段式译码显示器显示出年、月、日。同时引进电子校对电路,使得显示结果出错率大大降低。 在这次设计中我和搭档首先分析了一下要完成本次设计需要哪些功能而完成这些功能的元件又是哪些,然后再通过查找资料设计出大概方案。在对整个模块进行分析和画出电路总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求、达到预期设计效果。 关键词:电子日历、计数器、循环 目录

1 概述 (5) 1.1 设计目的 (5) 1.2 设计要求 (5) 1.3 设计任务 (5) 1.4 设计原理 (5) 2 设计方案及其比较 (6) 2.1 方案比较 (6) 2.2 设计电路的总体结构 (6) 2.3 设计所用元件 (7) 3 各部分电路设计 (8) 2.1 日计数器 (8) 2.2 月计数器 (9) 2.3 年显示电路 (10) 2.4 反馈电路 (11) 4软件仿真整体电路 (12) 5课程设计体会 (13) 6参考文献 (14) 1 概述

基于c语言单片机智能电子日历课程设计

课程设计报告 课程名称:单片机课程设计 报告题目:智能电子日历 学生姓名: 所在学院:信息科学与工程学院专业班级: 学生学号: 指导教师: 2013 年12 月25 日

课程设计任务书

摘要 本设计是根据我们所学的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。单片机技术作为电子专业的基础课程之一,对我们将来的工作以与生活和学习都有很密切的联系;近年来随着电子技术和微机计算机的迅速发展,单片机的性能不断更新和提高,应用领域也不断扩大,已经在工业控制、尖端科技、智能仪器、汽车电子系统、办公自动化系统、通信产品等等领域有广泛的应用,成为现代电子系统中最重要的智能化核心器件。 关键词:单片机,电子技术,智能化

目录 一、概述 (5) 二、方案设计与论证 (5) 1.单片机芯片选择 (5) 2.时间计算模块 (5) 3.显示模块 (6) 三、单元电路设计 (6) 1.单片机最小系统电路 (7) 2.数码管电路 (8) 3.按键电路 (9) 四、程序设计 (10) 1.程序总体思路和分析 (10) 2.程序清单 (11) 五、结论与心得 (19) 六、参考文献 (20)

一、概述 本系统以STC89C52单片机为控制核心,通过单片机计时器模拟时间输出,并将时间通过数码管实时显示出来,通过相应的按键调整相应的数值和功能。所以本设计可以分为以下几个模块:显示模块、按键模块、定日输出模块。下面对各个模块进行逐一分析。 二、方案设计与论证 时间计算模块有两种方式,一种利用现成的时间计时芯片实时读取时间,然后显示;第二种是利用STC89C52单片机内部的定时/计数功能,实现时间的计算。 1.单片机芯片选择 方案一:采用89C52作为硬件核心 采用Flash ROM,内部具有4KB ROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在先编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二:采用AT89S52作为硬件核心 片内ROM全部采用Flash ROM;能以3V的超低压工作,同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成一定的损坏。 所以选择采用AT89S52作为主控制系统。 2.时间计算模块 方案一:DS1302芯片 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,才用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月、年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽带2.5~5.5V。采用双电源供电,可以设置备用电源充电方式,提供了对后备电源进行涓流充电的能力。利用单片机的控制功能就可以实现实时计时的功能,而且消耗的系统资源少,程序简单。 方案二:单片机内部定时器/计数器 STC89C52单片机内部带有定时器/计数功能,此定时功能时通过对外部晶

数电课设电子日历

电子课程设计 ——电子日历 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导教师:任青莲 2014年12月

目录 一、设计任务与要求 (4) 1.1、设计任务 (4) 1.2、设计要求 (4) 二、系统设计 (4) 2.1、总体框图 (4) 2.2、系统方案的设计和选择 (5) 2.2.1、方案一 (5) 2.2.2、方案二 (5) 2.2.3、应用方案的具体阐述 (5) 三、选择器件 (6) 3.1、元器件清单如表1 (6) 3.2、元器件简介 (7) 3.2.1、74LS192 (7) 3.2.2、74LS160 (8) 3.2.3、逻辑门 (9) 3.2.4、数码管 (11) 四、功能模块 (11) 4.1、脉冲模块 (11) 4.1.1、CP端脉冲(1KHZ) (11) 4.1.2、计秒脉冲 (12) 2

4.2、复位电路 (14) 4.3、日计数器和星期计数器 (15) 4.4、月计数器 (16) 4.5、年计数器 (16) 五、总体电路图 (17) 5.1、仿真图 (17) 5.2、硬件电路图 (18) 六、实验困难及解决措施 (20) 6.1、逻辑门的延时问题 (20) 6.2、实现手动校正功能。 (20) 七、心得与总结 (20) 3

电子日历 一、设计任务与要求 1.1、设计任务 (1)能够显示一百年内的年、月、日、星期。 (2)例如“13、12、25 7”,星期天显示数字“7”。 (3)具有手动校正年、月、日、星期的功能。 (4)不考虑闰年。 (5)可以手动复位。 1.2、设计要求 (1)熟悉集成电路的引脚安排。 (2)掌握芯片的逻辑功能及使用方法。 (3)了解电子日历的组成及工作原理。 (4)熟悉电子日历的设计与制作。 (5)熟悉multisim电子电路设计及仿真软件的应用。 二、系统设计 2.1、总体框图 由于年、月、日、星期均为循环计数,故采用计数器实现循环计数及进位。星期采用一位数码管显示的7进制(1至7);日计数器由两位数码管组 成的31进制(0至31)计数器;月计数器为两位数码管显示的12进制(1 至12);年由两位数码管显示的100进制(0至99)计数器,如果发生错误 可通过校正电路手动校正。星期和日计数器采用共同脉冲,两者互不影响,日计数器满31向前进位,自身自动置为01,同时月计数器加1,月计数器 满12向前进位,自身置为01,同时年计数器加1,年计数器满99自动清零。 所有电路均可以统一进行复位。 总体框图如图1所示。 4

课程设计电子日历表

课程设计电子日历 表 1 2020年4月19日

数字电子技术课程设计 河南城建学院自动化专业 题目:电子日历表 姓名:郑文杰 学号: 指导教师:周炎 时间:6月24日~6月27日

指导教师评语: 成绩: 3 2020年4月19日

摘要 本设计是一个将“年”、“月”、“日”显示出来的电子日历。数字电路具有理解简单、可靠性高、成本低等优点。因此本设计就是以数字电路为核心的时间显示装置。主要由由脉冲源,计数电路,反馈电路,门电路和显示电路构成。 由于此次设计年、月、日均为循环计数,故采用计数器实现循环计数及进位,日计数器有四个不同进制的计数器组成,月计数器输出的脉冲经过门电路来控制各计数器的使能端使被选中的日计数器工作。其中二月份的天数比较特别,在平年和闰年中的天数不同,因此让年计数器的输出脉冲与二月份信号一起控制对二月份天数的选择。最后用七段式译码显示器显示出年、月、日。同时引进电子校对电路,使得显示结果出错率大大降低。 在这次设计中我和搭档首先分析了一下要完成本次设计需要哪些功能而完成这些功能的元件又是哪些,然后再经过查找资料设计出大概方案。在对整个模块进行分析和画出电路总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求、达到预期设计效果。 关键词:电子日历、计数器、循环 4 2020年4月19日

目录 1 概述 (5) 1.1 设计目的 (5) 1.2 设计要求 (5) 1.3 设计任务 (5) 1.4 设计原理 (5) 2 设计方案及其比较 (6) 2.1 方案比较 (6) 2.2 设计电路的总体结构 (6) 2.3 设计所用元件 (7) 3 各部分电路设计 (8) 2.1 日计数器 (8) 2.2 月计数器 (9) 2.3 年显示电路 (10) 5 2020年4月19日

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