文档库 最新最全的文档下载
当前位置:文档库 › 模拟时钟转动程序

模拟时钟转动程序

模拟时钟转动程序
模拟时钟转动程序

东南大学

C语言课程设计报告

课程名称:计算机综合课程设计

学院:土木工程学院

设计题目:模拟时钟转动程序

级别:B级

学生姓名:韦信丞

学号:05114419

同组学生:

学号:

指导教师:郭恒宁

2015年9月 1 日

C语言课程设计任务书

模拟时钟转动程序

一、课程设计的内容

1、能模拟机械钟表行走

2、还要准确利用数字显示日期和时间

3、在屏幕上显示一个活动时钟

4、按任意键时程序退出。

二、课程设计应完成的工作

1、编写完成相应题目的程序

2、编写课程设计报告,课程设计报告应该包含以下6部分

1)需求分析:包括设计题目、设计要求以及系统功能需求分析

2)总体设计:包括系统总体设计框架和系统功能模块图

3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图

4)调试分析过程描述:包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、

解决方法及其效果等,相应效果截图)

5)总结:课程设计完成了哪些主要功能,是否有扩展功能?还有哪些地方需要改进?课程设计的学习与体会?有哪些合理化建

议?

6)附录:主要原程序代码含必要的注释

3、答辩:在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。

四、应收集的资料及其主要参考文献

[1]谭浩强.C程序设计(第四版),北京:清华大学出版社,2010年6月[2]陈清华朱红 . C语言课程设计案例精选与编程指导(第一版),南京:东南大学出版社,2003年6月

[3]顾小晶 . 实用C语言简明教程(第一版),北京:中国电力出版社,2003年9月

目录

1.设计目的与要求 (4)

2.总体设计 (5)

3.详细设计…………………………………………………………63.1画出钟表的轮廓

3.2获取系统时间

4.调试分析 (7)

5.总结 (10)

6.附录(程序) (11)

7.答辩记录(正文处留出适当空白) (15)

8.指导教师意见(正文处留出适当空白) (16)

1.目的与要求

要求:

1、能模拟机械钟表行走

2、还要准确利用数字显示日期和时间

3、在屏幕上显示一个活动时钟

4、按任意键时程序退出。

设计总体要求:

采用模块化程序设计;

鼓励可视化编程;

源程序中应有足够的注释;

学生可自行增加新功能模块(视情况可另外加分);

必须上机调试通过;

注重算法运用,优化存储效率与运算效率;

需提交源程序(含有注释)及相关文件(数据或数据库文件);

(cpp文件、txt或dat文件等)

提交设计报告书,具体要求见以下说明。

课程设计报告要求:

①需求和规格说明:问题描述:题目要解决的问题是什么?

②设计

⊕设计思路:主要算法思想。

⊕总体设计:程序设计组成框图、N-S流程图。

⊕详细设计:模块功能说明(如函数功能、入口及出口参数说明,函数

调用关系描述等)。

③调试与测试:调试过程中遇到的主要问题,是如何解决的;对设计和编码

的回顾讨论和分析;改进设想;经验和体会等。

④附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些

测试数据和运行输出,当然还可以含其他测试数据和运行输出;清

单中应有足够的注释。

首先,先画出个钟的大致轮廓。从输出数字到画出外轮廓,到标出短线到画出时针、分针、秒针。这个轮廓就已经完成了。

然后,为了更加这个钟的实用性。就通过获取系统时间来结合实际意义,这是最简单,最好的方法。从应用上,它显示的是实际的时间,增强了可用性;从编程上,不用再复杂地再编一个更新时间的函数,减少程序的篇幅、复杂性和编程者的工作量。接着顺带利用时间的变量名来画时针,分针,秒针。

最后,为了让时针,分针,秒针让观察者看起来是连续的变化,即形象地模拟真实的机械钟表那样运动,就用函数让时针,分针,秒针跟着时间一齐走动。

1. 画出钟表的轮廓:

1)钟表的外轮廓

circle(320,240,189);

circle(320,240,180);

2)画出钟内的短线

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

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

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

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

line(x1,y1,x2,y2);

3)画出时针、分针、秒针

i=now.sec;

j=now.min;

k=now.hour;

dx3=l3*sin(i*6*pi/180);

dy3=l3*cos(i*6*pi/180);

dx2=l2*sin(j*6*pi/180+i*6*pi/180/60);

dy2=l2*cos(j*6*pi/180+i*6*pi/180/60);

dx1=l1*sin(k*pi/6+j*pi/360);

dy1=l1*cos(k*pi/6+j*pi/360);

line(x1,y1,x1+dx3,y1-dy3);

line(x1,y1,x1+dx2,y1-dy2);

line(x1,y1,x1+dx1,y1-dy1);

2.获取系统时间:

time(&rawtime);

t=localtime(&rawtime);

now.sec=t->tm_sec;

now.min=t->tm_min;

now.hour=t->tm_hour;

now.year=t->tm_year;

