倒计时器课程设计(带程序版)

倒计时器课程设计(带程序版)
倒计时器课程设计(带程序版)

湖南科技大学

课程设计报告课程名称:单片机原理及应用课程设计

设计题目:电阻测量

院系:通信与控制工程系

专业:通信工程

班级:

学生姓名:

学号: 08409218 08409224

起止日期:2010年12月20日~ 2010年12月31日指导教师:

教研室主任:

指导教师评语:

指导教师签名:年月日

成绩

项目

成绩

1、设计过程中出勤、学习态度等方面0.2

2、课程设计质量与答辩0.5

3、设计报告书写及图纸规范程度0.3

总成绩

教研室审核意见:

教研室主任签字:年月日

教学系审核意见:

主任签字:年月日

基于STC89C52的倒计时器设计

1 设计任务与要求

本项目是由单片机执行设定的程序,在数码管显示倒计时的时间,且能由单片机接受矩阵键盘设定的时间。由4位数码管做显示,能够实现5种倒计时模式,通过控制按键进行选择9999s-0s、999s-0s、99s-0s、9s-0s、开始值由人工输入-0s。

2 方案设计与论证

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。可见倒计时器在社会中的重要性。当然,设计倒计时器的方法很多,以下是两个设计方案。

方案一:基于AT89S52单片机的LCD液晶显示模块1602显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,用按键来进行倒计时初值的选择,LCD1602液晶作为显示模块来显示倒计时间。

方案二:基于AT89S52单片机的数码管显示模块显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,按键来进行倒计时初值的选择。此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

方案比较:通过以上两个方案,我们发现,方案二总体比方案一好。首先方案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造价不高,因此,综合考虑之后决定采用方案二。

3 硬件单元电路设计与参数计算

LED 数码管倒计时器以AT89C52单片机为核心,起着控制作用,另外系统中使用8255A 芯片作为扩展I/O 作用。系统包括四位数码管显示电路,按键电路,复位电路,时钟电路以矩阵键盘电路。倒计时的总体框图如下图1所示:

图1 倒计时的总体框图

3.1 时钟电路

单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。本系统使用的是内部时钟方式。时钟电路如下图3所示。 一般选用石英晶体振荡器。此电路在加电大约延迟10ms 后振荡器起振,在XTAL2引脚产生幅度为3V 左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。本系统的C1、C2的值为30pf 。

3.2 矩阵电路

本系统用到的是4*4矩阵键盘,行线由8255A 芯片PC 端口的低四位控制,而列线是由PC 端口的高四位来控制的,键盘的扫描是动态的低电平扫描,当有

按键电路模块

AT89C52

8255A

数码管显示电路模块

矩阵键盘

个键按下时,相应的行线为高电平,扫描的结果由PC口送回8255A.

本系统的矩阵电路的作用是能够设定倒计时的初始值,还可以通过按软件中设定的几个键的功能,来实现倒计时最大初值的选择。倒计时是按千位,百位,十位,个位的顺序排列显示的,用四个按键来现实显示切换的,所达到的效果是按一下对应的键时,所对应的倒计时最大初值开始倒计时,例如S3键,数码管上显示的是99S开始倒计时。在程序中按S8键开始初值设定,在按相应的已经编码好的键,这些代表0-9的键来设定四位初值。设定初值时,每按一个键,就在数码管上显示该键代表的编码。四位值都设好了,等待按独立键跳出矩阵电路。按键电路如下图4所示。

图4 按键电路原理图

3.3数码管显示电路

在这里我们使用的是8段数码管显示(包含小数点),通常在显示上我们采用的方法一般包括两种:一种是静态显示,另一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多,所耗得电能较大;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中,为了减少端口资源,降低电能消耗,采用的是动态显示方法。

本系统的倒计时时间的最大范围是9999S,要显示出最大范围的值,从而可知数码管显示电路要用到4位数码管。考虑到到数码管的段和位比较多,本系统

用8255A作为扩展端口芯片。数码管有段选和位选控制,在此电路中有4个位选,8个段选(每一个数码管的段选进行并联)。分别用8255芯片的PA口和PB口进行四位数码管的控制,而用单片机的PB口来控制段。电路中用了四个PNP来控制数码管的位选的开关,PNP在这起开关的作用。电路如下图5所示。

图5 数码管显示电路原理图

4 软件设计与流程图

4.1 倒计时器主程序流程图

程序的的开始时先设定定时器0,给定时器装初值,定时器0的定时时间是10ms,用作定时器时间的递减。然后给初始化8255芯片设定PA和PB口为输出端口,PC的低四位为输入端口,而高四位为输出端口。进入死循环函数,在循环函数中,进入方式9-0s的倒计时,再对矩阵进行扫描,如果有键按下返回按键值,执行判断语句。若为假则继续按该方式执行程序,若为假则跳出该倒计时方式,进入下一个倒计时方式。流程图如下图6所示:

