文档库 最新最全的文档下载
当前位置:文档库 › Java课程教学设计-时钟图形模拟

Java课程教学设计-时钟图形模拟

Java课程教学设计-时钟图形模拟
Java课程教学设计-时钟图形模拟

课程设计任务书

目录

1 设计内容及要求 (1)

1.1 设计内容 (1)

1.2 设计目的及意义 (1)

2 概要设计 (1)

2.1功能简介 (1)

2.2功能说明: (1)

2.3 总体程序框图 (2)

3 设计过程 (3)

3.1各个模块程序流程图 (3)

3.2运行界面及关键代码 (4)

4设计结果与分析 (6)

4.1设计结果 (6)

4.2分析 (6)

5 总结 (7)

6 参考文献 (7)

附程序清单及源程序 (8)

1 设计内容及要求

1.1 设计内容

通过编程最终使电脑屏幕显示模拟时钟,并正常运行显示表针时间,电脑上呈现一个图种的模型表示电脑上的时间,并可以模拟时钟走动。

1.2 设计目的及意义

设计目的及意义:熟悉Visual c++ 6.0软件的应用,C语言相关函数,语句的学习,查找资料代码等,编程、调试、运行、效果显示调整,完成上传,熟悉编程语言,了解程序运行以及图像显示等C语言的应用,通过编程实现既定功能。培养自学能力,独立思考能力,将理论形成实际运用,同时可以掌握下列运算符的使用:

1 .数据类型(整形、实型、字符型、指针、数组、结构等)。

2 .运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等)。

3 .程序结构(顺序结构、判断选择结构、循环结构)

5 .复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。

6 .学会编制结构清晰、风格良好、数据结构适当的C语言程序。

2 概要设计

2.1功能简介

实现功能如下:

(1)在屏幕上最终显示一个图形时钟(用程序绘制一个与时钟样式相似即可),能模拟机械钟表行走。

(2)数字式显示时间与指针式显示时间一致,且各指针运动规律正确。

(3)能准确的利用数字显示时间和日期。

(4)按ESC可以退出程序。

2.2功能说明:

内容:指针式时钟模块完成在屏幕上显示一个活动时钟,模拟机械钟表行走,时针,分针,秒针不同颜色且顺时针旋转,获取系统时间;数字式时钟模块完成显示时间格式年月日时分秒,小时为24小时制,分和秒为60进制与指针式的时

钟显示时间同步并获取系统时间。

说明:指针顺时针旋转;指针式的时钟表盘为圆形;圆周上分布均匀的12个刻度;有3个长度不同的指针,即时针,分针,秒针的运动具有规律性;数字钟显示时间格式年月日时分秒,小时为24进制,分和秒为60进制;指针式的时钟与数字式的时钟显示时间同步;其主要的设计思想如下:

1 . 确定秒针的走时,将圆分成60份每过一秒,秒重要转过1/60个园,即一等份。

2 . 确定分针真的走时,将圆分成60份每过一分,分针要转过1/60个圆,即一等份分针自己走过的再加秒针的,才是此四分钟的位置。

3 . 时钟走动与系统时间联系:每过一秒画出秒针,并且除去前一秒的秒针,分针和秒针一样,画线函数与时间联系使用变量。

4 . 设置横纵坐标及表针:X =

a*cos(b*pi/180)+300;Y=a*sin(b*pi/180)+240;

2.3 总体程序框图

(系统模块图)

首先,先画出个钟的大致轮廓。从输出数字到画出外轮廓,到标出短线到画出时针、分针、秒针。这个轮廓就已经完成了。然后,为了更加这个钟的实用性。就通过获取系统时间来结合实际意义,这是最简单,最好的方法。从应用上,它显示的是实际的时间,增强了可用性;从编程上,不用再复杂地再编一个更时间一样的函数来,减少程序的篇幅、复杂性和编程者的工作量。接着顺带利用时间的变量名来画时针,分针,秒针。最后,为了让时针,分针,秒针让观察者看起来是连续的变化,即形象地模拟真实的机械钟表那样运动。

3

设计过程

3.1各个模块程序流程图

Start

初始化图形系统

设置窗体的背景色、前景色及画笔

画出主体框架的边直线、边角弧线

画出时钟的框架、标题及时分秒的刻度;绘制数字式时钟下的数字时钟

调用时钟处理程序

获取当前时间并显示

调用消息处理函数刷新窗口

显示(1秒)

创建数字钟字对数字钟进行输

判断修改是增加还是减少

Esc(任意键)调出digitalClock

End

3.2运行界面及关键代码

3.2.1运行结果

在桌面显示一个模拟的时钟,时钟的秒针、分针与时针随着时间的推移而不断移动就像我们经常看见的圆形电子时钟一样。我们可以通过程序随意改动时钟的背景颜色以及指针的颜色和表盘大小等问题,同时还能在桌面显示一些简单的英文以及图案等。

3.2.2关键代码分析及说明

(1)本系统中主要的数据结构就是time结构体

struct time

{

unsigned char m;/*分钟*/

unsigned char h/*小时*/

unsigned char s/*秒*/

}

time结构体定义在dos.h文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。

·unsigned char m:保存分钟值。

·unsigned char h:保存小时值。

·unsigned char s:保存秒数。

(2)全局变量

下面对程序用到的全局变量及数组进行说明。