now.mon=t->tm_mon;

now.day=t->tm_mday;

now.week=t->tm_wday;

4.调试分析

在VC环境中,已经将graphics算法删除了,所以在一开始就发现在编译的时候出现了graphicsh.h头文件无法识别的错误。我上网查阅了相关回答,得知了安装graphics算法的方法,即通过EasyX插件来安装该头文件。解决了这个问题,便可以调用图形处理的函数。

再后来,发现书本教程主要面向的是TC环境,所以在获取时间这个问题上,教材运用的是gettime和getdate函数,这两个函数在VC环境下是不能运用的,

网上也没有对这两个函数进行补充的安装插件,所以只能从用其他函数代替这个方向着眼解决。于是我查找了关于VC环境中获取系统时间的函数,发现了需要学习几个知识点,首先是time_t类型,这个类型是一种整型,表示从1900年1月1日0:00:00时(这个知识点是在网上查阅到的,网上写的是1970年1月1日0:00:00,但从运行结果上看是1900年)到当前系统时刻的秒数,用到的函数是time_ttime(time_t *)函数,其返回值就是time_t类型,返回值储存到指针所指的地址(或者说直接是一个地址)中。当然这还不够,还需要将这秒数转化成直观的时间格式,这就用到了struct tm localtime(time_t *rawtime)函数,将time_t类型格式化成struct tm类型(系统预定义了的结构体),再将格式化了的数据传到我自己定义的结构体便于利用,这便解决了在VC环境下获取系统时间的问题。

获取时间问题解决后,就到怎么实现时间的递进,一开始我是想用循环结构,每次循环都将秒加一,然后再编出秒一直到年的递进规则,最后,在每个循环结束时,都将程序暂停执行一秒(VC环境中用的是void Sleep(intmillisecond)函数)。首先这本身就很复杂了,更复杂的还是闰年的确定上。由于辨别是否是闰年的程序要相当地长,从程序的简便化出发就排除了引入系统自动辨别闰年的程序模块,一开始我考虑的是系统的运行时间不会很长,可以通过程序运行前向用户询问今年是否是闰年。再后来一想,一个好用的系统,除了功能多样化以外,还需要自动化,所以我一直想解决这个非自动化的缺陷。后来我一想,为什么一定要自己编写出时间的变化呢?系统本身就是在变化的,为什么不直接利用系统时间的变化来带动程序时间的变化呢?因此,我就将获取系统时间步骤放到了for循环中,这样利用同步直接实现了时间的正确递变。在改变了思路的时候,我又想到,由于获得的时间的毫秒级数据与程序开始运行时刻有关,这就导致了程序时间与系统时间就有了毫秒级的误差,我就想能否将原来思路中用到的Sleep函数删掉,通过频率很高地获取时间来达到显示精准的时间的目的。于是我就尝试把’Sleep(1000);’语句删掉,然后运行。结果令我比较失望,由于系统执行for循环的速度并不很快,就造成了图像显示的频闪,非常不美观,索性就留下了’Sleep(1000);’语句,毫秒级的误差应用上也不需要消除。

还有一个问题是模拟时钟图像的变化问题,即实现简单动画化,刚开始,我想采用的是异或划线法删掉前一秒的图像,即通过’setwritemode(1);’语句设定划线模式,在这个模式下,如果先画了一条曲线,那么再有在相同位置再画一条一模一样的曲线的命令,即完全重合时,那么就是删除这条曲线的意思。但是实际运行过程中,发现采用了这种变化方法的时分秒针的图像在显示屏上根本没有显示,只有不采用这种方法画出的钟表轮廓得以显示。(如下图1)我一开始是想继续按这思路解决这个问题的,但是我又想,课题中有数字日历及时钟的显示要求,这种字符串图形通过这种方式是否能清楚呢?最后我决定还是换个方法,决定用cleardevice()函数对整个屏幕图像进行清零,再把所有画图的内容全都放在循环里,果然程序便能顺利正确地运行起来。(如下图2)

图1

图2

剩下的难题就只剩下数字时钟和日历的显示了,我查阅了教材,输出字符串的函数有两种,一种是void far outtextxy(intx,inty,char *str),还有一种void moveto(intx,int y)搭配void far outtext(char *str),但是是要想实现字符串加上变量的数据输出,就必须通过intsprintf(char *str,char *format,variable-list)先格式化format内容到指针str所指的数组里(该数组要足够大),然后通过上述两个方法输出str所指的数组里的内容,这次问题解决得很顺利,一次就能成功执行该功能。

5.总结

在这次模拟时钟转动程序设计中,我遇到了很多困难,通过查资料,向同学、学长、老师请教,才一一得到解决。我发现平时自学到的知识太少了,“书到用时方恨少”,今后我要把更多时间用在基础学习上,利用课余时间多看课外书籍,拓宽知识面。C语言的设计必须结合实际,充分考虑界面友好等人性化设置,这就要求我们要多观察,敢创新。另外上机实验是必不可少的,理论的东西学得再好,不结合实验区验证始终只能停留在理论阶段。通过此次实战演练,我还学到很重要的一点,就是要虚心请教他人,个人的力量总是有限的,只有发挥众人的智慧才能把任务完成的更好,这在今后的工作中也是相当重要的。