图6 倒计时器主程序流程图

4.2定时器0的中断程序流程图

定时器0的定时时间是10ms ,用作扫描数码管显示,在定时器0开启时,

定时器0开始定时,此时主程序正常运行,当定时器0的定时时间到时,主程序不在执行,开始进入中断程序,在中断程序中,若计时了1s 就对时间进行处理且计数标志清零,赋值给相应的变量且second 减1,若没有则计数标志count 就进行加1,若倒计时的时间为零则重新赋值,中断程序执行完后返回主程序。如图7所示。

开启定时器0

开始

设定时器0,1工作方式,且打开外中断1 给定时器0设初值 初始化8255芯片 进入9-0s 方式死循环 且调用键盘扫描程序

进入相应的倒计时方式

是否有键按下

进入主程序大while 循环

调用设定初值程序,按键跳出后进行倒计时

键值等于4

图7定时器0的中断程序流程图

5 总电路

5.1 倒计时器总原理图

倒计时原理图由一块AT89C52单片机器控制作用,还用一块8255A 芯片来扩展I/O 端口,单片机的P3^2到P3^3分别接的独立按键电路,即2个微动开关。而8255A 芯片的PC 口接矩阵键盘,PB 口与显示电路的数码管的段选相连,起到控制数码管的段选的的作用,PA 口分别对应数码管的4个位选,起到对4个数码管的扫描作用,其中的4个三极管起着开关作用,对应数码管的选通。图见附录 一。

执行一条指令

定时器0有中断请求?

取下一条指令

保护现场和断点

定时器0中断服务程序

(完成数码管各位的扫描)

恢复现场

返回

执行主程序

5.2 整体电路仿真以及仿真结果分析

系统仿真用的是Proteus软件,可通过仿真显示出所设计系统的功能,对于程序的调试等有很大的帮助。

系统仿真时首先在使用Keil C 译码器,把所写的程序进行编译,同时在仿真器里设置生成HEX文件,编译无错误进行Proteus仿真。等所有的原件都连接完成后可以把Keil C编译生成的无错误文件加载到AT89C52中,方法是,右键点中器件然后再用左键点击,出来一个对话框在program file后选择要添加的文件,文件要求必须是HEX文件。然后可以点击运行观察现象,看与自己设置的是否符合,如果不相符再查找错误进行修改,一般的错误都是程序中的,所以要认真的读取程序的每一个部分。

启动Proteus软件的play按钮,出现如上图13所示,以上矩阵键盘设定倒计时初值和倒计时最大初值范围选择。按下相应的键,数码管上显示相应的计数范围开始计时,当定时中断到时,数码管上的数值减1,也就是1S计时时间到了当全为0时,数码管上的数值自动加载为最大计数范围的值。从仿真图可知,本系统的程序已达到要求。

5.3 软件调试

用到了Keil C软件,集成调试环境,集成了编辑器、译码器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然,支持ASM(汇编)、C语言多模块源程序混合调试,在直接修改、编译、调试源程序,错误指令定位。功能很强大,用于对程序的调试和编辑。本系统的程序的编写就是在Keil C软件中完成的,在程序中用到了两个定时器,为了使倒计时的时间准确,必须计算对定时器的初值,当程序完成之后,生成HEX文件。再利用Proteus软件进行仿真。经过仿真,程序符合题目的要求。

6 性能测试与分析

按照设计程序的分析,LED数码管的动态扫描的频率是1000HZ,在实际使用时完全没有闪烁。在程序中,定时器10ms中断一次,变量 count100自增,中断100次时,秒的显示自减,用定时器来定时,准确。电路中的五个按键可以分

别用来设定倒计时的计数范围。另外,设定外部中断来暂停和重新启动倒计时。当数码管的显示全0时,系统自动重新载入初值开始倒计时。系统由5V电源来驱动,经过测是试与分析,此系统稳定可用。

7 结论与心得

在设计倒计时器课程设计的过程中,我深切体会到,实践是理论运用的最好检验。本次设计是对我这一学期所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我对网络资源认识,大大提高了查阅资料的能力和效率,使我有能有更多的时间去设计软件部分。本系统要求我们要有丰富的编程经验,还要能会看单片机开发板原理图,能熟悉那些I/O口的作用,且能够准确的运用数电等多方面的知识。在软件调试过程中,我学会不少的东西,掌握一些调试软件的方法。在设计仿真图和设计电路图中,对Proteus、Keil和Protel等软件掌握的更加牢固,而且所设计的基于单片机的倒计时器,精确度高,达到了应用要求这次课程设计使我掌握了很多实践知识,在老师和同学的帮助下对单片机有了进一步的了解。

