多用户电能表的应用设计课程设计报告

多用户电能表的应用设计课程设计报告
多用户电能表的应用设计课程设计报告

多用户电能表的应用设计

课程设计报告

专业:电气工程及其自动化

摘要

电子式电能表是通过对用户供电电压和电流实时采样,采用专用的电能表集成电路,对采样电压电流信号进行处理并相乘转换成与电能成正比的脉冲输出,通过计度器或数字显示器显示用户使用的电量。本文将设计一个以C8051F360芯片为核心,配有电能转换模块、LED显示模块、掉电存储模块等功能模块,实现对八户的用电状况进行采集检测。

本次设计用户数为八户,即实现八位用户循环显示电能量。同时,基于E2PROM 24C16芯片实现单片机的掉电数据保护,基于74HC165芯片实现单片机的清零。

基于AD7755芯片实现电能脉冲的发生;应用单片机C8051F360编制程序完成脉冲的读取、计数、计算、存储、送显示等功能;应用74HC164及八段译码显示器完成数据的显示;应用74HC165及键盘控制对脉冲清零;应用E2PROM 24C16完成数据的定时写入以防停电时数据丢失。

关键词:8用户电能表;AD7755;24C16;C8051F360

ABSTRACT

Electrical meter is through user power supply voltage and current real-time sampling, using special integrated circuit of electric energy meter, the sampling voltage current signal processing and multiplication convert to electric proportional to the pulse output, through the JiDuQi or digital display shows users with the use of the power. This paper will design a C8051F360 chips as the core, equipped with electric energy conversion module, LED display module, power lost storage module function module, realizes to eight of the power consumption and the collection detection.

The design for the eight users at home, which realize the eight users cyclic display electric energy. At the same time, based on the single chip microcomputer chip realize 24 y E2PROM chips was the power lost data protection, based on the 74 HC165 chip microcontroller cleared of realization.

Based on AD7755 chip realize the energy pulsing occur; C8051F360 single chip microcomputer application program to complete pulse to read, counting, computation, storage, send display function; Application HC164 and eight section 74 decoding display finish data display; 74 HC165 keyboard control and application of pulse reset; Application E2PROM chips was complete data of the timing 24 y write in case of power data is lost.

Keywords:electric energy meter;8 the user watt-hour meter;AD7755;24C16;C8051F360

目录

1 设计目的及要求 (1)

1.1设计目的 (1)

1.2设计要求 (1)

2 设计容 (1)

2.1设计系统方案 (1)

2.2设计系统框图 (2)

3 硬件电路设计 (2)

3.124C16功能介绍 (2)

3.2六段数码管显示电路 (3)

3.3C8051F360功能介绍 (4)

3.45V稳压电源的设计 (5)

3.5光电隔离电路 (5)

3.6AD7755电路设计 (6)

4 软件电路设计 (12)

4.1主程序流程图设计 (12)

4.2显示用户及相应电能子程序框图 (13)

4.3读24C16子程序框图 (14)

4.4写24C16子程序流程图 (15)

4.5查询键盘流程图 (16)

4.6中断子程序流程图 (17)

5 结束语 (18)

致: (18)

参考文献 (19)

附录 (20)

1 设计目的及要求

1.1设计目的

设计多用户电能表,掌握单片机在电力系统中的应用,并且可以通过计算机的编程实现对户的用电状况进行显示,进一步熟练单片机编程,了解24C16的功能实用。完成系统的硬件设计及软件设计。

本次设计用户数为八户,即实现八位用户循环显示电能量。同时,基于24C16芯片实现单片机的掉电数据保护,基于74HC165芯片实现单片机的清零。

1.2设计要求

1.3.1户数:8户。

1.3.2精度:0.001。

1.3.3脉冲数:每1000个脉冲为1度电。

1.3.4循环显示:8户电能循环显示,每隔3S显示一户。

1.3.5掉电保护:掉电时不能丢失数据,24C16掉电保护电路的设计。

1.3.6数据显示:实现交流电表对单相交流电能的测量并显示。

基于AD7755芯片实现电能脉冲的发生;应用单片机C8051F360编制程序完成脉冲的读取、计数、计算、存储、送显示等功能;应用74HC164及八段译码显示器完成数据的显示;应用74HC165及键盘控制对脉冲清零;应用E2PROM 24C16完成数据的定时写入以防停电时数据丢失。

2 设计容

2.1设计系统方案

根据设计题目要求,以及原始资料的精度要求,电能转化脉冲芯片有AD7755可供选择 ,因为它是一种高准确度电能测量集成电路,稳定性强并且价格不贵;单片机芯片选择C8051F36x器件,它具有片上电复位电路、VDD监视器、看门狗定时器和时钟振荡器,是真正独立工作的片上系统;数据保护电路芯片可选FM24C16 ,用先进的铁电技术制造的16K位的非易失忆的记忆体;另外要求为LED显示,使用74LS164串入并出8位移位记存器进行存储数据;因为各芯片需提供直流电源,我们要进行设计交直流变化和降压电路,大体的设计选择框架思路就是这些。