最后,感谢郭恒宁老师的指导。

6.附录#include

#include

#include

#include

#include

#include

#include

#define pi 3.141592653

struct time

{

int sec;

int min;

int hour;

int year;

int mon;

int day;

int week;

} now;

int main()

{voidlunkuo();

intgdriver=VGA,gmode=VGAHI;

double x1=320,y1=240,dx1,dx2,dy1,dy2,dx3,dy3,i,j,k;

int l1=100,l2=150,l3=160;

charch,s[200];

time_trawtime;

struct tm *t;

initgraph(&gdriver,&gmode,"d:\\clyde\\turboc2");//图形初始化for(;!(kbhit());)//一旦有键盘按键按下,终止循环

{lunkuo();//画出轮廓

time(&rawtime);

t=localtime(&rawtime);

now.sec=t->tm_sec;

now.min=t->tm_min;

now.hour=t->tm_hour;

now.year=t->tm_year;

now.mon=t->tm_mon;

now.day=t->tm_mday;

now.week=t->tm_wday;//获取时间

i=now.sec;

j=now.min;

k=now.hour;

dx3=l3*sin(i*6*pi/180);

dy3=l3*cos(i*6*pi/180);

dx2=l2*sin(j*6*pi/180+i*6*pi/180/60);

dy2=l2*cos(j*6*pi/180+i*6*pi/180/60);

dx1=l1*sin(k*pi/6+j*pi/360);

dy1=l1*cos(k*pi/6+j*pi/360);

line(x1,y1,x1+dx3,y1-dy3);

line(x1,y1,x1+dx2,y1-dy2);

line(x1,y1,x1+dx1,y1-dy1);//画出指针

sprintf(s,"%d年%d月%d日%d时%d分%d秒

",now.year+1900,now.mon+1,now.day,now.hour,now.min,now.sec); moveto(20,440);

outtext(s);

Sleep(1000);

cleardevice();//清除原图像

memset(s,'\0',sizeof(s));//清空数组s,释放待输出数组空间

}

closegraph();//关闭图像

getch();//等待用户按任意键彻底关闭程序

printf("谢谢使用\n");

return 0;

}

voidlunkuo()

{inti,l;

double x1,x2,y1,y2;

circle(320,240,189);

circle(320,240,180);

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

{

if(i%5==0)

l=18;

else

l=6;

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

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

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

y2=(180-l)*cos(i*6*pi/180)+240; line(x1,y1,x2,y2);

}

}//定义画出钟表轮廓的函数

7.答辩记录

8.指导教师意见

用C++编写模拟时钟程序

模拟时钟程序 1 基本功能描述 本次课程设计是基于面向对象的应用程序设计,主要运用C++语言在VC++开发环境下的MFC中编程实现。模拟时钟的基本功能是程序初始在屏幕上有一指针式时钟表盘,表盘为椭圆形,内部分布有12个刻度,表盘上有三个长度和颜色不同的时针分针和秒针,相互之间容易辨认,指针的运动通过数学推导之后以代码实现。表盘的下方是一个数字形式显示的数字钟,其显示时间的格式是时:分:秒,指针式时钟和数字式时钟显示的时间同步,且两个时钟所显示的时间与系统时间相致,页面的菜单项设有时间设置项,可以对所显示的时间进行调整,能进行调整的具体内容是年、月、日、时、分、秒。设计成功之后,此应用程序便可以起到时钟显示的作用。 2 设计思路 2.1 程序流程图

图1 模拟时钟程序流程图 2.2 程序流程分析 (1) 绘制指针式的时钟和数字式的时钟图形时,要在CView类下进行。其中OnDraw()函数在绘制视图窗口时被调用,在定义了画刷CBrush和画笔CPen之后,调用GetClientRect()定义屏幕大小并确定椭圆中心的坐标,然后调用Ellipse绘制椭圆,即指针式的时钟表盘,SetTextColor绘制文本颜色,调用MoveTo和LineTo绘制表盘指针,同时调用CreateFont()创建数字钟字体,TextOut则是用以数字钟的文本输出。 (2) 模拟时钟处理消息的过程:首先调用SetTimer函数定义时钟消息,包括参数指定计时器的ID,消息产生的时间间隔,回调函数为NULL;调用消息处理函数OnTimer()刷新窗口显示。在相应的WM_TIMER消息处理里添加时钟消息响应代码;最后调用KillTimer 释放该时钟。 (3) 要实现时钟的动态效果,即时间窗显示的时间每隔一秒钟更新一次,需要在时间窗格的正文调用CStatusBar::SetPaneText()函数。要定时更新,则应利用WM_TIMER消息,计时器每隔一定的时间间隔就会发出一个WM_TIMER消息,而这个时间间隔可由用户指定。MFC的Windows类提供了WM_TIMER消息处理函数OnTimer(),应在该函数内进行更新时间窗格的工作。先利用ClassWazard给CMainFrame类加入WM_TIMER消息处理函数OnTimer(),CMainFrame:: OnTimer()函数是在系统发给框架窗口消息WM_TIMER时调用

时钟计时器课程设计

单片机原理及应用课程设计报告书 题目:时钟计时器的设计 姓名: 学号: 专业:电气工程及其自动化 指导老师:周令 设计时间: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的

模拟时钟转动程序

模拟时钟转动程序 一、课程设计的内容 能模拟机械钟表行走,还要准确利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。 二、课程设计的要求与数据 1.进一步掌握和利用C语言进行课程设计的能力 2.进一步理解和运用结构化程序设计的思想和方法 3.初步掌握开发一个小型实用系统的基本方法 4.学会调试一个较长程序的基本方法 5.学会利用流程图和N-S图表示算法 6.掌握书写程序设计开发文当的能力 三、课程设计应完成的工作 1、编写完成相应题目的程序 2、编写课程设计报告,课程设计报告应该包含以下6部分 1)需求分析:包括设计题目、设计要求以及系统功能需求分析 2)总体设计:包括系统总体设计框架和系统功能模块图 3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图 4)调试分析过程描述:包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、 解决方法及其效果等,相应效果截图) 5)总结:课程设计完成了哪些主要功能,是否有扩展功能?还有哪些地方需要改进?课程设计的学习与体会?有哪些合理化建 议? 6)附录:主要原程序代码含必要的注释 3、答辩:在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。 四、课程设计进程安排