·int h,m,s:此3个全局变量分别用来保存小时、分钟、秒数。

·int x,x1,x2,y,y1,y2:保存数字时钟中小时、分、秒在屏幕中显示的坐标值。

·struct time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。

(3)程序流程

系统的执行应从运行开始,显示界面正常运行,直到用户选择退出系统为止。

(4)流程图功能描述

①画圆模板:

#inlude “graphics.h”

#inlude ”math.h ”

Void init()

Circle(300,240,200);

②画时间刻线模块:

For(i=0;i<=60;i++)

{

If(i%5==0)

L=15;else

L=5;

X1=200*sin()+300;

Y1=200*cos()+240;

}

③时间模块:Gettime(d)

4设计结果与分析

4.1设计结果

运行程序后在屏幕上显示出一时钟,钟上的时间与电脑上的时间完全一样,并且在秒针运行的同时伴随声音

如同下图一样的图案:

4.2分析

在桌面会显示一个模拟的时钟,时钟的秒针、分针与时针随着时间的推移而不断移动就像我们经常看见的圆形电子时钟一样。我们可以通过程序随意改动时钟的背景颜色以及指针的颜色和表盘大小等问题,同时还能在桌面显示一些简单的英文以及图案等。因为是程序控制时钟的,所以起始时间是通过程序控制的,要想改动还是需要通过改变程序获得,并不是随系统时间而确定起始时间的。

5 总结

通过本次的课程设计,我深刻的体会到了C语言的强大。虽然本次的课程设计对我来说有一定的难度,但是在朋友的帮助下我还是很好地完成了(自我感觉)。从而也认识到了程序的内涵,使我对编程产生了很大的兴趣。其实编程很好玩的,在编程中不但可以完成一些现实中从在的东西,还可以制作出很多意想不到东西。还有对于此次课程设计让我深刻的认识到自己学得的远远还太少,需要我们自发的去学习知识才可以成长的更快!其次,对于此次设计我得坦诚一件事,那就是我一开始选的TC程序,运行的时候总是要我输入参数,由于自己的知识局限,总是敲不出结果,所以我又去百度文库搜了一个vc程序,虽然最终使运行出来了,可是这次事件让我认识自身知识的不足,所以,这次过后会更加认真的学习一些书面没有的知识,充实自己。

6 参考文献

《C语言程序设计》(第二版)[M].北京:清华大学出版社谭浩强 1999 《数据结构》(C语言版)[M].北京:清华大学出版社严魏敏,吴伟民 1997 《C语言程序设计》[M]. 黄明等.大连理工大学出版社,2005

《C语言课程设计案例精编》. 郭翠英 . 中国水利水电出版 . 2004年3月《C语言程序设计教程》曾春平,朱小谷,晏海华.北京希望电子出版社 . 2005年3月

《C语言课程设计案例精编》清华大学出版社﹒姜灵芝、余健﹒ 2008.1

《C语言程序设计》西安电子科技大学出版社﹒田祥宏主编﹒2007.12

附程序清单及源程序

(1)TC2.0上的源程序

#include"graphics.h"

#include"math.h"

#include"dos.h"

#define pi 3.1415926

#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300

#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240

#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y) void init() /*划时钟边框函数*/

{

int i,l,x1,x2,y1,y2;

setbkcolor(1);

circle(300,240,200);

circle(300,240,205);

circle(300,240,5);

for(i=0;i<60;i++) /*划钟点上的短线*/

{

if(i%5==0)

l=15;

else

l=5;

x1=200*sin(i*6*pi/180)+300;

y1=200*cos(i*6*pi/180)+240;

x2=(200-l)*sin(i*6*pi/180)+300;

y2=(200-l)*cos(i*6*pi/180)+240;

line(x1,y1,x2,y2);

}

}

main()