电能变换电路采用AD7755芯片,工作时AD7755芯片将电流采样信号和电压采样信号送入缓冲放大器,经模拟乘法器相乘,再经V/F转换器转换将电压信号转换为脉冲信号,AD7755芯片的快速脉冲输出为3200脉冲/KWh,与用户使用电能相对应。

输出的快速脉冲信号经光电隔离送给单片机,我们采用C8051F36x单片机对脉冲信号进行采集和计数,P2口(8位)同时工作即可对8户电能脉冲进行采集

与计数,我们将为每户开辟2个字节的存计数。

2.2设计系统框图

图2.1 设计总体框图

3 硬件电路设计

3.1 24C16功能介绍

图3.1 24C16管脚图

CAT24WC16支持是一个16位串行CMOS EEPROM,功耗小,有一个16字节页写缓存区,通过I2C总线接口进行操作,有专门的写保护功能。其中I2C总线协议规定,任何数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。SCL是一个输入管脚,产生器件所有数据发送和接收的时钟,SDA是一个开漏输出管脚,用于器件所有数据的发送和接收, A0、A1、A2为器件地址输入端,WP接到VCC所有容被写保护(只能读),WP管脚接到VSS或悬空,允许器件进行正常的读/写操作。

CAT24WC16使用铁电技术制造的16K位的非易失性的记忆体,并且可以快速读写数据被可以长时间掉电保存,并且其非易失性存储器可靠性更高,系统更简单,并且24C16可以承受超过100亿次的速写或者是比EPROM高一万倍的写操作,

《贪吃蛇游戏课程设计》报告资料整理

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固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();//图形驱动

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.360docs.net/doc/829048319.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

应用光学课程设计

上海电力学院 《应用光学课程设计》课程设计报告 课题名称应用光学课程设计 课题代码132601904 院(系)计算机与信息工程学院 专业 班级 学生 指导教师 时间 2011 /2012学年第 2学期