五、应收集的资料及其主要参考文献 [1]谭浩强.C程序设计(第三版)[M]北京:清华大学出版社,2005年9月 [2]谭浩强.C程序设计题解与上机指导(第三版)[M]北京:清华大学出版社,2005年7月 [3]夏宝岚张慕蓉夏耘.程序设计教程(第二版)[M],上海:华东理工出版社,2003.1 [4]陈锦昌赵明秀.C语言计算机绘图教程(第一版)[M],广州:华南理工大 学出版社,1998.9 发出任务日期:2010年12月15日指导教师签名: 计划完成日期:2010年12月30日基层教学单位责任人签名: 主管院长签章: 目录 1.设计目的与要求 (5)

模拟电子时钟c语言程序

算法:将当前时间显示到屏幕,当时间发生变化时,清屏,显示新的时间(当有键盘操作时退出程序)。 显示时间格式:小时:分钟:秒 /* DEV C++ Win XP*/ #include #include #include #include typedef struct { int x; int y; }Point; time_t now; struct tm *pt,t1,t2; int printpoint(Point p) { Point p1; p1.x=p.x+2; p1.y=p.y+4; gotoxy(p1.x,p1.y); printf("%c%c",2,2); gotoxy(p1.x, p1.y+1); printf("%c%c",2,2); p1.y+=4; gotoxy(p1.x,p1.y); printf("%c%c",2,2); gotoxy(p1.x,p1.y+1); printf("%c%c",2,2); return 0; } int print0(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); if(i==0||i==12) printf("%c%c%c%c%c%c",2,2,2,2,2,2); else printf("%c%4s%c",2," ",2); } return 0; }