8 致谢

这次课程设计对我来说有着深远的意义,让我对未来的路又看得清楚了些。在此我要深深的感谢那些传授我知识的老师们,是你们无私的奉献,才会有如今掌握一定知识的我们;要感谢父母一直给我的支持,感谢他们的关怀;还要感谢同学对我的鼓励,感谢队友对我的认可,让我能尽情的发挥我的能力,激扬去验证自己的想法。

参考文献

[1] 朱定华,戴汝平.单片微机原理与应用.(M) 北京:清华大学出版社,2003

[2]楼然苗,李光飞.单片机课程设计指导.(B).北京航空航天大学出版社,2007

[3] 李凤霞,刘桂山,薛庆.C语言程序设计(第二版).北京理工大学出版社,2008

[4]张鑫,华臻,陈书谦.单片机原理及应用(A).北京电子工业出版社,2005

[5]谭浩强著 C程序设计(第二版) 清华大学出版社 1999

附录一:总原理图

附录二:程序

#include

#include

#define PA XBYTE[0xD1FF] /*PA口地址*/

#define PB XBYTE[0xD2FF] /*PB口地址*/

#define PC XBYTE[0xD5FF] /*PC口地址*/

#define CON XBYTE[0xD7FF] /*控制字地址*/

#define uint unsigned int

#define uchar unsigned char

//*******************数码管段******************//

uchar code TAB_CODE[]={0XA0,0XBB,0X62,0X2A,0X39,0X2C,0X24,0XBA,0X20,

0X28,0X30,0X25,0XE4,0X23,0X64,0X74};

uchar t,mode=6,mode1=1,m=0,s=0; //mode1为0表示为设定初始值过程中uint max,co=9999;

//**小延时函数**//

void delay(uint a)

{

while(a--);

}

void Time();

void Start();

void keyscan();

void main()

{

//uchar A;

TMOD=0x01;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

EA=1;

ET0=1;

//TR0=1;

CON=0x81;

while(1)

{

keyscan();

Time();

Start();

}

}

//**数码管显示函数***//

void Start()

{

// RELAY=1;

PB=0xff; //***消影***//

delay(100);

if(max>99999) //初始选择方式

{

PA=0xfe;

PB=TAB_CODE[max/100000];

delay(150);

PB=0xff;

delay(150);

}

if(max>9999)

{

PA=0xfd;

PB=TAB_CODE[(max/10000)%10];//*初始选择方式delay(150);

PB=0xff;

delay(150);

}

if(max>999)

{

PA=0xfb; //***位选通***//

PB=TAB_CODE[(max/1000)%10];//***分十位显示***// delay(150);

PB=0xff;

delay(150);

}

if(max>99)

{

PA=0xf7;

PB=TAB_CODE[(max/100)%10];//***分个位显示***// delay(150);

PB=0xff;

delay(150);

}

if(max>9)

{

PA=0xef;

PB=TAB_CODE[(max/10)%10];//***秒十位显示***// delay(150);

PB=0xff;

delay(150);

}

PA=0xdf;

PB=TAB_CODE[max%10];//***秒个位显示***//

delay(150);

PB=0xff;

delay(50);

}

//****键盘扫描函数******//

void keyscan()

{

uchar k,j=0x10;

CON=0x81;//***初始化8255控制器***//

PC=0x10; //*****把PC.4口拉高*****//

k=PC;

k=k&0x0f;//***判断是否有键按下***//

if(k!=0)

{

delay(50);

Start();

if(k!=0)

{

while(PC!=0x10) //******松手检测******//

Start();

}

k=k+j;

if(k==0x18)

{

mode--;

if(mode==0) mode=5;

mode1=1;

s=0;

m=0;

switch (mode)

{

case 5:{mode1=0;TR0=0;co=0;};break;

case 4:co=9999;break;

case 3:co=999;break;

case 2:co=99;break;

case 1:co=9;break;

default:co=9999; break;

}

max=co;

}

if(k==0x14)

{

m++;

if(m==10) m=0;

max=m*10+s;

}

if(k==0x12)

{

if(mode1==0) if(max>0) mode1=1;

if(mode1==1)

if(TR0==0)

{TR0=1;}

else TR0=0; //mode1为1表示输入初始值完成

}

if(k==0x11)

{

s++;

if(s==10) s=0;

max=m*10+s;

}

P1=PC;

}

}

//***时间控制函数***//

void Time()

{

if(t==20)

{

t=0;

if(max==0)max=co;

max--;

}

}

