当前位置:文档之家› 4、多线程的简单编写

4、多线程的简单编写

4、多线程的简单编写

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方法。 关键词:时钟,

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;

简易电子时钟的设计

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

姓名: 指导教师: 摘要 通过一学期单片机的学习,对其已经有了初步的了解,但是随着社会的不断发展,单片机的应用正在不断地走向深入,它特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。我们也借此课程设计的机会,对单片机有更深一步的了解与学习。 本次课程课程设计的目的是设计一个简易的电子时钟,通过一个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的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号:另一种为外部方式,时钟信号由外部引入。

利用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 主功能框

电子时钟java写的

package com.lw; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; public class DigitalClock extends JFrame { /** * */ private static final long serialV ersionUID = 4962111797317773666L; private JPanel contentPane; private JLabel label; /** * Launch the application. */ public static void main(String[] args) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { DigitalClock frame = new DigitalClock(); frame.setV isible(true); } catch (Exception e) { e.printStackTrace(); }

Java实现迷你小闹钟源代码

package pkg110; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.Timer; /** * * @author Administrator */ public class Clock extends JFrame implements ActionListener{ public final int HEIGTH = 200, L0 = 50, T0 = 50,N=8; public final double RAD = Math.PI / 180.0; int x, y, old_X, old_Y, r, x0, y0, w, h, ang; int sdo, mdo, hdo, old_M, old_H, hh, mm, ss; int delay = 1000; Calendar now; String st, alarm, Items1, Items2,str[]; JButton jb; JComboBox jc1, jc2, jc3; JLabel jl1, jl2, jl3, jl4; JTextField jtf1, jtf2, time; JPanel jp1, jp2, jp3; Timer timer; TimeZone tz = TimeZone.getTimeZone("JST"); Toolkit toolkit=Toolkit.getDefaultToolkit(); /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Clock cp = new Clock(); cp.setVisible(true); } Clock() { super("闹钟"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(400,550); setVisible(true); Container contentPane = getContentPane(); jp2 = new JPanel(); jl1 = new JLabel("闹铃时间");

电子时钟代码

西安邮电大学 硬件课程设计报告 院系名称:计算机学院 学生姓名:王哲 指导老师:杨锐 班级:0901 学号: 时间:

porta equ1400h portb equ1401h portc equ1402h portcontrol equ1403h timer0equ1440h timer1equ1441h timer2equ1442h timer_control equ1443h ;------------------------------------------------------------- data segment ledbuf db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码 datbuf db00h,00h,00h,00h;存放要显示4位 copybuf db00h,00h,00h,00h data ends ;-------------------------------------------------------------- code segment assume cs:code,ds:data ;--------------------------------------- start:mov ax,data mov ds,ax call read_cmos call p8254 mov dx,portcontrol;将8255设为A\B口输出,A为段码输出,B为位码输出 mov al,10000001B out dx,al ;--------------------------------------------------------------- loop2:call disp mov dx,1402h in al,dx mov bl,al and bl,02h test bl,02h jnz reset mov bh,al and bh,04h test bh,04h

基于单片机的简易时钟设计(毕业设计)

广西理工职业技术学院 毕业设计(论文)说明书题目:简易电子时钟设计 系别:电气工程系 专业班级:11机电2 姓名:黄武锦 学号:20112323 指导教师:黎有好 二〇一三年七月二十四日

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

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

Java应用 简易闹钟设计

Java应用简易闹钟设计 一、项目概述 应用Java程序设计语言,主要是使用Swing组件、事件处理器、线程控制等实现对简易闹钟的开发设计,设计过程中要求闹钟能够显示当前时间,并且能够设定闹钟的个性铃声,当设定了闹钟时间后,待到设置时间时能够自动播放音乐。 关键词:Java 面向对象闹钟铃声设置 1.1 问题和要求 如何应用Java语言实现对闹钟的简易设计,要求设计实现的闹钟能够显示当前的时间,能够设置个性闹铃,并且可以预先设定闹钟时间,待到设置时间时能够自动播放音乐。 二、设计与开发 2.1 问题分析 1)如何实现闹钟外观的简易设计; 2)如何能够获取当前时间并显示出来; 3)如何查阅文件夹选择音乐文件来实现个性闹铃的设置; 4)如何实现闹钟时间的设定,使闹钟能够在指定时间闹铃。 2.2 程序设计 1)运用Swing组件实现对闹钟的外观设计。主要应用到标签(JLable)、文本域(JTextField)、按钮(JButton)等,采用网格式布局,由网格布局管理器(GridLayout)来实现。 2)创建线程来获取当前时间,主要通过Runnable接口,使用run()方法来实现当前时间的显示。 3)要使按“选择闹铃音乐”按钮时能够触发对音乐文件的选择,则对按钮添加监听器并采用实例化文件选择器。