int print1(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); printf("%5s%c"," ",2); } return 0; } int print2(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); if(i==0||i==6||i==12) printf("%c%c%c%c%c%c",2,2,2,2,2,2); else if(i>0&&i<6) printf("%5s%c"," ",2); else printf("%c",2); } return 0; } int print3(Point p) { int i=0; for(;i<13;i++) { gotoxy(p.x+1, p.y+i); if(i==0||i==6||i==12) printf("%c%c%c%c%c%c",2,2,2,2,2,2); else printf("%5s%c"," ",2); } return 0; } int print4(Point p) {

单片机课程设计 秒表计时器(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)

新颖60秒旋转电子钟的设计

目录 第1节引言 (2) 1.1 电子钟概述 (2) 1.2 设计任务 (2) 1.3 系统主要功能 (3) 第2节电子钟硬件设计 (3) 2.1 系统的硬件构成及功能 (3) 2.2 AT89C2051单片机及其引脚说明 (4) 2.3 60秒旋转译码驱动原理 (6) 2.4 时分显示部件 (8) 第3节系统软件设计 (10) 3.1 系统主程序设计 (10) 3.2 定时计数中断程序设计及累计误差消除 (11) 3.3 定时计数中断程序设计 (12) 3.4 时间调整或定闹设置程序设计 (13) 第4节系统调试与测试结果分析 (14) 4.1 使用的仪器仪表 (14) 4.2 系统调试 (14) 4.3 测试结果 (14) 4.4 测试结果分析 (14) 4.5 系统误差处理 (15) 结束语 (15) 参考文献 (16) 附录 (17)

新颖60秒旋转电子钟 第1节引言 目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。现在市场上也出现了一些电子钟,它以六只数码管显示时分秒,与传统的以指针显示秒的方式不同,违背了人们传统的习惯与理念,而且这类电子钟一般是采用大型显示器件,且外观设计欠美观,很少进入百姓家庭。此外,无论是机械钟,电子钟还是石英钟,都存在共同的问题:时间误差。针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,有效的克服了时钟存在的误差问题,并能在夜间不必其它照明就能看到时间,并且以60只发光二极管实现秒显示,并能发出嘀哒嘀哒声,用户容易接受,而且美观大方,更具实用性。 1.1 电子钟概述 新颖60秒旋转电子钟是本次的设计内容,它采用LED显示器件显示电子时钟,有效的克服了时钟存在的误差问题;它采用的数码管显示时间能在夜间不需要其它照明就能看到时间,而且在7点以前和21点以后数码显示管的亮度会变暗,整点报时也会消失,不仅实现节能,而且不会影响人们的休息;并具有一天两次闹铃的功能,可通过手工更改二次闹铃的时间,停闹无须手工操作;它以60只发光二极管实现秒显示,接看近于传统的秒针来显示秒的形式,利用蜂鸣器模拟秒针行走的嘀哒声。 1.2 设计任务 1.任务: 设计一款基于AT89C2051单片机的电子钟。 2.设计基本要求: (1)用4只LED数码管输出显示时和分。 (2)可通过按键设置闹钟功能,且停闹无须手工操作。 (3)可通过按键设置分校时。

用C#编的模拟时钟(附源代码)

使用C#模拟时钟表的一种简单制作方法 1.GDI+图形库简介 1.1概述 GDI+是Microsoft的新.NET Framework类库用于图形编程,因为它是.NET Framework的一部分,所以也是面对对象的。 1.2设备环境和对象 在GDI+中识别输出设备的方式是使用设备环境DC对象,该对象存储特定设备的信息并能把GDI+API函数调用转换为要发送给该设备的指令,还可以查询设备环境对象,确定对应的设 备有什么功能,这样才能据此调整输出结果。 在GDI+中设备环境包装在.NET基类System.Drawing.Graphics中,大多数绘图工作都是调用Graphics的对象完成的。 2.如何利用GDI+绘制时钟表 2.1时钟表的各控件属性的设置 用C#中各控件制作一个指针式的时钟放在桌面上显示的界面。包括1个PictureBox控件、1个Timer控件、1个NotifyIcon控件及StatusStrip控件。 2.2各控件的属性设置 Timer控件的Interval属性值设置为1000,Enable属性值设置为True;窗体的StartPosi tion属性设置为CenterScreen,这个属性使得钟表在屏幕上中中央显示。 2.3功能实现代码 为实现该时钟表功能,需要设计并输入相应对象相应事件或过程的程序代码。方法是:在设计状态,双击相应控件,或双击控件的某一事件,并输入相应的C#程序代码。 2.4通用声明及时钟表设计方法 在程序中需要有一批变量或常量的定义,可事先在通用声明中完成,代码如下: const int s_pinlen = 100;//秒针长度 const int m_pinlen = 75; //分针长度 const int h_pinlen = 75; //时针长度 PointF center = new PointF(s_pinlen +3, s_pinlen +3);//中心点位置 SolidBrush sb = new SolidBrush(Color.Black);//时钟圆心的刷子 除上述变量声明外,时钟表功能编写子方法,方法名为:AngleToPos和myClock,

模拟时钟的VB程序

沈阳航空航天大学课程设计 学号2009040301055 班级94030102 姓名李超 指导教师刘学平 2010 年3 月15 日

沈阳航空航天大学 课程设计任务书 学院:航空宇航工程学院专业:飞行器制造班级:94030102 学号:2009040301055 题目:模拟时钟 一、课程设计时间 2011年3月7日~11日(第1周),共计1周。 二、课程设计内容 在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:可以对时钟的时间进行手工修正。 用户界面中的菜单(或命令按钮)至少应包括“运行时钟”、“修改时间”、“退出”3项。 三、课程设计要求 程序质量: ?贯彻事件驱动的程序设计思想。 ?用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: ?课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提 供的模板。 四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语

目录 一、需求分析 (4) 二、设计分析 (5) 三、关键技术 (7) 四、总结 (12) 五、完整的源程序 (14) 六、参考文献 (16)

一、需求分析 “模拟时钟”软件。在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:可以对时钟的时间进行手工修正。用户界面中的菜单(或命令按钮)至少应包括“运行时钟”、“修改时间”、“退出”3项。 ①在VB窗体Form1中设计模拟时钟表盘,设计四个按钮:运行时钟、修改时间、应用、退出。在窗体Form2中设计填输入时间的位置和两个按钮:重新输入、确定。 ②用运行时钟按钮使时钟从零点开始运行。 ③利用修改时间按钮在Form2中输入合理时间,单击确定后单击应用使模拟时钟按所需时间开始运行。 ④Form2中重新输入按钮可以使所有Text控件清空,可以进行时间的重新输入。 ⑤程序可以实现时钟指针的转动。

多功能计时器-课程设计

信息工程学院课程设计报告书题目: 多功能计时器 专业:电子信息科学学技术 班级: 学号: 学生姓名: 指导教师: 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来控制。

单片机旋转时钟结题报告

单片机课题结题分析报告课题名称:LED旋转时钟 二O一一年十二月

LED旋转时钟 【摘要】本实验利用单片机的特性,将各种廉价的原材料自制成可用于室内装饰和便利生活的LED 旋转时钟。其制作方法简单、整体结构紧凑、材料环保、成品便于移动、外形美观而且成本低廉。 【关键词】发光二极管单片机系统旋转视觉停留编码显示时间 一、课题背景: 课题构思背景 在课题构思初期,本组计划用51单片机来实现变色光纤花篮的控制(本组大二期间物理课题,计划将其改进)。之后通过查阅资料,本组认为制作旋转时钟与变色光纤花篮大体原理相同,但在技术知识上比变色光纤花篮更进一步,所以将课题目标定为“旋转时钟”。 课题技术背景 “单片机原理及应用”是我们大学本科学习期间的重要课程之一。它注重培养同学们的实践动手能力,使我们在自学与实际操作中将知识融汇贯通。单片机的应用大到卫星、导弹,小到洗衣机、微波炉,都有他们的踪影。 旋转时钟的主要特点就是结构新颖,效果奇特。加入了现代科技的元素,利用人眼的视觉暂留特性,用单片机作为主控芯片,采用电机带动发光二极管高速旋转,霍尔传感器进行定位,利用刷屏显示原理呈现时钟画面及DS18B20温度显示。造型及显示效果个性、新颖,解决了传统时钟结构单一,显示效果固定的缺陷,更好了满足了人们对美的追求。 现今人们家庭用的时钟主要还是传统意义上的时钟,固定的表盘与表针,显示效果单一,不能满足时钟不但用来看时间还是一件很好的装饰品的要求。随着科技的发展网络上出现了以DIY为主要形式的旋转时钟作品。 但是随着单片机技术、高亮发光二极管制造技术和高速稳定电机制造技术的发展,这种千奇百怪、创意无限的电子旋转时钟必将走进千家万户。 二、原理介绍 (一)、发光二极管发光原理 发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN 结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有

模拟时钟转动程序课程设计报告

《高级语言》课程设计 课题名称模拟时钟转动程序 学院信息工程专业网络工程地点 D507 学生姓名钟都华学号 13046130 开课时间 2013 至 2014 学年第 2 学期 同组人李卓 成绩

一、课程设计的目的和要求 1.课程设计的目的 本程序旨在训练读者的基本编程能力,使读者熟悉C语言图形模式下的编程。本程序中涉及时间结构体、数组、绘图等方面的知识。通过本程序的训练,使读者能对C 语言有一个更深刻的了解,掌握利用C语言相关函数开发电子时钟的基本原理,为进一步开发出高质量的程序打下坚实的基础。 2.课程设计的要求 能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;要准确的利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过Tab键切换按Esc时程序退出。 二、设计 如下图,此电子时钟主要由以下4个功能模块组成。 1.界面显示模块 电子时钟界面显示在调用时钟运行处理之前完成,在这里主要调用了C语言图形系统函数和自负屏幕处理函数画出时钟程序的主界面。主界面包括类似Windows自带的电子时钟的界面和帮助界面两部冯。电子时钟界面包括一个模拟时钟运转的钟表和一个显示时间的数字钟表。在帮助界面中,主要包括一些按键的操作说明。 2.按键控制模块 按键控制模块主要完成两大部分功能。第一,读取用户按键的键值。第二,通过对键盘按键值得判断,执行相应的操作,如光标移动、修改时间。 3.时钟动画处理模块 在时钟动画处理模块中,它通过对相关条件的判断和时钟坐标值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟时钟运转的功能。

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 计数器 控制电路 报警电路

基于单片机的多功能数字钟60秒LED旋转电子钟

第1节引言 1.1 电子钟概述 目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。要知道当前的时间,必须先开灯,故较为不便。现在市场上也出现了一些电子钟,它以六只LED数码管来显示时分秒,违背了人们指针式的传统习惯与理念,而且这类电子钟一般是采用大型显示器件,适用于银行、车站等公共场所,且外观设计欠美观,很少进入百姓家庭。此外,无论是机械钟、石英钟还是电子钟,都存在着共同的问题:时间误差。针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,解决了时钟存在的误差问题,并能在夜间不必其它照明就能看到时间,且以60只发光管实现秒显示,接近于传统的秒针来显示秒的形式,用户容易接受,而且美观大方。另加七只装饰用的LED灯,使整个时钟显的相当美观新颖,故还可作为室内装饰用。 1.2 设计任务 本次设计通过对一个实现定时、双时钟显示、闹钟、温度等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由AT89C2051、LED数码管、按键、三极管、两片CD4017BE、CD4069BE、DS18B20、电阻等组成。能实现时钟时、分、秒的显示。也具有温度显示、时间设置、闹铃开和关设置、制式切换。文章后附有电路图、程序清单。 1.3 系统主要功能 电子钟的外观如图1所示。周边60只发光管顺时旋转来显示秒,中间四只LED 数码管用于显示时间,中下方的七只LED灯顺时旋转,供装饰用。其主要功能有: ①整点报时; ②四只LED数码管显示当前时分; ③每隔一秒钟周边的60只LED发光管旋转一格; ④当发生停电事件时,由后备电池供电,系统进入低功耗状态,所 有显示部件停止显示,这样即延长了电池的寿命,同时又保证CPU继续计数,不至于因停电而时钟停止运行。 ⑤当恢复供电后,系统自动恢复工作状态,不影响计时。

模拟时钟应用程序

案例五模拟时钟应用程序 以实例为背景学习基于MFC的WINDOWS应用程序设计,编写一个模拟时钟程序,此程序在屏幕左边有一个指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。用菜单选项或按钮设置时间和秒表。时间不必与机器系统时间相同,可任意设置。 模拟时钟示意图 1 编程要求 (1)为该程序设计一个美观大方的图标。 (2)程序界面设计合理,色彩得体大方,显示正确。 (3)时针、分针和秒针形象美观,即使各指针重合也可辨认。 (4)各指针运动规律正确。为便于演示,时钟速度应比实际时间快20倍,即1小时相当于3分钟。 (5)数字式时钟的时间显示与指针式时钟显示一致。

(6)按下设置时间按钮或菜单项可弹出一对话框,用于设置当前的时间和日期。 (7)按下秒表控制按钮后,秒表显示窗中显示从0开始的时间,单位为百分之一秒。再次按下秒表控制按钮后计时停止,该窗口显示累计时间。 2 问题分析 本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、鼠标消息、菜单命令、对话框、画笔/画刷、显示文字等。指针运动算法和屏幕重绘方法是本程序主要难点所在。 不论何种指针,每次转动均以π/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:x =圆心x坐标+ 指针长度* cos (指针方向角) y =圆心y坐标+ 指针长度* sin (指针方向角) 注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可能跨越圆心,因此一个指针需要计算两个端点。 三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。若用三个定时器消息分别处理时针、分针和秒针的运动,就会使问题复杂化且不易实现三个指针联动的正确规律。采用一个定时器消息可以很容易实现指针联动算法。 由于屏幕的重绘速度很快(50 ms一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。本程序采用非删除式重绘,假定指

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为驱动器,共阴极七段数码管作为显示器。设计图见附录一

单片机模拟电子时钟设计

单片机课程设计 课题:单片机模拟电子时钟设计 学院:自动化学院 专业: 07电气工程及其自动化 (低压电力智能控制方向) 姓名:谭善文 学号:2007104743002 指导老师:张华

目录 一、前言 (3) 二、设计目的 (3) 三、设计任务与要求 (3) 四、设计原理 (3) 五、总体设计方案 (4) 六、小结与展望 (21) 七、致谢 (22) 八、主要参考文献 (22) (3)、晶振 (5) (4)、LED (5) (5)、复位 (6) (6)、蜂鸣器 (6) (7)、按键 (6) (8)、串行口 (7) (9)、单片机 (7) (10)、数码管 (8) 2、程序编写 (10) 六、小结与展望 (21) 七、致谢 (22) 八、主要参考文献 (22)

一、前言 在当今的工作和生活环境中,有越来越多的单片机在为人们服务,例如电视遥控、手机、洗衣机、空调等,单片机几乎无所不在,学习单片微型计算机这门课程,就是为了对单片微型计算机有进一步感性的认识,了解、掌握、应用,甚至设计开发它。让我们能综合运用单片机的软、硬件技术分析实际问题,为工业生产、科学研究和实验设备等领域的单片机应用和开发打下良好的基础。 二、设计目的 a)通过《单片微型计算机原理与接口技术教程》了解单片微型计算机的发 展; b)根据课程设计的要求,学会用汇编语言设计程序,学会应用程序设计调 试软件; c)通过调试程序设计模块,掌握单片微型计算机的结构原理,了解程序设 计的编程思想; d)通过软件调试熟悉使用单片机指令系统,掌握汇编语言程序设计方法及 编程技巧,掌握子程序的设计与使用,熟悉中断服务程序的设计及调用 过程。 三、设计任务与要求 任务:利用单片机定时功能实现电子时钟的计时 要求:1.设计单片机电子时钟设计控制方案,功能设计; 2.详细描述实现需要的硬件,效果等; 3.编写汇编语言程序设计,在KEIL仿真实现调试程序; 四、设计原理 单片机可以利用定时功能实现电子时钟的计时。设计时利用单片机的定时器

