单片机练习题.doc_第1页
单片机练习题.doc_第2页
单片机练习题.doc_第3页
单片机练习题.doc_第4页
单片机练习题.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第1章 微型计算机基础一填空题1. 十进制整数转换为二进制数的方法是 除2取余 法,十进 制整数转换为十六进制数的方法是 除16取余 法,十进制小数转换为二进制小数的方法是 乘2取整 法,十进制小数转换为十六进制小数的方法是 乘16取整 法。2. 在补码运算中,正数的原码、反码和补码是同一种形式,负数的补码是它的 反码加1 ,负数的反码是它的原码数值位的 按位取反 。3. BCD码加法是一种十进制的加法,其低四位向高四位进位是逢十进一的,但单片机加法器是一种二进制的加法器,其低四位向高四位进位是按 逢16进一 原则进位的,故BCD加法程序设计中必须在加法指令后跟一条BCD调整指令。4. 0-9的ASCII码和它的值之间相差 30H 。2 选择题1. 如下列数值中的数, D 的值最大, A 的值最小。 A.568H B.2555H C.11010101101B D.ABCH2. 设X=ABH,Y=0FH,现欲从X中取出低四位(高四位变为0),则X和Y两数应采用 B 运算。 A.逻辑加 B.逻辑乘 C.异或 D.取反3. 设X=ABH,Y=F0H,现欲从X的高四位取反而低四位不变,则X和Y应采用 C 运算。 A.逻辑加 B.逻辑乘 C.异或 D.取反4. -0反是 C ,-0补是 A 。A.00000000B B.10000000B C.11111111B5. 如下 B 不是BCD码。A. 23H B.A8H C.123H D.95H 6. MCS-51是属于 B 单片机。A.4位 B.8位 C.16位 D.32位 第二章 MCS-51单片机结构与时序1. 填空题1. MCS-51的CPU有三部分电路组成:一是 ALU ;二是 定时控制部件 ;三是 专用寄存器组 。2. MCS-51内部有一个程序寄存器PC,它实际上是一个有 16 个触发器组成的计数器,能自动加“1”,用来存放 将要执行的指令 的地址。3. MCS-51内部有一个寄存器,该寄存器在除法指令执行前用来存放被除数,在除法指令执行后用来存放两数之商,该寄存器通常称为 累加器A 。4. 堆栈指示器(又称堆栈指针)SP是一个有二进制8位的计数器,用来存放堆栈的栈底或栈顶地址。若堆栈中无数,则SP的地址必然是 栈底;若堆栈中压入数据,则SP中的地址称为 栈顶 。5. DPTR称为数据指针,由 DPH 和 DPL 拼装而成,可以用来存放程序存储器ROM或外部RAM中的数据地址。6. 当MCS-51欲寻址内部ROM工作时,EA引脚应接 +5V 电平。7. MCS-51内部有一称为Rn(n为17)的工作寄存器组,其物理地址范围是 000HFFFH 。8. MCS-51和外部存储器进行硬件连接时,CPU送给外部存储器的16位地址码,其高8由 P2 口输出,低8位由 P0 口输出。9. MCS-51执行MOVX A,DPTR指令需要两次访问存储器,第一次是根据 PC 中的内容寻址的,目的是取指令,第二次是根据 DPTR 中的内容寻址的,目的是执行指令。2. 选择题1. MCS-51的下列指针寄存器中, C 是堆栈指针寄存器。 A.PC B.DPTR C.SP D.R02. MCS-51的堆栈区在 A 中。 A.内部RAM B.外部RAM C.内部ROM D.外部ROM3. MCS-51有4个三种不同的寄存器。其中 B 的寻址范围是00H7FH/FFH。 A.内部ROM B.内部RAM C.外部ROM D.外部RAM4.对8751编程时,其片内所需12位地址码是由 C 端口输入的。 A.P1.3-P1.0和P0 B.P2.3-P2.0和P0 C.P2.3-P2.0和P1 D.P3.3-P3.0和P2 5.对8751校验时,其读出数据由 A 端口输出。 A.P0 B.P1 C.P2 D.P36. 在8031的CPU中,驱动力最大的端口是 A 。 A.P0 B.P1 C.P2 D.P37.8031执行MOVX A,DPTR指令时,需要两次访问内存,访问次序为 B 。 A.外部RAM和外部RAM B.外部ROM和外部RAM C.外部RAM和外部ROM D.外部ROM和外部ROM8.8031在执行MOVC A,A+PC指令时,需要两次访问内存,其次序是 D 。 A.外部RAM和外部RAM B.外部ROM和外部RAM C.外部RAM和外部ROM D.外部ROM和外部ROM9. 如下引脚中, C 是外部ROM存储器的选通线。A.RD和WR B.EA C.PSEN D.ALE10.如下两条指令执行后,累加器A和PSW中的内容是 A 。 MOV A,#19H ADD A,#66HA.7FH和01H B.85H和01H C.85H和03H D.7FH和03H 第三章 MCS-51单片机指令系统1 填空题1. MCS-51指令系统中的指令采用单地址指令格式,每条指令均由 操作码 和 操作数/操作数地址 等字段组成。其中, 操作码 字段是必选段,下地址字段隐含在 程序计数器PC 中。2. 指令码中含有操作数本身的指令,其寻址方式比为 立即型 寻址。3. 指令码中含有操作数所在寄存器号的指令,其源操作数的寻址方式一定是 寄存器间接 寻址。4. 在SJMP rel 指令中,以其在只读存储器中始址为参考点可以在 -126 +129 范围内寻址。5. MCS-51有两条查表指令,指令的通式是 MOVC A,A+DPTR 和 MOVC A,A+PC 。6. 只能读外部RAM零页单元中的内容的指令时 MOVX A,Ri 。7. 除INC SP 指令外,还有 PUSH direct 和 调用 指令执行时可以使SP中内容加1。8. 除DEC SP 指令外,还有 POP direct 和 RET/RETI(或 返回) 指令可以使SP中内容加1。9. 不带Cy的移位指令有两条,一条是 RL A ,另一条是 RR A 。10. 能对PC中内容运算处理为目的的指令,必然属于 控制转移 类指令。11. MCS-51有两条可以根据累加器A中的内容为判断条件的转移指令,这两条指令时 JZ rel 和 JNZ rel 。12. MCS-51有两条减1条件转移指令,通常在循环程序设计中使用。该指令通式是: DJNZ Rn, rel 和 DJNZ direct, rel 。13. 调用指令的作用有两个: 一个是 断点地址入栈 ;另一个是 子程序始址送PC 。14. 返回指令的作用是: 断点地址(栈内)恢复到PC 。15. MCS-51有两条可以根据Cy中内容为条件的转换指令,它们是 JC rel 和 JNC rel 。16. MCS-51有三条可以根据位地址中内容为判断条件的转移指令,它们是: JB bit, rel 、 JNB bit, rel 和 JBC bit,rel 。2 选择题1. MCS-51中无 D 指令。 A.单字节 B.双字节 C.三字节 D.四字节2. MCS-51中无 C 指令。 A.单机器周期 B.双机器周期 C.三机器周期 D.四机器周期3. 如下指令中的源操作数, B 是直接寻址。 A.MOV A,#20H B.MOV A,20H C.MOV A,R0 D.MOV A,R04. 如指令中的源操作数, A 是位寻址。 A.SETB 20H B.MOV A,20H C.MOV A,#20H D.DJNZ 20H,rel5. 如下指令中, C 指令的源操作数寻址方式不属于变址寻址。 A.MOVC A,A+PC B.MOVC A, A+DPTRC.MOVX A,DPTR D.JMP A+DPTR6. 如下指令中, D 是合法指令。 A.MOV R1,R0 B.MOV R0,R5 C.MOV #20H,A D.MOV 20H,#20H7. C 指令的转移范围最小。 A.LJMP addr16 B.AJMP addr11 C.SJMP rel D.JMP A+DPTR8. 如下指令中, B 指令是以判断Cy中内容为条件的转移指令。 A.JZ rel B.JC rel C.JB bit,rel D.JBC bit,rel9. A 是字节型指令。 A.CLR A B.CLR C C.CLR 20H D.SETB C10. 如下指令中, C 指令执行后均能使bit中内容始终为零。 A.JB bit,rel B.JNB bit,rel C.JBC bit,rel11. 如下指令中, D 指令的寻址方式是变址寻址。 A.LJMP addr16 B.AJMP addr11 C.SJMP rel D.JMP A+DPTR12. 如下指令中, B 类指令执行时均能使SP内容加1. A. XCH A,R2 B.PUSH ACC RL A LCALL SQR C. DJNZ R2,LOOP D.ADD A,#20H CJNE A,R2,NEXT SUBB A,R2 第四章 汇编语言程序设计一填空题1. 机器语言有两种形式,一种是 二进制 形式;另一种是 16进制 形式, 二进制 形式的机器语言可以为CPU直接执行。2. 汇编语言是一种符号语言,因机器而异,所编程序需汇编成机器语言才能直接为CPU执行。其优点是可直接操作到机器内部的 寄存器 和 RAM 单元。3. MCS-51的汇编语句采用典型的四分段格式:标号段、操作码段、操作数段和注释段。其中, 操作码段 是必选段,用来指示CPU执行 何种操作 。4. 注释段以 分号 开头,指示指令段或程序段的作用;标号段是以大写字母开头的字母数字串(最多8个),标号段中禁止使用 保留字 和 寄存器号 作标号。5. MCS-51宏汇编中,有两条可以为变量赋值的伪指令,他们是 EQU 和 DATA/XDATA 。6. 如下程序为汇编程序识别和执行后,(1500H)= 00H ,(1501H)= 45 和(1502H)= 41H 。 ORG 1500H TAB:DW 45 DB A7. 可以定义存储空间的伪指令是 DS 。8. 可以定义位地址的伪指令是 BIT 。9. 用户程序编写好后,必须汇编成机器码才能为机器执行。MCS-51源程序的汇编有 人工汇编 和 机器汇编 两种,但原理相同。机器汇编需要汇编程序对用户程序进行两次扫描才能完成。第一次扫描主要是确定每条指令的 指令码 ,第二次扫描是计算机指令码的 标号值 和 地址偏移量 。10. 在机器汇编的第二次扫描中,标号值或地址偏移量的计算公式是 地址偏移量=目的地址-转移指令始址-转移指令字节数 。11. 简单程序又称顺序程序或直线程序,有时又称为无分支程序,其特点是程序中不含有 转移 指令。12. 分支程序有时也称为散转程序,其特点是程序中含有 无条件转移指令 。13. MCS-51循环程序有循环初始化、循环体和循环结束处理等三部分组成。其中循环初始化程序段中通常要给 循环变量(地址指针) 和 循环计数器 赋初值;循环体中必定含有一条 减一条件判断 指令。14. 循环程序有两种类型:一是 先判断后处理 ,二是 先处理后判断 。15. 查表指令有两条:一条是用PC作为基址来查表,另一条是用DPTR作为基址来查表,但查表原理相同。后者在查表前DPTR中应放有被查表的始址,前者在查表时PC中的基址不等于被查表始址,故它在查表指令前必须有一条 ADD A,#date 指令,以便使PC+date=被查表始址。16. 子程序设计时应注意四点:一是子程序前要冠以标号,标号应以 子程序任务 定名;二是主程序中要有一条 调用 指令才能转入子程序执行;三是子程序中必须安排一条 返回 指令才能使CPU回到主程序主程序执行;四是CPU转入子程序或从子程序返回主程序前都需要有参数传递。17. 带符号补码数/或减运算的算法:一是 先对两数进行符号数扩展 ;二是 对符号数扩展后的两数进行加/减运算 。18. 带符号补码数的乘除法算法:一是 符号位单独处理 ;二是 把参加运算的两数变成绝对值 ;三是 对绝对值进行乘除运算 ;四是 把运算结果变成补码 。2 指出下列程序的运行结果1. 已知:(20H)=X(X50)和A=00H,如下程序为CPU执行后的DA中的内容是什么? ORG 0100HMOV DPTR,#1000HJMP A+DPTR DONE:MOV DA,ASJMP $ORG 1000HMOV A,20H 答案:(DA)=2XRL ASJMP DONEORG 1080HMOV A,20HRL ARL ASJMP DONE END2. 上例中,若累加器A中内容为80H,则重新执行上述程序后DA中内容是什么? ORG 0100HMOV DPTR,#1000HJMP A+DPTR DONE:MOV DA,ASJMP $ORG 1000HMOV A,20H RL ASJMP DONEORG 1080HMOV A,20HRL ARL A 答案:(DA)=4XSJMP DONE END3.已知:(71H)=X,SP=71H和外部RAM的(2000H)=Y。试问如下程序执行后外部RAM的2500H单元中内容是什么?(X和Y均不超过63)。ORG 0300H MOV DPTR,#2000H MOVX A,DPTRMOV R2,APOP ACCADD A,R2 答案:(2500H)=2(X+Y)RL AMOV DPTR,#2500HMOVX DPTR,ASJMP $END4. 已知:a和b是两个小于8的二进制数,分别放在DA和DB单元。试问如下程序执行后DC单元中的内容是什么?ORG 0400HMOV A,DAACALL SQRMOV R1,AMOV A,DBACALL AQRADD A,R1MOV R1,AMOV B,DBMUL ABRL AADD A,R1MOV DC,ASJMP $ SQR:INC AMOVC A,A+PCRET SQRTAB:DB 0,1,4,9,16,25,36,49,64,81END 答案:(DC)=a2+2ab+b2 5. 如下程序执行后累加器A和70H单元中内容是什么?ORG 0500HMOV A,#0AAHMOV DPTR,#0070HMOVX DPTR,AMOV R0,#70H 答案:A=BAH (70H)=ABHMOV R0,AMOV A,#0BBHXCHD A,R0SJMP $END6. 已知:外部RAM(1000H)=X,如下程序执行后20H和SP中的内容是什么?(X85)ORG 0600HMOV SP,#60HMOVX A,DPTRMOV B,ARL A 答案:(20H)=3X SP=60HADD A,BMOV 61H,AINC SPPOP 20HSJMP $END7. 已知:内部RAM(20H)=FFH(-1),如下程序执行后30H单元中内容是什么?(X127)ORG 0700HMOV A,20HJNB ACC.7,NEXTMOV 30H,#X 答案:(30H)=XSJMP DONE NEXT:MOV 30H,#2X DONE:SJMP $END8. 已知:内部RAM(20H)=90H,如下程序执行后30H单元中的内容是什么?(X127)ORG 0800HMOV A,20HADD A,#80HJNB ACC.7,NEXTMOV 30H,#X 答案:(30H)=2XSJMP $ NEXT:MOV 30H,#2X DONE:SJMP $END9. 如下程序执行到 MOV 30H,#X 时,71H、72H和SP中的内容是什么?ORG 0900HMOV SP,#70HLCALL SQR 答案:(71H)=断点地址高8位SJMP $ (72H)=断点地址低8位 SQR:MOV 30H,#X SP =72HRETEND10. 如下程序执行后会产生什么效果?为什么?ORG 0A00HMOV DPTR,#2000HMOV RO,#20H LOOP:MOV R2,#0AHMOVX A,DPTR MOV R0,AINC DPTR INC R0DJNZ R2,LOOPSJMP $END 答案:该程序执行后会进入死循环。 因为R2中内容始终都不会为0. 3 编程题1. 从外部RAM的SOUCE(二进制8位)开始有一数据块,该数据块以字符$结尾。请编写程序,把他们传送到以内部RAM的DIST为起始地址的区域($字符也要传送,它的ASCII码为24H)。ORG 0500H SOUCE DATA 30H DIST DATA 20H MOV R0,#SOUCE ; R0源地址 MOV R1,#DIST ;R0目标地址 LOOP:MOVX A,R0 ;A 源数 CJNE A,#24H,NEXT ;若A$,则NEXT MOV R1,A ;传送$符SJMP $ NEXT:MOV R1,A ;传送数据INC R0 ;源指针加1INC R1 ;目的指针加1SJMP LOOPEND2. 外部RAM从2000H到2100H有一数据块,请编写将他们传送到从3000H到3100H区域的程序。ORG 0500HMOV DPTR,#3000H ;目标地址送3000HPUSH DPL ;目标地址送栈PUSH DPHMOV DPTR,#2000H ;源地址送DOTRMOV R2,#01H ;块长送R3R2 MOV R3 ,#01H LOOP:MOVX A,DPTR ;源数送AINC DPTR MOV R5,DPH ; 源针加1送R5R4MOV R4,DPLPOP DPH ;目标地址送DPTRPOP DPLMOVX DPTR,A ;送数INC DPTR ;目标地址加1PUSH DPL ;送栈PUSH DPHMOV DPH,R5 ;源针送DPTRMOV DPL,R4CLR C ;Cy清零MOV A,R2 ;R2-1送R2SUBB A,#01H MOV R2,AMOV A

温馨提示

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

评论

0/150

提交评论