一、课程设计目的: 1、 通过本课程的学习,学会使用ZEMAX 软件,了解并掌握使用该软件绘制光路原理图和光路优化的方法。 2、同时学会使用该软件设计、绘制以及添加各种元器件的基本技巧、基本 方法和步骤。 二、课程设计要求: (1) 请建立一个以“学号+姓名”为文件名建立一个文件夹,用来存放所有文 件,报告中的截图采用“学号+姓名”为名。 (2) 绘制光学系统图;绘制优化前后的像差曲线图。 (3) 熟悉ZEMAX 软件光学设计的步骤和方法 (4) 熟悉各种像差产生的原因 (5) 能够在软件中察看7种像差的大小 (6) 完成设计内容,提交设计报告,通过答辩。 三、设计内容与过程: mm f 180'=,?=82ω,6/1'/=f D ,mm D 30=∴ 083.012 118015'1',152 ====== f h u mm D h 58.124tan 180tan ''+=?+=+=ωf y 04.158.12083.01'''=??==y u n J ' 'u in Si -=∴2 ()083.02'?-=L δ2()106088005.0?=-?-5 ''u n Sic -=2()083.0'-=?FC L 21088.6001.0?=?-6 1088.6p 15?=?== n p Si -5 0=Sii ()15=Sic 2Ci 1088.6?=-6 1058.4?=p -6 0=W 1005.3?=Ci -8 108?=∞p -5 0=∞W 105.5?=Ci -6 ()1 .085.00+?-=∞W P P 2 00842 .0-=

游戏24点课程设计报告

游戏24点课程设计报告 一.题目: 分析类: 计算24点:任意输入4位数字,利用+,-,*,/四则运算使之得到结果 24。输出所有不同算法的计算表达式,可为运算优先级而使用括号。 二.问题分析: 1.全面性: 此问题要求输出结果为24的计算表达式,并且要求输出要全面,我考虑用for循环与递归实现遍历来保证输出的全面性,考虑到递归的‘一归到底',每一次完整递归都代表一种算法(详情见算法)。 2.输出的判定和四位数字的类型: 在输出的时候对最后结果等于24的判别,因为考虑到有除法,有可能中途结果可能会出现不能整除的情况与小数,所以输出的四个数都设为float型,且输出判定的时候用近似判定法,而不直接写让最后结果等于24(详情见算法)。 3.重复性: 如果用循环与递归保证了输出24的表达式的全面性,但不可避免的会出现重复,才开始我想在遍历与递归时,加一些限定条件来消除重复但是这样做不但会出错,还不能保证它的输出全面性。于是我想在输出的时候加限定条件,使重复的只输出一遍。 但是对于输入的那4位数字中如果有重复的话,程序结果还是会出现重复的,此问题尚未解决.(详情见算法)。 4.括号问题的处理: 对于括号问题,我规定对每一步的计算表达式,除了*之外,+,-,\都加上括号,即让程序按自己规定的方向执行,输出的括号只是让人能看懂,其实在运算时不起作用(详情见算法)。 5.输出: 输出方面我以为用了遍历所以在每一层遍历都把运算表达式存到一个较大的数组中,在输出的时候如果满足输出条件(在遍历时纪录每次递归的第一次运算的结果,第一次运算的运算符,第二次运算的结果,第二次运算的运算符和第三次运算的运算符),就直接把那个数组里的内容输出,遍历会直接去寻找表达式里的表达式(详情见算法)。 三.算法描述(源代码里有更详尽解释): 1.主要方法: 遍历与递归。 2.主要思路: 把输入的四个数放在一个数组n[4]中,然后任取其中任意两个(不能取同一个--既不能出现自己和自己运算的情况),然后用一个for和一个switch语句来实现这两个数的加减乘除运算,然后把运算的结果放到另一个数组b[4]中并记录此运算的表达式(放到一个大一点的数组tm[4][25]中),同时把其他两个没用到的数也放到该数组中,然后重复以上过程(用遍历实现),最后先判定是不是最后一层运算,是的话在判定最后结果是不是等于24,等于24的话就把那个纪录运算式的数组输出。然后考虑到不能出现重复的(例如:1*2*3*4和2*4*3*1等等)我在遍历的同时记录了第一次运算的结果,第一次运算的运算符,第二次运算的结果,第二次运算的运算符和第三次运算的运算符,对输出的时候做限定(例如:对运算符全*的只输出一遍等等)。在有一次输出后我还定义了另外两个数组用来分别保存上一次输出的第一次运算的结果,第一次运算的运算符,第二次运算的结果,第二次运算的运算符和第三次运算的运算符,来解决重复输出的问题,不过此种做法有可能导致输出的时候不全。(此问题尚未解决)即还不能同时保证全面性与不重复性。 3.主要函数与数组:

数电课程设计报告 乒乓球游戏设计

电子线路综合设计 乒乓球比赛模拟及计分器设计 2014年6月

摘要 在信息社会高速发展的今天,数字电路芯片已经实现高度集成化,并逐步渗透到医学、计算机等各个领域,对人类的生活有着深远的影响。本设计采用基本门电路以及74LS系列芯片的搭建,以multisim 12.0软件为平台进行仿真,实现了对乒乓球游戏的模拟。主要解决的问题有: (1)模拟乒乓球的轨迹:用双向移位4位寄存器74194以及基本门电路实现;(2)球速的调节:利用555电路实现; (3)球被击中、犯规的判断; (4)计数器的使用:采用74LS90和74LS161的组合,给玩家计分; (5)关于比分的显示:通过CD4511译码芯片将计数器的输出状态显示到2位共阴极数码管上。 关键词:双向移位4位寄存器、555电路、译码电路、计数器系统

目录 1 设计任务 (1) 2 电路整体设计 (2) 2.1 译码显示电路设计 (4) 2.2 555定时器组成脉冲发生器 (5) 2.3模拟乒乓球电路的设计 (6) 3 电路整体性能的检测 (7) 3.1 译码显示电路的检测 (7) 3.2 脉冲发生器电路的检测················································································· 3.3模拟乒乓球电路的检测··················································································4实验结论····················································································································5课程设计心得体会以及建议····················································································6 Abstract ······················································································································7附录(包含元器件清单以及各元器件功能表) ······················································8参考文献····················································································································

《c语言课程设计报告--小游戏“石头剪子布”》

《C语言课程设计》报告题目:石头剪子布 班级: 学号: 姓名: 指导教师: 成绩:

目录: 一、选题背景...................................................................................................................... - 2 - 二、设计思路...................................................................................................................... - 2 - 三、主要问题的解决方法及关键技术.............................................................................. - 3 - 四、程序流程图.................................................................................................................. - 3 - 五、源程序清单.................................................................................................................. - 6 - 六、程序运行结果.............................................................................................................. - 8 - 七、设计总结...................................................................................................................... - 9 - 八、教师评语.................................................................................................................... - 10 - 一、选题背景 通过一个学期的C语言课程的学习,《C语言程序设计》课程已结束,根据学校课程学习的安排,要进行一周的C语言实习,自己动手编写游戏和系统。根据老师布置的设计任务书,按照学委的安排,根据个人的能力及意愿,我选择了设计一格小游戏:石头剪子布。 实验准备:做游戏前,首先,自己详细看了《C语言程序设计》(教科书),理解了相关函数的用法和作用;另外,上网查询了很多相关资料,还有找了很多相关的游戏设计的代码,都详细的看了一遍,加深了对C语言以及相关内容进一步理解。根据实际情况设计出一款比较理想的小游戏。 设计题目的要求: ①游戏要设置开始,结束操作控制 ②游戏要有时间提示即相关结果的提示语 ③游戏要能自动判断输赢,并显示最终比赛结果 二、设计思路 系统功能模块图: 输入:计算机随机输入选择,用户输入选择,并将数据储存。 计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率,并储存。 输出:根据用户的输入,将用户的游戏结果显示在屏幕上。

应用光学课程设计(终)

第一类题目:双目望远镜 要求: 1)双镜筒之间可以调节距离,调节范围56~72mm 2)右眼目镜可以调节视度,调节距离 1000 52 e f x ' ±= 3)透镜间空气间隔公差05.0±mm 4)透镜装调光轴偏心5'(角分) 参考: 目镜2-28, 焦距216.20='e f mm (参考光学仪器设计手册P295) 目镜2-25 焦距597.15='e f mm (参考光学仪器设计手册P294) 别汉屋脊棱镜 (参考光学仪器设计手册P92) 普罗I 型棱镜 (参考工程光学郁道银P47) 1、设计一个10倍的双目望远镜 全视场: 0 62=ω;出瞳直径:d=4.0,镜目距:5.10=p ;分辨率:"6=α;渐晕系数: 6.0=k ;棱镜的出射面与分划板之间的距离:3.28=a ;棱镜:普罗I 型棱镜;材料:BAK7;目镜: 2-25 2、设计一个8倍的双目望远镜 全视场: 0 72=ω;出瞳直径:d=5,镜目距:20=p ;分辨率:"6=α;渐晕系数: 55.0=k ;棱镜的出射面与分划板之间的距离:3.26=a ;棱镜:普罗I 型棱镜;材料:BAK7;目镜: 2-28

3、设计一个8倍的双目望远镜 全视场: 0 72=ω;出瞳直径:d=4,镜目距:5.10=p ;分辨率:"6=α;渐晕系数: 6.0=k ;棱镜的出射面与分划板之间的距离:3.28=a ;棱镜:普罗I 型棱镜;材料:K9;目镜: 2-25 4、设计一个8倍的双目望远镜 全视场: 0 72=ω;出瞳直径:d=5,镜目距:20=p ;分辨率:"6=α;渐晕系数: 55.0=k ;棱镜的出射面与分划板之间的距离:3.26=a ;棱镜:普罗I 型棱镜;材料:BAK7;目镜: 2-28 5、设计一个10倍的双目望远镜 全视场: 0 62=ω;出瞳直径:d=4.0,镜目距:5.10=p ;分辨率:"6=α;渐晕系数: 6.0=k ;棱镜的出射面与分划板之间的距离:3.28=a ;棱镜:别汉屋脊棱镜;材料:BAK7; 目镜:2-25

C++课程设计报告---21点纸牌游戏程序

#include #include #include #include #include #include class Game { public: Game() { win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0; player=0,cpu=0; char answer1[]="123456"; strcpy(answer,answer1); char answer2[]="654321"; strcpy(daan,answer2); }; void rules();//显示规则 void BET(); //下注 void deal();//交易 void run(Game &);//进行异常处理 void hit1();//拿下一牌 void hit2();//确保庄家不会爆庄并且点数大于16 void print();//打印出最后结果 void results();//最后的胜利结果 void check();//检查是否爆庄 Game operator=(Game &d);//运算符重载 void replay(char &ans);//是否进行新一轮的游戏 void clean();//清屏 void wait(int); void pause(); int GetInt(int,int); int random(long,long); private: int playerturns,cputurns,money; int win,lose,draw,bet; float player,cpu; char answer[7]; char daan[7]; }; //--------------------------------------------------------------------------------------- void Game::wait(int milli) {

动画与游戏设计-课程设计报告

《动画与游戏开发》 课程报告 学号:111102020103 姓名:张慧 专业班级:11级计科本01班 日期:2013-12-9

电子信息工程学院 目录 一、课程内容及应用领域 1.1基于DirectX的粒子系统 (3) 1.1.1 粒子系统简介 (3) 1.1.2广告板技术 (3) 1.1.3粒子系统的基本原理 (3) 1.2粒子系统的应用领域 (3) 二、课程内容的难点、疑点 2.1课程要点 (4) 2.2课程难点 (4) 2.3课程疑点 (4) 三、实例开发 3.1实例题目及说明 (4) 3.2关键技术 (5) 3.2.1系统完成的四部曲 (5) 3.2.2星光粒子结构构成技术 (5) 3.2.3 MyPaint()绘图函数 (5) 3.3开发过程 (9) 3.3.1案例所需背景图 (10) 3.3.2程序部分代码 (10) 3.3.3运行结果截图 (15)

3.4总结..........................................................17四、谈谈自己对课程内容的掌握程度

一、课程内容及应用领域 1.课程内容:基于DirectX的粒子系统 相关内容简介: (1)粒子系统简介 粒子系统是三维图形编程领域中用于实现特殊效果的一种非常重要的技术.该技术是由Reeves于1983年首次提出来的.通过粒子系统可以使用非常简单的粒子来构造复杂的物体,它为模拟动态的不规则物体,提供了强有力的技术手段。一般情况下,粒子的几何特征十分简单,可以用一个像素或一个小的多边形来表示.如果给出了粒子中心点的坐标和粒子大小,不难计算出绘制粒子所需要的四个顶点的位置坐标. (2)广告板技术 由于通常使用平面图形而不是立体图形表示一个粒子,所以需要使用的粒子四边形始终面向观察者.这就要使用广告板技术.广告板技术的原理是,在渲染一个多边形时,首先根据观察方向构造一个旋转矩阵,利用该矩阵旋转多边形使其面向观察者,如果观察方向不断变化,就要不断旋转多边形. (3)粒子系统的基本原理 粒子通常都是一个带有纹理的四边形。我们通过这个使用了纹理映射的四边形,可以认为粒子实际上是一个很小的网格模型,只不过是纹理赋予了它特殊的外表罢了。绘制粒子就如果绘制多边形一样简单,因为一个粒子说白了就是一个可改变大小并映射了纹理的四边形罢了。 粒子系统由大量的粒子构成,粒子是一种微小的物体,每个粒子都具有一定的属性,如位置、大小以及纹理,可能还需要颜色、透明度、运动速度、加速度、生命期等属性。我们可以把粒子想象成颗粒状的物体,如雪花,雨滴,沙尘,烟雾等特殊的事物。又比如游戏中的

应用光学实验报告

(操作性实验) 课程名称:应用光学 实验题目:薄透镜焦距测量和光学系统基点测量 指导教师: 班级:学号:学生姓名: 一、实验目的 1.学会调节光学系统共轴。 2.掌握薄透镜焦距的常用测定方法。 3.研究透镜成像的规律。 4.学习测定光具组基点和焦距的方法 二、仪器用具 1、光源(包括LED,毛玻璃等) 2、干板架 3、目标板 4、待测透镜(Φ50.0,f75.0mm) 5、反射镜 6、二维调节透镜/反射镜支架 7、白屏 8、节点器(含两Φ40透镜,f 200和f 350) 三、基本原理

1.自准直法测焦距 如下图所示,若物体AB 正好处在透镜L 的前焦面处,那么物体上各点发出的光经过透镜后,变成不同方向的平行光,经透镜后方的反射镜M 把平行光反射回来,反射光经过透镜后,成一倒立的与原物大小相同的实象B A '',像B A ''位于原物平面处。即成像于该透镜的前焦面上。此时物与透镜之间的距离就是透镜的焦距f ,它的大小可用刻度尺直接测量出来。 图1.2 自准直法测会聚透镜焦距原理图 2. 二次成像法测焦距 由透镜两次成像求焦距方法如下: 图1.3 透镜两次成像原理图 当物体与白屏的距离f l 4>时,保持其相对位置不变,则会聚透镜置于物体与白屏之间,可以找到两个位置,在白屏上都能看到清晰的像.如上图所示,透镜两位置之间的距离的绝对值为d ,运用物像的共扼对称性质,容易证明: l d l f 42 2-=' 上式表明:只要测出d 和l ,就可以算出f '.由于是通过透镜两次成像而求得的f ',这种方法称为二次成像法或贝塞尔法.这种方法中不须考虑透镜本身的厚度,因此用这种方法测出的焦距一般较为准确. 3.主面和主点 若将物体垂直于系统的光轴,放置在第一主点H 处,则必成一个与物体同样 L M

算24点小游戏

研究生课程论文 课程名称C++面向对象程序设计 授课学期2013 学年至2014 学年 第一学期 学院电子工程学院 专业电子与通信 学号 姓名 任课教师 专题算24点小游戏 交稿日期2014年01月10日 成绩 阅读教师签名 日期 广西师范大学研究生学院

目录 1 引言 (2) 1.1 设计任务与要求 (2) 1.2 设计目的 (2) 1.3 C++面向对象语言简介 (2) 2 C++课程设计原理及方案选择 (3) 2.1 概述 (3) 2.1.1 方案设计与论证 (3) 2.2 二十四点游戏的原理 (4) 2.2.1 主函数设计 (4) 2.2.2 子函数的设计 (4) 2.2.3 类体的设计 (5) 3 程序流程及演示 (6) 3.1 程序流程图,程序清单与调用关系 (6) 3.2 程序 (7) 3.3 运行结果 (9) 4 结论 (10)

1引言 随着网络技术的发展,小游戏在网络发展如火如荼。二十四点小游戏是一个不仅能放松认得神经而且益智的趣味小游戏。对于21世纪的今天,作为一个社会工作者来说,面对日益剧烈的竞争,工作压力都是很大的,为了释放压力就需要一个很好的减压平台,那么网络上的小游戏首当其冲,24点小游戏受到了欢迎。 1.1设计任务与要求 题目要求在输入4个数后,程序对这个4个数进行运算,若能计算出结果等于24,即输出运算过程。目标是在输入四个数之后,先进行全排列,然后进行全运算,从而最终得到结果以输出。 1.2设计目的 本次设计的目的就是在掌握c++编程语言和visual c++编译软件的基础上。完成一个算24的小游戏程序设计,在系统提示下输入4个数后,程序对这4个数进行运算,若能计算出结果等于24,即输出运算过程。程序设计目标很明确,在输入4个数之后,先进行全排列,然后进行全运算,重而得到最终结果输出。 1.3C++面向对象语言简介 C++是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。其编译器比目前其他计算机语言的编译技术更复杂。类是C++中十分重要的概念,它是实现面向对象程序设计的基础。类是所有面向对象的语言的共同特征,所有面向对象的语言都提供了这种类型。一个有一定规模的C++程序是由许多类所构成的。 C++支持面向过程的程序设计,也支持基于对象的程序设计,又支持面向对象的程序设计。以后我们将介绍基于对象的程序设计。包括类和对象的概念、类的机制和声明、类对象的定义与使用等。这是面向对象的程序设计的基础。基于对象就是基于类。与面向过程的程

unity3d游戏课程设计报告

游戏程序设计课程报告 课程: Unity3D课程设计题目:探索迷宫 班级: 学号: 姓名:

日期:2014.12 一、摘要 1 UNITY游戏是一种新型的IT引擎。我们研究主要内容是UNITY游戏设计方法。指以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性单人游戏。 本报告主要讲述了这个小游戏的设计思路及初步使用Unity3D软件 的感受和总结。设计过程中,首先建立自己想要的模型,然后在此基础上进行需求迭代,详细设计时不断地修正和完善,经过测试阶段反复调试和验证,最终形成达到设计要求的小游戏。 基于UNITY基础,构建了一个益智游戏风格的游戏,并有主角与关卡、游戏逻辑、游戏环境界面等设计,使得玩家可以在场景中进行寻找神龛的冒险游戏。 本游戏的控制很简单,及用键盘的W ASD及SPACE五个控制人物的上下左右跳跃五个方向,用户根据自己的战略方式选择寻找油桶点亮煤油灯然后寻找神龛。

二、概述 《UNITY游戏程序设计》这一课程以大作业形式进行考核,能更好地锻炼学生综合运用本课程所授知识的能力。大作业主要内容为设计完成面向某一主题内容的游戏演示程序。 自选游戏主题,并根据所选定的主题内容设计一个典型的游戏场景及玩家逻辑,其中包含主角与关卡,游戏逻辑,游戏环境界面与交2 互过程等的设计;开发完成与设计相符的游戏Demo。 要求使用Unity3D游戏开发软件实现上述游戏Demo。 三、具体要求 1、每人单独完成,特殊可由多人合作完成。 2、游戏主题自拟。 3、根据所设游戏主题、场景及玩家逻辑,实现完成相应的游戏Demo,并撰写设计开发报告。 四、设计主题 基于视频教程“平衡球”的基础,构建了一个益智游戏风格的游戏,并有主角与关卡(一关)、游戏逻辑(触碰油桶、神龛)、游戏环境界面(通道)等设计,使得玩家可以在场景轨道中进行吃油桶、神龛的冒险游戏。 五、设计思路 本游戏以几个环环相扣的通道作为人物运动的轨迹,在通道上分

典型光学系统试验

\ 本科实验报告 课程名称:应用光学实验姓名:韩希 学部:信息学部系:信息工程专业:光电 学号:3110104741 指导教师:蒋凌颖 实验报告

课程名称: 应用光学实验 指导老师 成绩:__________________ 实验名称:典型光学系统实验 实验类型: 同组学生姓名: 蒋宇超、陈晓斌 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 深入理解显微镜系统、望远镜系统光学特性及基本公式; 掌握显微镜系统、望远镜系统光学特性的测量原理和方法。 二、实验内容和原理 (1)望远镜特性的测定 测定望远镜的入瞳直径D 、出瞳直径D ’和出瞳距错误!未找到引用源。;测定望远镜的视觉放大率Γ;测定望远镜的物方视场角错误!未找到引用源。,像方视场角错误!未找到引用源。;测定望远镜的最小分辨角φ。 对于望远镜系统来说,任意位置物体的放大率是常数,此值由物镜焦距错误!未找到引用源。和目镜焦距错误!未找到引用源。确定,其视觉放大率可表示为 (2) 显微镜视场及显微物镜放大率的测定 显微物镜的放大率是指横向放大率 式中 y ——标准玻璃刻尺上一对刻线的距离(物)(格值0.01mm ); y ′——由测微目镜所刻得的像高。 (3)显微物镜数值孔径的测定 显微物镜的数值孔径为错误!未找到引用源。,其中n 为物方介质的折射率,u 为物方半孔径角。若在空气中n=1,则错误!未找到引用源。。 数值孔径通常用数值孔径计来测定,数值孔径计的结构如图5示,其主要元件是一块不太厚的玻璃半圆柱体,沿直径方向的侧面是与上表面成45度角的斜面,从侧面入射的光线在斜面上全反射,上表面上有两组刻度沿圆周排列。其外圈刻度为数值孔径(即角度的正弦值), 专业: 光电信息工程 姓名: 韩希 学号: 3110104741 日期:2013年6月15日 地点:紫金港东四605

猜数字游戏课程设计报告

XXXX学校 《C程序设计》 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期

目录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();//双人游戏 void pgame();//单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献

1 、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强《C语言程序设计》课程的理论知识。 2、掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下:

大学课程设计报告小小打字游戏设计-课程设计报告

2016-2017学年第一学期 《Windows程序设计》 课程设计报告 题目:小小打字游戏设计 专业: 班级: 姓名: 指导教师: 成绩: 二0一六年十一月十五日

目录 1 设计内容及要求 (1) 1.1 设计内容 (1) 1.2 系统功能 (1) 1.3 信息存储功能 (1) 2 系统设计 (1) 2.1 数据库设计 (1) 2.1.1 GameUser表 (1) 2.1.2 GameInfo表 (2) 2.2 游戏系统设计 (2) 2.2.1 程序项目设计 (2) 2.2.2 功能模块设计 (2) 3 C#系统实现 (5) 3.1 类图 (5) 3.2 核心代码 (6) 3.3 MySqlConn类 (10) 3.4 MainForm类 (11) 3.5 菜单事件 (12) 3.6 窗体键盘事件 (13) 3.7 MyRandom类 (15) 3.8 Program类 (16) 4 总结 (17) 4.1 收获 (17) 4.2 反思 (17) 5 参考文献: (18)

1 设计内容及要求 1.1 设计内容 软件名称:小小打字游戏 需求分析:使用VS2010开发环境,用C#语言编写一个打字游戏,游戏界面随机出现下落的A到Z的26个字母,当用户按下相应的键,游戏屏幕上正在下落的字母就会被消除,游戏分数将相应增加。 1.2 系统功能 (1)、登录功能:启动软件,出现登录界面,用户输入账号密码,正确后方可进入游戏; (2)、注册功能:不存在的用户,可以注册; (3)、软件互斥:通过创建互斥变量,使打字游戏软件只能单独开启一个; (4)、游戏控制:按F1开启游戏,F2暂停游戏,F3继续游戏,F4使用游戏积分兑换生命值; (5)、游戏显示:游戏窗口随机下落颜色不定的A到Z 26个字母,并根据游戏得分实时增加字母下落的速度; (6)、游戏操作:按下键盘上的A-Z 26个字母键,游戏窗口上正在下落的对应字母被消除,并使游戏分数增加1; (7)、数据保存和清除:使用数据库保存用户的游戏数据,并可调用数据库数据显示在游戏界面上显示,管理员账号可以清除游戏数据记录; (8)、游戏界面信息显示:显示相应的游戏状态信息,暂停游戏提示,结束游戏提示以及游戏排名。 1.3 信息存储功能 需要存储的信息: (1)游戏分数、(2) 游戏等级、 (3) 用户、 (4)密码、(5)游戏开始时间、(6)游戏结束时间。 2 系统设计 2.1 数据库设计 2.1.1 GameUser表 表1 GameUser表

应用光学课程设计例子(学生)

应用光学课程设计 一.题目:8倍观察镜的设计 二.设计要求 全视场: 2ω=7°; 出瞳直径: d=5mm ; 镜目距: p=20mm ; 鉴别率:α=''6; 渐晕系数: k=0.55; 棱镜的出射面与分划板之间的距离:a=10mm ; 棱镜:别汉屋脊棱镜,材料为K10; 目镜:2-28。 三.设计过程 (一)目镜的计算 1.目镜的视场角 ?=?????? ?? = = Γ1451.52'25.3tan 'tan 8tan 'tan ωωωω 2.由于目镜存在负畸变(3%~5%),所以目镜的实际视场角为: ?=?=+=7524.5405.11451.52%51'22')(实际ω ω 3.目镜的选型:目镜2-28如下图所示:

相应的系统参数为:mm f 216.20'=;?=57'2ω;mm S f 49.4'=;mm d 5= 其结构参数如下表所示: 4.目镜倒置 目镜倒置后的结构参数如下表所示:

5.手动追迹光线,求出倒置后的S f’ 用l 表进行目镜近轴光的追迹,如下表所示: 通过光线追迹得到S f’=18.276mm 6.计算出瞳距p ’ 望远系统的结构图如图所示: 由于孔径光阑是物镜框,则孔径光阑经目镜所成的像为出瞳,则 Γ + =?Γ=-?-=-??? ???=-=-='2''2'' 2''1'22'' 1')'()'('''f S p f S p f S p f f f xx S p x f x f f f f mm p 803.208216 .202760.18'=+= 求得的出瞳距mm p 803.20'=与设计要求mm p 20'=较接近,因此选择的目镜满足要求。 (二)物镜的计算 1.物镜焦距 mm f f f f e o e o 728.161216.208'''' =?=?Γ=?=Γ

21点游戏课程设计

/*玩家最多可以要5张牌,但是如果牌的点数之和超过21,则自动出局,在不超过21点的情况下,玩与庄家比牌的点数大小,大者为赢家。*/ #include #include #include using name space std; class C Card { priv ate: int na Pip[5]; //定义一个数组,一共是5张牌。 int nNu mbe r; //发了多少张牌。 int nDol lar; //有多少钱 int nGa mble; //赌注 int nW in; //赢局数 int n Lose; //输局数 int nDraw; //输局数 public: C Card(); //构造函数 v oid FirstPla yTwo();//最初两张牌 int Ge tNumbe r();//返回牌张数

int Ge tPip(); //返回点数 v oid Displa yPip();//一次全部显示牌面点数。 v oid Displa yPip(int ); //除了第一张牌,一次全部显示牌面点数(针对计算机牌的显示) v oid TurnPla y();//出了一张牌 v oid Win();//赢了计算赌注 v oid Lose();//输了 v oid Draw();//平局 int se tGamb le(int );//设置赌注,赌本不够返回1 int ge tM one y();//返回钱数 v oid Displa yInfo();//打印必要的信息 int Ge tCurre ntCard();//返回当前牌点。 }; CCard::C Card() { nNu mbe r=0;//开始没有发牌 nDollar=100;//初始赌本为0 for(int i=0;i<5;i++) na Pip[i]=0; //五张牌全部为0 nGa mble=0;

数独游戏课程设计报告

数独游戏课程设计报告 将“数独”智力游戏的难度划分与创建问题分解为建立终盘和初盘、难度评分、游戏创建。首先采用行列变换的方法建立终盘,然后隐去部分数字并检验解唯一性,得到初盘。 在已得到初盘的基础上,根据求解时初级方法和高级方法使用的次数确定难度评分,从而依据分数对题目的难度进行划分,以此创建例外等级难度的“数独”游戏。最后通过实验验证了模型的实用性。下面是整理的数独游戏课程设计报告,欢迎来参考! “数独”是18世纪瑞士数学家欧拉发明。该游戏是在9×9的单元网格中进行,这些网格被分9行、9列和3×3个九宫格。单元网格中已有若干数字,其余均为空格。玩家需要推理出所有剩余空格的数字,并满足每一行、每一列、每一个小九宫格内的数字均含1-9且不重复。每一道合格的“数独”谜题都有且仅有唯一答案。 目前,“数独”作为一种智力游戏已经盛行世界,国内外许多学者已对数独的求解算法做了深入研究,例如递归法、回溯候选数法、枚举算法等,但在数独的难度划分与创建方面的研究还很少。由于影响“数独”难度的因素有很多,就问题本身而言,难度因素包括最高难度的技巧、各种技巧所用次数、是否有隐藏及隐藏的深度和广度的技巧组合、当前盘面可逻辑推导出的个数等等;就玩家而言,了解的技巧数量、熟练程度、观察力等也属于难度划分应考虑的因素。因此,单单利用空格数或求解时间对题目难度进行划分是不全面的,其难度指标定义过于主观,讨论也不够细密,无法真正划分难度的级别。 本文首先创建符合要求的“数独”终盘,然后在终盘的基础上生成具有数独特性的初盘,根据求解时初级方法和高级方法使用的次数确定难度评分,从而依据分数对题目的难度进行划分,以此创建例外等级难度的“数独”游戏。 首先运用初等行、列变换,构造一个新的简单明了的终盘生成算法,具体步骤如下: Step1:从行的角度出发,在第一行随机输入1-9的数字。以一个小九宫为单位,将相邻三个数字作为一个集体进行交替,由此获得第二行的数字,再由

相关文档
最新文档