旋转时钟原理和程序

POV即persistanc d of vision 利用单片机控制流水灯,通过流水灯移动以及人的视觉暂留效应产生各种图形或文字。效果如下图:

这张可以窥探其原理. 原理比较简单,使用单片机很容易实现,转帖旋转LED电子钟制作详细过程。 关于作者提出的两个难点,个人观点,供电科采用电机单独供电,单片机供电加装在旋转的电路板上。改进电路,使用电子钟芯片,加装备用电池,加装备用电池后也可以很容易解决调时问题。本人打算在次基础上改进一下进行制作,另作者提供的源程序没有任何注释,对与我们新手很不方便,随后我将在电路改进后写出有详细注释的程序,以方便更多人制作,敬请期待。 以下内容转自“艺新工作室”

在网上看到不少老外做的各种旋转LED显示屏,非常COOL,我也动手用洞洞板试做了一个类似的显示屏,结果感觉还不错。于是再接再励继续努力,将作品进一步改进,完善后制成如今这个样子。 由于刚学51单片机,加上制作电路板软件也是从零开始,的确花了我不少的时间和精力。不过也就是在这艰难的独立制作中,真正学到了不少实在的东西。 本项目的关键是如何解决高速旋转的电路板如何供电,如何调时的问题。我采用电机电刷的原理,将旋转轴钻空,通过一只插头将电源的从反面引到前面的电路板上,而这个旋转的插头又与固定在背板上的两个铜片接触的。调时的问题有些困难,一是让电路板在旋转前与PC机相接,由电脑传送调时数据,这虽然可行但不方便。还有就是用遥控方法,但此方案在调试方面有很大的困难。 显示方式上,我采用平衡式的两排LED,这除了在旋转时能较好的保持平衡外,主要能利用两边交替显示方式,比单排要快一倍。 本装置不仅是一个时钟,它还可以动态显示汉字及图案,这就看如何发挥了。 其具体制作过程如下: 一。旋转电机的制作 从制作成本与方便考虑,选用旧电脑用的大软驱上的直流无刷电机,只是对局部进行改造。 就是这种古董软驱

