《单片机应用系统设计技术――基于C51的Proteus仿真(第2版)》课后习题参考答案---电子版 ·11·
4.单片机应用系统软、硬件分工要考虑哪些因素? 答:
单片机应用软件的设计与硬件的设计一样重要,没有控制软件的单片机是毫无用处的,它们紧密联系,相辅相成,并且硬件和软件具有一定的互换性,在应用系统中,有些功能既可以用硬件实现,也可以用软件完成。多利用硬件,可以提高研制速度、减少编写软件的工作量、争取时间、争取商机,但这样会增加产品的单位成本,对于以价格为竞争手段的产品不宜采用。相反,以软件代替硬件完成一些功能,最直观的优点是可以降低成本,提高可靠性,增加技术难度而给仿制者增加仿制难度;缺点是同时也增加了系统软件的复杂性,软件的编写工作量大,研制周期可能会加长,同时系统运行的速度可能也会降低等。因此在总体考虑时,必须综合分析以上因素,合理地制定某些功能硬件和软件的比例。
5.单片机应用系统软、硬件开发工具有哪些? 答:
单片机系统开发环境硬件由PC、单片机仿真器、用户目标系统、编程器和数条连接电缆组成。软件由PC上的单片机集成开发环境软件和编程器软件构成,前者为单片机仿真器随机软件,后者为编程器随机软件。
6.单片机仿真器的作用是什么?选择一个好的仿真器有哪些要求。 答:
单片机仿真器也称单片机开发系统。PC通过仿真器和目标系统建立起一种透明的联系,程序员可以观察到程序的运行(实际上程序在仿真器中运行)和CPU内部的全部资源情况。也就是说,在开发环境中用户目标系统中的程序存储器是闲置的。我们调试的是仿真器中的程序,仿真器中的程序运行完全受仿真器的监控程序控制。仿真器的监控程序相当于PC的操作系统,该监控程序与PC上运行的集成开发环境相配合,使得我们可以修改和调试程序,并能观察程序的运行情况。
选择仿真器要求如下: z 全地址空间的仿真;
z 不占用任何用户目标系统的资源;
z 必须实现硬断点,并且具有灵活的断点管理功能; z 硬件实现单步执行功能; z 可跟踪用户程序执行;
z 可观察用户程序执行过程中的变量和表达式; z 可中止用户程序的运行或用户程序复位; z 系统硬件电路的诊断与检查;
·12· 单片机原理与嵌入式系统设计―课后习题参考答案---电子版
z 支持汇编和高级语言源程序级调试。
7.什么是JTAG?为什么使用JTAG接口开发单片机,仿真更加贴近实际目标系统? 答:
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。标准的JTAG接口有4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG接口还常用于实现ISP(In-System Programmable,在系统编程),对单片机内部的Flash EEPROM等器件进行编程。
在JTAG单片机仿真开发环境中,JTAG适配器提供了计算机通信口到单片机JTAG接口的透明转换,并且不出借CPU和程序存储器给应用系统,使得仿真更加贴近实际目标系统。单片机内部已集成了基于JTAG的协议调试和下载程序。
8.请解释ISP和IAP?具有ISP和IAP功能的单片机有什么好处? 答:
随着单片机技术的发展,出现了可以在线编程的单片机。这种在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。
利用ISP和IAP,不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即为成品,甚至可以远程在线升级或改变单片机中的程序。
9.单片机系统的编程语言有哪几种?单片机的C语言有哪些优越性? 答:
单片机的高级语言包括:BASIC语言、PL/M语言和C语言。BASIC语言主要应用在MCS-51系列单片机上,使用效果不是很理想,现在已经不再使用。PL/M语言对硬件的控制能力和代码效率都很好,但局限于Intel公司的单片机系列,可移植性差。目前流行的单片机编程语言为C语言。
下面结合80C51介绍单片机C语言的优越性:
·不懂得单片机的指令集,也能够编写完美的单片机程序;
·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序; ·不同函数的数据实行覆盖,有效利用片上有限的RAM空间;
·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;
·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序
《单片机应用系统设计技术――基于C51的Proteus仿真(第2版)》课后习题参考答案---电子版 ·13· 处理能力和灵活性;
·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;
·提供small、compact、large等编译模式,以适应片上存储器的大小;
·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
·提供常用的标准函数库,以供用户直接使用;
·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉; ·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。
10.简述Keil uVision2集成开发环境的特点。 答:
uVision2 IDE基于Windows的开发平台,包含一个高效的编辑器、一个项目管理器和一个MAKE工具。uVision2 IDE支持所有的Keil C51工具,包括C语言编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器。
uVision2 IDE内嵌有多种符合当前工业标准的开发工具,可以完成工程建立、管理、编译连接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程。尤其C语言编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。它的主要特性如下。 1) 集成开发环境
2) C51编译器和A51汇编器 3) LIB51库管理器 4) BL51链接器/定位器 5) uVision2 软件调试器 6) uVision2 IDE硬件调试器 7) RTX-51实时操作系统
11.简述Keil uVision2编译系统的存储模式。 答:
有三种Memory Model
Small:变量存储在内部的RAM里。
Compact:变量存储在外部RAM里。使用8位间接寻址。 Large:变量存储在外部RAM里,使用16位间接寻址
一般使用Small来存储变量,此时单片机优先将变量存储在内部RAM里,如果内部RAM空间不够,才会存到外部RAM中。Compact的方式要通知程序来指定页的高位地址。
·14· 单片机原理与嵌入式系统设计―课后习题参考答案---电子版
Compace模式适用于比较少的外部RAM的情况。Large模式是指变量会优先分配到外部RAM里。
3种存储方式 都支持内部256B和64KB的RAM。因为变量存储到内部里,运算速度比存储在外部RAM要快得多。大部分的应用都选择Small模式。
12.ProteusVSM都提供了哪些信号源和测试仪器? 答:
Proteus VSM包含了大量的虚拟仪器,包括示波器、逻辑分析仪函数发生器、数字信号图案发生器、时钟计数器、虚拟终端及简单的电压表和电流表。
13.Proteus VSM中的示波器可以同时测量几路信号?测量单片机引脚输出的周期1kHz的方波信号,示波器应如何设置?
答:
示波器可同时测量4路信号。
先点击虚拟仪器,选择OSCILLOSCOPE拉出示波器,连接对应的单片机引脚。双击示波器进行设置界面,选择对应的输入端如将单片机引脚连至C,则选择Channel C,然后在Channel选择相应的电压范围和时间间隙,其实最方便是中点击Auto按钮,具体操作与现实中的数字示波器相差无几。
《单片机应用系统设计技术――基于C51的Proteus仿真(第2版)》课后习题参考答案---电子版 ·15· 14.在Proteus ISIS环境中使用AT89C52设计一个“走马灯”电路,并编写C51程序,然后在μVision3环境下编译调试。要求实现Proteus VSM与μVision3的联调。(答案不惟一!) 答:
Proteus图如下
图3-2 “走马灯”电路
参考程序如下:
#include
void time(unsigned int ucMs);/* 延时单位:毫秒 */ void main(void) {
LED_PORT= 0xfe; while(1) {
LED_PORT = _crol_(LED_PORT,1);
time(500);