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

模拟时钟转动程序

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

东南大学

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.详细设计 (6)

3.1画出钟表的轮廓

3.2获取系统时间

4.调试分析 (7)

5.总结 (10)

6.附录(程序) (11)

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

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

1.目的与要求

要求:

1、能模拟机械钟表行走

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

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

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

设计总体要求:

?采用模块化程序设计;

?鼓励可视化编程;

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

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

?必须上机调试通过;

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

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

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

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

课程设计报告要求:

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

②设计

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

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

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

用关系描述等)。

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

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

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

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

单中应有足够的注释。

2.总体设计

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

然后,为了更加这个钟的实用性。就通过获取系统时间来结合实际意义,这是最简单,最好的方法。从应用上,它显示的是实际的时间,增强了可用性;从

编程上,不用再复杂地再编一个更新时间的函数,减少程序的篇幅、复杂性和编程者的工作量。接着顺带利用时间的变量名来画时针,分针,秒针。

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

3.详细设计

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_t time(time_t *)函数,其返回值就是time_t类型,返回值储存到指针所指的地址(或者说直接是一个地址)中。当然这还不够,还需要将这秒数转化成直观的时间格式,这就用到了struct tm localtime(time_t *rawtime)函数,将time_t类型格式化成struct tm类型(系统预定义了的结构体),再将格式化了的数据传到我自己定义的结构体便于利用,这便解决了在VC环境下获取系统时间的问题。

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

还有一个问题是模拟时钟图像的变化问题,即实现简单动画化,刚开始,我想采用的是异或划线法删掉前一秒的图像,即通过’setwritemode(1);’语句设定划线模式,在这个模式下,如果先画了一条曲线,那么再有在相同位置再画一条一模一样的曲线的命令,即完全重合时,那么就是删除这条曲线的意思。但是实际运行过程中,发现采用了这种变化方法的时分秒针的图像在显示屏上根本

没有显示,只有不采用这种方法画出的钟表轮廓得以显示。(如下图1)我一开始是想继续按这思路解决这个问题的,但是我又想,课题中有数字日历及时钟的显示要求,这种字符串图形通过这种方式是否能清楚呢?最后我决定还是换个方法,决定用cleardevice()函数对整个屏幕图像进行清零,再把所有画图的内容全都放在循环里,果然程序便能顺利正确地运行起来。(如下图2)

图1

图2