4)为了能在输入定点时间后实现对闹钟时间的设定,则需要对“确定”按钮添加监听器。 2.3 代码实现 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.applet.Applet; import java.applet.AudioClip; import java.io.File; import java.net.*; import java.text.SimpleDateFormat; import java.util.Date; public class AlarmClock extends JFrame implements Runnable { JLabel dangqian; JButton queding, xuanze; JTextField music,RI, SHI, FEN, MIAO; int h=0,f=0,m=0,r=0; boolean fo=false; public AudioClip soumd1; public AlarmClock() { Container c = getContentPane(); c.setLayout(new GridLayout(3, 1)); JPanel jp = new JPanel(); dangqian = new JLabel(); jp.add(dangqian); c.add(jp);

java简易电子时钟代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.text.SimpleDateFormat; public class ClockJFrame extends JFrame{ private Date now=new Date(); Panel buttons=new Panel(); Button button_start=new Button("启动"); Button button_interrupt=new Button("停止"); Clock label=new Clock(); public ClockJFrame() //构造方法 { super("电子时钟"); this.setBounds(300,240,300,120); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setLayout(new BorderLayout()); this.getContentPane().add("North",label);//初始化一个容器,用来在容器上添加一个标签 this.getContentPane().add("South",buttons); buttons.setLayout(new FlowLayout()); buttons.add(button_start); buttons.add(button_interrupt); setVisible(true); } private class Clock extends Label implements ActionListener,Runnable{ private Thread clocker=null; private Date now=new Date(); public Clock(){ button_start.addActionListener(this); button_interrupt.addActionListener(this); SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式 String t = dateFormat.format( now ); this.setText(t); } public void start(){ if(clocker==null){

电子时钟程序代码

#include #define uchar unsigned char #define uint unsigned int uchar code weixuan[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //位选,控制哪个数码管亮。(从右到左) uchar code duanxuan[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf, 0xff}; //0-9,'-','灭' uchar data timedata[3]={0x00,0x00,0x00}; //时间缓冲区,分别为:秒、时、分。 uchar data datetime[8]={0xc0,0xc0,0xbf,0xc0,0xc0,0xbf,0xc0,0xc0}; //时间缓冲区,初始化显示00-00-00。 uchar tt1,tt2,tt,tt0,num=0; uchar flag,flag1,flag2,flash; sbit key1=P1^3; sbit key2=P1^5; sbit key3=P1^7; //**************延时函数********************************* void delay(uint del) { uchar i, j; for(i=0; i

漂亮时钟java完整代码

漂亮时钟java完整代码 这个时钟是用java写的,我觉得很完美,其中加载了声音和背景图片,我会把图片贴在这里,至于背景音乐可以根据自己的需要改动,程序运行后效果如下: 今天把这个程序贴在这里,希望能帮到学习java的学弟学妹们。源代码如下: import java.applet.Applet; import java.applet.AppletContext; import java.applet.AudioClip; import java.awt.*; import java.awt.event.*; import java.io.PrintStream; import java.util.Date; public class Clock extends Applet implements Runnable { Thread th1 = null; Image offScreenImage = null; Graphics offScreen = null; Image picture = null; int icount = 0; AudioClip song; private String n="look! My clock!"; private String m="made by:"; private String p="jessie with the number 200501109";

public Clock() { } public void init() { try { offScreenImage = createImage(800, 600); offScreen = offScreenImage.getGraphics(); } catch(Exception _ex) { offScreen = null; } picture = getImage(getCodeBase(), "Clockscreen.jpg"); song=getAudioClip(getCodeBase(),"song.wav"); song.loop();//加载声音 } public void start() { th1 = new Thread(this); th1.start(); } public void stop() { th1 = null ; } public static int vectorX(int i, int h, int j) { int k = (i + h) % 360; int l = (int)((double)j * Math.cos((double)k * 2 * Math.PI / 360)); return l; } public static int vectorY(int i, int h, int j) {

简易电子时钟

设计题目简易电子时钟设计 设计任务1) 可以准确地显示北京时间。 2) 时间显示选择24小时模式。 3) 选用AT89C52单片机,将编写的程序下载到该单片机中,并能使数码管显示。 4)采用韦福进行仿真。 利用单片机的定时与中断系统功能实现电子钟的计数和调时。采用AT89C52定时中断方式实现24小时制时钟精确的计时。通过外部的12M(11.0529M)Hz 单片机课程设计 题目:简易电子时钟设计 班级 08级电信 学号: XX 姓名: XX 同组成员: XX 指导老师: XX 完成日期: 2011年1月10日 设计任务书

设计方案晶振产生稳定的谐振,在AT89C52的内部定时器电路实现定时,当定时器溢出时产生中断,累计定时器的定时时间达一秒时,数码管的秒显示加1,判断数码管的秒显示达60时,秒显示自动清零,分显示加1,判断分显示达60时,分显示自动清零,时显示加1,判断时显示达24时,时显示自动清零。从而实现00:00:00—23:59:59 之间的任意时刻显示。 为了使时钟能够灵活的对时间进行调整、校对,通过增加外部的按键实现简单的复位、时调整、分调整的功能。形成一个具有复位和校时功能的简易电子时钟。 任务分配硬件部分软件部分 摘要 单片计算机即单片微型计算机。有RAM,ROM,CPU构成,定时,计数和多种接口与一体的味控制器。它体积小,成本低,功能强,广泛应用于智能厂业和工业自动化上。而51系列单片机是个单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习和应用,从而达到学习、设计、开发软、硬件的能力。 本设计主要设计了一个基于AT89C52单片机的电子时钟。并在数码管上显示相应的时间。并通过控制键用来时间的调节。采用韦福进行仿真。 一引言 20世纪末,电子技术获得了飞速的发展。在其推动下,电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展和信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。 电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛的应用于生活中。电子时钟主要是利用电子技术奖时钟电子化、数字化,拥有时间精确、体积小、界面友好、课扩展性能强等特点,被广泛应用于生活和工作当中。当今市场上的电子时钟品类繁多,外形小巧别致。电子时钟数字化了时间显示。在此基础上,人们可以根

电子时钟设计(完美实现最终版)要点

电子时钟实验报告 一,实验目的 1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。 2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟 二,实验要求 A.基本要求: 1. 在4位数码管上显示当前时间。显示格式“时时分分” 2. 由LED闪动做秒显示。 3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹铃时间到蜂鸣器发出声响, 按停止键使可使闹玲声停止。 4.实现秒表功能(百分之一秒显示) B.扩展部分: 1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整) 2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态) 3.定时功能(设定一段时间长度,定时到后,闪烁提示) 4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示) 5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调) 三,实验基本原理 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。 为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

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进制与指针式的时