//***定时器中断***//

void Ser0() interrupt 1

{

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

t++;

}

附录三:原件清单

名称参数和型号数量

单片机AT89C52 1块

PNP三极管S8550 4个

电阻1K 16个

数码管共阳数码管器4个

瓷片电容30PF 2个晶振12M 1个电解电容10uf 1个

微动开关16个

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

湖南文理学院课程设计报告 课程名称:单片机原理课程设计 学院:电信学院 专业班级:自动化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数码管显示器;倒计时;报警

篮球竞赛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下设计和进行仿真,得到了预期的结果。

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

倒计时秒表课程设计

倒计时秒表课程设计

目录 一.设计目的 (1) 二.设计要求 (1) 三.总体设计 (1) 设计方案 (1) 硬件电路设计 (1) 1)C P U部分 (1) 2)晶振电路部分 (2) 3)L C D显示 (3) 4)键盘及蜂鸣器部分 (3) 软件程序设计 (4) 四.方案实施 (6) 单片机简介 (6) 4.2动态L C D液晶显示器显示 (6) 4.3 软件调试及调试方法 (8) 五.课程设计总结 (10) 六.参考文献 (10) 七.附件 (11) 源程序 (12) 总体电路图 (22)

一.设计目的 1熟悉整个项目的流程即单片机系统设计过程 2 学会使用各种仿真软件 3熟练的使用汇编语言编写小的应用程序 4 掌握系统的调试与安装 5提高学生的自学能力和动手能力 二.设计要求 1)可以实现正常秒表的所有功能,包括启动,暂停,复位等 2)可以自由设定倒计时时间(10s,20s,30s....),并进行倒计时(10s,20s,30s....) 3)显示方式自选 4)任选一款51单片机 5)扩展功能:在秒表基础上增加时钟功能;倒计时完成时加入报警单元,如声音,灯光等 三.总体设计 设计方案 1)方案讨论和设计:倒计时数字秒表的设计主要考虑以下几个问题:一,LCD液晶显示器如何显示数字0—9;二,如何用单片机来控制LCD的显示;三,单片机最小模式下的设计。处理好这些问题此设计才能完整,为此必须先了解LCD的显示原理和接线方法,再了解单片机的组成原理和控制方法。硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。 2)主要任务:软件的调试和烧录 硬件电路设计 1)CPU部分 口是“调模式”num 10,num20,num30,num50,num100 口是“开始”倒计时端口 口是“关闭”(返回)轰鸣器口,在定时可以返回到模式状态。 口是给轰鸣器送触发信号口 口是“暂停”口

Java课程设计小游戏

《高级语言程序设计》课程设计报告 1、程序设计说明书 【设计题目】 雷霆行动游戏程序 【问题描述】 雷霆行动是一款供大家休闲娱乐的小游戏,游戏通过鼠标控制我方飞机hero的移动,达到躲闪敌机的目的;利用鼠标键发射子弹和导弹,达到击毁敌机的目的,摧毁敌机有积分。此游戏为闯关积分类小游戏。 【软件功能】 1.按鼠标左键,游戏开始。 2.利用鼠标移动控制hero自由移动,闪躲敌方子弹。 3.利用鼠标左键发射子弹,实现打中敌方飞机的功能;利用鼠标右键释放导弹,实现摧毁大量敌 机的功能,击中一个敌方飞机积一分。 4.hero碰到对方子弹会消耗生命,消耗生命的多少,依据子弹的不同而不同。 5.一关之后会进入下一关。 6.游戏右上角红色的进度条表示hero的生命,当红色全部消失之后,游戏结束,显示死亡。 7.游戏结束后,可重新开始,同1。 【算法思想】 1.创建游戏主界面,确定窗口的坐标。 2.设计游戏开始界面显示信息及信息坐标。 3.设置游戏进行中的信息,hero的移动、释放子弹和导弹,达到击毁敌机的目的。 4.处理游戏进行中的子弹、大爆、爆炸、敌机消失和存在的条件。 5.设置进入下一关的条件。 6.设计游戏结束界面显示信息及信息坐标。 7.处理游戏重新开始满足的条件。 8.装载图像。 9.对游戏进行调试和改进,使这个游戏更加完善。 【类的设计】 本程序共有七个类: 1.MainPanel 属性:BBv为子弹数组,EEv为敌机数组,BOMBv为爆炸数组,EBv为敌机子弹数组,DBv 为大爆数组,E-num为敌机数量,E-max敌机最大数,E-vel为敌机速度,E-mov为敌机 横移几率,E-hit为敌机开火几率,Sum为击毁敌机数量,hero-hp为hero生命,back至 db-2均为图片,tracker为媒体跟踪器,y为背景滚动变量,seq为hero的动画变量,isfire 为hero开火,isblast为是否发爆,blastnum为大爆的数量,blastc为控制大爆,f、ff、s、 ss均为游戏界面上显示的信息; 方法:MainPanel(Game)构造方法,paint(Graphics)建立游戏开始界面如显示的文字,run()控制对象移动,BBmove(int,int)子弹的移动方法,DBmove(int,int)大爆的移动方法, mouseDragged(MouseEvent) 鼠标的拖拽用来保证hero不出界,mouseMoved(MouseEvent) 鼠标的移动用来控制hero移动,mousePressed(MouseEvent) 鼠标按键在组件上按下时调 用,重新开始游戏,mouseClicked(MouseEvent)鼠标按键在组件上单击(按下并释放) 时调用,释放子弹,mouseReleased(MouseEvent)鼠标按钮在组件上释放时调用, mouseEntered(MouseEvent)鼠标进入组件上调用,mouseExited(MouseEvent)鼠标离开组 件时调用;

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