{

int x,y,i,k=1;

int gdriver=9,gmode=2;

unsigned char h,m,s;

int o,p,q;

float n;

struct time t[1];

struct date d[1];

initgraph(&gdriver,&gmode,"c:\\tc");

initgraph(&gdriver,&gmode,"c:\\tc");

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

{

settextstyle(TRIPLEX_FONT,HORIZ_DIR,i); /*控制输出字符的字体,方向,大小*/

cleardevice();

settextjustify(1,1); /*在指定坐标上输出字符串*/

outtextxy(300,80,"12") ;

outtextxy(300,390,"6");

outtextxy(140,230,"9");

outtextxy(460,230,"3");

outtextxy(380,100,"1");

outtextxy(220,100,"11");

outtextxy(430,160,"2");

outtextxy(430,310,"4");

outtextxy(380,370,"5");

outtextxy(220,370,"7");

outtextxy(160,160,"10");

outtextxy(160,310,"8");

}

init();

setwritemode(1); /*设置画线的输出模式*/

if(k!=0)

{

getdate(d); /*获得系统日期函数*/

o=d[0].da_year;

p=d[0].da_mon;

q=d[0].da_day;

gettime(t); /*获得系统时间函数*/

h=t[0].ti_hour;

m=t[0].ti_min;

s=t[0].ti_sec;

}

setcolor(7); /*设置时针颜色*/

n=(float)h+(float)m/60;

d(150,n,30); /*画出时针*/

setcolor(14); /*设置分针颜色*/

d(170,m,6); /*画出分针*/

setcolor(4); /*设置秒针颜色*/

d(190,s,6); /*画出秒针*/

while(!kbhit()) /*控制程序按下任意键退出*/

{

while(t[0].ti_sec==s)

gettime(t);

gotoxy(44,18); /*使光标移动到指定坐标*/

printf("\b\b\b\b\b\b\b\b\b"); /*退格,使表示时间的字符串不断变化*/ sound(400); /*按给定的频率打开PC扬声器*/

delay(70); /*中断程序的执行,时间为70毫秒*/

sound(200);

delay(30);

nosound(); /*按给定的频率关闭PC扬声器*/ setcolor(4);

d(190,s,6);

s=t[0].ti_sec;

d(190,s,6);

if(t[0].ti_min!=m)

{

setcolor(14);

d(170,m,6);

m=t[0].ti_min;

d(170,m,6);

}

if(t[0].ti_hour!=h)

{

setcolor(7);

d(150,h,30);

h=t[0].ti_hour;

d(150,h,30);

sound(1000);

delay(240);

nosound();

delay(140);

sound(2000);

delay(240);

nosound();

}

if(s<10) /*用字符的形式输出时间*/

{ if(m<10)

printf("%u:0%u:0%u",h,m,s);

else

printf("%u:%u:0%u",h,m,s);

}

else

{ if(m<10)

printf("%u:0%u:%u",h,m,s);

else

printf("%u:%u:%u",h,m,s);

}

gotoxy(34,19); /*在指定坐标上输出日期*/

printf("%d年%d月%d日",o,p,q);

printf("\b\b\b\b\b\b\b\b\b");

}

getch();

closegraph();

}

(2)visual c++ 6.0上运行的源程序

#define _CRT_SECURE_NO_WARNINGS

#include

#include

#include

#pragma comment(lib, "user32.lib")

#pragma comment(lib, "gdi32.lib")

#pragma comment(linker, "/SUBSYSTEM:Windows")

void GetPos(double degree, int len, int* x, int* y)

{

*x = len * sin(degree);

*y = len * cos(degree);

}

void DrawClock(HWND hw, HDC h, int hour, int minute, int second) {

HDC bufdc = CreateCompatibleDC(h);

HBITMAP buf = CreateCompatibleBitmap(bufdc, 200, 200);

RECT cr;

HBRUSH bBg = CreateSolidBrush(RGB(255, 255, 255));

GetClientRect(hw, &cr);

SelectObject(bufdc, bBg);

SelectObject(bufdc, buf);

FillRect(bufdc, &cr, bBg);

{

int sx, sy, ex, ey;

int i;

for(i = 0; i < 12; ++i) {

GetPos(2*3.14159/12*i, 85, &sx, &sy);

GetPos(2*3.14159/12*i, 95, &ex, &ey);

MoveToEx(bufdc, 100+sx, 100-sy, 0);

LineTo(bufdc, 100+ex, 100-ey);

}

}

{

int hx, hy, mx, my, sx, sy;

GetPos(2*3.14159 / 24 * (hour + (double)minute / 60 + (double)second / 3600), 50, &hx, &hy);

GetPos(2*3.14159 / 60 * (minute + (double)second / 60), 65, &mx, &my);

GetPos(2*3.14159 / 60 * second, 80, &sx, &sy);

MoveToEx(bufdc, 100, 100, NULL);

LineTo(bufdc, 100+hx, 100-hy);

MoveToEx(bufdc, 100, 100, NULL);

LineTo(bufdc, 100+mx, 100-my);

MoveToEx(bufdc, 100, 100, NULL);

LineTo(bufdc, 100+sx, 100-sy);

}

BitBlt(h, 0, 0, 200, 200, bufdc, 0, 0, SRCCOPY);

DeleteDC(bufdc);

DeleteObject(bBg);

DeleteObject(buf);

}

LRESULT CALLBACK WndProc(HWND h, UINT m, WPARAM w, LPARAM l)

{

switch(m) {

case WM_CREATE:

SetTimer(h, 1, 1000, 0);

return 0;

case WM_ERASEBKGND:

return 1;

case WM_TIMER:

InvalidateRect(h, 0, FALSE);

return 0;

case WM_PAINT: {

PAINTSTRUCT ps;

HDC dc = BeginPaint(h, &ps);

{

time_t t;

struct tm* pst;

time(&t);

pst = localtime(&t);

DrawClock(h, dc, pst->tm_hour, pst->tm_min, pst->tm_sec);

}

EndPaint(h, &ps);

return 0;

}

case WM_DESTROY:

KillTimer(h, 1);

PostQuitMessage(0);

return 0;

default:

return DefWindowProc(h, m, w, l);

}

}

int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmd, INT nShow)

{

WNDCLASS wc;

ZeroMemory(&wc, sizeof(wc));

wc.style = CS_HREDRAW | CS_VREDRAW;

wc.lpfnWndProc = WndProc;

wc.hInstance = hInst;

wc.hbrBackground = (HBRUSH) COLOR_WINDOW;

wc.lpszClassName = TEXT("MYCLOCK");

if (RegisterClass(&wc) != 0) {

MSG m;

HWND hw = CreateWindow(TEXT("MYCLOCK"), TEXT("Clock"), WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, 0);

if (hw != NULL) {

RECT r;

GetWindowRect(hw, &r);

r.right = r.left + 200;

r.bottom = r.top + 200;

AdjustWindowRect(&r, WS_OVERLAPPEDWINDOW, FALSE);

MoveWindow(hw, r.left, r.top, r.right - r.left, r.bottom - r.top, FALSE);

ShowWindow(hw, SW_SHOWNORMAL);

UpdateWindow(hw);

while( GetMessage(&m, 0, 0, 0) > 0) {

TranslateMessage(&m);

DispatchMessage(&m);

}

return 0; }

return 1;

} else

return 1;

}

