P2 实验二 设计模式实验一
- 格式:doc
- 大小:245.00 KB
- 文档页数:5
单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。
2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。
3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。
4、能够实现按键启动与停止功能。
5、能够实现整点报时功能。
6、能够实现秒表功能。
二、设计思路1、芯片介绍VCC:电源。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
流水灯实验报告课程名称:LED流水灯实验报告学院:xxxxx学院专业:姓名:学号:年级:任课教师:【正文】一、实验的背景和意义单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把CPU随机存储器RAM、只读存储器ROM、多种输入输出口、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的应用。
大致可以分为以下几个范畴: 1、在智能仪器仪表上的应用,例如精确的测量设备;2、在工业控制中的应用,例如用单片机可以构成形式多样的控制系统,与计算机互联网构成二级控制系统等;3、在家用电器中的应用,可以从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电话对讲机等;4、在医用设备中的应用,例如医用呼叫机、各种分析仪、超声诊断设备及病床呼叫系统等等;5在各种大型电器中的模块化作用,如音乐集成单片机,看是简单的功能,微缩在电子芯片中,就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。
本系统就是充分利用了8051芯片的I/O引脚。
系统已采用MCS—51系列单片机为中心器件来设计LED流水灯系统,实现LED左循环显示,并实现循环的速度可调。
二、设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序和C 语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
三、设计任务及要求 1.用个发光二极管作为显示电路 2.实现LED 动态显示 3.能连续循环显示 四、 设计思路LEDLED如果要让接在P1.0口的LED1亮起来,相反,如果要让接在P1.0口的LED1熄灭,那么只需要把P1.0口的电平变为高电平就可以了;同理,接在P1.1—P1.7口的其他7个LED 的点亮的熄灭的方法同LED1。
《算法设计与分析》实验指导书计算机科学与技术学院石少俭实验一分治法1、实验目的(1)掌握设计有效算法的分治策略。
(2)通过快速排序学习分治策略设计技巧2、实验要求(1)熟练掌握分治法的基本思想及其应用实现。
(2)理解所给出的算法,并对其加以改进。
3、分治法的介绍任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。
问题的规模越小,越容易直接求解,解题所需的计算时间也越少。
而当n较大时,问题就不那么容易处理了。
要想直接解决一个规模较大的问题,有时是相当困难的。
分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
如果原问题可分割成k个子问题,1<k≤n ,且这些子问题都可解,并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行的。
由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。
在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。
这自然导致递归过程的产生。
分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。
分治法的适用条件(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。
(3)利用该问题分解出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
上述的第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问题规模的增加而增加;第二条特征是应用分治法的前提,它也是大多数问题可以满足的,此特征反映了递归思想的应用;第三条特征是关键,能否利用分治法完全取决于问题是否具有第三条特征,如果具备了第一条和第二条特征,而不具备第三条特征,则可以考虑贪心法或动态规划法。
第四条特征涉及到分治法的效率,如果各子问题是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然可用分治法,但一般用动态规划法较好。
实验设计方案模板一、背景与目的。
实验设计是科研工作中非常重要的一环,好的实验设计方案能够有效地指导实验的开展,并确保实验结果的可靠性和准确性。
本实验旨在探究某种特定条件下的影响因素及其作用机理,为相关领域的研究提供可靠的数据支持。
二、实验目的。
1. 确定影响因素对实验结果的影响程度;2. 探究影响因素对实验结果的作用机理;3. 提出针对性的实验结论和建议。
三、实验设计方案。
1. 实验对象,选择具有代表性的实验对象,确保实验结果的可靠性和普适性。
2. 实验条件,明确实验所需的环境条件和操作条件,包括温度、湿度、光照等因素。
3. 实验步骤,详细描述实验的操作步骤,确保实验的可重复性和可比性。
4. 实验组设置,根据实验目的,设置对照组和实验组,确保实验结果的可信度和可比性。
5. 数据采集,明确数据采集的时间点、方法和频率,确保数据的完整性和准确性。
6. 数据处理,描述数据处理的方法和步骤,包括数据的清洗、分析和统计方法,确保数据的科学性和可信度。
7. 结果分析,对实验结果进行科学的分析和解释,提炼出实验结论和建议。
四、实验设计方案的优化。
1. 对比分析,根据实验结果,对比不同条件下的实验数据,找出影响因素的差异性和规律性。
2. 参数调整,根据实验结果,对实验条件和操作步骤进行调整,优化实验设计方案,提高实验效率和准确性。
3. 方案改进,根据实验过程中的问题和不足,改进实验设计方案,提高实验的可靠性和科学性。
五、实验设计方案的应用。
1. 实验指导,根据优化后的实验设计方案,指导实验的开展,确保实验的顺利进行。
2. 结果解读,根据实验结果,对实验数据进行解读和分析,得出实验结论和建议。
3. 成果应用,将实验结果应用于相关领域的研究和实践,推动科学技术的进步和应用。
六、总结与展望。
本实验设计方案基于科学的原理和方法,经过优化和应用,能够有效地指导实验的开展,确保实验结果的可靠性和准确性。
未来,我们将进一步完善实验设计方案,提高实验效率和科学性,为相关领域的研究和实践提供更多的可靠数据支持。
实验二设计模式实验一
一、实验目的
熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。
二、实验内容
使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。
(1) 简单工厂模式
使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。
(2) 简单工厂模式
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。
现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。
(3) 工厂方法模式
某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。
用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。
<<create>>
FileLogFactory +createLog ()...
: Log LogFactory +createLog ()...
: Log FileLog +writeLog ()...
: void Log
+writeLog ()...
: void DatabaseLogFactory +createLog ()...
: Log DatabaseLog +writeLog ()...
: void Client
(4) 工厂方法模式
现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF 图片读取器(GifReader)用于读取GIF 格式的图片、JPG 图片读取器(JpgReader)用于读取JPG 格式的图片。
图片读取器对象通过图片读取器工厂ImageReaderFactory 来创建,ImageReaderFactory 是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory 和JpgReaderFactory 用于创建具体的图片读取器对象。
使用工厂方法模式实现该程序的设计。
(5) 抽象工厂模式
某系统为了改进数据库操作的性能,自定义数据库连接对象Connection 和语句对象Statement ,可针对不同类型的数据库提供不同的连接对象和语句对象,如提供Oracle 或SQL Server 专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。
使用抽象工厂模式设计该系统。
用代码模拟实现数据库操作工厂实例,要求可以通过配置文件改变数据库类型。
OracleConnection Connection
OracleFactory
++createConnection ()createStatement ()...
: Connection : Statement DBFactory
++createConnection ()createStatement ()...
: Connection : Statement
MySQLFactory
++createConnection ()createStatement ()...
: Connection : Statement MySQLConnection
OracleStatement
Statement
MySQLStatement
(6) 抽象工厂模式
计算机包含内存(RAM)、CPU 等硬件设备,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。
产品族
产品等级结构
Pc
Mac
CPU
RAM
(7) 单例模式
使用单例模式的思想实现多例模式,确保系统中某个类的对象只能存在有限个,如两个或三个,设计并编写代码实现一个多例类。
(8) 单例模式
使用单例模式设计一个多文档窗口(注:在Java AWT/Swing 开发中可使用JDesktopPane 和JInternalFrame 来实现),要求在主窗体中某个内部子窗体只能实例化一次,即只能弹出一个相同的子窗体,如下图所示:
(注:用C#或C++实现类似功能也可以)
(9) 适配器模式
现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。
现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。
绘制类图并编程实现。
(要求实现快速排序和二分查找)
(10) 适配器模式
使用任意一种面向对象编程语言实现一个双向适配器实例,使得猫可以学狗叫,狗可以学猫抓老鼠。
绘制相应类图并使用代码编程模拟。
三、实验要求
1. 正确无误绘制简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式实例的模式结构图;
2. 使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式实例,代码运行正确无误。
四、实验步骤
1. 熟悉PowerDesigner15的常用功能;
2. 使用PowerDesigner绘制简单工厂模式实例结构图并用面向对象编程语言实现该模
式实例;
3. 使用PowerDesigner绘制工厂方法模式实例结构图并用面向对象编程语言实现该模
式实例;
4. 使用PowerDesigner绘制抽象工厂模式实例结构图并用面向对象编程语言实现该模
式实例;
5. 使用PowerDesigner绘制单例模式实例结构图并用面向对象编程语言实现该模式实例;
6. 使用PowerDesigner绘制适配器模式结构图并用面向对象编程语言实现该模式。
五、实验报告要求
1. 提供简单工厂模式实例结构图及实现代码;
2. 提供工厂方法模式实例结构图及实现代码;
3. 提供抽象工厂模式实例结构图及实现代码;
4. 提供单例模式实例结构图及实现代码;
5. 提供适配器模式实例结构图及实现代码。
6. 递交电子版实验报告,格式为“学号-姓名-实验2.doc”,如“060102-张三-实验2.doc”。