倒计时器课程设计(带程序版)

湖南科技大学 课程设计报告课程名称:单片机原理及应用课程设计 设计题目:电阻测量 院系:通信与控制工程系 专业:通信工程 班级: 学生姓名: 学号: 08409218 08409224 起止日期:2010年12月20日~ 2010年12月31日指导教师: 教研室主任:

指导教师评语: 指导教师签名:年月日 成绩 评 定 项目 权 重 成绩 1、设计过程中出勤、学习态度等方面0.2 2、课程设计质量与答辩0.5 3、设计报告书写及图纸规范程度0.3 总成绩 教研室审核意见: 教研室主任签字:年月日 教学系审核意见: 主任签字:年月日

基于STC89C52的倒计时器设计 1 设计任务与要求 本项目是由单片机执行设定的程序,在数码管显示倒计时的时间,且能由单片机接受矩阵键盘设定的时间。由4位数码管做显示,能够实现5种倒计时模式,通过控制按键进行选择9999s-0s、999s-0s、99s-0s、9s-0s、开始值由人工输入-0s。 2 方案设计与论证 近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。可见倒计时器在社会中的重要性。当然,设计倒计时器的方法很多,以下是两个设计方案。 方案一:基于AT89S52单片机的LCD液晶显示模块1602显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,用按键来进行倒计时初值的选择,LCD1602液晶作为显示模块来显示倒计时间。 方案二:基于AT89S52单片机的数码管显示模块显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,按键来进行倒计时初值的选择。此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。 方案比较:通过以上两个方案,我们发现,方案二总体比方案一好。首先方案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造价不高,因此,综合考虑之后决定采用方案二。

三子棋小游戏课程设计