剩下的难题就只剩下数字时钟和日历的显示了,我查阅了教材,输出字符串的函数有两种,一种是void far outtextxy(int x,int y,char *str),还有一种void moveto(int x,int y)搭配void far outtext(char *str),但是是要想实现字符串加上变量的数据输出,就必须通过int sprintf(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()

{void lunkuo();

int gdriver=VGA,gmode=VGAHI;

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

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

char ch,s[200];

time_t rawtime;

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;

}

void lunkuo()

{int i,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.指导教师意见

基于单片机的倒计时器(计数器)课程设计)

湖南文理学院课程设计报告 课程名称:单片机原理课程设计 学院:电信学院 专业班级:自动化07101 学生姓名: 指导老师: 完成时间: 报告成绩:

倒计时器设计

目录 目录 (1) 摘要 (3) ABSTRACT (4) 第一章设计要求与方案确定 (5) 1.1设计意义 (5) 1.2设计要求 (5) 1.3方案确定 (5) 第二章硬件电路 (6) 2.1单片机概述 (6) 2.1.1 单片机基础 (6) 2.1.2单片机与单片机系统 (7) 2.1.3 单片机的产生与发展 (7) 2.2MCS-51系列单片机介绍 (8) 2.2.1 80C51 芯片介绍 (8) 2.2.3 最小系统 (9) 2.2.4 定时与中断的概念 (10) 2.4LED显示电路设计与器件选择 (12) 2.4.1.LED显示器的选择 (13) 2.4.2LED驱动芯片选择 (13) 2.5按键电路设计 (13) 2.6蜂鸣器电路的设计 (14) 第三章倒计时器的设计 (15) 3.1倒计时器系统设计方案及框图 (15) 3.2程序设计 (15) 3.2.1主程序设计 (15) 3.2.2倒计时模块设计 (17) 3.2.3键盘扫描数码管显示程序 (17)

第四章倒计时器设计仿真 (18) 4.1设置倒计时初值 (18) 4.2开始倒计时 (18) 4.3倒计时结束并报警 (18) 总结 (20) 参考文献 (21) 致谢 (22) 附录1 倒计时器设计源程序 (23) 附录2 所用元器件清单 (23)

摘要 近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月异更新。在实时控制和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本系统由单片机系统、矩阵式键盘、蜂鸣器和LED数码管显示系统组成。装置利用AT89C51单片机与74LS245驱动器驱动LED数码管显示。通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。当倒计时时间到时,由P1.0口驱动蜂鸣器发声报警。为了简化电路,降低成本,采用以软件为主的的接口方法。 该系统实用、功能灵活多样,可以对计时时间进行实时控制,可以广泛的应用于各种场所的控制设备。 【关键词】单片机;LED数码管显示器;倒计时;报警

旋转LED灯程序(51单片机)

飘飞在空中的文字(详情咨询QQ:278540660) 一、实物图 (夜晚可以观测到飘在空中的文字,美!!!) 二、部分代码 /***************************************************************main. c***************************************************/ #include void main() { EX0init(); TIM0init(); Init_DS1302(); while(1) { time_set(IRcord[2]); IRcord[2]=0; if(time_love==0) {

if(time_onoff==0) { ds1302_read_time(); Dig_time(); } else { Dig_time(); } } else { Display_love(); } while(!flag); flag=0; } } /***************************************************************redco n.h**************************************************/ #define uchar unsigned char #define uint unsigned int sbit IR=P3^2; uchar irtime; //中断次数 uchar IRcord[4]; //记录接收到的四个字节数据 uchar irdata[33]; //接收到的32个二进制bit uint flag=0; uchar nums=0; uint timelate=0; void TIM0init(void) //定时器0初始化 { TMOD=0x02; //定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; //重载值 TL0=0x00; //初始化值(0.255ms一次中断)--晶振频率的十二分之一 ET0=1; //开中断 TR0=1; } void EX0init(void) { IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; //使能外部中断0 IT1=1; //指定外部中断1下降沿触发,INT0 (P3.3) EX1=1; //使能外部中断1

用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时调用

模拟时钟转动程序

模拟时钟转动程序 一、课程设计的内容 能模拟机械钟表行走,还要准确利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。 二、课程设计的要求与数据 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语言课程设计分析

《高级语言程序设计》 课程设计报告 题目:图形模拟时钟 专业:计算机科学与技术 班级:计算机科学与技术2班 姓名: 学号: 指导教师:陈广宏 成绩: 计算机与信息工程系 2014年6月20日

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

篮球竞赛24秒计时器设计-

学号: 课程设计 题目 学院 专业 班级 姓名 指导教师

年月日

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 篮球24秒记时器的设计与制作 初始条件: (1)具备显示24秒记时功能 (2)计时器为递减工作,间隔为1S (3)递减到0时发声光报警信号 (4)设置外部开关,控制计时器的清0,启动及暂停 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)设计任务及要求 (2)方案比较及认证 (3)系统框图,原理说明 (4)硬件原理,完整电路图,采用器件的功能说明 (5)调试记录及结果分析 (6)对成果的评价及改进方法 (7)总结(收获及体会) (8)参考资料 (9)附录:器件表,芯片资料 时间安排: 6月16日~6月19日:明确课题,收集资料,方案确定 6月19日~6月21日:整体设计,硬件电路调试 6月21日~6月24日;报告撰写,交设计报告,答辩 指导教师签名:2014年 6月日

前言 电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。 在许多领域中计时器均得到普遍应用,诸如在体育比赛,定时报警器、游戏中的倒时器,交通信号灯、红绿灯、行人灯、交通纤毫控制机、还可以用来做为各种药丸,药片,胶囊在指定时间提醒用药等等,由此可见计时器在现代社会是何其重要的。 篮球作为一项全民健身项目,已有一定的历史。在中国,篮球很盛行,篮球比赛也日趋职业化。篮球比赛中有一项违例时间要用倒计时器,目前多数采用的是24秒制。有需要就会有市场,因此设计一款24秒计时器是非常有必要也非常有前景的。 该计时器要有递减计时及报警功能。因此符合比赛中违例判罚的需要。 在NBA比赛中,规定了球员的持球时间不能超过24秒,否则就犯规了。本课程设计的“篮球竞赛24秒计时器”,可用于篮球比赛中,用于对球员持球时间24秒限制。一旦球员的持球时间超过了24秒,它自动的报警从而判定此球员的犯规。 本设计主要能完成:显示24秒倒计时功能;系统设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能;计时器为24秒递减计时其计时间隔为1秒;计时器递减计时到零时,数码显示器不灭灯,同时发出光电报警信号等。 整个电路的设计借助于proteus仿真软件和数字逻辑电路相关理论知识,并在proteus下设计和进行仿真,得到了预期的结果。