模拟时钟转动程序

东南大学 C语言课程设计报告 课程名称:计算机综合课程设计 学院:土木工程学院 设计题目:模拟时钟转动程序 级别:B级 学生姓名:韦信丞 学号:05114419 同组学生: 学号: 指导教师:郭恒宁 2015年9月 1 日 C语言课程设计任务书

模拟时钟转动程序 一、课程设计的内容 1、能模拟机械钟表行走 2、还要准确利用数字显示日期和时间 3、在屏幕上显示一个活动时钟 4、按任意键时程序退出。 二、课程设计应完成的工作 1、编写完成相应题目的程序 2、编写课程设计报告,课程设计报告应该包含以下6部分 1)需求分析:包括设计题目、设计要求以及系统功能需求分析 2)总体设计:包括系统总体设计框架和系统功能模块图 3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图 4)调试分析过程描述:包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、 解决方法及其效果等,相应效果截图) 5)总结:课程设计完成了哪些主要功能,是否有扩展功能?还有哪些地方需要改进?课程设计的学习与体会?有哪些合理化建 议? 6)附录:主要原程序代码含必要的注释 3、答辩:在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。 四、应收集的资料及其主要参考文献 [1]谭浩强.C程序设计(第四版),北京:清华大学出版社,2010年6月[2]陈清华朱红 . C语言课程设计案例精选与编程指导(第一版),南京:东南大学出版社,2003年6月 [3]顾小晶 . 实用C语言简明教程(第一版),北京:中国电力出版社,2003年9月