JAVA课程设计钟表(含代码)

Java程序课程设计 任务书 钟表的设计与开发 1、主要内容: 创建一个钟表。 借助swing类和接口内部类的实现,在本程序中以实现Runnable接口内部类的形式创建多线程对象。 Runnable接口只定义了一个run()方法,所以调用start和sleep()方法时,必须创建Thread实例化对象。Interrupt()方法的作用是中断线程。 其作用方式是:多线程对象.interrupt()。 2、具体要求(包括技术要求等): 系统的功能要求: 1.可以记录时间的钟表。 2.熟悉JAVA中swing的组件运用,基本工具的熟练掌握。 学习并掌握以下技术:Java等。 熟练使用以下开发工具:JCreator + JDK 1.6.0_02 等实现系统上述的功能。 3、进度安排: 12月28日~ 12月29日:课程设计选题,查找参考资料 12月29日~ 1月2日:完成程序代码的编写 1月2日~ 1月3日:系统测试与完善 1月4日~ 1月5日:完成课程设计报告,准备答辩 4、主要参考文献 [1]张帆.Java范例开发大全[M].北京:清华大学出版社,2010:0-831. [2]耿祥义,张跃平.Java大学实用教程[M].北京电子工业出版社,2008:213-216

摘要 随着经济全球化的发展,推动生活节奏的加快,也给时间赋予了更重要的意义。基于方便人们更好的掌握时间,我们小组设计出了这个小时钟。 本时钟是一个基于Java语言设计而成的一个小程序,目的是显示时间,并且能调准时钟。整个程序从符合操作简便、界面友好、灵活使用的要求出发,完成调用、调整的全过程。 本课程设计报告介绍了时钟的构成,论述了目标功能模块;给出了时钟设计的步骤,程序主要所用到的Swing组件以及graphics方法。 关键词:时钟,

电子钟课程设计

数字电子技术课程设计报告 设计题目:数字电子钟的设计 课程设计时间2011..24~2011..30 院系:XX纺织大学电子信息工程学院 班级:电气094 设计学生:杨海X爱祥 一、数电课程设计的目的: 数字电子技术课程设计是在学习完数字电子电路课程之后,按照课程教学的要求,对学生进行综合性训练的一个实践性教学环节。主要目的是培养学生综合运用理论知识能力,分析问题和解决问题的能力,以及根据实际要求进行独立设计的能力;了解数字电子电路的一般设计方法,初步掌握数字电子线路安装、布线、焊接、调试等基本技能;熟练掌握电子电路基本元器件的使用方法,训练、提高读图能力;掌握组装、调试方法。 二、设计题目及内容 、设计题目:数字电子时钟 2、内容和要求: ()时间以24 小时为一个周期; (2)显示时、分、秒;