新颖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语言程序

算法:将当前时间显示到屏幕,当时间发生变化时,清屏,显示新的时间(当有键盘操作时退出程序)。 显示时间格式:小时:分钟:秒 /* 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) {

C语言模拟时钟转动课程设计报告

《C语言程序设计》 课 程 设 计 报 告 题目:模拟时钟转动程序 班级: 组别: 组员: 指导教师:

目录 第一章课程设计的题目 (2) 1.1 C语言课程设计的题目 (2) 第二章课程设计的要求 (2) 2.1 C语言课程设计的要求 (2) 第三章课程设计的目的 (2) 3.1 C语言课程设计的目的 (2) 第四章课程设计的内容 (3) 4.1 C语言课程设计的程序清单和注释 (3) 第五章课程设计的运行结果 (7) 5.1 C语言课程设计的运行结果 (7) 第六章课程设计的结果分析 (8) 6.1 C语言课程设计的结果分析 (8) 第七章课程设计的心得体

会 (9) 7.1 C语言课程设计的心得体会 (9) 模拟时钟转动程序 第一章课程设计的题目 1.1 C语言课程设计的题目 本次为期两周的课程设计的题目为设计一个模拟时钟转动的程序。 第二章课程设计的要求 2.1 C语言课程设计的要求 能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。

第三章课程设计的目的 3.1 C语言课程设计的目的 加深对讲授内容的理解,尤其是一些语法规定。通过课程设计,自然地、熟练地掌握。熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。学会上机调试程序。 第四章课程设计的内容 4.1 C语言课程设计的程序清单和注释 模拟时钟转动程序清单+注释 #include //包含窗口头文件 #include //头文件,包含了一些数学计算的函数 #define TWOPI (2*3.14159) #define IDTIMER 1 //计时器ID #define ANGLE TWOPI/360 //2PI LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam ); //回调函数 Int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow ) // 应用启动函数mian { TCHAR szClassName[] = TEXT("analogCloc"); MSG msg; //定义消息 HWND hwnd; //窗口句柄 WNDCLASS wndclass; //系统支持结构,定义并初始化窗口结构 wndclass.cbClsExtra = 0; //窗口类无扩展 wndclass.cbWndExtra = 0; //窗口势力无扩展 wndclass.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH); //窗口背景为白色 wndclass.hCursor = NULL;

单片机旋转时钟结题报告

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

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

模拟时钟的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控件清空,可以进行时间的重新输入。 ⑤程序可以实现时钟指针的转动。

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

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

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

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

基于单片机的多功能数字钟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继续计数,不至于因停电而时钟停止运行。 ⑤当恢复供电后,系统自动恢复工作状态,不影响计时。

课程设计--篮球竞赛24秒计时器

课程设计--篮球竞赛24秒计时器

一、课题名称 二、内容摘要 本设计主要是完成篮球竞赛24秒计时器,显示24秒倒计时功能,系统设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能;在直接清零时,数码管显示器全部显示为“0”;计时器为24秒递减计时,其计时间隔为1秒;计时器递减计时到零时,数码显示器不灭灯,同时发出光电报警信号等。 整个电路的设计借助于Multisim 10.0.1仿真软件和数字逻辑电路相关理论知识,并在Multisim 10.0.1下设计和进行仿真,得到了预期的结果。 关键字:计时器;数码显示器;Multisim 随着信息时代的到来,电子技术在社会生活中发挥着越来越重要的作用,运用模电和数电知识设计的电子产品成为社会生活不可缺少的一部分,特别是在各种竞技运动中,定时器成为检验运动员成绩的一个重要工具。在篮球比赛中,规定了球员的持球时间不能超过24秒,否则就犯规了。本课程设计的“篮球竞赛24秒计时器”,可用于篮球比赛中,用于对球员持球时间24秒限制。一旦球员的持球时间超过了24秒,它自动的报警从而判定此球员的犯规。 本设计主要能完成:显示24秒倒计时功能;系统设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能;在直接清零时,数码管显示器灭灯;计时器为24秒递减计时其计时间隔为1秒;计时器递减计时到零时,数码显示器不灭灯,同时发出光电报警信号等。

三、设计内容及要求 1.2.1基本要求 (1)显示24秒计时功能。 (2)控制计时器直接清零、启动、暂停/连续功能。 (3)计时器为24秒递减计时器。 (4)递减计时到零时,显示器不能灭灯,同时发出光电报警信号。 1.2.2 设计任务及目标 (1)根据原理图分析各单元电路的功能; (2)熟悉电路中所用到的各集成块的管脚及其功能; (3)进行电路的装接、调试,直到电路能达到规定的设计要求; (4)写出完整、详细的课程设计报告。 四、方案论证及比较 本设计的核心部分是要设计一、 个24s倒计数器,并且对计数结果进行实时显示,同时要实现设计任务中提 到的各种控制要求,因此该系统包括秒脉冲发生电路,计数器电路,译码显示电路,控制电路和电路报警电路5部分。其中,计数器电路和控制电路时系统的主要部分。计数器电路完成24s倒计时功能,而控制电路具有直接控制计

模拟时钟应用程序

案例五模拟时钟应用程序 以实例为背景学习基于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一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。本程序采用非删除式重绘,假定指

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

课程设计说明书(论文) 课程名称:课程设计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 同组设计者及分工:

篮球24秒倒计时器报告

电子课程设计报告 题目名称:篮球竞赛30秒倒计时器 姓名: 专业: 班级: 学号: 同组人: 指导老师: 南昌航空大学电子信息工程学院 二零零八年九月

电子信息工程学院 电子基础课程设计任务书 I、电子基础课程设计题目: 篮球竞赛30S计时器 II、电子基础课程设计技术要求及主要元器件: 基本要求:1)具有显示30S计时功能,启动和暂停/连续功能, 2)在直接清零时,要求数码显示器灭灯, 3)设置外部操作开关,控制计数器的直接清零, 4)计时器为30S递减计时,计时间隔为1S, 5)计时器递减计时到零时,数码显示器不能灭灯,同时发出光电报警信号。 主要元器件:NE555(1),74ls161(1),74LSl92(2) I II、电子基础课程设计工作内容及进度安排: 1.方案设计,绘制电路图并仿真(2天) 2.电路布线和焊接(3天) 3.电路的调试(2天) 4.课程设计总结和报告(7天)Ⅳ、主要参考资料: 1.杨志忠.数字电子技术(第二版).北京:高等教育出版社,2000 2.胡宴如.高频电子线路(第三版).北京:高等教育出版社,2005 3.王毓银.数字电路逻辑设计(第三版).北京:高等教育出版社,1999 专业名称:电子信息工程班级学号: 06041304 学生姓名:李莉

摘要 随着世界篮球水平的提高,对计时的准确度及可靠性也越来越高,篮球30秒倒计时器也就孕育而生了。 设计一个篮球30秒倒计时器,主要解决的问题是实现倒计时功能。所以必须要有一个脉冲,为确保产生的脉冲稳定,该设计采用555时基电路构成的多谐振荡器产生周期为0.1秒的脉冲,再通过74LS161十分频来产生周期为1秒的脉冲。计数部分用74LS192芯片来实现,192芯片是8421码计时的,符合30秒读数的需要。译码部分采用74LS248芯片,74LS248是把8421BCD 码经过内部作和电路“翻译”成七段(a ,b ,c ,d ,e ,f ,g )输出,然后直接推动LED ,显示十进制数。显示部分采用七段数码管,数码管的使用很广泛,价格也不会很贵。整个线路就是把以上几个主要的部分用导线连接焊接起来。 在许多领域中,计时器都得到了普遍应用,比如在体育比赛中的计时器、安全措施中的定时报警器、游戏中的倒计时、维持秩序的交通信号灯、红绿灯、交通信号控制机、闹钟等等......可见计时器在现代社会中是很重要的。在设计计时器时,采用了模块化的思想,使得设计简单、快捷。本设计完成了中途计时功能,实现了在许多特定场合进行时间追踪,在社会生活中会具有广泛的应用价值。 关键字: 控制 倒计时 译码显示 光电报警 指导教师: 万在红 设计时间: 2008.9.1——2008.9.15

相关文档