课程设计——秒表计时器

天津机电职业技术学院 《电子技术》课程设计论文 电子秒表 .完成时间:2009.12.30—2010.1.6 班级:08电气自动化三班 姓名:马赛男李丽美 学号:200812065 200812060

前言 21世纪是一个电子技术和电子元件有更大发展的世纪。回顾百年来电子技术和电子工业发展的成就,举世瞩目。可以看到,从国民经济到日常生活的各个方面,电子产品无所不在,体事例无庸枚举,其发展前景未可限量。作为一个学习电子专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。课程设计就是一个理论联系实际的机会。 本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。在写本报告的过程中,摘编了生产厂家和各种电子类报刊、参考书的资料,特向提供资料的同学及作者表示感谢。由于水平有限,报告中定有不妥之处,请提出宝贵意见。

目录 一、题目-------------------------------------------------------1 二、题目说明-------------------------------------------------1 三、原理介绍-------------------------------------------------1 四、单元电路设计-------------------------------------------2 1、时基信号发生器-------------------------------------2 2、计数器-------------------------------------------------7 3、译码器-------------------------------------------------11 4、显示器-------------------------------------------------13 5、防抖开关----------------------------------------------15 五、总装图----------------------------------------------------17 六、名细表----------------------------------------------------18 七、分工情况-------------------------------------------------19 八、后记-------------------------------------------------------20 九、参考资料-------------------------------------------------21

相关文档