三子棋小游戏课程设计 计算机学院计算机科学与技术专业《程序设计综合课程设计》报告 (2011/2012学年第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2012年01月04日 三 子 棋 小 游 戏 目录 第一章程序设计的目的和要求 1 1.1课程设计的目的 ......1 1.2课程设计的要求 1 第二章课程设计任务内容 3 2.1课程设计题目 3 2.2课程设计介绍 3 第三章详细设计说明 ..4 3.1 流程逻 辑............................................................ .4 3.2 限制条 件 (5)

3.3 运行结 果 (5) 3.4 实验过 程 (8) 第四章实验总结及特色 11 4.1调试结果及截图 11 第五章课程设计心得及体会 13 附录? 参考文献 15 附录? 程序代码 16 第一章课程设计目的和要求 目的 通过此次课程设计,进一步加深对C++语言和运用的了解,将理论知识运用于开发的实践,并在实践中逐步掌握软件工具的使用。 巩固已经学习过的C++理论知识;进一步学习程序设计、程序调试的能力。 进一步学习面向对象编程的知识和程序调试的能力; 增强Visual C++编程环境的应用能力 掌握并且熟练应用《C++程序设计》中所学知识,并学会运用。 掌握函数功能的划分方法,并运用此方法解决问题。学会程序测试方案的制定,并且实现程序的测试。 通过此次实践,积累经验,提高分析和解决问题的能力。 第二节要求 课程设计需要从整体来考虑,在大的方向下来考虑小的模块,在继续分工。作到最小化,可执行化。

24秒倒计时器系统设计

24秒倒计时器系统设计 一、仿真图 (一)Proteus元器件查找 1、芯片:89C51 2、电阻:res 3、缓冲器74HC244 4、数码管7SEG-------CC共阴极 5、非门74LS04 6、按键button 二、程序 #include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; typedef unsigned int uint; uint i,j,f1=0; uint q=4,p=2; uint sum = 0; sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; uint num2=0,num=24,shi=2,ge=4; void T1_time()interrupt 3 {

TH1=(65536-49000)/256; TL1=(65536-49000)%256; num2++; if(num2==20){ num2=0; if(!f1){ if(num!=0)num--; shi=num/10; ge=num%10; } } } void ex_int()interrupt 0 { num=24; } void ex_int1()interrupt 2 { sum++; if(sum%2==1) f1=1; else f1=0; } void delay() { uint j; for(j=0;j<200;j++); } void disply() { P2&=0XF0; P1=table[shi]; P2_0=1; delay(); P2&=0XF0; P1=table[ge]; P2_1=1;

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

99倒计时课程设计讲解 实用

1苏—________________________________________________________________________ 1 2整体设计方案 (2) 3各单元的介绍 (3) 3.1最小应用系统 (3) 3.1.1 AT89C51 的介绍 (3) 3.1.2时钟电路的介绍 (5) 3.1.3复位电路 (7) 3.2锁存器74LS273的介绍 (8) 3.3数码管显示介绍 (9) 4 99倒计时主电路图 (10) 5程序流程图 (12) 6 99倒计时软件程序设计 (13) 7总拮 (15) 8说辞 (16)

9参考文献 (17)

1引言 目前单片机的应用越来越广泛,实际上,单片机得几乎在人类生活的各个领域都表现出强大的什么生命力,使计算机的应用范围达到了前所未有的广度和深度。单片机的出现尤其对电路工作者产生了观念上的冲击。在过去经常采用模拟电路、数字电路诗实现的电路系统,现在相当大一部分可以用单片机予以实现,传统的电路设计方法已演变成软件和硬件相结合的设计方,而且许多电路设计问题将转化为纯粹的程序设计问题。 INTEL公司从其生产单片机开始发展到现在,大体上可分为3大系列:MCST8 系列、M C S~51系列和M C S_96系列。M C S~51系列是8为高档单片机系列,也是我国目前应用最为广泛的一种单片机系列。单片机是把CPU、内存储器和某些W接口 电路集成在一块大规模芯片上的微型计算机。单片机的优点很多,具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布控制等。在进行99倒计时的课程设计中就是利用单片机的上述优点,采用的是AT89C51型号的单片机。 99秒倒计时器主要是用在精确时间上。它是通过一个按键来控制它的开和停,在控制过程中有一个暂停开关和一个复位按钮,它能及时有效的记录瞬间时间,它在我们的生活中的应用很广泛。

计算机图形学课程设计——扫雷游戏程序设计

计算机图形学课程设计——扫雷游戏程序设计

《计算机图形学》课程设计报告 VC++扫雷游戏的程序设计 专业班级: 小组成员:

指导老师: 日期:2012年12月24日 1、需求分析 本课程设计实现类似于Windows XP操作系统自带的扫雷游戏。该设计以V isual C++ 6.0为开发环境, Windows 7/XP为程序运行平台。在程序设计中,把整个雷区看成一个二维数组,把雷方块定义为具有所在雷区二维数组的行和列、当前状态、方块属性、历史状态的结构体,采用了MFC机制解决问题的方法。整个游戏程序包括了布雷、扫雷过程和结果三个阶段,在处理鼠标响应事件中伴随着GDI绘图。程序通过调试运行,实现简单的设计目标,满足扫雷游戏初学者的需要。 通过本课程设计,以便更好的巩固计算机图形学相关知识,掌握课程设计基本的方法和技巧,同时增加同学之间的团队合作精神以及培养分析问题、解决问题的能力。 2.总体设计 2.1 功能概述 扫雷游戏的游戏界面如图1所示。在这个界面中,由众多面积均等的小方块所组成的区域称之为雷区,雷区的大小由用户设置的游戏等级决定。

图1 游戏开始时,系统会在雷区中随机布下若干个地雷。安放地雷的小方块称之为雷方块,其他的称之为非雷方块。部署完毕后,系统会在其他非雷方块中填充一些数字。某一个具体数字表示与其紧邻的8个方块 中有多少雷方块。玩家可以根据这些信息去判断是否可以鼠标点击方块, 并把认为是地雷的方块打上标识。当玩家将所有地雷找出后,其余的非雷方块区域都已打开,此时游戏结束。在游戏过程中,一旦错误地打开了雷方块则立即失败,游戏结束。 游戏规则总结: ●开始:按左键开始游戏,按按钮或菜单重新开始。 ●左键:按下时,是雷则结束,非雷则显示数字。 ●数字:代表此数字周围一圈八格中雷的个数。 ●右键:奇次按下表示雷,偶数按下表示对上次的否定。 ●结束:左键按到雷结束,找出全部雷结束。 在游戏开始后,雷区上方有两个计数器。右边的计数器显示用户扫

篮球24秒倒计时器设计

湖南工业大学 课程设计 资料袋 电气与信息工程学院(系、部)2016~2017 学年第 1 学期课程名称电子技术课程设计指导教师黄卓冕职称讲师 学生姓名谢富专业班级电气工程1401 学号14401300114 题目篮球比赛24秒计时器设计 成绩起止日期2016 年11 月14 日~2016 年11 月18 日 目录清单

湖南工业大学 课程设计任务书 2016年~2017学年第1 学期 电气与信息工程学院(系、部)电气工程专业1401 班级课程名称:电子技术课程设计 设计题目:篮球比赛24秒计时器设计 完成期限:自2016 年11 月14 日至2016 年11 月18 日共 1 周

安 排 2016.11.15--17 学生进行设计 2015.11.18 学生修改、打印设计报告 主要参考资料[1] 康华光电子技术基础模拟部分(第五版)高等教育出版社 2007年 [2] 欧伟明. 实用数字电子技术. 北京:电子工业出版社,2012 [3] 陆应华. 电子系统设计教程. 北京:国防工业出版社,2005 [4] 李忠波等. 电子技术仿真与实践. 北京:机械工业出版社,2004 指导教师(签字):年月日 系(教研室)主任(签字):年月日 电子技术课程设计 设计说明书 起止日期:2016 年11 月14 日至2016 年11 月18 日篮球比赛24秒计时器设计

学生姓名谢富 班级电气工程1401 学号14401300114 成绩 指导教师(签字) 电气与信息工程学院(部) 篮球比赛24秒计时器设计 设计目的及要求 一、设计要求 (1)设计指标 1、具有24秒计时功能。 2、设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能。 3、在直接清零时,要求数码显示器灭灯。 4、计时器为24秒递减时, 计时间隔为1秒。 5、计时器递减到零时,数码显示器不能灭灯,同时发出光电报警信号。 6、将24秒递减计时器改为24秒递增计时器,试问电路要作哪些相应的改动。 它包括秒脉冲发生器、计数器、译码显示电路、辅助时序控制电路(简称控制电路)和报警电路等五个部分组成。其中计数器和控制电路是系统的主要部分。计数器完成24秒计时功能,而控制电路是控制计时器的直接清零、启动计数和暂停/连续计数、译码显示电路的显示和灭灯等功能。 为保证系统的设计要求,在设计控制电路时,应正确处理各个信号之间的时序关系: 1.操作直接清零开关时,要求计数器清零,数码显示器灭灯。 2.当启动开关闭合时,控制电路应封锁时钟信号CP(秒脉冲信号),同时计数器完成置数功能,数码显示器显示24秒

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

单片机倒计时秒表课程设计

单片机倒计时秒表 课程设计

课程设计说明书 课程名称:单片机技术 设计题目:倒计时数字秒表设计院系: 学生姓名:张三 学号: ********* 专业班级: *********** 指导教师:李四 年月日

课程设计任务书 倒计时秒表

摘要:本次课程设计以AT89S52单片机为核心设计一个倒计时数字秒表,计数初值为59并开始每秒自动减1,当按键1按下时记录当前时间值,当按键2按下时显示当前记录值,显示过之后再次按下按键1时秒表复位为59。本设计硬件部分包括电源电路、复位电路、按键电路、振荡电路、数码管显示电路五部分电路,软件程序部分有定时中断程序、外部中断程序、显示子程序和延时子程序等。软件Proteus画出原理图并进行仿真,依照仿真成功的原理图接线,在万能版上把个个器件焊接好从而实现预期的功能。 关键词:倒计时 AT89S52 74LS47 数码管 目录

1.设计背景 (5) 1.1、设计课题的提出 (5) 1.2、设计作用及意义 (5) 2.设计方案 (6) 2.1、可行方案选择 (6) 2.2、可行方案比较 (6) 3.方案实施 (7) 3.1、硬件电路的实施 (7) 3.2、软件程序的实施 (11) 4.结果与结论 (13) 4.1、Proteus仿真运行结果 (13) 4.2、结论 (14) 5.收获与致谢 (14) 6.参考文献 (14) 7.附件 (15) 7.1、附件一(整体电路图) (15) 7.1、附件二(元件清单图) (16) 7.1、附件三(程序) (17) 7.1、附件四(运行实物图) (22) 1. 设计背景

《贪吃蛇游戏课程设计》报告

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。 3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇

的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。 3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量}food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动 void Close();//图形结束 void DrawK();//开始画面 void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束 void PrScore();//输出成绩 (2)主函数main( ) 主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序 void main()//主函数 { Init();//图形驱动 DrawK();//开始画面

