软件设计总体思路及主流程图
- 格式:docx
- 大小:123.37 KB
- 文档页数:6
一、设计要求:(1) 设计内容创建和修改表的定义:1、实现:CREATE TABLE <表名> (<列名><数据类型>[<列完整性约束条件>][,<列名><数据类型>[<列完整性约束条件>]…][,<表完整性约束条件>] );2、实现:ALTER TABLE <表名> [ADD <新列名><数据类型>[<列完整性约束>]] [DROP<列完整性约束名>][MODIFY <列名><数据类型>]。
(2) 设计要求1、设计和实现表的物理存储结构;2、语句以命令行和图形化界面两种形式实现;3、分析设计内容,画出程序流程图,设计表的存储结构;4、提交课程设计报告。
(3) 任务步骤1、分析命令语句,得到表名、列名和数据类型等信息;2、根据命令中的关键词确定表和字段的属性;3、创建一个表文件,写入表结构信息;4、打开一个表文件,修改表结构信息;5、演示建立了一个表,并修改了表结构。
二、需求分析:数据库系统能够有效地组织和管理大量的数据。
研究数据库管理系统的实现技术,对于掌握数据库系统的原理和技术,了解数据库系统的内部结构,开发高效的数据库应用系统,具有重要意义。
在建立了数据库之后,首先需要建立表,之后才能进行记录的插入。
这个程序的设计就是实现创建和修改表的定义。
三、设计思想:(1)总体思路此课程设计主要要完成的任务是创建和修改表的定义,因此程序中共包含四个可选项:“新建表”、“修改表”、“显示表的信息”、“保存操作并退出”。
另外,由于是数据库的操作,因此需要将建立的表的信息存储,在执行程序时应该调用已存储的表的信息,并且应该有日志文件以记录对表的操作。
下面依次介绍主要结构、保存表信息、提取表信息、日志文件和主菜单中的四个选项;(2)主要结构1、每一个都有一个固定结构,因此我首先建立了一个表的结构体,具体形式如下:typedef struct{char table_name[10];//表名int property_num;//属性的个数char property_name[10000][10];//属性名int property_type[1000];//属性类型(1=int,2=char)int property_null[100];//属性是否为空(1=允许,2=不允许)int property_key[10];//是否主码(1=是主键,2=不是主键)}TABLE;2、我用一个TABLE型的数组将所有的表联系在一起,具体定义为TABLE table[10000];3、定义一个int型变量记录表的个数,具体定义为int table_num=0。
业务流程图第一部分:什么是流程图1. 定义那什么是流程图呢流程图=流程+图,如下图:图2 流程图的定义流程:Flow,是指特定主体为了满足特定需求而进行的有特定逻辑关系的一系列操作过程,流程是自然而然就存在的;但是它可以不规范,可以不固定,可以充满问题;所以就会造成看似没有流程;前不久,团队每个人对接一个业务团队去调研流程,反馈给我的流程有一些缺失;询问时,负责人反馈给我的答复是:这一块业务他们没有流程;其实严格意义上讲,业务已经开展,不可能没有流程,只是说没有固定的流程或者你调研的对象也讲不清楚;图:Chart 或者Diagram, 是将基本固化有一定规律的流程进行显性化和书面化,从而有利于传播与沉淀、流程重组参考;从定义可以看出,只要有事情和任务,流程就会有,但是并不是所有的流程都适合用流程图的方式去表现,适合用流程图去表现的流程是一定程度固定的有规律可循的,流程中的关键环节不会朝令夕改的;工作中我们还用到或听到很多其他类型的图表,比如交互设计师们经常说的线框图Wireframes,信息架构图或站点地图Site Map,,开发工程师们经常说的用例图Use Case或E-R图;这些不同的图表要表达的内容有何种差异呢简单做个对比,如图:图3 流程图VS其他常用图表如果要串到某一个项目来说,可以理解成:用例图Use Case:表现了一个角色在系统里要完成的活动是什么,比如用户这个角色与ATM取款机的交互过程中,用户需要完成的活动有存钱,取钱,查询等;而存钱这个活动再可以进一步细分为插卡,输入密码,输入金额,ATM吐钞,用户收款,退卡等活动;用例图可以不考虑用户动作的前后次序,而仅仅提取一些关键的动宾短语,映射出系统应该满足的功能点;常用用例图的人是产品经理和开发工程师;流程图则表示用户每一个活动的前后次序,比如用户必须要先插入银行卡,才能够输入密码,且流程图必须直接表现出各种异常判断,比如当密码错误时,出现什么提示,密码输入错误超过多少次时,出现什么提示和动作;常用流程图的人是产品经理,设计师,或者任何需要讲述业务如何运作的人;信息架构图,站点地图Site Map:表现为了做一个这样的系统,功能与内容的展现层次是什么,比如用户一进去后,欢迎页面的导航如何设计,是否直接出现取款,存款,查询,或者还有别的导航常用信息架构图的是设计师;但是常用组织架构图的是HR;线框图Wireframe:将具体每个界面的内容布局和权重表达出来,且标注出一些交互细节的设计,比如当密码错误后,如何提示下一步动作;常用线框图的人是设计师;实体关系图E-R图:则是数据库架构的工作,表示一个业务系统或场景中的实体时间的关系,比如储户与银行卡的关系是归属1对多,通过开卡事件产生关联;一般来讲,用矩形来表示实体,椭圆标识这个实体的属性,比如储户这个实体的属性有:姓,名,号码,住址等;而银行卡的属性有:开户行,开户名称,银行卡号等;那么流程图要体现出他的差异定义,要素是什么总结出了流程图的6大要素,希望大家能够记住,这6个要素可以在以后的文章里不断回顾,你也可以拿来判断你所看到的流程图是否专业;图4 流程图6大要素•参与者:谁在这个流程中可以是系统,可以是个打印机,更多的指什么角色——一般是有某种工种的人;比如客服同时有小A和小B两人,但是若他们的工作性质完全一样,那么在流程图里只需要写一个客服角色就可以了;•活动:做了什么事,比如点餐,结帐等活动;•次序:这些事情发生的前后顺序如何,哪个任务是其他任务的前置条件比如客人不结帐,就不会产生送他优惠卡的活动;•输入:每项活动开始取决于什么样的输入物或数据,比如做饭的师傅开始做菜时,需要拿到具体的点菜单;•输出:每项活动结束后,会输入什么样的文档或数据传递给下一方,比如师傅做好菜后,如何让负责传菜的人知道菜已经做好•标准化:采用一套标准化的符号用以传递你的流程图,从而使受众更快明白;关于流程图的标准化,并不是强制的,事实上,我们见过很多种类的流程图,只要能够传递明白任务和次序其实已经归类于流程图了;如下面的图:但是若在一个公司的环境下,你的流程图的受众又非常多的话,采取标准化的符号会带来很多交流上的好处,总之你懂的;第二部分:流程图的分类常见的流程图有业务流程图Transaction Flow, 页面流程图Page Flow;在工作中,作为UED,你可能会发现PD经常谈的是业务流程,而作为交互设计师,我们更多产出的是页面流程图;页面流程图和业务流程图到底有什么关系呢先有谁,其次再有谁呢先讲个故事:假设你的梦想是开个中高档的全国连锁餐馆,那么首先你想到的应该不是如何去选址,而是将为何要开连锁餐馆这件事情,以及你的定位,核心竞争力想清楚;是快餐,还是点餐,是连锁还是加盟定位于社区还是繁华商圈是川菜还是江浙海鲜是面向中老年还是年轻人是家庭主题还是动漫主题竞争对手是谁需要什么样的投资可能的风险是什么这些都想清楚了,问题都有答案了,所谓战略层要清晰了吧;然后假设你现在分析来分析去,与主要投资方决定了一个方向:面向年轻人的时尚动漫茶餐厅,连锁,但是先在杭州开始第一家,选址定位于年轻人约会,扫街的地域,比如风景区,著名商圈,电影院旁……那么,接下来呢接下来就是想办法让这些实现吧那么需要做什么事情呢选址拉投资搞装修选餐饮菜单雇佣员工每一步怎么去做,时间点是什么等等的任务拆解以及计划,就需要到战术层了;这些事情的执行,总是需要请人的吧先是核心团队分工去部署各项建设任务,当餐厅开设起来后,就需要组织稳定的运营团队,如服务、卫生、厨房、采购、人事等等,厨房里面还得分工,白案,热菜,冷菜等等吧每个部门需要设置管理层以及汇报关系吧所以你的组织结构就诞生了;那具体每种角色是如何顺畅合作完成日常稳定的以及突发的各项任务呢比如,当顾客上门时,谁去引导客人入座,谁去点菜,怎么将点菜的讯息迅速传递到厨房,并分发到酒水间、冷菜间、热菜间并保证客人尽快能够吃到所点的菜你必须要考虑各种人员的协作流程,优化效率,所以业务流程就出现了;人肉运营了一段时间,没有借助任何点餐系统,你发现也还可以;客人点菜时,服务员手抄写下客人的要求,因为有复印纸,所以服务员能够将副本送入厨房,同时写下餐桌号码;厨房规模较小,负责分配任务的员工看下菜单,分别往冷菜处的黑板上写下需要他们处理的,以及跑到热菜区的黑板上写下待处理的菜品,以及去酒水间报下品名即可;可是随着经营的扩大,以上的人肉方式出现了很多问题,首先,手抄效率太低,顾客频繁换菜,响应来不及,手抄出错,导致经常报错菜;厨房很混乱,不得不多招了几个人专门跑堂;而一旦顾客要加菜,撤菜就更麻烦了,需要找出他们当时点的菜,再进行人工的批注和修改,同时要修改厨房后端的各个黑板……所以你们想要开发一套智能系统,取代很多人肉工作,你们请了系统开发团队,他们经过评估,判断从点菜开始,一直到传菜都可以用系统解决;手持终端,能够快速传递顾客点菜需求到打印机,打印系统能够根据顾客点菜的类型进行自动的分单打印,所以热菜间看到自己的热菜菜单,冷菜间看到自己的冷菜菜单,而酒水间看到酒店菜单;当他们准备完毕后,送出,传菜员可以根据菜名与打印出来的单据进行传菜并根据顾客的点菜小票进行核对;这套系统同时必须配备结算系统,将最终确认掉的菜单及消费价格传递到结算前台,收银员能够快速进行操作;这套系统最终是需要展现出来的,那么手持终端的界面如何设计服务员能够用更少的点击完成一个菜的点餐吗结算中心的界面如何设计通过以上的故事,是不是更明白从战略、战术、业务流程图到页面流程图的关系了总结下:•先是有一个业务需求和业务目标,也即我们的愿景是什么战略•然后就诞生了我们需要分解出什么样的任务,如何执行战术战术•然后就诞生了需要架构什么部门,岗位去分工协作组织架构•然后就诞生了不同的部门在协作完成某件任务时的业务流程业务流程•业务流程基本稳定后,往往会考虑优化效率,所以会诞生出系统来支持流程,减少人肉环节,促进数据采集系统愿景•为了设计这个系统,PD需要思考什么功能能够取代某个环节的人肉工作功能需求,系统流程•不管是怎么样的功能最终都会以界面的方式呈现,设计师们会关注用户在系统里的任务流,行为路径,让用户完成任务更加高效愉悦;页面流程当然,除了业务流程,系统流程,页面流程,还有数据流程被人关注;我们平时工作中,还会经常听人谈到泳道图、任务流程图等等概念,究竟是神马关系呢图5 流程图的分类本文着重于上述流程中的“业务流程图”——并会分享如何绘制泳道图——也即是PD们最多使用,技术们最多参考,UED们最多看到的流程图;本来在第四部分会对泳道图的图示以及绘制方法、原则做更详细的说明,但是看目前的篇幅情况,预计会放到下篇,所以先在这里简单说明下吧;在工作中,我们经常能够看到两种业务流程图,从表现形式来看,一种很好区分,俗称为“泳道图”的它,在样子上也确实像个泳道,可以有横向的泳道,也会有纵向的泳道;泳道图在某些文档里会被称为“以活动为单位的流程图”,浮在泳道中的都是一个个活动;另外一种类型是以部门和岗位为单位的流程图,下图中的圆形就代表一个个部门或岗位;矩形代表活动;这种流程图关注事情如何完成的逻辑,但是在体现各个部门的责任上比较弱;如果是某个岗位的人来看,很难像泳道图那样一眼就能看到自己部门的职责和任务;所以现在用得比较少;再回过头来说泳道图,泳道图有几个关键点:两大维度,活动流转,流程要素;我们会在以后详解;第三部分:为什么需要业务流程图流程图可以提供一种简单扼要的“缩略俯瞰图”,帮助观众快速了解业务如何运转;它包含了几个关键词:谁,什么时候,在什么条件下,做了什么事情,输入什么,输出什么,输出给谁……与系统流程不同,业务流程更关注于业务本身如何运作,讲的是业务故事,包含的是业务规则;而系统流程则是满足业务流程,实现部分流程或全部流程的信息化和系统化;所以业务流程是所有环节的前置条件——软件需求分析,信息系统建设也会先进行业务流程的梳理;下面表现了业务流程图是如何在三个主要场景中发挥作用的:1. 员工培训图6 流程图的应用场景之一:培训在此场景中:流程图能够提供一种快速了解业务如何运作的视图,通过业务流程图,新员工能够快速明白业务的最终目标是什么,中有哪些角色在参与以及他们的职责,以及彼此之间的联接;除了培训新员工,在员工轮岗、调职场景中,员工也需要业务流程图参考,明白新的工作内容如何开展,以及自己所处的位置,自己的上游是谁,下游是谁,自己需要交付的工作内容是什么;2. 流程优化与重组图7 流程图的应用场景之二:流程优化业务流程重组Business Process Reengineering的存在可以明确反驳:存在即合理;事实上,存在的业务流程并未是合理的,有可能是参与的多个角色习惯了某种做法,有可能是变革尚未影响到末端的操作,也有可能缺乏对于运行中的业务流程问题的洞察以及强有力的变革推动——因为要推动业务流程变革,不是某个部门的事情,而是需要流程中各个部门的通力配合;更多时候,业务流程优化是自上而下的,但是老板们未必对实际运作的业务流程那么心知肚明,业务流程图能够很好去表现这个“运作模型”;通过看业务流程图,找关键节点的人访问,能够直接切入:为什么要这么做,为什么不这么做从而探索出更深层次的问题,而不是问:你们现在怎么做通过调研,分析业务流程图,引入更多角色,能够分析出目前业务流程的问题:缺失,重复,风险,效率等等;从而制定相应的优化方案;3. 信息化的基础图8 流程图的应用场景之三:信息化基础正如上文所述的餐馆梦想的案例,信息系统的一项任务就是解放员工的手脚,取代一些重复的人力劳动工作;系统上了之后,不是说业务流程不需要而是经过了一些调整,其中某个参与者变成了系统,或手持设备,或打印机而已;那么在做系统的功能设计和系统流程设计时,是不是必须先要了解目前业务是如何运作的呢从而更好分析分析,更好说明系统在什么环节取代了什么类型的人肉工作所以我们看到的PRD往往也会先以业务流程图开始说明,而叙述一个系统建设的好处时,也可以用以前的业务流程与系统上了之后的业务流程进行对比;根据分析,将愿景中的新的业务流程图背后需要系统的功能点撰写清楚;第四部分:如何绘制业务流程图首先绘制业务流程图本身有没有流程一定是有的;在软件工程学里听说一句话叫:万物皆对象;那么在流程学里,万事皆流程;吃饭难道没流程吗就吃饭的动作而言,就有流程:拿筷子——夹菜——入口——咀嚼——吞咽;有不少同学在这一部份很快想会问一个问题:Heidi,请介绍画流程图的工具吧我个人是工具派,从不否认人工欲善其事,必先利其器的道理;好的工具本身就是一名好的老师,除了技能,也能够教会我们一些理论与理念,这些理念也是“器”中很重要的一部分;其次才是具体的工具应用技能;所以我并不建议直接跳转到工具应用;对于初学者而言,笔与纸永远是最好的入门工具,因为你无需和任何一个陌生的软件较劲;那么,绘制业务流程图有没有可遵循的流程呢我建议可以从下面4步着手;1. 调研如何快速了解业务运作真相有没有调研的技巧放送2. 梳理与呈现•能否快速将调研得到的文字和问题,快速转化为业务流程图•业务流程图的标准图示是什么•怎么评价一个业务流程图的好与坏3. 评审与确认——能否真正让业务流程图反映现实中的业务4. 归档维护——流程不断变更,业务流程图如何快速响应。
软件系统设计总体思路1.需求分析:首先,我会与客户充分沟通、了解客户的需求和期望。
通过需求分析,我可以准确地把握系统开发的目标和工作重点。
在需求分析阶段,我会使用一些工具,如用户故事、用例图等,来帮助理清需求的逻辑关系和功能要求。
2.架构设计:在需求分析的基础上,我会进行系统的架构设计。
架构设计是系统设计的基石,它涉及到系统各个模块的组织、接口的定义、数据的流动等,对系统的后续开发和维护具有重要的指导意义。
在架构设计中,我会考虑到系统的可扩展性、可维护性、安全性等方面。
3.功能模块划分:在架构设计的基础上,我会对系统的功能模块进行划分。
功能模块划分是为了使不同模块之间的工作职责清晰,并且方便团队合作开发。
在划分功能模块时,我会考虑到模块之间的依赖关系,尽量减少模块之间的耦合,提高系统的可维护性和可测试性。
4.数据交互流程设计:在系统设计中,数据的交互流程是不可忽视的一部分。
我会绘制数据流程图,清晰地描述数据在系统中的流动路径。
通过数据交互流程设计,可以帮助开发人员更好地理解系统的工作原理,避免数据错误和冗余。
5.接口设计:在设计系统时,接口的定义是非常重要的。
我会设计清晰的接口,规范接口的输入输出和参数的定义。
通过良好的接口设计,可以降低不同模块之间的耦合度,提高系统的可维护性和扩展性。
6.安全性设计:在系统设计中,安全性是一个重点和难点。
我会考虑系统的安全需求,并设计相应的安全措施,如身份认证、访问控制等。
此外,我还会对系统进行风险评估和安全测试,确保系统的安全性。
7.性能优化:在系统设计中,性能优化是一项关键任务。
我会关注系统的性能瓶颈,并采取一些优化措施,如缓存优化、数据库索引优化等,来提高系统的响应速度和并发能力。
总之,软件系统设计是一个综合性的任务,需要综合考虑需求分析、架构设计、模块划分、数据交互流程设计、接口设计、安全性设计、性能优化等多个方面。
通过合理的设计,可以帮助开发人员高效开发、维护和升级系统,同时满足用户需求。
1.函数波形发生器流程图主程序流程T0中断服务程序流程2. 255秒定时器流程主程序流程图INT0中断服务程序流程T1中断服务程序流程T0中断服务程序流程3. 比例电压变换器流程主程序流程图4. 模拟电压显示器流程主程序流程图注:P1口和P3.0-P3.3接12个LED 灯,其中P3.3接最高位灯L12,P1.0接最低位灯L0。
5. 脉冲计数器流程主程序流程图T1中断服务程序流程图T0中断服务程序流程图6. 水塔水位控制器流程主程序流程图T0中断服务程序流程图T1中断服务程序流程图7. 占空比可调的方波发生器流程主程序流程图T0中断服务程序流程图注:T0的中断服务程序编制过程中必须注意使程序所有流程的执行时间小于100μS 。
否则,输出波形的频率不符合题目的要求8. 双机通过串行接口互传数据流程主程序流程图T0中断服务程序流程图串口中断服务程序流程图9. 花样流水灯流程主程序流程图T0中断服务程序流程图注:在主程序中由于仅使用了8bit运算,故实际A/D采样值为255时,得到的延时时间间隔为1280mS。
若要完全符合题意,则需要使用16bit的算术运算才能满足要求。
10. 模拟电压比较器流程主程序流程图T0中断服务程序流程图T1中断服务程序流程图11. 利用PWM 信号实现直流小电机的调速流程主程序流程图注:在程序的编制过程中,必须仔细调整延时37微秒的延时子程序的延时时间,使输出波形的频率满足题目要求。
12. 调频信号发生器流程主程序流程图T0中断服务程序流程图注:该程序编制过程中须注意,T0中断服务程序与主程序均使用0区的工作寄存器。
另外,T0的中断服务程序中最长流程的执行时间必须小于50微秒13. 频率计主程序流程图T1中断服务程序流程图动态显示子程序流程图主程序流程图14. 电子钟T0中断服务程序流程图INT0中断服务程序流程图动态显示子程序流程图15. 数字电压表主程序流程图T0中断服务程序流程图动态显示子程序流程图16. 数字跑表主程序流程图INT0中断服务程序流程图T0中断服务程序流程图动态显示子程序流程图17. 步进电机驱动器主程序流程图INT0中断服务程序流程T0中断服务程序流程。
选择题1.软件设计一般分为总体设计和详细设计,它们之间的关系是( )。
A.全局和局部 B.抽象和具体c.总体和层次 D.功能和结构2.软件结构使用的图形工具,一般采用( )图。
A.DFD B.PADC SC D.ER3.属于软件设计的基本原理是( )。
A.数据流分析设计 B.变换流分析设计C.事务流分析设计 D.模块化4.在软件结构的后处理中,下列说法错误的是( )。
A.为模块写的处理说明及接口说明可采用IPO图B.数据结构的描述可用Warnier图或Jackson图c. 给出设计约束或限制。
如数据的边界值、数据类型、格式、内存容量及时间的限制 D. 在概要设计评审中,应着重评审软件需求是否得到满足及软件结构的质量等E.设计的优化工作主要放在软件结构设计的后处理阶段5.在基于IDEF0图的设计方法中,下列说明错误的是( )。
A.IDEF0图以系统的功能模型和信息结构为基础设计系统的软件结构B.IDEF0图按照自顶向下逐层对系统进行分解c. IDEF0图对系统每一功能的输入、输出、约束、机制都进行了全面的描述D. 在系统概要设计时,一般按照DFD图的分解层次,逐层将其转换成软件结构图6.将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是( )的。
A.逻辑性 B.瞬时性c.功能性 D.通信性7.模块内的某成分的输出是另一成分的输入,该模块的内聚度是( )的。
A.功能性 B.顺序性C.逻辑性 D.瞬时性8.在分层数据流图映射成软件结构的设计中,下列说法错误的是( )。
A.分层的数据流图映射成软件结构图也应该是分层的B.软件结构图的物理收入与输出部分放在主图中较为合适C.分层DFD图的映射方法:主图是变换型,子图是事务型;或主图是事务型,子图是变换型D. 变换型通常用于高层数据流图的转换,而事务型通常用于较低层数据流图的转9.软件设计阶段一般又可分为( )。
A.逻辑设计与功能设计 B.概要设计与详细设计C.概念设计与物理设计 D.模型设计与程序设计10.模块中所有成分引用共同的数据,该模块的内聚度是( )的。
毕业设计说明书多点温度检测系统设计学生姓名: 学号:系 别: 专 业:指导教师:2014年6月王甜敏 10050142X11 信息与通信工程系 电子信息科学与技术 李建民摘要测量是人们认识自然界的一种科学方法。
通过各种测量,人们能够从数量上来描述周围的物质世界,揭示自然界存在的规律,推动科学技术的不断前进。
计量学就是研究保证测量统一的理论问题和实际问题的学科,也就是研究提高测量准确度和保证量值统一性的一门学科。
温度计量学或称计温学是计量学的一个重要分支,它在国民经济各领域中占有一定的地位。
人们的日常生活、工农业生产和科学实验等许多方面都与温度测量有着十分密切的关系。
温度作为一个重要的物理量,是工业生产过程中最普遍、最重要的工艺参数之一。
随着时代的进步、社会的发展、科学技术的不断更新,温度的测量范围要求不断扩大,同时温度的测量准确性要求不断提高。
对温度测量的要求也越来越高,而且测量范围也越来越大,对温度的检测技术的要求也越来越高。
因此,温度检测和温度检测技术的研究也是一个重要的研究课题。
本课题主要介绍基于AT89C51单片机和DS18B20数字温度传感器的多点温度测量系统。
该系统利用AT89C51单片机分别采集各个温度点的温度,实现温度显示、报警等功能。
它以AT89C51单片机为主控制芯片,采用数字温度传感器DS18B20实现多路温度的检测,测量精度可以达到0.5℃。
该系统采用了LCD1602A液晶显示模块,LCD1602A作为显示器 ,形象直观的显示测出的温度值。
本文首先在绪论中介绍了此系统的背景以及功能。
第二章确定设计方案。
在第三章论述了总体的设计过程,确定了技术指标及器件的选择并且描述了系统硬件电路设计、硬件设计框图及所使用的各种芯片功能与特性。
第四章重点剖析了软件设计的过程。
最后一章中具体论述了系统的调试软件及调试中出现的问题。
基于AT89C51单片机的单总线多点温度测控系统具有硬件组成简单、多点温度检测、读数方便、精度高、测温范围广等特点,在实际工程中得到广泛应用。
软件⼯程详细设计在完成前置的总体设计报告后,就应该开始着⼿于详细设计了,在这⼀步骤中,我们将需要去细化总体设计中提出的模块,详细的设计出每个模块的作⽤、算法,各个模块间的结构关系,通过需求分析中的结果,利⽤总体设计提出的⼤致框架设计出满⾜客户需求的软件系统产品。
⼀、为什么需要详细设计在总体设计完成后,应当对系统的整体有了⼤概的⼀个了解,但在没有对各个模块提出更为详细的要求的情况下,程序员难以对系统拥有准确的判断,从⽽导致系统运⾏效率低下,结构不清晰等等的问题,⽽在详细设置中,将会提出对每⼀个模块的性能要求、流程要求、⽤户界⾯要求等⼀系列详细的要求,这将会令编码者在编码实现的过程中思路更为清晰,减少编程过程中因合作产⽣的混乱,提⾼整个程序的开发效率。
⼆、程序的结构化设计“模块化设计是指在进⾏程序设计时将⼀个⼤程序按照功能划分为若⼲个⼩程序模块,每个⼩程序模块完成⼀个确定的功能,并在这些模块间建⽴必要的联系,通过模块的互相协作完成整个功能的程序设计⽅法。
”在我们刚开始学习c语⾔程序设计时,我们通常习惯将所有的代码按照⾃⼰的思路写在同⼀个.c⽂件当中,虽然程序可以实现相应的功能,并且作者只需要标注良好的注释,就能在回看代码时重新理解代码的含义。
但当程序需要分享或者⼯程量过于庞⼤需要多⼈协作完成⼀项程序时,这种⾯向过程编程的⽅式将是极其没有效率的,就如同在运动会上的接⼒赛跑,唯有当⼀个⼈完成了指定的任务和功能后,后⾯的成员才能开始其负责部分的代码,所以这种编程⽅法并不适⽤于⼤项⽬。
⽽程序的结构化设计很好的弥补了⾯向过程编程难以多⼈协作的问题,它将⼀个⼤程序拆分成⼀个⼀个⼩零件,每⼀个零件都有其⾃⾝的功能,并且零件便于程序测试,在每完成⼀个零件后可单独对其进⾏各种测试保证程序的运⾏正确⽆误,在完成所有的零件后,由⼀根主轴将所有的零件穿起来,利⽤零件的相互转换作为参数和返回值实现不同的程序功能。
同时模块化设计实现的程序也便于后期程序的维护,就如同⼀辆汽车,某个部件出现损坏或过时了,只需更换对应的部件即可,⽽模块化程序在出现错误时也只需对相应的部分进⾏修改更新,⽽在程序需要添加功能时,也只需要再制造所需要的零件进⾏组装即可。
软件设计流程及编写规范(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--一、前期方案评估1、主控芯片选型模块化控制要求,整理系统需要的资源。
如系统时钟、普通IO拟需要的数目、中断源的个数、AD采样通道的个数、PWM输出的通道数等。
在封装等外形尺寸等符合硬件标准的情况下,从上述方面去考虑主控芯片的型号,优先考虑行业通用或是编程人员熟悉的芯片类型。
对于无参考的新品项目,在做方案时必须对主控芯片的资源做预留,以备功能扩展或是方案更改需要。
如至少留出2个以上的普通IO口,1个以上的AD 转换口,1个以上的中断资源。
2、主控芯片性能粗测试初期选型通过的主控芯片,DIY一张DEMO实验板,编写测试程序测试所选芯片是否符合工程需要。
主要测试单片机的如下性能:1)系统时钟的稳定性2)指令周期3)端口输入输出延迟4)极限工作温度区间5)频漂6)其它专用功能经测试后给出测试结论:Y/N。
3、软件方案的制定系统资源分配系统时钟的选择(兼顾系统的运行速度以及实际需求),并非越高越好,如果控制系统要求有精确的定时,优先保证时间精度。
如,精确的定时器触发、PWM精确的载波周期等。
依据控制对象的具体情况,把控制需求模块化。
对不同的功能模块,采用最适合的单片机资源去实现。
对每个模块,详细分析模块的功能以及实现方式,对于核心功能,还需给出软件流程图。
如要实现AD采样功能,需给出AD的参考电压、转换通道、转换精度等,并且给出采样值的滤波方法。
系统结构框架设计设计系统的工作流程,把各功能模块按照一定的逻辑结构组合成完整的系统,其中包括系统框架图,软件流程图,中断管理等。
对于中断,必须慎重考虑程序被打断后的恢复问题,如程序在运行到AD采样时被某中断打断,中断函数中依然有AD采样,那么在中端函数执行完后,程序在断点继续执行时AD采样寄存器的值已不再是中断执行前的值。
任务进度安排指定软件编写责任人以及进度表。
一、设计总体思路、基本原理和整体框图:1、总体思路及基本原理:该课题是应用所学的DSP知识,编写程序,实现一个函数发生器的控制界面。
实验设备为达盛DSP实验箱,控制界面要求有三种波形(正弦波,文波和锯齿波)可供选择,从实验箱上的键盘输入数字进行选择,并在实验箱上的LCD液晶显示器上显示出来。
利用DSP芯片在LCM12864ZK 显示出界面,芯片HD7279控制键盘输入。
因此还需要对上述芯片进行深入的了解,熟知其工作原理和指令系统。
实验用于程序编译的软件为CCS3.1。
显示程序写入DSP芯片TMS320VC5410,指令可以用C语言或汇编语言来编写,考虑到C语言的功能较汇编语言强且可读性好,这里采用C语言编写。
键盘输入由芯片HD7279控制,HD7279具有串行接口,可同时驱动8位共阴式数码管或64只独立的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。
HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。
HD7279具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。
液晶显示LCM12864ZK的内部DDRAM含8192个16*16点中文字型和128个16*8半宽的字母符号字型;另外绘图显示画面提供一个64*256点的绘图区域GDRAM;而且内含CGRAM提供4组可编程的16*16点阵造字功能。
这里,我们只用到了含有显示汉字功能的DDRAM,其地址范围在后面的资料里有详细说明。
2、整体框图:二、单元函数设计:1、LCD显示驱动:LCD显示时需要将特定的字在Array特定的位置显示出来,这就要求为将要显示的汉字指定固定的位置地址。
驱动程序框图如右:程序如下:fill_chinese_word.asm.global fill_chinese_word.refwrite_command ,write_datafill_chinese_word:;turn off displaystm #08h,ar5call write_command;clear ddramstm #01h,ar5call write_command;turn on displaystm #0ch,ar5call write_command;set display addressstm #80h,ar5;set display addresscall write_command;调用中文字库代码, 显示汉字stm #0c7h,ar5mvdk ar5,1023hcall write_datastm #0ebh,ar5mvdk ar5,1023hcall write_data ; 请stm #0d1h,ar5mvdk ar5,1023hcall write_datastm #0a1h,ar5mvdk ar5,1023hcall write_data ; 选stm #0d4h,ar5mvdk ar5,1023hcall write_datastm #0f1h,ar5mvdk ar5,1023hcall write_data ; 择stm #0b2h,ar5mvdk ar5,1023hcall write_datacall write_data ; 波stm #0d0h,ar5mvdk ar5,1023hcall write_datastm #0ceh,ar5mvdk ar5,1023hcall write_data ; 形;set display addressstm #91h,ar5 ;set display addresscall write_commandstm #0a3h,ar5mvdk ar5,1023hcall write_datastm #0b1h,ar5mvdk ar5,1023hcall write_data ; 1.;set display addressstm #93h,ar5 ;set display addresscall write_commandstm #0d5h,ar5mvdk ar5,1023hcall write_datastm #0fdh,ar5mvdk ar5,1023hcall write_data ;正stm #0cfh,ar5mvdk ar5,1023hcall write_datastm #0d2h,ar5mvdk ar5,1023hcall write_data ;弦stm #0b2h,ar5mvdk ar5,1023hcall write_datastm #0a8h,ar5mvdk ar5,1023hcall write_data ; 波;set display addressstm #89h,ar5 ;set display addresscall write_commandstm #0a3h,ar5mvdk ar5,1023hcall write_datacall write_data ; 2.;set display addressstm #8bh,ar5 ;set display addresscall write_commandstm #0b7h,ar5mvdk ar5,1023hcall write_datastm #0bdh,ar5mvdk ar5,1023hcall write_data ;方stm #0b2h,ar5mvdk ar5,1023hcall write_datastm #0a8h,ar5mvdk ar5,1023hcall write_data ;波;set display addressstm #99h,ar5 ;set display addresscall write_commandstm #0a3h,ar5mvdk ar5,1023hcall write_datastm #0b3h,ar5mvdk ar5,1023hcall write_data ; 3stm #9bh,ar5 ;set display addresscall write_commandstm #0beh,ar5mvdk ar5,1023hcall write_datastm #0e2h,ar5mvdk ar5,1023hcall write_data ; 锯stm #0b3h,ar5mvdk ar5,1023hcall write_datastm #0ddh,ar5mvdk ar5,1023hcall write_data ; 齿stm #0b2h,ar5mvdk ar5,1023hcall write_datastm #0a8h,ar5mvdk ar5,1023hcall write_data ; 波b fill_chinese_word ;testret2、键盘连接驱动:从键盘输入数字时要完成下列步骤:1、按键的识别,即确定是否有按键按下。
第五章总体设计软件设计的目标和任务›软件需求:解决“做什么”›软件设计:解决“怎么做”›软件设计的任务:以软件需求规格说明书为依据,着手实现软件的需求›软件设计的重要性:是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的难易程度。
第五章总体设计总体设计的基本目的⚫回答“概括地说,系统应该如何实现?”这个问题。
⚫总体设计又称为概要设计或初步设计。
总体设计阶段的任务⚫这个阶段将划分出组成系统的物理元素——程序、文件、数据库、和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
⚫总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
把对象当作一个黑盒子,不需要知道里面是怎么处理的。
5.1设计过程5.2设计原理5.3启发规则5.4描绘软件结构的图形工具5.5面向数据流的设计方法5.6小结5.1 设计过程总体设计过程通常由两个主要阶段组成:系统设计:确定系统的实现方案。
结构设计:确定软件结构。
5.1 设计过程1.设想供选择的方案各种可能的实现方案,并且力求从中选出最佳方案;数据流图是总体设计的出发点;2.选择合理的方案至少选取低成本、中等成本和高成本三种方案。
对每个合理的方案要提供:A.系统流程图B.组成系统的物理元素清单C.成本/效益分析5.1 设计过程3.推荐最佳方案⚫分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。
⚫负责人接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段,如功能分解、结构设计。
5.1 设计过程4. 功能分解通过程序实现功能,程序的设计(特别是复杂的大型程序)通常分为两个阶段完成:结构设计:结构设计是总体设计阶段的任务。
为确定软件结构,需要从实现角度把复杂的功能进一步分解,结构设计确定程序由哪些模块组成,以及这些模块之间的关系。
《基于单片机的自行车里程表、测速仪》单片机大作业09电子2班薛强学号:423目录摘要第一章系统设计1.1 设计任务和要求1.1.1设计任务1.1.2 基本要求1.2 总体设计方案1.2.1系统总体设计思路1.2.2方案设计与讨论1.3功能描述1.4操作说明1.5结构框图1.6原理说明第二章硬件设计2.1 硬件电路2.2 主要元件介绍第三章软件设计3.1 系统主程序流程图3.2 仿真截图3.3 源程序代码基于80C51单片机的自行车里程表、测速仪摘要:本文介绍了一种基于单片机控制的简易自动自行车速度以及里程计算系统,包括自行车里程表的硬件构成,软件逻辑以及程序代码。
该里程测速系统以AT89C51作为系统控制核心,采用光电传感器来检测信号,通过一定时间间隔内对信号的采集,结合自行车本身车轮参数,经过单片机对采集信号进行分析计算,最终在LCD以及LED上显示车辆行驶里程、平均速度和瞬时速度,并且具有超速报警功能。
关键词:自行车测速;单片机;光电传感器,LCD/LED显示一、系统设计1.1 设计任务和要求1.1.1设计任务设计一个自行车里程表、测速仪,可以将自行车一段时间内的行驶里程,瞬时速度,平均速度在LCD上显示出来,有一个能用LCD显示的腕式自行车里程显示器,传感器采用霍尔元器件,安装在自行车的车轮上;1.1.2 基本要求能实时显示当前的车速和行驶里程;能去除或保留原先的里程数;电池供电。
1.2 总体设计方案1.2.1系统总体设计思路本系统实现自行车运行过程中对行驶里程、当前瞬时速度、平均速度进行测量和显示。
总体设计思路如图1所示。
系统包括控制器模块、信号检测采集模块、显示模块、电源模块四部分。
系统工作时,传感器采集到信号(用按键代表脉冲、或者用频率输入代表信号输入)传输给单片机,单片机计数器统计脉冲个数,定时器记录相应时间长度,经过运算,将行驶里程、平均速度送给LCD显示,当前(瞬时)速度送给7段数码管显示。
(完整版)基于51单⽚机的电⼦密码锁毕业设计论⽂⽬录第1章绪论 (1)1.1电⼦锁的发展状况 (1)1.2设计电⼦密码锁的意义及相关技术指标 (1)第2章总体设计及⽅案论证 (2)2.1单⽚机模块 (2)2.2输⼊键盘模块 (2)2.2.1独⽴式按键 (2)2.2.2矩阵式键盘 (3)2.3数码管显⽰模块 (3)2.3.1 LED静态显⽰⽅式 (3)2.3.2 LED动态显⽰⽅式 (3)2.4电源模块 (3)2.4.1蓄电池供电 (3)2.4.2双路电源供电 (3)2.5开锁电路模块 (4)2.6报警电路模块 (4)2.7最优⽅案 (4)第3章硬件电路设计 (4)3.1输⼊键盘 (4)3.2显⽰数码管 (5)3.3开锁电路 (6)3.4报警电路 (6)3.5电源电路 (7)3.6复位电路 (7)3.7振荡电路 (8)第4章软件设计 (9)4.1主程序流程图及程序 (9)4.2延时⼦程序 (11)4.3修改密码⼦程序 (11)4.4扫描键盘输⼊⼦程序 (11)4.5中断及报警⼦程序 (12)4.6显⽰⼦程序 (13)第5章设计总结 (15)参考⽂献 (16)附录Ⅰ (17)附录Ⅱ (18)第1章绪论1.1电⼦锁的发展状况随着科技的发展,传统的机械锁被破解的概率越来越⾼了,新型的盗贼也学会了与时俱进,通过各种技术⽅法和⼿段即会在短时间内开启结构复杂的机械锁,会不留痕迹的登堂⼊室,给失主和警⽅留下各种不易解惑的疑团。
由此我们想到,要是在机械锁的基础上再装上⼀把电⼦锁,就彻底杜绝了单⼀机械锁易被开启的弊端,从⽽极⼤提⾼门锁的安全防范性能。
当今世界,电⼦锁发展已经到了⾮常⾼的境界,由于电⼦元件特别是单⽚机应⽤在最近⼏年得到空前发展,电⼦锁⽆论是在功能还是在稳定性⽅⾯都有了较⼤的提⾼,在保密性⽅⾯已经做到了密码识别、指纹识别、⼈声识别等。
就整体形势⽽⾔,电⼦锁在国外发展⽐较早,所以应⽤也⽐较⼴泛,主要⽤于家庭门锁,银⾏公司等的财务保险柜锁和政府机关及⾼级宾馆等重要场合的智能控制门锁等。
手机APP的研发和设计流程一、研发流程大局观产品的研发流程分为四个步骤:产品定义——交互设计——开发——测试。
这四个步骤也分别对应研发中的四个角色:产品经理——设计师——开发工程师——测试工程师。
产品定义阶段的目标就是确定用户场景,定义产品的功能和围。
而设计师需要根据这些用户场景和功能围进行交互设计。
之后开发工程师将会根据产品经理和设计师的方案进行写代码,把这个方案实现成可用的产品。
之后的再由测试工程师进行产品测试,以保证产品达到了产品经理和设计师的这个要求。
步骤细分:一、产品定义从用户需求初步定义产品功能1、关于需求在这里要谈论的主要是用户需求和产品需求。
1.1用户需求和产品需求首先必须要搞清的是用户需求不等同于产品需求。
用户需求,简单来说是用户希望同构使用某一款产品来实现和满足某种需要。
如安全、娱乐、沟通、交友等。
用户需用户对某类产品真实需要的反应。
而产品需求,是某一类产品或服务能够满足用户需要的集合。
也就是说,用户需求并不完全传递到产品需求当中去。
而产品需求的获取渠道也不仅仅是用户需求。
1.2获取产品需求的方式(1)用户需求:用户需产品需求的核心来源。
但并不是所有的用户需求都能转化为产品需求。
用户需求需要子可行性和必要性验证上,才可以转化为产品需求。
(2)相关利益合作伙伴:开发商、咨询机构、制造商等等。
他们通过对市场的研究分析和对运营所积累的产品需求,是设计分析产品需求很好的参考。
(3)竞品分析:对竞争对手主要产品进行对标研究,分析其产品的成败关键和发展趋势,了解市场对类似产品的反馈。
(4)标杆市场:标杆市场是国外在同类产品上运营比较成功的热门行业,通过对标杆市场中知名企业所运营的相近产品的功能进行剖析。
可以了解国际与国在该类产品上的先进做法。
(5)企业部产品研讨会、员工体验及部专家评估。
1.3用户需求的提取与挖掘的方式了解用户需求的有效方式是用户研究,这是用户中心设计流程的第一步。
其主要研究方式是:用户访谈、用户观察、问卷调研、焦点小组、眼动实验等等。
软件设计总体思路及主流程图
本系统采用C语言编写,主程序主要由四部分构成,系统通电后首先初始化系统,依次完成温度采集、温度处理、数据显示、键盘处理等四项功能。
温度采集部分主要完成4个温度测试但的温度数据采集任务:温度处理部分主要是将采集到的温度数据与用户设定的各点上下限温度值进行比较处理,并判断是否超出设定的上下限值,如果超出则蜂鸣器报警:数据显示部分主要实现温度数据的显示,显示方式根据设计要求支持1到4个温度测试点的轮流循环显示和固定显示两种方式:键盘处理部分主要实现用户对系统参数的设置,结合显示部分,实现用户与系统之间的人机接口。
系统软件主流程图如下所示:
A/D转换完成中断程序流程图
程序说明:
(1)程序实现5次采样,每次检测8个通道。
(2)数据的存放格式。
(3)程序的采样周期是通过软件实现的。
如果系统处理的人物较多哦,且对
实时性要求较高,则采样中欧器可通过系统扩展8253等定时芯片实现。
A/D转换完成中断功能:将标志位清零,读取转换后的温度数据并存放在RAM中。
A/D转换完成中断程序流程图如下所示:
多路温度测量流程图
LED显示程序设计
LED显示程序的设计:
动态显示程序流程图如下所示:
测温模块流程图
键盘扫描流程图
按键处理程序通过扫描按键情况,读取键值。
主要完成各点温度传感器上下限报警参数设置和显示模式设置。
(1)通过扫描键盘读取键值,流程图如下所示:。