单片机应用项目式教程——基于Keil和Proteus第2版习题答案第2章思考和练习解答.docx
《单片机应用项目式教程——基于Keil和Proteus第2版习题答案第2章思考和练习解答.docx》由会员分享,可在线阅读,更多相关《单片机应用项目式教程——基于Keil和Proteus第2版习题答案第2章思考和练习解答.docx(8页珍藏版)》请在优知文库上搜索。
1、第2章思考和练习解答参阅本书P.34。2.1C51编程与80C51汇编语言相比,主要有什麽优势?答:C51编程与80C5I汇编语言相比,主要的优势是编程相对方便。具体如下:C51软件编程不需过多关注具体的存储单元。用汇编语言编程,几乎每一条指令(除NOP指令)操作都与具体的存储单元有关,80C51单片机的片内存储空间容量有限,编程之初即需安排好片内存储单元的用途,且一般不能重复使用。当一些应用项目较大时,片内存储单元有可能捉襟见肘,稍有不慎就将出错。因此,编程时,不但要注意用哪一条指令正确操作,而且要注意指令在哪一个存储单元操作,编程相对复杂。而C51编程能自动完成变量存储单元的分配和使用,且
2、对函数内局部变量占用的存储单元,仅在调用时临时分配,使用完毕即行释放,大大提高了片内有限存储空间的利用效率。使用者只需专注于软件编程,不需过多关注具体的存储单元及其操作指令。因此,编程相对方便。便于实现各种更杂的运算和程序。C语言有丰富且功能强大的运算符,能以简单的语句方便地实现各种复杂的运算和程序。相比之下,汇编语言要实现较复杂的运算和程序,就比较困难。例如,双字节的乘除法,汇编语言要用许多条指令操作才能完成;而C51只需一条语句便能实现。又例如,循环、查表和散转等程序,C51语句实现起来也相对简单方便。可方便地调用各己有程序模块。已有程序模块包括C51编译器中丰富的库函数、用户自编的常用接
3、口芯片功能函数和以前已开发项目中的功能函数。读者可能会说,汇编程序不也一样可以调用吗?不一样。汇编程序调用时,涉及到模块中具体的存储单元,这些存储单元很可能与主调用程序有重复,会引起冲突而出错。而C51程序函数中的变量一般为局部变量,主函数调用前不占用存储单元,仅在调用时由C51编译器根据空余情况临时分配,使用完毕即行释放,因而一般不会发生冲突而出错。因此,C51程序可方便地调用各已有程序模块,减少重复劳动,大大提高编程效率。(4)编译生成的代码效率比汇编语言低一些;实时时效不如汇编语言快捷;一条C语言指令编译后,会转换成很多机器码,占用单片机片内资源较多。2.2C51基本数据类型有哪几种?其
4、数据长度为多少?答:参阅教材书基础知识4.1,图2-32.3 C51标识符命名有何要求?答:在C51程序中,数据、变量和函数等常用标识符表示。实际上,标识符就是一个代号或名字。C51规定:标识符只能由字母、数字和下划线三种字符组成,且须以字母或下划线开头。标识符不能与“关键词”同名。英文字母区分大小写。即标识符中的英文字母大小写不能通用。2.4 怎样理解变量的存储器类型和编译模式?答:存储器类型和编译模式是确定变量存放在那一存储区域,不同的存储区域与访问速度有关。存储器类型是在变量定义时确定,而未定义存储器类型的变量由编译模式默认。存储种类与变量存放在那一存储区域基本无关(除寄存器类变量),与
5、变量值的生存期和作用范围有关。中、小型程序一般可采用默认的存储种类auto。变量的存储种类与变量的存储器类型、编译模式是两个完全不同的概念,不能混淆。2.5 为什么变量要尽量使用无符号字符型格式?答:C51变量的基本数据类型主要有字符型Cha八整型ini和长整型IOng,又可分别分为有符号Signed和无符号UnSigned。80C51是8位机,本身并不支持有符号运算。若变量使用有符号格式,C51编译器要进行符号位检测并需调用库函数,生成的代码比无符号时长得多,占用的存储空间会变大,程序运行速度会变慢,出错的机会也会增多。80C51单片机主要用于实时控制,变量一般为8bit无符号格式,16bi
6、t较少,有符号和有小数点的数值计算也很少。因此,在已知变量长度和正整数的情况下,应尽量采用无符号格式:UnSignedChar。2.6 为什么变量要尽量使用局部变量?答:与80C51汇编语言相比,C51编程的突出优点是能自动完成变量存储单元的分配和使用,对函数内局部变量占用的存储单元,仅在调用时临时分配,使用完毕即行释放,大大提高了片内有限存储空间的利用效率。使用者只需专注于软件编程,不需过多关注具体的存储单元及其操作指令。因此,编程相对方便。使用全局变量的缺点:一是始终占用一个固定的存储单元,降低了内部存储单元的利用率;二是降低了函数的通用性。若函数涉及某一全局变量,该函数移植到其他文件时需
7、同时将全局变量一起移植。否则,若全局变量名与其他文件中的变量同名,就会出现问题。三是过多使用全局变量,降低了程序的清晰度。若程序较大,人们较难清晰地判断程序执行过程中每个瞬间全局变量的变化状况,易出错。因此,应尽量减少全局变量的使用,能不用就尽量不用。2.7 for循环语句括号内3个表达式分别表示什麽含义?能否缺位?答:第一个表达式是循环变量初值,第二个表达式是循环终止条件,第三个表达式是循环变量更新。3个表达式之间必须用分号“;”分隔,允许有一个或多个缺位。2.8 while(1)和for(;)表示什麽含义?答:While(I)和for(;)均表示一个循环条件始终满足的无限循环。若后面有循环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 应用 项目 教程 基于 Keil Proteus 习题 答案 思考 练习 解答