(3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; (4)根据要求阅读数字时钟电路原理图,阅读教材及查找相关资料,叙述工作原理; (5)画出包含+5 伏的稳压电源在内的原理电路图,根据原理图画出对应的印刷电路图,并在图中标出元器件的符号及代码; (6)安装、焊接、连线、调试电路; (7)最后提交调试好的设计作品,撰写并提交实验、调试报告,解答思考题。 三、功能及简单工作原理数字电子钟的原理方框图 如下图()所示。干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60 进制计数器,每累计60 秒发现一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60 进制计数器,每累计60 分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”“时计数器”采用24 进制计时器,可实现对一天24 小时的累计。。译码显示电路将“时”“分”“秒”计数器的输出状态由七段显示译码器译码,通过六位LED 七段显示器显示出来。校时电路是用来对“时”“分”“秒”显示数字进行校对调整的。

简易时钟设计讲解

等级: HUNAN INSTITUTE OF ENGINEERING 课程设计 课程名称_______ 单片机原理与应用课程设计__________ 课题名称______________ 简易时钟设计_______________ 专业_____________ 电子信息工程_______________ 班级______________ 电信1301班 _______________ 学号__________________ 31 ___________________ 姓名_________________ 彭颗___________________ 指导老师___________________ 林国汉_________________ 2016年3月25日

电气信息学院 课程设计任务书 课题名称 ________________________________ 简易时钟设计_________________________________ 姓名彭颗专业电子信息工程班级1301 学号01 指导老师 _____________________________________ 林国汉 __________________________________ 课程设计时间 ____________ 2016年3月14日-2016年3月25日(3、4周) _________________ 教研室意见意见:审核人: ____________________ 一、任务及要求 设计任务: 本课题要求以MCS-51系列单片机为核心,设计一个数字时钟。 (1)具有时钟和跑表功能,用LED或者液晶显示器进行显示;(2) 具有时钟调整功能 (3)具有闹钟功能,(4) *能将闹钟时间在AT24C02保存(5) *其它功能设计要求: (1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计; (4)应用系统的硬件和软件的调试。 二、进度安排 第一周: 周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。 周二?周三:完成硬件设计和电路连接 周四?周日:完成软件设计 第二周: 周一?周三:程序调试 周四?周五:设计报告撰写。周五进行答辩和设计结果检查。 三、参考资料 1、51单片机C语言教程郭天祥编著电子工业出版社 2、单片机原理与应用第2版王迎旭主编机械工业出版社 3单片机原理与应用及C51程序设计杨加国清华大学出版社,2009

时钟计时器课程设计

单片机原理及应用课程设计报告书 题目:时钟计时器的设计 姓名: 学号: 专业:电气工程及其自动化 指导老师:周令 设计时间:2011年4月 电子与信息工程学院

目录 1. 引言 (1) 1.1. 设计意义 (1) 1.2. 系统功能要求 (1) 2. 方案设计 (1) 2.1. 数字时钟计时器设计方案论证 (1) 2.2. 硬件系统的总体设计框图 (2) 3. 硬件设计 (2) 4. 软件设计 (3) 4.1. 主程序 (3) 4.2. 显示子程序 (4) 4.3. 定时器T0中断服务程序 (4) 4.4. 定时器T1中断服务程序 (5) 4.5. 调时功能程序 (6) 4.6. 秒表功能程序 (6) 4.7. 闹钟时间设定功能程序 (6) 5. 调试及性能分析 (7) 5.1. 硬件调试 (7) 5.2. 软件调试 (7) 5.3. 性能分析 (8) 6. 设计总结 (8) 7. 附录A:汇编源程序 (9) 8. 附录B:作品实物图片 (26) 9. 参考文献 (27)

时钟计时器的设计 1.引言 1.1.设计意义 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字时钟计时器,本数字时钟计时器,可以显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可实现时、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒(蜂鸣器)等功能。 人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字时钟计时器就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字时钟计时器与传统的计时器相比,具有读数方便,操作简单,计时精准,还能实现整点提醒,定时提醒等功能。其输出时间采用数字显示,主要用于对时间要求精度高的场所,或科研实验室使用,该设计控制器使用单片机AT89C52,用6位共阳极LED数码管以串口传送数据,实现数字显示功能,能准确达到以上要求。 1.2. 系统功能要求 用单片机及6位LED数码管显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可实现时、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒(蜂鸣器)等功能。 2.方案设计 2.1. 数字时钟计时器设计方案论证 为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些,又考虑到时钟显示只有6位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现LED的

Java实现电子时钟

项目效果图: 源代码: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.image.BufferedImage; import java.awt.EventQueue; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JFrame; import javax.swing.JPanel; /* author: 蒋冰 */ public class MoveDraw extends JFrame{ private Draw draw = new Draw(); public static void main(String[] args){ EventQueue.invokeLater(new Runnable() { public void run() { try { MoveDraw frame = new MoveDraw(); frame.setVisible(true);

} catch (Exception e) { e.printStackTrace(); } } }); } public MoveDraw(){ super(); setTitle("动画"); setBounds(400,300,400,300); add(draw); Thread thread = new Thread(draw);// 创建线程对象 thread.start();// 启动线程对象 } class Draw extends JPanel implements Runnable{ Calendar calendar = new GregorianCalendar(); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); int year = calendar.get(Calendar.YEAR); int mouth = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); int week = calendar.get(Calendar.DAY_OF_WEEK); String date = year+"-"+mouth+"-"+day; String weeks[] = new String[]{"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; double theta = second * (2 * Math.PI)/60 ; double theta1 = (minute * (2 * Math.PI) + theta)/60; double theta2 = (hour*(2 * Math.PI) + theta1)/12; public void paint(Graphics g){ Graphics2D g2 = (Graphics2D) g; g2.clearRect(0, 0, 400, 300); g2.translate(draw.getWidth()/2, draw.getHeight()/2); g2.setColor(Color.blue); Font font = new Font("楷体",Font.ROMAN_BASELINE ,14); g2.setFont(font); g2.drawString(date, -25, 30); g2.drawString(weeks[week-1]+"", -15, 50); g2.setColor(Color.black); for(int i=1; i<=12; i++){ double theta = i*2*Math.PI/12;

电子时钟课程设计.

单片机实训课题电子时钟 班级11电气本1班学号4110211140 姓名陈后亥 指导教师叶文通 日期2013.12.30~2014.1.3

摘要 随着时代的进步,越来越多的电子厂品趋向于低成本,高性能,耐用性好的方向发展。特别是趋向于自动化控制的方向走。89c51作为控制芯片是最好不过的选择啦。它具有强大的功能,并且简单易于操作,安全性与稳定性较高,价格便宜,适合中小型电子厂品开发中的控制器。就像我们的课程设计,基于89c51单片机的电子时钟的课程设计。 这款课程设计用到的主要材料有89c51单片机,1602液晶显示屏,矩阵键盘,以及一些电容电阻元件等等。 使用89c51作为电子时钟的控制器很简单,就是由于其经济型与稳定性和易操作性。显示电路上,选择使用1602液晶显示屏上。1602不仅操作上臂数码管简单许多,而且使用1602能在很大程度上是电路图尽量简化,便于操作与错误的检修。并且1602价格也比较便宜。 基于89c51电子时钟的设计,利用了单片机内部的一个自带定时/计数器来实现定时功能,并通过内部程序,实现对时分秒,年月日这几个输出数值的自增,并且通过编写程序,实现通过键盘控制时分秒,年月日大小的调整,这是必要的功能。最后通过1602液晶显示电路将时间显示在其上。 这样的电子时钟比较精准,其主要误差来源与晶振的误差,即使是这样,他的误差也只是微妙级别,对于日常生活中的时间计数是足够的。 关键词:89c51单片机;1602液晶显示屏;矩阵键盘;keil软件

目录摘要 1单片机简介 1.1 单片机概述 1.2 单片机基本结构 21602液晶显示屏简介 1.11602显示原理 1.21602指令集合 3 电子时钟硬件设计 3.1 功能框图 3.2 单片机复位与晶振电路 3.3 1602显示电路 3.4 总体电路设计 4 电子时钟软件设计 4.1 程序流程框图 4.2 程序源代码 参考文献 致谢

单片机简易时钟课程设计

目录 1.概论 (1) 2.整体设计思路 (2) 2.1硬件各部分所能完成的功能 (3) 2.2系统工作原理 (4) 2.3时钟各功能分析及图解 (4) 2.4.1电路各功能图解分析 (4) 2.4.2电路功能使用说明 (7) 3. 软件设计思路 (8) 3.1 主程序模块 (8) 3.2 数码管动态扫描模块 (9) 3.3 当前时间计时模块 (9) 3.4 闹钟输入输出模块 (10) 3.5 当前时间调整模块 (12) 3.6复位模块 (13) 4.系统的调试和性能分析 (14) 4.1系统的调试方法 (14) 4.1.1输入按键的调试 (14) 4.1.2复位电路的调试 (14) 4.1.3显示电路的调试 (14) 4.1.4整个系统的联调 (14) 4.2心得体会 (15) 参考文献 (15) 附录 (16) 附录A 系统原理图 (16) 附录B 程序源代码 (17) 电气信息学院课程设计评分表 (28)

1.概论 单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件——Proteus,则不用制作具体的电路板也能够完成以上工作。数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便[4]。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。 数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。

单片机课程设计 秒表计时器(DOC)

课程设计名称:单片机原理及接口技术 题目:基于单片机的秒表计时器设计 学期:2014-2015学年第一学期 专业:电气技术 班级: 姓名: 学号: 指导教师:

辽宁工程技术大学 课程设计成绩评定表

课程设计任务书 一、设计题目 秒表计时器 二、设计任务 本课题以单片机为核心,设计和制作一个秒表计时器。 三、设计计划 课程设计一周 第1天:查找资料,方案论证。 第2天:各部分方案设计。 第3天:各部分方案设计。 第4天:撰写设计说明书。 第5天:校订修改,上交说明书。 四、设计要求 1、绘制软件流程图并利用汇编语言编写软件程序; 2、绘制系统硬件原理图; 3、形成设计报告。 指导教师: 教研室主任: 2014年5月26 日

本设计利用89C51单片机设计秒表计时器,通过LED显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒到来时,就让秒计数单元加一,通过控制使单片机秒表计时,暂停,归零。设计任务包括控制系统硬件设计和应用程序设计。 关键词:51单片机;74HC573;LED数码管

综述 (1) 1 程序方案 (2) 1.1方案论证 (2) 1.2总体方案 (2) 2部分设计 (3) 2.1 89C51单片机 (3) 2.2晶体振荡电路 (4) 2.3硬件复位电路 (5) 2.4显示电路 (6) 2.5整体电路图 (7) 3程序设计 (8) 3.1程序流程框图 (8) 3.2显示程序流程图 (9) 3.3汇编源程序 (10) 4调试说明 (13) 4.1概述 (13) 4.2电路原理图 (13) 心得体会 (15) 参考文献 (16)

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

简易电子时钟的设计

单片机课程设计报告设计题目:简易电子时钟的设计 院别: 专业班级: 学号:

姓名: 指导教师: 摘要 通过一学期单片机的学习,对其已经有了初步的了解,但是随着社会的不断发展,单片机的应用正在不断地走向深入,它特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。我们也借此课程设计的机会,对单片机有更深一步的了解与学习。 本次课程课程设计的目的是设计一个简易的电子时钟,通过一个8位共阴极数码管进行时、分、秒的显示,另外设置7个按键,一个用来调整小时,一个用来调整分钟,一个开关控制是否调整时间。 关键词:AT89C51,数码管,按键,DS1303时钟芯片

1.概述 本设计是锻炼我们的自学能力合作能力,依靠团队的力量去完成一项具体的任务系统的训练了所学知识,设计的过程必将是难忘的,这也将是大学向社会工作过度的一个重要阶段。 本阶段过后要去能够熟练的运用单片机中的计数器、定时器、中断、数码管显示等参考教材或者相关资料,采用C语言实现数字时钟功能,在数码管上实时显示,并运用Protues软件绘制电路原理图,并进行仿真验证和误差分析。 2.系统总体方案设计 2.1系统方案的确定 用6位数码管,可以显示出时、分、秒;用P2端口控制位选,由定时器进行时间的控制(秒);当总按键按下时可以进行时间调整; 2.2方案分析 2.3系统总框图 图2.1

3.系统硬件系统设计 3.1复位电路 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程跑飞的时候,按下复位按钮内部的程序自动从头开始执行。 复位电路的工作原理: 在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。单片机复位电路如下图 图3.1 3.2时钟电路 单片机运行需要时钟支持——就像计算机的CPU一样,如果没有时钟电路来产生时钟驱动单片机,那单片机就不能执行程序。 单片机可以看成是在时钟驱动下的时序逻辑电路。 以5l单片机为例随明:51单片机为l2个时钟周期执行一条指令。也就是说单片机运行一条指令,必须要用r2个时钟周期。没有这个时钟,单片机就跑不起来了,也没有办法定时和进行和时间有关的操作。 时钟电路是微型计算机的心脏,它控制着计算机的二个节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号:另一种为外部方式,时钟信号由外部引入。

多功能计时器-课程设计

信息工程学院课程设计报告书题目: 多功能计时器 专业:电子信息科学学技术 班级: 学号: 学生姓名: 指导教师: 2012 年 12 月 24 日

信息工程学院课程设计任务书 年月日

信息工程学院课程设计成绩评定表

摘要 此多功能计时器是基于741s48、74ls192、555定时器、CD40161设计的,由六个主要部分组成,即控制电路、秒脉冲发生器、计数器、译码显示器、置数电路以及声光报警电路,包含置数(00至99)、1s倒计时、开启、暂停、连续、清零以及到点声光报警等主要功能,也能完成一个完整的系统过程,可用于各种竞赛计时,交通灯系统,及报警装置。计时范围为00至99,可智能控制。 关键词:多功能计时器、1s倒计时、连续、声光报警

目录 目录 (4) 1 任务提出与方案论证 (5) 1.1 任务提出 (5) 1.2 方案论证 (5) 2 总体设计 (6) 2.1 总体框图 (6) 2.2 总体电路 (7) 3 详细设计 (8) 3.1秒脉冲发生器 (8) 3.2译码计时电路 (10) 3.3控制电路 (13) 3.3.1总开关 (13) 3.3.2单刀双掷开关 (13) 3.4反馈电路 (14) 3.5报警电路 (14) 3.6置数电路: (15) 4 总结 (17) 5 参考文献 (18)

1 任务提出与方案论证 1.1 任务提出 设计一种多功能计时器,要求实现以下功能: 置数、1s倒计时、开启、暂停、连续、清零以及到点声光报警,计时范围为00至99,可智能控制。能任意定时,开启和暂停及清零,1秒的准确延时,及到点声光报警。 1.2 方案论证 秒脉冲发生器:可以选用晶振产生,或者用555定时器或者555与CD40161同时产生,为了实现反馈,让计时器计数到零时停止,我选用CD40161 ,即实现了1s计数有可以形成反馈。译码电路:我选用4线-七段译码器/驱动器74LS48来实现。 计时电路:我选用十进制可逆计数器74LS48 ,可以用来置数,同时也可以来产生减计数。控制电路:用按键和反馈来实现。 报警电路:用speaker和led来实现。 置数电路:用单刀双掷开关选通74ls48的置数端,通过置0或置1来控制。

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

数字时钟课程设计方案设计方案

课程设计题目名称:数字时钟 专业名称:电气工程及其自动化班级: ******** 学号: *******8 学生姓名: ******* 任课教师: *******

《电子技术课程设计》任务书

2.对课程设计成果的要求〔包括图表(或实物)等硬件要求〕:设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件的选择要有计算依据。 3.主要参考文献:⑴《电子技术课程设计指导》彭介华编,高等教育出版社,1997年10月 ⑵《数字电子技术》康华光编著高等教育出版社, 2001年 要求按国标GB 7714—87《文后参考文献著录规则》书写。 4.课程设计工作进度计划: 序号起迄日期工作内容 初步设想和资料查询,原理图的绘画 1 2015.11.18-2015.12.21 仿真调试,元件参数测定,实物的拼接与测试 2 2015.12.21-2016.1.8 叙写设计报告,总结本次设计,论文提交 3 2016.1.8-2016.1.18 主指导教师日期:年月日

摘要 数字时钟已成为人们日常生活中必不可少的必需品,广泛于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。并且数字时钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。报告围绕此次数字钟的设计进行介绍、总结,包含了设计的步骤,前期的准备,装配的过程。在实装时,采用了74LS90进行计数,用CD4060产生秒脉冲,CD4511进行数码管转换显示,还要考虑电路的校时、校分,每块芯片各设计为几进制等等,最后实现了数字钟设计所要求的各项功能:时钟显示功能;快速校准时间的功能。 关键字:数字时钟校时CD4511

24秒计时器课程设计

电子课程设计篮球24秒计时器 班级:自动化092201H班 姓名:陈鹏飞 学号:200922060101

目录 序言 (3) 一、设计任务及要求 (3) 二、总体框图 (3) .......................................................................................................... .......................................................................................................... .......................................................................................................... 三、选择器件 (4) ........................................................................................................... .......................................................................................................... 四、功能模块 (8) 五、总体电路设计 (12) 六、参考文献 (14) 七、心得体会 (14)

序言 篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,新的规则还要 求进攻方在24秒内有一次投篮动作,否则视为违例。本人设计了一个篮球比赛计时器,可对比赛总时间和各方每次控球时间既是。该计时器采用按键操作,LED 显示,非常实用,此计时器也可作为其他球类比赛的计时器。 篮球24秒计时器 一、设计任务与要求 1. 有显示24秒的计时功能 2. 置外部操作开关,控制计时器的直接清零,起碇和暂停连续功能 3. 计时器喂24秒递减计时器,其间隔为1秒 4. 计时器递减计时到0时,数码显示器不能灭灯 应发出光电报警信 号 二、总体框图 二. 1秒脉冲发生器: 秒脉冲信号发生器需要产生一定精度和幅度的矩形波信号。实现这样矩形波的方法很多,可以由非门和石英振荡器构成,可由单稳态电路构成,可以由施密特触发器构成,也可以由555点哭构成等。 不同的电路队矩形波频率的精度要求不同,由此可以选用不同电路结构的脉冲信号发生器。本实验中由于脉冲信号作为计数器的计时脉冲,其精度直接影响计数器的精度,因此要求脉冲信号有比较高的精度。一般情况下,要做出一个精度比较高的 频率很低的振荡器有一定的难度 工程上解决这一问题的办法就是先做一个频率比较高的矩形波震荡器,然后将其输出信号通过计数器进行多级分项,就可以得到频率比较低 精度比较高的脉冲信号发生器,其精度取决于振荡 秒脉冲发生器 外部操作信号 译码/显示电路 24t 计数器 控制电路 报警电路

利用JAVA实现一个时钟的小程序

JAVA课程项目报告 项目题目:利用JAVA实现一个小时钟的程序 专业班级:10软件工程 利用JAVA实现一个时钟的小程序 1.软件开发的需求分析 在当今的信息时代,时钟已经成为人们生活中必不可少

的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 2.具体实现 2.1设计思路 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如

自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了小时钟的基本功能。 2.2设计方法 在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。 小时钟除了需要编写的上述5个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。 2.3 运行环境 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows XP 运行环境:JDK,JCreator 2.4 程序功能图及程序相关说明 2.4.1 主功能框

电子时钟课程设计55026

. 单片机课程设计题目:电子时钟 班级: 姓名: 学号: 指导教师: 设计时间:

.

摘要 针对数字时钟的问题,利用8051单片机,proteus软件,vw(伟福)等软件,运用单片机中定时计数器T0,中断系统以及按键的控制实现了电子时钟的设计。设计的电子时钟通过数码管显示,并能通过按键的设计实现小时与分钟的调整。时间的启动与暂停等等。 关键字:数字时钟;单片机;定时计数器 .

1 引言 时钟,自他发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术不断的发展,人们对时间计量的进度要求越来越高,应用越来越广。怎样让时钟更好地为人类服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现金,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都使用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示器,减小了计时误差,这种表具有时、分、秒显示的功能,还可以进行时、分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准震荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,及定时时间,它通常有两种方法实现:一是软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要起不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。本文主要介绍用单片机内部的定时计数器来实现电子时钟的方法,以单片机为核心,辅以必要电路,构成了一个单片机电子时钟。 单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。显示器可以是LED指示灯,也可以是LED数码管,也可 .

60秒计时器课程设计 周海祥

目录 摘要 (2) 引言 (2) 一.设计目的 (2) 二.设计任务 (2) 三.电路原理设计 (2) 3-1计时器的设计原理 (2) 3-2计时器的基本逻辑功能 (3) 3-3主干电路设计 (3) 3-3-1震荡电路设计 (3) 3-3-2计数器的设计 (3) 3-3-3译码器的设计 (3) 四.电路仿真 (4) 五.系统分析 (5) 5-1基础元件介绍 (5) 5-1-1计数器 (5) 5-1-2译码器与显示管 (6) 5-1-3振荡器 (8) 5-1-4与非门 (8) 六.电路的焊接 (9) 七.调试 (9) 八.总结 (10) 参考文献 (10) 致谢 (10) 附录 (11)

74LS160构成的60秒计时器 摘要 60秒计时器是采用数字电路实现的数字显示计时装置。本系统由振荡器,计数器,译码器,LED显示器组成。采用74LS系列中小规模集成芯片。 引言 计时器是用数字集成电路做成的现代计时器,与传统的机械钟相比,它具有走时准确、显示直观(有荧光七段数码显示器)、无机械传动装置等优点。而且钟表的数字化给人们生产生活带来了极大的方便。 一.设计目的 在学完了《数字电子技术》课程的基本理论后,能够综合运用所学知识设计和制作实际需要的简单电子电路,系统地进行电子电路的工程实践训练,锻炼动手能力,培养工程师的基本技能,提高分析问题解决问题的能力。 二.设计任务 完成由74LS160构成的60秒计时器 计时器的组成:60秒计时器一般由振荡器,计时器,译码器,LED显示器组成,这些都是数字电路中应用最广泛的基本电路。 三.电路原理设计 3-1 计时器的设计原理: 先构成一个555定时器和分频器产生震荡周期为一秒的标准“秒”脉冲信号,由74LS160采用清零法分别组成六十进制的“秒”计数器。清零法适用于有异步置零输入端的集成计数器。原理是不管输出处于哪种状态,只要在清零输入端加一个有效电平电压,输出会立即从那个状态回到“0000”状态。。使用74LS48为驱动器,共阴极七段数码管作为显示器。设计图见附录一

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