《测量程序设计课程设计》指导书-2015

测量数据处理程序设计指导书 设计名称:测量数据处理程序设计 计划周数:2周 适用对象:测绘工程专业本科 先修课程:测量学,测量平差基础,大地控制测量,测量程序设计 一、设计目的 测量数据处理程序设计是学生在系统学习完大地控制测量学、测量平差基础、测量程序设计等相关课程之后,为了系统理解控制网平差的整体过程及综合运用科学工具而安排的。通过课程设计主要达到以下几个目的:掌握控制网平差课程设计具体内容、方法和步骤;通过理论联系实际,进一步巩固已学到的专业理论知识,并加深对理论的认识;培养学生对编写代码,上机调试和编写说明书等基本技能;锻炼学生阅读各类编程参考书籍及加以编程运用的能力。 二、设计内容及日程 在VB、 VC软件或matlab科学计算软件的平台上,选择的具体课程设计题目,进行程序设计与实现,共计10个工作日,工作程序如下: 三、设计的组织: 1.设计领导 (1)指导教师:由教研室指派教师、实验员兼任。

职责:全面组织设计大纲的实施,完成分管工作及相关技术指导。 (2)设计队长:学生班长兼任。 职责:协助教师做好本班学生的人员组织工作。 (3)设计组长:每组一人。 职责:组织执行下达的设计任务,安排组内各成员的工作分工。 2.设计分组 学生实习作业组由3~4人组成(含组长一人)。 四、设计内容 在VB、VC或MATLAB 软件平台上,按选择的设计题目进行相关程序开发 1、闭合导线简易平差、附合导线简易平差支导线计算 2、闭合水准网计算、附合水准网简易平差 3、地形图编号(新、旧两种方法) 4、误差椭圆的参数的计算与绘制误差椭圆 5、水准网严密平差 6、高斯正反算计算 7、高斯投影换带计算 8、七参数大地坐标转换(WGS84-bj54坐标转换、WGS84-CGCS2000坐标转换) 9、四参数坐标转换(西安80-bj54坐标转换、CGCS2000-bj54坐标转换、CGCS2000-西安80坐 标转换(平面) 10、大地高转换为正常高的计算 11、工程投影变形超限的处理 12、遥感图像数据处理 13、曲线(曲面)拟合 14、摄影测量空间后方交会 15、****管理信息系统设计与开发 五、上交成果 1) 小组利用vb、vc或matlab编写的软件包一个及测试数据一份 2)小组关于所开发程序设计说明书一份 3) 个人课程设计的心得一份 4)小组答辩PPT一份

