单片机原理习题集(全)_第1页
单片机原理习题集(全)_第2页
单片机原理习题集(全)_第3页
单片机原理习题集(全)_第4页
单片机原理习题集(全)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

习 题 集 MCS-51 单 片 机 原 理 吴锤红 制 1 第一章 引 导 1、 列举出单片微机在工业、民用及军事上的应用例子。 2、 单片机与系统型微机在应用上有什么主要差别? 3、 如果让你用单片机开发一项产品,你准备开发什么产品?该产品的功能及应用前 景如何?单片机在该产品中的作用是什么? 4、 用从课文介绍的应用实例中所学习的知识回答以下问题: a.高级语言与机器语言的主要不同点? b.MCS-51 开机或复位后机器语言程序从哪里开始执行? c.人用什么语言编机器语言程序? d.机器语言指令中的 A、B、C 等表示的是符号还是数字? e.单片机中处理的是数字量还是模拟量?它们与高电平、低电平或+5 伏与 0 伏的 关系是怎样的? 5、 分别举出 5 个硬件和软件的例子。 6、 I/O 对应的英文单词是哪些?表示什么意思? 7、 “汇编语言源程序” 、 “汇编程序” 、 “机器目标代码程序”等术语各是什么意思? 8、 选择题: 高级语言,如 Basic、Pascal 等,这所以能在 IBM-PC 微机上或 Apple 机上执行,是 因为_。 a. 这些机器的 CPU 能识别这些高级语言并能执行它们。 b. 高级语言与计算机的 CPU 无关,可以在任何计算机上执行。 c. 这些计算机上配备了能将高级语言转化为(编译器与解释器)机器语言的软件。 d. CPU 能将高级语言转化为机器语言并执行它。 ROM,用形象比喻来说明它的特性,更像_。 a. 黑板,写上的字与原来的字会叠加在一起。 b. 相片,暴光一次成像,可看读任意多次。 c. 装物的盒子,能存储信息。 d. 生物的大脑,能大量存储信息。 RAM,用形象比喻来说明它的特性,更像_。 a. 算盘,由算盘珠摆出了一种状态。 b. 装物盒子,可存入也可取出。 c. 黑板,可写可擦。 d. 生物大脑,可记又会忘。 存储单元的地址的作用是_。 a. 用于形成序列联系。 b. 用于访问这些单元。 c. 用于硬件接线。 d. 用于降低成本。 寄存器_。 2 a. 的名字用于指令中可以缩短指令长度,提高执行速度。 b. 必须通过地址序号来使用。 c. 关电再开时其内容不变。 d. 可随需要外购扩充。 接口是_。 a. CPU 内部总线与外部总线间联系的电路。 b. CPU 外部总线与外部设备间联系的硬件。 c. CPU 与存储器间起数据缓冲、锁存、变换等作用的硬件。 d. 外部设备相互联系的硬件。 汇编是_。 a. 将用助记符编写的程序转换成机器码的过程。 b. 将人写的程序变为计算机 CPU 能直接执行的程序。 c. 将机器码转换成汇编语言程序的过程。 d. 将高级语言转换成低级语言的过程。 BUS 在计算机中表示_。 a. 类似公共汽车的东西。 b. 信号内容、信号地址及信号时序信息的传输路线。 c. 8 位数据总线。 d. 软件、硬件及外设间的联系。 3 第二章 基 础 练 习 一 1 1234? X 22512? 问这是几进制的运算? 2在 9 进制系统中,46 9?100 9 3星期、月份、四季、世纪各是几进制运算关系? 4将下列二进制数转换为十进制数: 10111101B 110111101B 111011010.101B 11110111101110.111011111B 5将下列十进制数转换为二进制数,对于小数,可以仅取 4 位 130 12347 99 0.6 256 11.11 6计算下列二进制算式: 10100110B101B 11011110B+1101B 1110B1011B 10111010B110B 7将第 4 题转换为十六进制数。 8将下列数转换成十六进制和二进制数,对于小数,可以仅取二位十六进制数。 12767 60000 123.143 65535 32767 4096.3 9计算下列算式,结果仍用十六进制数表示,仅取二位小数。 123H0EFDH 1010011011B0FDH 0EAH0CDH 66666H 10在八段数码管中 1 字节中“位”与数码管“段”的对应关系如下图: 字 模 字 节a b c d e f g h 如果假定某位为“1”对应该段“亮” ,反之为“暗”问显示:1A4B8.C3 的字模是什 么? 11按 10 题条件,写出以下字模字节表示的字符及含义。 CF 06 66 00 54 5C 00 79 50 50 5C 50 12有十个大箱子,每箱都装有 600 合的 1 斤装饼干。因事故,其中有些箱中的每合 h g f e d c b a 4 饼干仅装了 9 两。有 1 个人提出,他可以从这十箱中按一定规律各取若干合,放于一 堆,只称一次,便可以知道是哪几箱中的饼干出事故。你知道这人是怎么做的呢? 练习二 一、计算题 1: 0DCH OR 65H 0E9H AND 7CH 0BAH EOR 5DH 6DH AND 7EH OR 0ABH EOR 0D6H 6DH AND (7EH OR (0ABH EOR 0D6H) 二、计算题 2: 123 AND 10100101B 222 EOR 200 11010110B OR 97 1DH EOR 11111111B 三、应用题 1: 某计算机有一个 8 位并口,读入的数据存在 A 寄存器中,问: (1) 判断 0、2、6、7 位是否全为 0,A 才变为全 0,用什么运算? (2) 判断 1、3、4、5 位中是否有任何一位为 1,就使得 A 非 0,用什么运算? 四、应用题 2: 在 Apple 计算机中,磁盘存储信息中采用了“44 编码” ,即把一个字节的 8 位 D7 D6 D5 D4 D3 D2 D1 D0 变成二个编码字节: 1 D7 1 D5 1 D3 1 D1 和 1 D6 1 D4 1 D2 1 D0 请给出一种简便方法,将编码后的两两字节还原成原来的一字节(解码) 。 五、应用题 3: 为了破解一个用异或串连运算加密的加密程序,让一段全为 00H 字节的程序让其 加密,结果形成以 8 字节为周期的被加密文: 3DH 0E6H 7CH 0ABH 0FH 27H 0EDH 41H 。请利用密文破解以下一段被加密的密文:0FFH 37H 0C2H 66H 00H 0FAH 27H 69H 。 练习三 一、 请在一字节补码表示的带符号数范围中写出以下数值代码: 96 37 150 100 二、 请写出以下补码表示的带符号数表示的数值: 0FDH 0CDH 0FF00H 1234H 三、 在二字节补码表示的带符号范围内计算以下各式结果,并判断结果的正确性: 006CH+00FAH 006CH00FAH 2E04H7EDCH 67DCH+1E74H 3C06H6D9EH 9005H+0EF5EH 四、 应用题: 已知某大学有男、女大学生名额共 2000 人,如果要在计算机人事档案管理系统 中给每一个大学生一个唯一的代码,并用该代码包含性别信息,请问最少要多少 二进制位才能构成该代码? 5 五、 选择题: 1、 如果将存储中文代码的存储器芯片当作微计算机的程序存储器插入程序芯片槽中, 请判断一下,开机后最可能出现的现象为_。 A、屏幕显示中文代码 B、屏幕显示看不懂的东西 B、计算机硬件烧坏 D、什么现象都没有 E、计算机乱响 2、多字节整数实现的方法是_。 A、由使用它们的程序建立起字节的联系 B、由使用它们的人通过定义语句来实现 C、将该整数的各字节按顺序放成序列 D、由国际标准化组织规定 3、计算机中带符号数的“”号可以_。 A、用“”号的 ASCII 码来表示 B、用人为规定的符号位来表示 C、用全 0 或全 1 来表示 D、用补码来表示 六、正、误判断题: 1、计算机内存中存放的信息是程序代码。 2、计算机程序存储区存放的必都为程序代码。 3、8051 程序存储区的开头几个字节必为程序代码。 4、8051 数据存储区不能存放程序代码。 5、计算机内存中至少有一部分信息是程序代码。 6、8051 程序存储区中存放的是程序代码或常数。 7、程序代码在传送过程中是作为无意义的数据。 8、数据代码与程序代码的区别在于数据代码不能被 CPU 所识别而程序代码却能。 9、浮点数的用途是表达小数点位置可以变化的小数。 10、浮点数的用途是表达实数。 11、浮点数的精度比多字节整数高。 12、浮点数所能表达的数的范围比同样多字节的多字节整数来得广。 13、定点数中的小数点是用“0”或“1”来代表的。 14、BCD 码是十进制数。 15、 “二十进制调整”是将十六进制数转变成十进制数。 16、BCD 码将十六进制数作为十进制数看待。 17、BCD 码间的算术运算通过“二十进制调整” 将十六进制运算转换为十进制运 算。 18、与美国敌对的国家的计算机中不使用美国发明的 ASCII 码。 19、ASCII 码发明的主要目的是表示字符代码。 20、计算机中的字节代表什么代码由使用该程序的人来解释。 21、同样的一些字节,交由 CPU 执行时变为指令代码而交由通讯程序时变为数据代 6 码。 22、补码用于表示负数。 23、没有补码就无法表示负数。 24、补码也可以表示正数。 25、最高位为 1 的补码表示的带符号数必为负数。 26、同样的字节,如 0E6H,既可以表示正数,又可以表示负数。 27、带符号数相加、减时结果与被运算数异号表明发生了溢出。 28、不带符号数运算不会产生溢出现象。 29、 “溢出”是指运算中产生了进位或借位。 30、二个数相减产生借位,表明这两数互为补数。 7 第三章 硬 件 练习一 一、说明以下芯片的异同点: 8051 ,8031, 8751 ,8052 ,80C51 二、8051/8031 芯片内部具有哪些主要结构? 三、8051 的引脚分成几种功能?哪些功能是复用引脚? 四、用万用电表 5 伏直流量程档量正在工作的 8031 芯片的以下引脚时,写出可能的 电压值(或范围): 黑表笔 红表笔 电压值 20 40 20 31 20 39 20 9 五、画出使用 8031 的最小系统图,要求: 1、用 12MHZ 晶振配 15pf 电容 2、用 8K 程序存储器,型号为 2764 3、地址锁存器用 74LS373 六、设计 8031 最小系统印刷电路板,要求: 1、采用双面敷铜板制作,绘图比例 1:1。 2、两面用线色应有明显区别,如红黑,红兰等。 3、电容、电阻脚间距取为 10mm,集成元件按实际尺寸绘制。 4、各口线(P0 除外) ,均应在同一侧安排外接线引脚。 5、板上应有复位开发及复位电路。 七、简单解释以下名词、并说明它们的联系: 晶振时钟、机器周期、指令周期 八、如果采用 8MHZ 晶振,问执行以下指令需要多少时间? 指令 消耗时间 JMP A+DPTR SWAP A MUL AB 九、说明引脚 31( )的作用,论述 P0 口的分时复用原理。E 练习二、 一、举一个例子说明中断的工作方式。8051 有哪些中断源? 8 二、中断子程序入口为什么采用固定的入口?该入口又称为什么?当中断服务子程 序存于别处时是否可以在中断时进入该子程序?如何办到? 三、中断子程序的开始与结尾各有什么特殊操作,为什么要这样? 四、主程序中如果在某部分程序中不允许响应中断,那么如何处理? *五、有一个用 CTC 中断来产生计时脉冲的单片机软件时钟系统,其年、月、日、时、 分、秒值分别存于 year,month,day,hour,minute,second 内部 RAM 单元中,问 读取该时钟应怎么读法才能确保正确读出? *六、如果用 CTC 中断作时钟计时,又用串行口中断来传输数据,当这二个中断设置 为同一优先级时会产生什么问题?应如何处理? *七、请按要求设置中断: 用 、 ,分别检测外部事件,0INT1 设置为:电平触发,低优先级 设置为:跳变沿触发,高优先级 并在设置后开启这两中断。 练习三、 一、并口的“口宽度”是指什么?8051 并口宽度为多少?该宽度范围内各位传输是 否能同时送达口引脚上?超过该宽度(例如多字节)的传输是如何实现的? 二、并口的锁存器与该口引脚的值有什么联系?何时会产生不同? 三、叙述 8051 四个并口的输入、输出特性。 *四、如何能将 P1 口的低半字节异或上某数(如 7) ,而不改变高半字节引脚的值? *五、有一个工业控制器,采用了扩展接口的自动识别措施,问,系统如何识别 P10 P17 脚中哪些已联接上了外部设备,哪些未接上? 六、如果将 P10、P1 3、P1 6 作为输入口,应如何操作?如果向 P11、P1 2 中写入“0” ,那么这两口对应引脚输入+5 伏时,读到的值是多少? 练习四 一、串口与并口有什么主要不同点? 二、串口是如何解决信号识别的? 三、串口是如何识别信号受到了干扰? 四、校验位是什么意思?如果采用奇校验,那么当分别传输:0E5H 7CH 0C6H 39H 字节时各自的校验位分别是多少? 五、画出按以下传输协议传输 6DH 字节的波形,并注出起始位,数据,校验位和停 止位。传输协议:8 位有效数据,奇校验,2 个停止位。 六、当波特率为 4800 时,按第五题的传输协议,每秒钟大约可以传输多少字节? 七、简述与 8051 串行口有关的寄存器,它们的作用各是什么? *八、如果以 1953 的波特率,在 6MHZ 系统上向别机的串口传输数据,请选择串口 工作方式并设置好该工作方式。 9 练习五 一、为什么说定时器和计数器是同一器件的两种工作方式?二者的异、同点各是什 么? *二、为什么定时器和计数器都可以测试车辆的速度?简述用这两种方式测试的原理。 *三、当 T0 或 T1 从 0FFFFH 变为 0000H 时,出现了哪些信号? *四、CPU 本身也可以计数和计时,问用 CTC 完成相同工作的好处何在? *五、用定时器方式编制百米赛跑计时系统,问 Gate 位应如何设置?信号从哪里取得 (赛场中哪个设备) ,应送到 8051 的哪个脚上? *六、用 6MHZ 晶振,编制时钟程序,取 “嘀嗒”时标为 100ms(即 1/10 秒产生计时 中断信号) ,问如何设置 T0?并写出 T0 中断子程序的头、尾部分。 *七、采用 12MHZ 晶振,在 P10 口上送出稳定的方波,波形如下,如何实现? 八、8051 中与 CTC 有关的寄存器有哪些?它们的的作用各是什么? 练习六 一、复位时计算机中主要做了什么工作? *二、复位的信号要求是什么?画出一种复位电路并叙述该电路工作过程。 *三、80C51 与 8051 的主要不同点在哪里?什么是待机状态?它有什么用途? *四、对 HMOS 和 CHMOS 的 MCS-51 器件如何处理突然断电事故? 10 第四章 存 储 一、对 MCS51 家族器件,0E0H,0FFH 作为地址分别可以对应那些存储单元? 二、对 MCS51 家族器件, 0F00H 和 2000H 作为地址分别可以对应那些存储单元? 三、8051 单片机又外接了一片 2764 EPROM 芯片。 问: 脚接高电平与接低电平时,2764 的首个存储单元地址各为多少?EA 四、在什么条件下,改变 R3 等效于改变 1BH 内部 RAM 单元? *五、指出以下二列程序段在改变 00H 内部 RAM 单元上有什么不同?(设当前取 0 组工作寄存器区) CLR RS1 SETB RS1 MOV 0,R0 MOV 0, R0 六、 指出以下操作的不同点: CLR A CLR 0E0H MOV 0E0H,#0 MOV A,#0 七、 指出以下操作的后果:(对 8052) CLR 0FFH MOV C, 0FFH MOV 0FFH,#0 MOV A,0FFH MOV R0,#0FFH MOV A,R0 MOV 0FFH,A 为什么说工作寄存器组 R0R7 是:“赋予存储器以寄存器性质” 。而说特殊功 能寄存器映象区是:“赋予寄存器以存储器性质” 。 如果将 “与”上 并用此信号控制对外部 RAM 的读取,这时用:RDPSEN MOVC A,A+DPTR 与 MOVX A,DPTR A 是否取到相同的值?用 MOVX DPTR,A 指令是否能改变程序?这种做 法通常用在开发装置中,为什么? 11 八、 正误判断,并简述判断论点: 1、8051 地址的低 8 位可以访问内部 RAM 和特殊功能寄存器区。 2、A 与 ACC 的差别是 ACC 有地址而 A 却无地址。 3、改变 R0 等于改变 0 组工作寄存器区首个存储单元。 4、当 RS0=0,RS1=0 时,改变 03H 内部 RAM 单元等效于改变 R3 单元。 5、从指令的角度看,8051 的程序存储区是“只读”的,即使用 RAM 器件作程序存 储区也一样。 6、位单元与内部 RAM 的字节单元或 SFR 映象单元的区别在于其地址不同。 7、8051 中的内部 RAM 字节单元,除了 20H2FH 外其余单元均不可以位寻址。 8、不可以位寻址的字节单元是不可以逐位操作的。 9、进入中断子程序,在开头用 PUSH PSW 和 SETB RS0 后可以随意使用 R0R7,而不用担心改变主程序的 R0R7。 10、退出中断子程序前,用 POP PSW 就可以自动恢复主程序中的所有工作寄存器。 11、对于 8051,其外部程序存储区地址从 1000H 开始,而对于 8031,从 0000H 开始。 12、在 P1 悬空时,可以将其作为存储单元使用。 13、F0 既可以看作 B 寄存器、B 的 0 位位单元以可以作为 PSW 中的用户标志 0。 14、SFR 中凡地址不能被 8 除尽的寄存器都不能位寻址理因为这些寄存器不允许逐 位改变。 15、MCS-51 元件将程序存储区与数据存储区分开是为了加密程序。 12 第五章 寻址 一、写出以下指令中“源”与“的”的寻址方式: MOV A,#00H MOV 0,A MOV 30H,ACC ADD A,30H SUBB A,B MOV A,R0 MOV R0,A MOV DPTR,#1234H MOVC A,A+PC MOVX DPTR,A JNZ LOOP SJMP stsrt AJMP start LJMP start CLR A SETB C INC DPTR PUSH ACC JMP A+DPTR CLR 30H *二、手工汇编以下程序: 2000H: MOV R0,#40 ;2000H 为程序存放首地址 MOV R3,#5 CLR A LOOP: MOV R0,A DEC A DJNZ R3,LOOP MOV 30H,40H MOV C,30H AJMP 2678H 三、在以下程序中,数 3FH 最终传到了什么单元中? Mov A,#3FH Mov R0,A Mov R0,A 四、为什么说“立即寻址方式只能用于传送常数”? *五、在“LJMP 2345H 指令”中,源是什么?来自哪个存储区间?的又是什么? 它的作用是什么? 六、解释“指令地址”与“指令当前 PC 值”的区别?二者间的联系? 13 七、指令代码:“80H 0FEH”是什么操作?其中的“0FEH”是什么?执行该指令 会产生什么效果? *八、在地址 07FFH 处有一条指令,它的指令代码为:“81H 24H”(AJMP) ,问执 行这条指令的效果是什么? 九、正、误判断,并简述判断论点: 1、LJMP 指令从含义上说可视为立即寻址方式,而与 SJMP 指令对比,又可以说它 是绝对寻址方式。 2、相对寻址方式即以该指令地址加上指令字节数作为坐标原点。 3、凡用 SFR 映象地址进行寻址的均为直接寻址而不是寄存器寻址方式。 4、用工作寄存器 R0R7 寻址的其实就是直接寻址方式。 5、间变址寻址是将寄存器内容作为单元地址。 (JMP A+DPTR 除外) 6、二字节地址寻址的,如 A,DPTR 均不能寻址内部 RAM。 7、一字节地址寻址的,如 A,R0 均不能寻址外部 RAM。 8、在指令中只有 R0、R1 可以用作间址寄存器。 9、只有 R0、R1 的间址才能访问 8052 的 80H0FFH 的内部 RAM。 10、MOV A,R0 当(R0)=40H 时,该指令执行的效果等于 MOV A,40H。 11、MOV R0,A 当 R0 内容为 HEX(HEX 代表任一个单字节数)时,该指令执 行的效果等于 MOV HEX,A。 12、PC 的值决定了在 CPU 内正要执行的指令的地址。 13、PC 值永远指向下一条待执行指令的首地址上。 14、间变址寻址中,变址寄存器 A 中存的是单字节带符号数。 15、用同一条指令取到不同的数可以用直接寻址方式,而要取到不同单元中的数却 要用到 R 间址方式。 14 第六章 指令 练习一 一、按要求写出指令: 1、 将数 7FH 传给由 R1 寻址的内部 RAM 单元中。 2、 交换 A 和 B 内容。 3、 将 R2 内容传给 B。 4、 将 4CH 单元的内容与 5CH 单元的内容交换。 5、 将数 6CH 传给外部 RAM 的 2C63H 单元。 6、 将外部 RAM 的 2000H 单元内容传给 R0 所指的内部 RAM 单元中。 7、将 SP 所指的内部 RAM 内容送到 P2 和 R0 所指的外部 RAM 单元中。 8、交换 2000H 和 2010H 外部 RAM 单元内容。 9、将位单元 30H 与 42H 对换。 二、写出执行以下程序后 A, B 的值,并汇编该程序: 1、 Mov A,3CH Mov B, 4CH Mov R0,B XCH A,R0 XCH A,B Mov A,R0 2、 MOV DPTR, 2000H MOV 20H,3CH MOV R1, 20H MOV A,20H MOVX DPTR,A CXH A,R1 MOVX A,DPTR XCH A,B 练习二 一、按要求写出指令: 15 1、 将 A 中的数减去 B 中的数,结果存入 A 中。 2、 将 B 中的数减去 A 中的数,结果存入 A 中。 3、 用加法指令完成将 R0 所指单元中的数乘 2。 4、 将 B 中的数乘以 A 中的数。 5、 将 B 中的数除以 A 中的数。 6、 将 R1 所指单元内容增 1。 7、将 R0 所指的二字节单元( R0 指在低字节上,下同)内容增 1。 8、将 R0 所指的二字节单元内容减 1。 9、R2R3:R4R5+R6R7 10、R2R3:R4R5 R6R7 二 、写出以下程序执行后 A、C、OV、的值: 1、 MOV A,7FH ADD A,9CH 2、 SETB C MOV A,80H SUBB A,80H、 、 、 3、 MOV A,40H MOV B, 10H DIV AB 4、 MOV A,0C0H MOV B,A MUL AB 5、 MOV A,0FFH MOV B,A INC A DEC B ADD A,B 练习三 一、按要求写出指令: 1、 R1 或上 R2。 2、 R1 与上 R0 所指单元。 3、 用移位指令实现将 R0 所指单元乘 2。 4、 用移位指令实现将 R2R3 除以 2。 5、 取 R5 的补数,仍存于 R5 中。 6、 取反由 A 所指的内部 RAM 单元。 7、 A 异或上 R1R0 所指的外部 RAM 单元。 二、写出以下程序执行后 A 中的值: 1、 MOV B,3EH 16 MOV A,0A5H CPL A XRL A,B 2、 CLR C MOV A,75H RRC A RR A 3、 ORL A,5AH RL A ANL A,94H 练习四 一、手工汇编以下程序,并分析程序执行后 A 中的值: 1、 SETB C CLR A L: CPL A SUBB A,0FFH JNC L 2、 MOV A, 3CH MOV R3, 2CH L: DEC A DJNZ R3,L *3、 CLR A PUSH ACC MOV R0,SP DEC SP DEC R0 MOV SP,R0 POP ACC 4、 7FE0H: MOV A,3FH AJMP L1 L0: CPL A L1: MOV B,02H MUL AB JC L0 *5、 MOV A,#2 17 RL A ADD A,#1 MOVC A+PC RET DB 2CH,0FCH ,7DH,66H ,47H,83H *6、 MOV A,#20H ;本题指出最后一句的操作 PUSH ACC INC A PUSH ACC RET 二、按要求写出小程序: 1、 比较 B 与数 7FH,不相等时转到 LNT。 2、 将 R0 所指的 20 个单元清 0,R0 指在最低地址单元上。 3、 将 A 异或上 B,并且如果 A 低半字节为 0,则转移到 L0,否则转到 L1。 4、 利用堆栈将 A、B 值传给 R2、R3 。 5、 按 R0 所指的单元中的第 6 位(从 0 算起)如果为 1,则转到 LK。 *6、利用 RET 指令跳转到 1234H。 三、正、误判断,并简述判断论点: 1、用 MOV SP,#40H 指令后,即将堆栈起始单元地址定为 40H。 2、PUSH Acc 后,SP 内容为存放 Acc 值的栈地址。 3、POP Acc 后,SP 内容为存入 Acc 值的栈地址。 4、CJNE M1,M2,Lable 执行后 M1,M2 都不改变,只是将 C 按 M1-M2 是否产 生借位而取值,且当 M1 M2 时转到 Lable 处。 5、JZ 是按运算结果为 0 时转移。 6、Ajmp 是在该指令所在区域转移指令。 7、JMP 及 CALL 类指令的“当前 PC 值”仍然是下一条指令的首地址。 8、CALL 类指令所作的操作是将转移目的地址传送给 PC。 9、RET 及 RETI 执行后之所以会返回主程序 CALL 指令或中断处的下一条指令执行, 是因为 CALL 指令或中断操作执行时将“当前 PC 值”入栈。 10、由 CALL 类指令入栈的高 8 位地址先入栈,位于低地址,低 8 位地址后入栈, 位于高地址。 11、每做一次堆栈操作后,堆栈指针 SP 就会自动加 1。 *12、在子程序的 RET 之前用了 1 条 POP 指令,将产生严重的运行混乱。 (子程序中 没有 PUSH 指令,并除了末条 POP 外也没有改变 SP 指针) 。 *13、监控系统初始化子程序中用 MOV SP,# 指令设置堆栈是不允许的。 *14、堆栈指针 SP 设置为 00 是不适宜的。 *15、在子程序中不想回到原主程序去而直接跳向某程序可以用二条 POP 指令之后用 18 LJMP 实现。 *16、子程序可以被多个主程序在不同处调用,因此子程序自身无法了解是哪个主程 序调用了它。 *17、只有相对转移而没有绝对转移指令的程序指令码可以移到别的地址处执行。 四、错误判断: 1、 逐句判断: LL: MOV R2,20H ;子程序入口为 LL MOV DPTR,5C00H L0: MOV R1,F0H MOV A,DPTR XCH B,A MOV A,R2 CJNE B, 70H,L1 L1: JC C,L2 MOV R1,B MOV DPTR,A L2: INC R2 PUSH R2 DEC DPTR POP F0H MOV R1,R2 POP ACC RET 2、 有人编了一个子程序,想完成:“将 30H 开始的 16 个数中大于等于 80H 的单元 内容放入 50H 以后的相应单元中 ”。程序有错,请逐行改正。 有错程序 修改程序 MOV R0, 30H MOV R7, 50H LOOP: MOV R6,16H MOV A,R0 JNB ACC8,NPUT MOV R7,A INC R0 NPUT: INC R7 DJNZ R6,LOOP 19 练习五 编程题 1、 内部 RAM 从 list 单元开始存放一正数表,表中之数作无序排列,并以“1”作结束标志。 编程实现在表中找出最小数。 2、 求 8 个数的平均值,这 8 个数以表格形式存放在从 table 开始的单元中。 3、 比较两个 ASCII 码字符串是否相等。字符串的长度在内部 RAM 41H 单元,第一个字符串 的首地址为 42H,第二个字符串的首地址为 52H。如果两个字符串相等,则置内部 RAM40H 单元为 00H,否则置 40H 单元为 0FFH。 4、 输入缓冲区 inbuf 存有 80 个字节,编程实现将其中所有的组分隔符(1DH )的地址依次压 入 separ 栈中。 5、 求 16 位补码所对应的原码,16 位补码存放在 31H 和 30H 单元,转换后的原码仍放在这两 个单元,低地址存低字节。 6、 设有 100 个有符号数,连续存放在以 2000H 为首地址的 RAM 中,试编程统计其中正数、 负数、零的个数,并把统计结果分别存入 50H,51H ,52H 这三个单元中。 7、 5 个双字节数,存放在外部 RAM 从 barf 开始的单元中,求它们的和,并把和存放在 sum 开 始的单元中,请编程实现。 8、编写双字节有符号数除法子程序。 20 第七、八、九章 综合 一、 简单小程序编制: 注:所有多字节数的低字节都在低地址;R0 或 R1 均指向内部 RAM 的最低字节。 1、 将 30H、31H 单元内容与 T0 计数器的 TL0、TH0 交换。保持其它 R 和 M 不变。 2、将 30H、31H 单元内容与 5C30H、5C31H 交换。保持其它 R 和 M 不变。 3、将 30H、31H 单元内容与 R0 指向的两字节单元交换。保持其它 R 和 M 不变。 4、将 30H、31H 单元内容与 DPTR 指向的两字节单元交换。保持其它 R 和 M 不变。 5、将 30H、31H 单元内容存入 5C30H、5C31H 单元。保持其它 R 和 M 不变。 6、将 30H、31H 单元内容加上数 03C4H 后存入 5C30H、5C31H 单元。 7、将 30H、31H 单元内容减去数 03C4H 后存入 5C30H、5C31H 单元。 8、将 30H、31H 单元内容除以 2 后存入 5C30H、5C31H 单元。 9、将 30H、31H 单元内容乘以 2 后存入 5C30H、5C31H 单元。 10、将 30H、31H 单元内容减 1。保持其它 R 和 M 不变。 11、将 30H、31H 单元内容加 1。保持其它 R 和 M 不变。 12、将外部 RAM 中的 5C30H、5C31H 单元内容乘以 2。保持其它 R 和 M 不变。 13、将外部 RAM 中的 5C30H、5C31H 单元内容除以 2。保持其它 R 和 M 不变。 14、将 30H 的低半字节和 31H 单元的高半字节交换。 15、将 30H 的高半字节和 31H 单元的高半字节交换。 16、将 30H、31H 单元的 4 位 16 进制数的中间两位数交换。 17、如果 INT0 为低,则,位 30H 改为它的值与 P0 口最低位的 “反”相“与”后的值;否 则,清 30H 位。 18、如果 INT0 为低,则,位 30H 改为它的值与 P0 口最高位的 “反”相“或”后的值;否 则,清 30H 位。 19、如果 INT0 为高,则,位 30H 改为它的值与 P0 口最低位相 “或”后的值;否则,取反 30H 位。 20、如果 INT0 为低,则,A 的最低位与 A 的最高位对调;否则,清除 A。 21、如果 INT1 为高,则,A 的最低位改为它的值与 A 的最高位的“反”相“与”后的值; 否则,取反 A。 21 22、改变 30H 单元为加上数 0F7H 后的值,如果产生进位,则,设置 F0 标志;否则,清除 F0 标志。 23、改变 30H 单元为减去数 0F7H 后的值,如果产生进位,则,设置 F0 标志;否则,清除 F0 标志。 24、如果 30H 内容等于数 80H,则,P1.0 置位;否则,P1.0 清零。保持其它 R 和 M 不变。 25、改变 30H、31H 单元内容为乘以 2 后的值,如果产生进位,则,工作寄存器换用寄存器 组 1。 26、改变 30H、31H 单元内容为除以 2 后的值,如果余数为 1,则,工作寄存器换用寄存器 组 3。 27、已知晶振频率为 8MHZ,编一个子程序,延时 150 微秒。保持其它 R 和 M 不变。 28、已知晶振频率为 6MHZ,编一个子程序,延时 30 微秒。保持其它 R 和 M 不变。 29、将从 10H 开始的 64 单元内容异或数 5AH。保持其它 R 和 M 不变。 30、将由 R0 寻址的 32 个单元内容清为零。保持其它 R 和 M 不变。 31、将由 R0 寻址的 32 个单元内容移到 R1 寻址的单元中。保持其它 R 和 M 不变。 32、将由 R0 寻址的 16 个单元内容改为与 R1 寻址的单元相 “异或”后的值。保持其它 R 和 M 不变。 33、将由 R0 寻址的 32 个单元内容改为与 R1 寻址的单元相 “或”后的值。保持其它 R 和 M 不变。 33、将由 DPTR 寻址的 10

温馨提示

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

评论

0/150

提交评论