基于单片机的简易电子时钟

单片机原理及系统课程设计 专业:电气工程及其自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2013年 3 月7日

基于单片机的电子时钟设计报告 摘要 电子时钟是现代社会中的主要计时、工具之一,广泛应用于手机、电脑、汽车等日常生活的方方面面,有不可替代的作用。本设计采用AT89C52单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路等组成。 数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等,这些方法都各有特点。其中,利用单片机实现的电子钟具有编程灵活,精确度高,便于扩充附加功能的特点,通过不同程序及其对应电路的组合,可设计出形形色色,功能各异的电子钟。 关键词:单片机;电子钟;LCD Abstract The electronic clock is a the primary timekeeper in the modern society, one of the tools, widely used in mobile phones, computers, cars and other aspects of daily life, have an irreplaceable role.This design uses A T89C52 microcontroller as the core components attached power-on reset circuit, clock circuit and key tune the circuit. Digital electronic clock design in a variety of ways, For example, small and medium scale integrated circuits composed of electronic bell; electronic clock can also use dedicated electronic clock chip together with the display of the circuit and its peripheral circuits need; Y ou can also take advantage of the microcontroller to achieve electronic bell, these methods have their own characteristics. Among them, the use of the electronic clock MCU programming flexibility, high accuracy, easy expansion characteristics of the additional features various different functions of the electronic clock, through the combination of the different procedures and the corresponding circuit design. Keywords:Single-chip,electronic bell,LCD

java图形时钟源代码

import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class clock extends JFrame{ /** * */ private static final long serialVersionUID = 1L; ImagePane imagePane[]; String mypic; static Calendar now; static Float s; static Float m; static Float h; class s extends Thread { public void run() { while(true) { gettime(); s = (float)(now.get(Calendar.SECOND) * 6);// 获得秒转换成度数,每秒转1次(1/60圆周) imagePane[0].ratoteImage(s*Math.PI/180);//秒针旋转 try {Thread.sleep(1000);} catch (Exception ex) {} }} } class m extends Thread { public void run() {

while(true) { gettime(); m = (float)(now.get(Calendar.MINUTE) * 6+Math.rint(now.get(Calendar.SECOND)/15)*1.5);// 获得分钟,每15秒转1次(1/24圆周) imagePane[1].ratoteImage(m*Math.PI/180);//分针旋转 try {Thread.sleep(15000);} catch (Exception ex) {} }} } class h extends Thread { public void run() { while(true) { gettime(); h = (float)((now.get(Calendar.HOUR_OF_DAY) - 12) * 30+ Math.rint(now.get(Calendar.MINUTE)/2));// 获得小时,每12分转1格 imagePane[2].ratoteImage(h*Math.PI/180);//时针旋转 try {Thread.sleep(120000);} catch (Exception ex) {} }} } public static void gettime() { now = new GregorianCalendar(); } public clock() { super("java时钟"); //调用父类构造函数 imagePane=new ImagePane[4]; Container container=getContentPane(); //得到窗口容器 for(int i=0;i<4;i++) { imagePane[i]=new ImagePane(); imagePane[i].setOpaque(false);//设置透明 imagePane[i].loadImage("image/"+(3-i)+".png"); //装载图片 imagePane[i].setBounds(0, 0, 500, 600);//设置位置 container.add(imagePane[i]); //增加组件到容器上 }

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