1、EDA技术应用复习题1. 积累设计实践经验的练习方法有哪些?请简述“分析电路练习”学习方法。答:积累设计实践经验的练习方法有分析电路练习、分析程序练习、分析项目练习及项目开发文档编写练习等四种练习方法。“分析电路练习”学习方法步骤如下:理解问题分解电路模块分析模块之间信息流分析模块内部元器件作用注意电源、滤波等专用电路措施整理可重用模块写出分析报告1. 积累设计实践经验的练习方法有哪些?请简述“分析程序练习”学习方法。答:积累设计实践经验的练习方法有分析电路练习、分析程序练习、分析项目练习及项目开发文档编写练习等四种练习方法。“分析程序练习”学习方法步骤如下:理解问题清理定义,列表从主程序开始
2、,整理调用联系图清楚底层子程序功能理清信息流动变化,逐级向上推导清理算法整理可重用模块写出分析报告1. 积累设计实践经验的练习方法有哪些?请简述“分析项目练习”学习方法。答:积累设计实践经验的练习方法有分析电路练习、分析程序练习、分析项目练习及项目开发文档编写练习等四种练习方法。“分析项目练习”学习方法步骤如下:理解需求,功能,性能分析总体设计,分解到模块。包括结构、硬件、软件模块当做新的项目再分解分析模块的调试方法,构思方案分析总体调试方法构思检验验收大纲分析关键部分,从原理到实现方法方案写出分析报告2. 项目开发文档包括哪些类型的文档?答:项目管理类硬件设计类软件设计类验收检验类2. 单片
3、机应用系统设计开发包括哪些主要阶段?答:策划阶段:实施阶段:包括硬件设计和软件设计验证阶段2.单片机应用系统的研究开发步骤中策划阶段包括哪些内容?答: 项目需求分析。概要设计。划分硬件和软件的设计内容。 尽量采纳可借鉴的成熟技术。 3.简述单片机应用系统的研究开发步骤中实施阶段之硬件设计的作用及内容。答:随着单片机嵌入式系统设计技术的飞速发展,元器件集成功能越来越强大,设计工作重心也越来越向软件设计方面转移。硬件设计的特点是设计任务前重后轻。单片机应用系统的设计可划分为两部分: 一部分是与单片机直接接口的电路芯片相关数字电路的设计,如存储器和并行接口的扩展, 定时系统、中断系统扩展, 一般的外
4、部设备的接口, 甚至于A/D、 D/A芯片的接口。另一部分是与模拟电路相关的电路设计, 包括信号整形、变换、隔离和选用传感器, 输出通道中的隔离和驱动以及执行元件的选用。工作内容:1)模块分解。策划阶段给出的方案只是个概念方案,在这一步要把它转化为电子产品设计的概念描述的模块,并且要一层层分解下去,直到熟悉的典型电路。尽可能选用符合单片机用法的典型电路。当系统扩展的各类接口芯片较多时, 要充分考虑到总线驱动能力。当负载超过允许范围时, 为了保证系统可靠工作, 必须加总线驱动器。 2)选择元器件。尽可能采用新技术, 选用新的元件及芯片。3)设计电原理图及说明。4)设计PCB及说明。5)设计分级调
5、试、测试方法。设计中要注意:1)抗干扰设计是硬件设计的重要内容, 如看门狗电路、 去耦滤波、通道隔离、合理的印制板布线等。2)所有设计工作都要落实到文字记录上。 3.简述单片机应用系统的研究开发步骤中实施阶段之软件设计的作用及内容。答:软件设计的特点:贯穿整个产品研发过程,有占主导地位的趋势。在进行软件设计工作时,选择一款合用的编程开发环境软件,对提高工作效率特别是团队协作开发效率很重要。工作内容:模块分解。策划阶段给出的方案是面向用户功能的概念方案,在这一步要把它转化为软件设计常用的的概念描述的模块,并且要采用自顶向下的程序设计方法,一层层分解下去,直到最基本的功能模块、子程序(函数)。 依
6、据对模块的分解结果及硬件设计的元器件方案,进行数据结构规划和资源划分定义。结果一定要落实到文字记录中。充分利用流程图这个工具。用分层流程图,可以完满前面的工作。一般的程序都可划分为监控程序、功能模块子程序(函数)、中断服务程序这几种类型。参考现成的模板可大大简化设计的难度。监控程序中的初始化部分需要根据数据结构规划和资源划分定义来设计。到了这一步,软件编程工作其实已经完成了九成,剩下就是把流程图代码化,不少人把这一步错称为“编程序”。难度不大但很繁琐,只要认真有耐心,坚持到汇编(编译)通过就看到曙光了。拟定调试、试验、验收方案。这一步不光是方案,还得搭建测试环境,主要内容还是编程序,可以当做一
7、个新项目再做一遍策划与实施,有时还得考虑硬件(包括信号源、测量仪器、电源等)。注意:外部设备和外部事件尽量采用中断方式与CPU联络, 这样, 既便于系统模块化, 也可提高程序效率。目前已有一些实用子程序发表, 程序设计时可适当使用, 其中包括运行子程序和控制算法程序等。本书附录中就收录了一些常用子程序。见附录五。 系统的软件设计应充分考虑到软件抗干扰措施。一切设计都要落实到文字记录上。文档的作用怎么强调都不过分。 3.简述单片机应用系统的研究开发步骤中验证阶段的作用及内容。答:验证阶段包括的内容比较多也比较杂:软硬件调试,局部和整理的测试大纲及实施,整体测试成功后EPROM固化脱机运行及测试,
8、最后别忘了整理所有的设计检验文档记录。毕竟所谓“设计”,指的是文档而不是样品(包括实物和软件演示效果),样品只是证明文档正确的一种手段。工作内容如下:软硬件联调,包括局部联调和整体联调。主要目标是尽量使设计结果能够按预想的目标运行。联调离不了开发机,有时候反复很大,甚至推倒重来都不罕见。联调的每一步目标在软件设计时就设定好了。一个很重要的问题是软件硬件的抗干扰、可靠性测试。要考虑到尽可能多的意外情况。脱机调试。调试通过的程序, 最终要脱机运行, 即将仿真ROM中运行的程序固化到EPROM脱机运行。但在开发装置上运行正常的程序, 固化后脱机运行并不一定同样正常。若脱机运行有问题, 需分析原因,
9、如是否总线驱动功能不够, 或是对接口芯片操作的时间不匹配等。经修改的程序需再次写入。这是真实环境下的软硬件联调。 验证设计。以策划阶段的项目需求分析、硬件设计的测试设计文件、软件设计的测试设计文件和搭建的测试环境为依据,编写功能测试大纲、性能测试大纲,并实施验收检验。项目验收时最重要的是完整的文档记录。大致包括:项目管理类、硬件设计类、软件设计类、验收检验类等。4. 简述程序流程图的设计步骤。答:第一步,先进行最原始的规划,画出第一张程序流程图,将总任务分解成若干个子任务,安排好它们的关系,暂不管各个子任务如何完成。第二步,将第一张流程图的各个子任务进行细化。决定每个子任务采用哪种算法,而暂不
10、考虑如何为数据指针、计数器、中间结果配置存放单元等具体问题。在第二张流程图中,主要任务是设计算法,第二张程序流程图已能说明该程序的设计方法和思路。第二张流程图以算法为重点,算法的合理性和效率决定了程序的质量。第三步,画第三张流程图,用它来指导编程。 第三张流程图以资源分配为策划重点,要为每一个参数、中间结果、各种指针、计数器分配工作单元,定义数据类型和数据结构。在进行这一步工作时,要注意上下左右的关系,本模块的入口参数和出口参数的格式要和全局定义一致,本程序要调用低级子程序时,要和低级子程序发生参数传递,必须协调好它们之间的数据格式。本模块中各个环节之间传递中间结果时,其格式也要协调好。在定点
11、数系统中,中间结果存放格式要仔细设计,避免发生溢出和精度损失。一般中间结果要比原始数据范围大,精度高,才能使最终结果可靠。4. 简述程序流程图绘制原则及其作用答:正确的流程图画法是先粗后细、一步一个脚印,只考虑逻辑结构和算法,不考虑或少考虑具体指令。这样画流程图就可以集中精力考虑程序的结构,从根本上保证程序的合理性和可靠性,剩下来的任务只是进行指令代换,这时只要消除语法错误,一般就能顺利编出源程序,并且很少大返工。画好程序流程图后,就可以比较方便地进行编程了。从流程图到程序的过程发生了两个变化:形式上从二维图形变成了一维的程序,内容上从功能描述变成了具体的指令实现。4. 简述程序流程图与程序设
12、计的关系答:画程序流程图是程序设计的决定成败的关键部分。画程序流程图的过程就是进行程序的逻辑设计过程,这中间的任何错误或忽视将导致程序出错或可靠性下降。真正的程序设计过程是流程图设计,而上机编程只是将设计好的程序流程图转换成程序设计语言。程序流程图与相对应的源程序是等效的,但给人的感受是不同的。源程序是一维的指令流,而流程图是二维的平面图形。在表达逻辑思维策略时,二维图形比一维指令流要直观明了得多,因而更有利于查错和修改。多花一点时间来设计程序流程图,就可以节约大量的源程序编辑调试时间。程序流程图不是画出来给别人看的,是为编程者自己用的。正确的做法是先画程序流程图,再开始编程,而不是编完程序后
13、再补画程序流程图。5. 项目开发流程包括哪些内容?答:需求分析概要设计详细设计制造设计中间试验5. 项目需求分析是做什么的?答:解决“做什么?”“做到什么程度?”问题。对项目进行功能描述,要能够满足用户使用要求。对项目设定性能指标,要能够满足可测性要求。所有的需求分析结果应该落实到文字记录上。5. 项目概要设计是做什么的?答:概要设计,又叫总体设计、模块设计、层次设计,解决“怎么做?”“如何克服关键难题?”问题。以对项目需求分析为依据,提出解决方案的设想,摸清关键技术及其难度, 明确技术主攻问题。针对主攻问题开展调研工作, 查找中外有关资料, 确定初步方案,包括模块功能、信息流向、输入输出的描
14、述说明。仿真是进行方案选择时有力的决策支持工具。 6. 项目管理的三要素是什么?答:范围:项目的目标和任务,以及完成这些目标和任务所需的工作时间:反映在项目日程中的完成项目所需的时间费用:即项目的预算,它取决于资源的成本。这些资源包括完成任务所需的人员、设备和材料。6. 项目周期有哪几个阶段?答:定义项目目标制定项目计划发布项目计划跟踪项目进度并调整计划完成项目并存档6. 项目管理的主要内容是什么?答:可行性研究立项中间进度管理、资源调配结项7. 研发管理内容有哪些?项目管理研发团队管理资源管理文档管理进度管理外加工管理协调7. 研发团队管理的主要内容有哪些?考核考勤培训7. 资源管理的主要内
15、容有哪些?设备物资人员经费8. 外加工管理的主要内容有哪些?元器件加工特殊零件加工部件委托设计加工加工合同8. 项目研发管理中的协调包括哪些内容?内部协调:占用资源,人力调配外部协调:汇报进度,宣传成绩,商业协调:用户关系,新项目申报办公室协调:日用杂事,人事财务相关,培训8. 项目研发管理中的协调包括哪些内容?内部协调:占用资源,人力调配外部协调:汇报进度,宣传成绩,商业协调:用户关系,新项目申报办公室协调:日用杂事,人事财务相关,培训9. Project主要有哪些功能?共享项目信息编制和组织信息跟踪项目方案的优化度分析信息计算检测和维护9. 请解释专业术语:任务;周期性任务;资源;成本。答
16、:任务:指具有开始日期和完成日期的具体工作,它是日程的组成单元。项目通常是由相互关联的任务构成的周期性任务:指在项目过程中重复发生的任务,如每周的总结性会议就可以定义为周期性任务资源:是指完成任务所需的人员、设备和原材料等成本:完成任何一项工作都需要付出一定的代价,或是付出人工,或是消耗材料,这都存在一个成本费用的问题9. 请解释专业术语:里程碑;工期。答:工期:是指完成某项任务所需活动工作时间的总长度,通常是从任务开始日期到完成日期的工作时间量里程碑:是一个工期为零,用于标识日程的重要事项,它可以作为一个参考点,用来监视项目的进度10. 试述优先调度型监控程序特点,并画出流程图。答: 能根据
17、各作业的优先级高低进行调度。优先级高的作业先运行,所有高优先的作业都运行完成后才能运行低优先级作业。10. 试述特征编码型监控程序特点,并画出流程图。答: 包含位特征码和字节特征码两种。 位特征码型:能根据各作业的优先级高低进行调度。各标志判断的先后次序隐含了优先级。 字节型特征编码型:每次检测一个字节是否相同,相同则执行。在依次检测的过程中也隐含了优先级。10. 试述键码分析型监控程序特点,并画出流程图。答: 各作业间既没有先后顺序,也没有优先关系,作业的调度完全按操作者的输入或内部参数的变化,(假设各作业具有相同的优先级)。监控程序根据当前按键输入和内部状态的值决定执行哪个作业。在一键多义
18、的系统中,还可以把按键和状态组合起来构成两级 状态编码监控程序。11. 简述Proteus中画电原理图的流程答:建工程;找元件;布局连线;设置元件与标号属性;存盘。11. 简述Proteus中程序设计及调试的流程答:建工程;编辑程序;汇编排错;装载程序;单步调试;全速仿真;功能性能测试。11. 简述Proteus的功能答:Proteus是嵌入式系统设计与仿真平台,可以实现:绘制电原理图数字电路、模拟电路仿真微处理器系统的软件仿真虚拟信号源及虚拟仪器做系统协同仿真PCB设计。主要由两部分构成:Proteus ISIS,用于电原理图设计和仿真;Proteus ARES则用于PCB设计。该软件能模拟
19、 51 单片机,AVR单片机,PIC 单片机,以及部分ARM芯片。还提供了30多种元器件库,数千种元器件;能仿真模拟和数字电路,比如时序分析、频响分析、傅立叶分析、噪声分析等。支持的外围器件也很多包括:A/D、LCD、LED 数码管、温度、时钟芯片、A/D转换器等。12. 51系列单片机有几种存储空间?请简述之。答:参见下面资料12. 51系列单片机有几种寻址方式?请简述之。答:参见下面资料12. 51系列单片机的内部数据空间上如何寻址?请简述之。答:参见下面资料5.1.2 寻址方式51系列单片机有三种地址空间:内部数据空间、外部数据空间、程序空间,其指令系统的寻址方式也可分成三类:在内部数据
20、空间寻址、在外部数据空间寻址、在程序空间寻址。1. 在内部数据空间寻址 1)直接寻址方式 直接寻址方式是指,在指令中以地址形式直接给出操作数地址。例如:指令MOV 31H,30H执行的操作是将内部RAM 中地址为30H的单元内容传送到地址为31H的单元中,其源操作数30H、目的操作数31H就是存放数据的单元地址,因此该指令的源操作数和目的操作数都是直接寻址的。又例如:指令MOV A,30H执行的操作是将内部RAM 中地址为30H的单元内容传送到累加器ACC中,其源操作数30H是存放数据的单元地址,因此该指令的源操作数是直接寻址的。如果已经定义了符号代表某个地址,例如:若ADDR EQU 30H
21、(这句话的意思是符号ADDR在程序里代表30H这个数),则指令MOV A,ADDR执行的操作是将内部RAM 中地址为ADDR的单元内容传送到累加器ACC中,其源操作数ADDR(也就是30H)是存放数据的单元地址,因此该指令的源操作数是直接寻址的,它等价于指令MOV A,30H。用这种寻址方式可以访问内部数据存储器三种地址空间:(1) 内部数据存储器的128个字节单元。示例:MOV 50H,A ;指令中目的操作数的寻址方式为直接寻址(2)位地址空间。示例:MOV C,00H ;指令中源操作数的寻址方式为直接寻址(3)特殊功能寄存器地址空间。示例:MOV ACC,P1 ;指令中源操作数的寻址方式为
22、直接寻址2)寄存器寻址方式 寄存器寻址是指,在指令中直接以寄存器R0R7、累加器A、DPTR以及位累加器Cy的名字表示操作数的地址。即寄存器的内容作为操作数。可以采用寄存器寻址的。例如:设程序状态寄存器PSW的RS1RS0=10(即选中第三组工作寄存器,对应地址为10H17H),若累加器A的内容为50H,则执行MOV R0,A指令后,内部RAM 10H单元(也就是当前选定的第三组工作寄存器中的R0)的值就变为50H。寄存器寻址的空间只是直接寻址空间的一个子集,为什么还要这种寻址方式?因为寄存器R0R7、累加器A、DPTR以及位累加器Cy在绝大多数指令中都会作为操作数出现,并且在单片机程序运行时
23、这些指令使用得非常频繁,因此专门为使用这些寄存器的操作设计了专用指令,其机器码比通用的直接寻址的机器码占用字节少,运行速度快,这就大大提高了程序运行质量;代价是指令个数翻了几番。 3) 寄存器间接寻址方式 寄存器间接寻址是指,指令操作数部分所指定的寄存器中存放的是操作数的地址。在内部数据空间寻址时,可以作为寄存器间接寻址的寄存器有工作寄存器R0、R1、堆栈指针SP。在指令中用在寄存器前加“”,以示与直接寻址方式区别。例如:指令MOV A,R1 执行的操作是将R1的内容作为内部RAM的地址,再将该地址单元中的内容取出来送到累加器A中。在下面几种情况下,可以使用寄存器间接寻址方式:1)访问内部数据
24、存储区的00H7FH单元使用当前工作寄存器区的R0、R1作地址指针来间接寻址。2)堆栈操作指令PUSH和POP使用堆栈指针SP进行间接寻址。示例: MOV R1,#30HMOV A,R1 ;源操作数为间接寻址,访问内部RAM30H单元2. 在外部数据空间寻址 在外部数据空间寻址只有寄存器间接寻址这一种方式,其含义与在内部数据空间的寄存器间接寻址完全一样:指令操作数部分所指定的寄存器中存放的是操作数的地址。在外部数据空间中,可以作为寄存器间接寻址的寄存器有工作寄存器R0、R1、地址寄存器DPTR,在指令中用在寄存器前加“”以示与直接寻址区别。有专门的指令关键字区别寄存器间接寻址究竟是在外部还是在
25、内部数据空间:MOVX、MOV 分别表示外部、内部数据空间的操作。例如:指令MOVX A,R1执行的操作是将R1的内容作为外部数据空间(RAM)的地址,再将该地址单元中的内容取出来送到累加器A中。由于R0是一个字节,R0只能寻址到00H0FFH这256个单元的地址。实际上,外部地址总线有16位,专门设计了16位的地址寄存器DPTR,用DPTR来间接寻址,就可以覆盖到整个64K外部数据空间0000H0FFFFH单元。例如:指令MOVX A,DPTR 执行的操作是将DPTR的内容作为外部数据空间的地址,再将该地址单元中的内容取出来送到累加器A中。3. 在程序空间寻址1) 直接寻址方式这种寻址方式用
26、于长调用或转移、绝对调用或转移指令。调用或转移操作的操作数就是目的地址。例如:设程序中已有标号SS_8,代表着程序空间的地址2054H,指令 LJMP SS_8 执行后,程序计数器PC的值变为2054H,程序会接着运行标号SS_8处的指令。2) 相对寻址方式 这种寻址方式只用于相对或条件转移指令中。相对寻址本质上是间接寻址,只是操作数的地址需要计算才能得到。计算方法:以程序计数器PC的当前值作为基地址,与指令中给定的相对偏移量rel进行相加,把得到的和作为程序的转移地址。所谓相对转移,是指程序转移目标地址由相对于该指令当前地址的偏移量来决定。一般将相对转移指令所在的地址称为源地址,转移后的地址
27、称为目标地址,则有:目标地址=源地址+转移指令字节数+偏移量在汇编语言的相对转移指令中,偏移量通常以目标地址的标号形式出现。 例如指令:JZ LOOP ;操作数为相对寻址LOOP就是程序中某条指令的标号。此时,计算偏移量的公式为:偏移量=目标地址-(源地址+2)如果偏移量为负数,那么这条指令执行后程序将转到该指令的前面(低地址方向);如果偏移量为正数,那么将转到该指令的后面(高地址方向)。在51系列单片机的指令系统中,偏移量的取值范围是+127-128。假定有如下程序: ORG 2000H2000H 8030H SJMP START ;转入START开始的程序段 2032H 0F8H STAR
28、T: MOV R0,A END程序执行到SJMP指令时,转入标号为START的指令处继续执行。指令 SJMP START 的机器码是 8030H(16进制),所在地址是2000H,本指令占用2个字节,第一个字节80H是操作码,第二个字节30H是操作数,也就是偏移量。详细指令执行情况如下:地址偏移量rel=目标地址-源地址-2 =2032H-2000H-2=30H指令SJMP START的机器码80H30H存放在2000H处,当执行到该指令时,先从2000H和2001H单元取出指令,PC自动变为2002H;再把PC的内容与操作数30H相加,形成目标地址2032H,再送回PC,使得程序跳转到203
29、2H单元继续执行。3) 变址寻址方式 这其实是又一种变化形式的间接寻址。操作数的地址也需要计算:以程序计数器PC或数据指针DPTR作为基地址寄存器,以累加器A作为变址寄存器,把两者的内容相加形成16位的操作数的地址。这种寻址方式专用于访问程序存储器中的常数表,不能访问数据存储器。指令中的操作符为MOVC,区别于MOVX和MOV。例如:指令MOVC A,A+DPTR执行的操作是将累加器A和基址寄存器DPTR的内容相加,相加结果作为操作数存放的地址,再将此地址中的操作数取出来送到累加器A中。设累加器A=18H,DPTR=0600H,外部ROM (0618H)=8CH,则指令MOVC A,A+DPT
30、R的执行结果是累加器A的内容为8CH。4)立即寻址方式 立即寻址方式的意思是,指令操作数部分给出的就是参与运算的操作数本身,它可以是8位二进制数或16位二进制数。即操作数是以指令字节的形式存放于程序存储器中的。在51系列单片机的指令系统中是用“#”加在数值前的形式来表示立即数的,如果立即数的最高位为AF英文字符时,该字符前要加“0”,以使之区别于字符串。指令MOV A,#0F3H 执行以后,累加器A中存放的数据为0F3H。4. 寻址方式小结本质上只有两种寻址方式:直接寻址、间接寻址。假定我们要给张三打电话,拨张三的电话号码就可以找到他;如果不知道张三的电话号码,我们就找李四询问张三的电话号码再拨给他。前一种情况就是直接寻址,而后一种是间接寻址。直接寻址操作起来直截了当,没有什么花样;间接寻址则不然,反正是找人询问张三的电话号码,找李四可以,找李四旁边住的邻居也可以,办法多多。指令系统中间接寻址有三种形式:寄存器间接寻址、变址寻址、相对寻址。至于立即数寻址,实在算不得是“寻址”,凑个数罢了。还是上面给张三打电话的例子,如果张三就在当面,有话就说,还打什么电话!需要使用寻址方式的有三个空间:程序空间
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1