微机与单片机原理及应用第5章 习题答案_第1页
微机与单片机原理及应用第5章 习题答案_第2页
微机与单片机原理及应用第5章 习题答案_第3页
微机与单片机原理及应用第5章 习题答案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题答案1.答:指令:指定电子计算机实现某种控制或运算的代码。指令系统:指令系统是计算机硬件的语言系统,是机器所具有的全部指令的集合。程序:程序是指按照一定的规则和顺序的任务执行过程,是一套指令集合,程序由数据结构和算法组成。程序设计:给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。机器语言:机器语言是机器能直接识别的程序语言或指令代码。汇编语言:汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。高级语言:高级语言是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。答:目前在单片机领域最广泛使用的是高级语言。高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。高级语言语言单片机不能直接执行,必须经过专门的编译工具翻译为机器码后单片机才能运行。答:结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。结构化程序设计的三种基本结构:顺序结构、循环结构、选择结构。答:80C51有两条査表指令:MOVA,@A+DPTR、MOVA,@A+PC。两条指令本质区别:查表的基地址不同,一个采用DPTR,另一个采用PC。当表的长度超过256字节时,应该把查表的偏移量分为高8位和低8位两个数据,低8位数据数据放入A中,而高8位数据与DPTR或PC的高8位数据相加。答:伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。它不是单片机执行的指令,所以没有对应的可执行目标代码,汇编后产生的目标程序中不会再出现伪指令。答:顺序程序又称直接程序,程序执行时从第一条指令开始顺序执行到最后一条指令止。MOV A,R0 ;读低8位CPL A ;取反ADD A,#1 ;加1MOV R2,A ;存低8位MOV A,R1 ;读高8位CPL A ;取反ADDC A,#0 ;加进位MOV 20H,R1;高8位→位寻址区MOV C,07H;符号位→C MOV ACC.7,C ;恢复符号MOV R3,A;存高8位SJMP $ 答:KEYJMP:MOVDPTR,#TAB ;指向表首高8位地址 MOV A,20H ;取键值 RL A;键值乘2作查表偏移量 MOV 20H,A ;暂存偏移量 MOVCA,@A+DPTR ;取高8位地址 MOV 22H,A ;暂存高8位地址INC DPTR ;指向表首地址低8位 MOV A,20H ;取偏移量 MOVCA,@A+DPTR ;取低8位地址 MOV 23H,A ;暂存低8位地址 RETTAB:DB01H,23H ;“0”键入口地址 DB 01H,86H ;“1”键入口地址 DB 02H,34H ;“2”键入口地址 DB 03H,16H ;“3”键入口地址 DB 014,15H ;“4”键入口地址答:(1)可读性好。C51语言程序比汇编语言程序的可读性好,编程效率高,程序便于修改、维护以及升级。(2)模块化开发与资源共享。用C51开发的程序模块可不经修改,直接被其他工程所用,使得开发者能够很好地利用已有的大量标准C程序资源与丰富的库函数,减少重复劳动,同时也有利于多个工程师进行协同开发。(3)可移植性好。为某种型号单片机开发的C语言程序,只需把与硬件相关的头文件和编译链接的参数进行适当修改,就可方便地移植到其他型号的单片机上。9.答:(1)扩展的数据类型:位变量bit、特殊功能寄存器sfr、特殊功能寄存器sfr16、特殊功能位sbit。(2)存储类型:DATA、IDATA、BDATA、XDATA、PDATA、CODE。10.答:(1)C51中断服务函数的一般形式:函数类型函数名(形式参数表)interruptnusingn{函数体}(2)关键字interrupt是中断号,对于51单片机,n取值为0~4;关键字using后的n是所选择的寄存器组,using是一个选项,可省略。11.答:#include<reg51.h>unsignedchardispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管的段码 voiddelay10ms(intn)//10ms延时函数,应用于12.0MHz时钟。 { inti=0,j; while(n--) { for(i=0;i<10;i++) { for(j=0;j<125;j++); } } } voidmain(void) { chari; while(1) { for(i=0;i<10;i++) { P1=dispcode[i]; //数码管更新显示 delay10ms(50); //延时500ms } } }答:#include<reg51.h>voidDelay(unsignedinti) //定义延时函数 { unsignedintj; for(;i>0;i--) for(j=0;j<125;j++){;} }voidmain() //主函数{bitbdatalab=0; TMOD=0x50; //设置定时器T1为方式1计数 TH1=0xff; //向TH1写入初值的高8位 TL1=0xfc; //向TL1写入初值的低8位 EA=1; //总中断允许 ET1=1; //定时器T1中断允许 TR1=1; //启动定时器T1 while(1){if(lab==1){P1=0xff; //8位LED全灭 Delay(500); //延时500ms P1=0; //8位LED全亮 Delay(500); //延时500ms

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论