篮球24秒倒计时器课程设计报告

数字逻辑电路设计 课程设计报告 系(部):三系 专业:通信工程 班级:11通信 1班 姓名:张梦瑶 学号:20110306111 成绩: 指导老师:李海霞 开课时间:2012-2013学年二学期

一、设计题目 篮球比赛 24 秒倒计时器 二、主要内容 1、分析设计题目的具体要求 2、完成课题所要求的各个子功能的实现 3、用multisim 软件完成题目的整体设计 三、具体要求 (1)具有显示24s 倒计时功能:用两个共阴数码管显示,其计时间隔为1s。 (2)分别设置启动键和暂停 /继续键,控制两个计时器的直接启动计数,暂停/继续计数功能。 (3)设置复位键:按复位键可随时返回初始状态,即进攻方计时器返回到24s。 (4)计时器递减计数到“00”时,计时器跳回“24”停止工作,并给出声音和发光提示,即蜂鸣器发出声响和发光二极管发光。 四、进度安排 第一天:介绍所用仿真软件;布置任务,明确课程设计的完整功能和要求。 第二天:消化课题,掌握设计要求,明确设计系统的全部功能,图书馆查阅资料。 第三天:确定总体设计方案,画出系统的原理框图。 第四天:绘制单元电路并对单元电路进行仿真。 第五天:分析电路,对原设计电路不断修改,获得最佳设计方案。 第六天:完成整体设计并仿真验证。 第七天:对课程设计进行现场运行检查并提问,给出实践操作成绩。 第八天:完成实践报告的撰写 五、成绩评定 课程设计成绩按优、良、中、及格、不及格评定,最终考核成绩由四部分组成:

1、理论设计方案,演示所设计成果,总成绩40%; 2、设计报告,占总成绩30%; 3、回答教师所提出的问题,占总成绩20%; 4、考勤情况,占总成绩10%; 无故旷课一次,平时成绩减半;无故旷课两次平时成绩为 0 分,无故旷课三次总成绩为 0 分。迟到 20 分钟按旷课处理。

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

相关文档
最新文档