单片机原理及其接口技术教学指南及习题答案_第1页
单片机原理及其接口技术教学指南及习题答案_第2页
单片机原理及其接口技术教学指南及习题答案_第3页
单片机原理及其接口技术教学指南及习题答案_第4页
单片机原理及其接口技术教学指南及习题答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、高等职业教育电子信息贯通制类教材(计算机技术专业)单片机原理及应用电子教学资料韩太林 主编Publishing House of Electronics Industry北京 · BEIJING前 言为了配合单片机原理与应用课程的教学,体现教材的编写特色,更好地为读者服务,编写了此教学资料。教学资料内容有三个部分:第一部分是教学指南,包括了课程性质与任务、课程内容和要求、教学建议、教学时间分配。第二部分是习题答案,给出了每道习题的详细解答过程。第三部分是电子教案,采用PowerPoint课件形式。教师可以根据不同的教学要求按需选取和重新组合。限于编著者水平,教学资料中有错误或不妥之处

2、,请读者给予批评指正。编 者2003年8月单片机原理及应用教学指南一、课程的性质与任务1.性质微计算机技术是计算机技术的一个重要的分支,它普遍应用于工业控制和过程控制领域。近年来,微计算机技术呈现出百花齐放百家争鸣的态势。世界著名的计算机公司、器件制招商都不同程度的涉及了微处理器的领域。其中inttel公司的MCS-51系列单片微型计算机最具有代表性。单片微型计算机(简称单片机)是指将CPU、存储器、时钟电路、定时器/计数器以及各种输入/输出接口等功能部件制作在一块大规模集成电路芯片上,具有一定的规模和独立功能的计算机。单片机是微型计算机发展和应用的一个重要的分支,单片机的硬件结构和指令系统的

3、功能却是按工业控制要求设计制造的,经过几个阶段的发展,其功能和性能更加完善、卓越,应用也更加普及和广泛。单片机具有体积小、重量轻、灵活性好、抗干扰能力强、可靠性高、面向控制、易于扩展和性价比高等优点。单片机广泛应用与智能仪器仪表、工业控制、通讯设备、家用电器和国防科技尖端计数领域。2.任务我们力图使本书有助于读者采用单片机为各自所从事的学科解决实际的问题。因此,在编写本书的时候,力求深入浅出、通俗易懂,并注重理论联系实际,着重实际应用。本教材避免冗长乏味的讲解,从实际应用出发,采用案例式的教学模式,强调了学习流程的顺畅性,内容前后的关联性、循序渐进、由浅入深地完成一个个主题式的学习。在教材的编

4、写过程中遵循了职业教育的教学规律,突出了“目标教学、任务驱动”这一教学特点,教学目标明确,有的放矢,以引导学生把握单片机的精髓所在。二、预备知识单片微型计算机作为计算机课程的一个重要的分支,读者在学习本书之前,应具备一定的计算机基础知识、电子技术和数字电路的基础知识,这样通过对本书的学习才能获得更好的效果。三、教学提要、课程内容、教学要求第1章 计算机基础知识本章教学内容本章主要介绍了微型计算机与单片微型计算机的基本概念、产生与发展,单片微型计算机的特点,计算机常用的数与代码等。一、计算机普遍采用二进制数,本章简要地介绍了二进制、八进制、十进制、十六进制、BCD码、文字符号代码、计算机中常见的

5、逻辑关系以及计算机中常用的带符号的二进制数。熟悉和掌握上述内容不仅有助于编写阅读计算机指令程序,而且有助于更好的理解、学习和掌握计算机工作过程和原理。二、单片机发展及发展趋势。本章教学要求教学的基本要求,通过本章的学习应达到:(1) 了解微型计算机和单片微型计算机的发展历史,熟悉单片微型计算机的特点。(2) 掌握计算机中“数”的表示方法,各种进制的转换和有符号数的表示方法。(3)了解单片微型计算机的特点,应用领域。习题1答案1-1将下列十进制数转换成二进制和十六进制。(1)18.625 (2)225 (3)210.875答:(1)18.625=(22.5)O=(12.A)H (2)225=(3

6、41)O=(E1)H (3)210.875=(322.7)O=(D2.E)H1- 2将下列十六进制数转换成八进制和十进制。(1)3BH (2) 0AE7.D2H (3)34ABH (4)0FF.EDH答:(1)3BH=(73)O=(59)D (2)0AE7.D2H=(5347.644)O=(2791.820)D (3)34ABH=(32253)O=(13483)D (4)0FF.EDH=(377.732)O=(255.926)D1-3 将下列十进制数转换成BCD码。(1)34 (2)5678 (3)54.234 (4)125.45答: (1)34=(00110100)BCD (3)54.234

7、=(01010100.001000110100) BCD (4)125.45=(000100100101.01000101) BCD1-4 将下列二进制数转换成十六进制、八进制和十进制 (1)10000000B (2)01111111B (3)11100101.101B (4)10101010B答:(1)10000000B=(200)O=(80H)=(128)D (2)01111111B=(177)O=(7FH)=(127)D (3)11100101.101B =(345.5)O=(0E5.AH)=(299.625)D (4)10101010B=(252)O=(AAH)=(170)D1-5 微

8、型计算机通常有哪些部分组成?各有哪些功能特点?答:控制器:发布各种操作命令,控制信号等 运算器:主要进行算术和逻辑运算 存储器:存储程序,数据,中间结果和运算结果 输入/输出接口:原始数据和程序等通过输入接口送到存储器,而处理结果,控制信号等通过输出接口送出。1-6 单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点?答:单片机是将CPU,存储器,输入/输出接口,定时器,串行口等功能模块集成在一个芯片内的微处理器。它具有体积小,重量轻,抗干扰能力强,环境要求不高,价格低廉,可靠性高,灵活性好,开发较容易等特点。 1-7 单片微型计算机主要应用在哪些方面?答:主要应用于智能仪器仪表,机电

9、设备过程控制,自动检测,家用电器和数据处理等多个方面。1-8 为什么说单片微型计算机有较高的性能、价格比和抗干扰能力?答:单片机因为将CPU,存储器,I/O接口,定时器,串行口等功能部件集成在一个芯片上,可以方便的进行控制。其总线在结构上与外部总线分开,提高了抗干扰能力,应用较灵活。第2章 MCS-51单片机结构本章教学内容本章主要介绍了MCS-51系列单片机的内部结构、存储器结构和SRF的功能。一、第一部分单片机内部结构分别从CPU的结构、I/O端口的结构、总线的结构、复位电路及引脚说明等方面做了详细的叙述。二、第二部分存储器结构从程序存储器和数据存储器的结构出发做了详细的论述。三、第三部分

10、详细介绍了ACC、B、PSW、DPTR、T1、T0、SP、SBUF、P0P3等寄存器。本章教学要求1. 熟悉MCS-51单片机CPU内部组成结构、各功能部件的作用。2. 掌握存储器的组织结构,程序存储器(ROM)、数据存储器(RAM)、内部特殊功能寄存器(SFR)的配置情况,熟悉程序状态寄存器(PSW)各位的含义及变化规律。3. 掌握MCS-51单片机引脚功能,包括:P0P3并行I/O口线的定义、控制信号、三总线组成、时钟电路、复位电路和CPU时序。4. 掌握P0P3并行I/O口结构和它们的特点。习题2答案2-1 MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么?答:(1)一个8b

11、it CPU是微处理器的核心,是运算和逻辑计算的中心。 (2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 (3)4K ROM程序存贮器:存贮程序及常用表格。 (4)128B RAM 数据存贮器:存贮一些中间变量和常数等。 (5)两个16bit定时器/计数器:完全硬件定时器。 (6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。 (7)一个可编程全双工串行口 (8)五个中断源2-2 MCS-51单片机的核心器件是什么?它由哪些部分组成?各部分的主要功能是什么?答:核心器件是CPU,由运算器和控制器组成。运算器主要是进行算术运算和

12、逻辑运算。控制器完成程序时序安排,取指,计数,传输等操作。2-3 8031单片机的EA、ALE和PSEN端的功能是什么?答:(1)EA为内部程序存贮器和数据存贮器选择端。高电平时访问内部程序存贮器(PC值小于4KB)。低电平时访问外部程序存贮器。(2)ALE为允许地址锁存,把地址的低字节锁存到外部锁存器。(3)PSEN为外部程序存贮读选通信号输出端。在外部程序存贮器取指令期间,PSEN在每个机器周期内两次有效。2-4 程序计数器PC有多少位?它的主要功能是什么?答:PC有16位,用于存放将要执行的指令的地址。2-5 什么叫溢出?溢出和进位有什么不同?举例说明。 答:MCS-51单片机的运算器是

13、8bit,因为在完成算术运算时,其可以表示的数的范围是有限的,当计算结果超出显示的位数时,会产生不正常结果,这种现象叫溢出。溢出意味着其结果是不正确的。进位只是表示低位向高位有进位。 2-6 单片机复位后,各特殊功能寄存器中的初始化状态是什么?答:复位后大部分特殊功能寄存器都将置零。其中(SP)(PCON)=0xxxxxxx (其中x为任意数)。2-7 在MCS-51单片机在21个特殊功能寄存器中,哪些具有位寻址能力? 答:在21个寄存器中其字节地址可以被8整除的寄存器都可以按位寻址。2-8 MCS-51单片机存储器可分为哪几个空间?如何区分不同存储器空间的寻址?答:可以分为程序存贮器,片内R

14、AM,片外RAM。程序存贮器和片外RAM必须由必须由寄存器间接寻址片内RAM,可以用寄存器寻址,寄存器间接寻址,直接寻址,按位寻址。2-9 程序状态寄存器PSW的作用是什么?答:PSW主要表现CPU运算之后程序状态的信息。2-10 MCS-51单片机P3口具有哪些功能?答:P3口为双功能口。第一种功能可以作为输入输出口。第二种功能 P3.0RXD P3.1TXD P3.2INT0 P3.3INT1 P3.4T0 P3.5T1 P3.6WE P3.7RD2-11 MCS-51单片机的片外总线是哪些总线构成?答:片外数据总线(8根),片外地址总线(16根),片外控制总线(PSEN ,ALE , R

15、D ,WR ,EA)2-12 MCS-51单片机对外有几条专用控制线?答:PSEN , RD , WR , ALE 2-13 什么时候需要复位操作?对复位信号有何要求答:需要在开机,死机,死循环等时进行复位操作。在震荡器运行的情况下,要实现复位操作,必须使RET引脚至少保持两个机器周期(24个震荡周期)的高电平,才能有效复位。2-14 单片机时钟电路有何用途?起什么作用?答:时钟电路为单片机内部提供标准时钟脉冲。时钟发生器把震荡器产生的频率分为两分频,产生一个两向时钟信号P1和P2供单片机使用。单片机的所有的动作都来源于标准脉冲。第3章 指令系统本章教学内容本章主要讲述了MCS-51指令的寻址

16、方式以及各类指令的格式、功能和使用方法。指令主要是用于进行数据操作的,而寻址方式则解决如何取得操作术的问题。MCS-51共有7种寻址方式,即:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址。寻址方式的不同主要在取操作数的方法不同或寻址范围的不同上,因此总结寻址方式时,应从两个方面入手进行。对于具体的指令,由于条数比较多,初学时不宜死记硬背,应掌握指令的格式和功能,在学习下一章程序设计时,多加练习,自然就熟练掌握了。本章教学要求1. 了解MCS-51单片机的指令格式和寻址方式。理解助记符指令和机器代码,指令字节数,指令执行速度。2. 掌握数据传送、堆栈操作指令、

17、数据交换指令、算术运算、逻辑运算与移位操作、控制转移指令、子程序调用及返回指令。3. 理解算术与逻辑运算对程序状态字PSW的影响,以及控制转移指令的用法。习题3答案3-1什么是指令系统?MCS51单片机共有多少种指令?答:MCS-51有5类指令共111条。数据传送类指令29条,算术运算类指令24条,逻辑操作类指令24条,控制转换类指令17条,位操作类指令17条。3-2什么是寻址方式?MCS51单片机有哪几种寻址方式?答:计算机若想完成操作,就要寻找被操作的数据或数据所在的位置。因此在计算机指令系统中规定了若干种寻址操作数的方式,规定的寻址操作的方式称为寻址方式。共7种,寄存器寻址,直接寻址,寄

18、存器间接寻址,立即寻址,变址寻址,位寻址和相对寻址。3-3指出下列指令中画线的操作数的寻址方式MOVXA,DPTR; 寄存器间接寻址MOV DPTR,# 0123H; 立即数寻址MOVCA,A+DPTR; 寄存器间接寻址MUL AB; 寄存器寻址INCDPTR; 寄存器寻址MOV A,30H; 直接寻址MOV A,R1; 寄存器间接寻址SUBBA,R7; 寄存器寻址3-4已知内部数据存储器30H和40H单元的内容分别为70H和71H,执行下列一段程序后,试分析有关单元内容。 MOVR0,#30H; (R0)=30H MOVA,R0; (A)=(R0)=(30H)=70H MOVR0,40H;

19、(R0)=(30H)=(40H)=71H MOV40H,A; (40H)=(A)=70H MOVR0,#60H; (R0)=60H3-5试编写一段程序,将内部数据存储器30H、3lH单元内容传送到外部数据存储器1000H、1001H单元中去。答:MOV DPTR,#1000H MOV A,30H MOVX DPTR,A INC DPTR MOV A,31H MOVX DPTR,A3-6试编写一段程序将外部数据存储器40H单元中的内容传送到0l00H单元。答:MOV DPTR,#0040H MOVX A,DPTR MOV DPTR,#0100H MOVX DPTR,A3-7设(A)5AH,(R1

20、)=30H, (30H)=E0H, CY=1。分析下列各指令执行后A的内容以及对标志位的影响(每条指令都以题中规定的原始数据参加操作)。(1)XCH A,R1 ; (A)=30H,(R1)=5AH(2)XCH A,30H; (A)=0E0H,(30H)=5AH(3)XCH A,R1; (A)=0E0H,(R1)=30H,(30H)=5AH(4)XCHD A,R1; (A)=50H,(R1)=30H,(30H)=EAH(5)SWAP A; (A)=A5H(6)ADD A,R1; (A)=8AH,CY=0,AC=1,OV=0(7)ADD A,30H; (A)=0DAH,CY=1,AC=1,OV=1

21、(8)ADD A,#30H; (A)=8AH,CY=0,AC=1,OV=0(9)ADDC A,30H; (A)=0DBH,CY=1,AC=1,OV=1(10)INC A; (A)=5BH,CY=1(11)SUBB A,30H; (A)=6AH,CY=1,AC=0,OV=1(12)SUBB A,#30H; (A)=2AH,CY=0,AC=0,OV=0(13)DEC A; (A)=59H(14)RL A; (A)=B5H,CY=0(15)RLC A; (A)=B5H,CY=0(16)CPL A; (A)=0A5H(17)CLR A; (A)=00H(18)ANL A,30H; (A)=40H(19

22、)ORL A,R1; (A)=0FAH(20)XRL A,#30H; (A)=0BAH3-8分析下面各段程序中每条指令的执行结果。(1) MOV SP,#50H; (SP)=50HMOV A,#0FH; (A)=OFHMOV B,#0F0H; (B)=0F0HPUSH A; (SP)=51H,(51H)=(A)=0FHPUSH B; (SP)=52H,(52H)=(B)=0F0HPOP B; (B)=(52H)=0F0H,(SP)=51HPOP A; (A)=(51H)=0FH,(SP)=50H(2) MOV A,30H; (A)=30HMOV B,#0AFH; (B)=0AFHMOV R0,

23、#31H; (R0)=31HMOV 30H,#87H; (30H)=87HXCH A,R0; (A)=31H,(R0)=30HXCHD A,R0; (A)=37H,(R0)=30H,(30H)=81HXCH A,B; (A)=0AFH,(B)=37HSWAP A; (A)=0FAH(3) MOV A,#45H; (A)=45HMOV R5,#78H; (R5)=78HADD A,R5; (A)=0CDHDA A; (A)=23HMOV 30H,A; (30H)=23H(4) MOV A ,#83H; (A)=83HMOV R0,#47H; (R0)=47HMOV 47H,#34H; (47H)

24、=34HANL A,#47H; (A)=03HORL 47H,A; (47H)=37H,(A)=03HXRL A,R0; (A)=34H,(R0)=47H,(47H)=37H 3-9将A中的2位压缩BCD码分开后送入60H和6IH单元的低位。答:MOV R0,A ANL A,#0F0H SWAP A MOV 60H,A MOV A,R0 ANL A,#0FH MOV 61H,A3-10试编写一段程序,将R 3R2中的4位BCD码倒序排列。答:MOV A,R2 SWAP A MOV R0,#30H MOV R0,A MOV A,R3 SWAP A MOV R2,A MOV A,R0 MOV R3

25、,A3-11加法和减法指令影响那些标志位?怎么影响的?答:加法和减法执行的结果将影响程序状态寄存器PSW的进位位CY,溢出位OV,辅助进位位AC和奇偶校验位P。 若7位有进位或借位,则CY置1,否则清0 若3位有进位或借位,则AC置1,否则清0 若6位有进(借)位而7位没有进(借)位,或7位有进(借)位而6位没有则置位溢出标志位OV,否则清0 若结果A中1的个数为奇数则P=1,否则P=03-12试分析执行下列指令后,标志位的内容。(1)已知(A)0C3H,ADDA,#0AAH(2)已知(A)0C9H,SUBBA,#54H 答:(1)CY=1 , AC=0 , P=1 (2)CY=1 , AC=

26、1 , P=03-13SJMP指令指令和AJMP指令都是两字节转移指令,它们有什么区别?各自的转移范围是多少?能否用AJMP指令代替程序中的所有的SJMP指令?为什么?答:AJMP是绝对转移指令,指令提供11位目标地址,无条件转移的目标地址范围是从下一条指令开始的2KB空间。 SJMP是相对短转移指令,指令控制程序无条件转向指定地址。该指令的rel是一个带符号的相对偏移量,范围为-128到+127。不能。因为AJMP指令是2KB范围内的无条件跳转指令。AJMP把MCS-51的64KB程序存储空间划分为32个区,每个区为2KB,转移目标地址必须与AJMP下一条指令的第一个字节在同一个2 KB范围

27、内,否则,将引起混乱。而SJMP指令给出的相对转移地址范围为-128到+127,若相对转移在两区之间进行,则与AJMP的要求相矛盾。3-14若SP25H,PC=2345H,标号LABEL所在的地址为3456H,问执行长调用指令“LCALL LABEL”之后,堆栈指针和堆栈内容发生什么变化?PC=?间上述指令改为短调用指令“ACALL LABEL”是否可以?为什么? 答:25+1=26HSP (26H)=48H26+1=27HSP (27H)=23HPC+1PC因此PC=2348H3-15为什么SJMP指令的rel=0FEH时,间实现单指令死循环?若要程序转向目标地址为0F75H,而转移指令“S

28、JMP rel”的地址为0F46H,则偏移量rel为多少?答:因为SJMP的rel是一个带符号的相对偏移量,范围为-128到+127。所以当rel=0FEH时,实现单指令死循环。Rel=2EH3-16试编写段程序,将P1口的高5位置位,低3位不变。答:MOV A,#0FBH ORL P1,A3-17试编写段程序,将累加器A中的负数转换为其补码。答:MOV R0,A ANL A,#80H JNZ LP MOV A,R0LP: MOV A,R0 CPL A INC A3-18试编写段程序,将R3R2中的双字节负数转换成补码。答:MOV A,R3 ANL A,#80H JNZ LP LP : MOV

29、 A,R3 CPL A INC A MOV R3,A MOV A,R2 CPL A INC A MOV R2,A3-19试编写段程序,将R2中的各位倒序排列后送入R3中。答:MOV A,R2 RLC A MOV 00H,C RLC A MOV 01H,C RLC A MOV 02H,C RLC A MOV 03H,C RLC A MOV 04H,C RLC A MOV 05H,C RLC A MOV 06H,C RLC A MOV 07H,C MOV R3,20H3-20试编写段程序,将R3中的数乘4(用移位指令)。答:MOV A,R3 CLR C RLC A CLR C RLC AMOV R

30、3,A第4章 汇编语言程序设计本章教学内容本章主要介绍了MCS-51单片机汇编语言的程序格式,汇编方式以及汇编语言程序设计的基本方法。此外还分别介绍了简单程序、分支程序、循环程序、查表程序、子程序等实例。每一种计算机都有自己的指令系统和汇编语言,汇编语言是一种面向机器的语言。汇编语言程序有一定的格式和结构,一个程序通常由若干个语句组成,每个语句即为一条指令,占一行。一个语句一般由标号、操作码、操作数三部分组成。简单程序又称顺序程序,是一种顺序执行的程序,在这种程序中,没有分支、没有循环、也没有子程序调用。在结构上简单,能完成一定的功能,是构成复杂程序的基础。分支程序是一种根据对某种条件的判断结

31、果,决定程序不同走向的一种程序。分支的选择可通过条件转移指令、转移指令表和转移地址表等方式实现,分支程序从结构上可分为单分支、多分支基本结构。循环程序是一种按照某种控制规律重复执行若干次,以便用尖端程序完成大量处理任务的程序。采用循环程序不仅可以缩短程序的长度,节约存储空间,而且可以提高编程效率和质量。循环程序有计数控制和条件控制两种方式,不同控制方式由不同指令实现。无论是哪一种循环结构,循环程序通常由循环初值、循环体、修改指针、循环控制和结束处理五个部分组成。循环程序又可分为单循环和多重循环。查表程序是一种常用的程序,利用查表程序可以十分方便地完成数据补偿、转换、计数等各种功能,所谓调查表,

32、就是根据变量X,在表格中寻找Y,使Yf(X)。MCS-51单片机指令系统向用户提供了两条极有用的查表指令。查表程序具有机构简单、执行速度快等优点。子程序的结构与主程序基本相同, 它可以有简单结构、分支结构、循环结构组成。子程序是一种具有独立功能,且能被其他程序调用的程序。子程序的特点是执行过程中需要由其他程序来调用,子程序运行结束又需要返回指令使其回到调用该程序的程序中。在调用子程序过程中常常需要解决好主程序与子程序之间的参数传递和现场保护、现场恢复等问题。正确理解和熟练运用单片机指令系统并根据实际应用需要编写出各种汇编语言程序是本课程一个重要的教学内容,同时也是深入学习,理解和熟悉单片机硬件

33、只是的一种行之有效的途径和方法。对于一个设计题目,可以编写出各种不同形式的程序,怎样才能较快地完成单片机应用程序的设计,除了需要多阅读各种使用程序,吸取他人经验,掌握一些基本程序设计方法,技巧外,还应尽可能地收集合适的,现成的程序模块。有的可直接借用,有的仅作少量修改,经过有机组合,便可高效地完成程序设计任务。本章教学要求1. 正确理解汇编语言和汇编基本概念,掌握程序设计的一般步骤。2. 了解伪指令的格式和用途。3. 掌握汇编语言程序设计的语句格式,基本程序结构和设计方法。4. 掌握程序设计的几种基本结构形式。5. 通过算术运算和非数值操作及子程序中的简单程序,掌握汇编语言程序设计方法。习题4

34、答案4-1、简单程序它有什么特点?答:简单程序是一种顺序执行的程序。在这种程序中没有分支,没有循环,没有子程序调用。结构简单,能完成一定功能,是构成复杂程序的基础。4-2、什么是分支程序?如何判断分支条件?答:是一种根据对某种条件的判断结果,决定程序不同走向的一种程序。 可以通过条件转移指令,转移指令表和转移地址表进行判断。4-3、循环程序通常由哪几个部分组成?在编写循环程序时应注意什么?答:由循环初值,循环体,修改指针,循环控制和结束处理五部分组成。 应注意(1) 给计数器赋初值作为循环次数,每循环一次都要对其进行修改(2) 判断控制变量是否满足终值条件,不满足则转去重复执行循环工作部分,满

35、足则顺序执行,退出循环。(3) 在多重循环中只允许外重循环嵌套内重循环程序,而不允许循环体互相交叉。另外,也不允许从循环程序的外部跳入循环程序的内部。4-4、什么情况下需要采用子程序设计?答:同一个程序中,往往有许多地方都需要执行同样的一项任务,而该任务又并非规则情况,不能用循环程序来实现,这时,可以对这项任务独立地进行编写,形成一个子程序。在原来的主程序中,需要执行该任务时,调用子程序,执行完该任务后,又返回主程序,继续以后的操作。4-5、阅读下段程序,给出指令语句注释,已知该程序为两个8伪无符号数求和程序,两位无符号数分别存放于片内RAM的20H、21H单元中,结果存在22H单元。 ORG

36、 8000H; 设置起始地址为8000H,表示后续目标程序从8000 H开始存放 MOV R0,#20H; (R0)=20H MOV A,R0; (A)=(R0)=(20H) INC R0; (R0)=21H ADD A,R0; (A)=(A)+(R0) INC R0; (R0)=22H MOV R0,A; (R0)=(A) END4-6、单片机晶振频率为12MHz,一个机器周期为1微妙,执行一条DJNZ指令需要2个机器周期,阅读下面程序说明其程序结构,并指出该程序完成的功能。 DEL: MOV R7,#200 DEL1: MOV R6,#125 DEL2: DJNZ R6,DEL2 DJNZ

37、 R7,DEL1答:延时0.05秒4-7、阅读下面程序,说明每条指令语句的作用,指令执行后SP=? A=? B=? ORG 4000H MOV SP,#40H MOV A,#30H LCALL 0500H ADD A,#10H MOV B,A L1: SJMP L1 ORG 0500H MOV DPTR,#0009H PUSH DPL PUSH DPH MOV A,#11H MOV B,ARET答:SP=42H,A=11H,B=11H4-8、阅读下段程序,说明每条指令语句的作用,指令执行后,R0? MOV R0,#0AFH; (R0)=0AFH MOV A,R0; (A)=0AFH SWAP

38、A; (A)=0FAH XCH A,R0; (A)=0AFH,(R0)=0FAH4-9、阅读下段程序,若要用MOV指令替代其中的交换指令而不改变程序的逻辑功能,应如何修改?设20H中存放的是两个四位二进制数。 MOV R1,#20H XCHD A,R1 ADD A,#01H XCHD A,R1 XCH A,R1 ADD A,#01H XCH A,R1答:MOV R1,#20H MOV A,R1 ADD A,#01H MOV R1,A DEC R14-10、编程将片内35H55H单元中内容送到以3000H为首的存储区中。答:MOV R0,#35H MOV R2,#21H MOV DPTR,#30

39、00H LP:MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LP RET4-11、编程计算片内RAM区50H57H八个单元中数的算术平均值,结果存放于5AH中。答:MOV R0,#50H MOV A,R0 MOV R1,#7 LP: INC R0 CLR C ADDC A,R0 DJNZ R1,LP MOV B,#8 DIV AB MOV R0,#5AH MOV R0,A4-12、编写对一个多字节数作乘10的运算子程序。答:MOV A,R1MOV R6,AMOV A,R0MOV R5,AMOV A,R2ADD A,01HMOV 26H,AMOV R7

40、,AMOV A,R4MOV R0,ACLEAR : MOV R0,#00HINC R0DJNZ R7,CLEARMOV A,R4MOV R7,AMOV 27H,R7MOV 20H,R2 LP0:MOV A,R5 MOV R0,AMOV A,0AHMOV B,R1MUL ABACALL ADDMINC R1DJNZ R2,LP0MOV R2,20HMOV A,R6MOV R1,AMOV A,R7INC AMOV R7,AMOV R4,AINC R5DJNZ R3,LP0MOV R4,27HMOV R5,26HRETADDM:MOV 21H,AMOV A,R4MOV R0,AMOV A,21HAD

41、D A,0AHMOV R0,AMOV A,BINC R0ADDC A,R0MOV R0,AINC R0MOV A,R0ADDC A,#00HMOV R0,ADEC R0MOV A,R0MOV R4,ARET4-13、设有两个长度均为15的数组,分别存放在以2000H和2100H为首地址的存储区中,试编程求其对应项之和,结果存放到以2200H为首地址的存储区中。答:MOV R1,#15MOV R7,#20HMOV R6,#00HMOV R3,#21HMOV R2,#00HLP: MOV DPH,R7MOV DPL,R6MOVX A,DPTRMOV R0,AINC DPTRMOV R7,DPHMO

42、V R6,DPLMOV DPH,R3MOV DPL,R2MOV A,DPTRCLR CADDC A,R0PUSH AINC DPTRMOV R3,DPHMOV R2,DPLDJNZ R1,LPMOV DPTR,220EHMOV R1,#15LP1:POP AMOVX DPTR,ADEC DPTRDJNZ R1,LPA4-14、试编程把以200CH为首地址的连续50个单元的内容按升序排列,存放到以3000H为首地址的存储区中。答:ROLE:MOV DPTR,#200CH MOVX A,DPTRMOV R1,AMOV A,#50MOV R5,ACLR 00HDEC R5MOV A,R1LP0: M

43、OV R3,A INC R1CLR CMOV A,R1SUBB A,R3JNC LP1SETB 00HMOV A,R3XCH A,R1DEC R1XCH A,R1INC R1LP1:MOV A,R1 PUSH A DJNZ R5,LP0 JB 00H,ROLEMOV DPTR,#3031H MOV R5,#50LP2:POP A MOVX DPTR,A DEC DPTR DJNZ LP2RET4-15、设有100个无符号数,连续存放在以2000H为首地址的存储区中,试编程统计奇数和偶数的个数。答:MOV DPTR,#2000H MOV R2,#100H MOV R1,#00H;R1存储奇数的个

44、数 MOV R0,#00H;R0存储偶数的个数 LP:MOV A,DPTR ANL A,#01H JZ LP1 INC R1 SJMP LP2LP1:INC R0 SJMP LP2LP2:INC DPTRDJNZ R2,LPRET4-16、将片外数据存储器地址为1000H1030H的数据块,全部搬迁到片内RAM 30H60H中,并将原数据块区域全部清零。答:MOV R0,#30H MOV R2,#31H MOV DPTR ,#1000HLP:MOVX A,DPTR MOV R0,A AND A,#00H MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LP RET4-1

45、7、从20H单元开始有一无符号数据块,其长度在20H单元。求出数据块中最小值,并存入21H单元。答:MOV R0,#20H MOV R2,#20HMIN:MOV A,R0 MOV R1,A DEC R2 MOV A,R1LP0:MOV R3,A INC R1 CLR C SUBB A,R1 JC LP1 MOV A,R1 SJMP LP2LP1: MOV A,R3LP2:DJNZ R2,LP0 INC R0 MOV 21H,A4-18、试编写一双字节有符号数除法子程序。答:说明:入口:R5(高),R4(低),被除数;R3(高),R2(低),非零除数出口:R5(高),R4(低),商R7(高),R

46、6(低),余数程序如下:SDDIV:MOV A,R5 ;求被除数符号 ANL A,#80H MOV RO,A JZ NEG2 NEG1:MOV A,R5 ;被除数求补CPL AINC AMOV A,R5MOV A,R4CPL AINC AMOV A,R4NEG2:MOV A,R3 ANL A,#80H MOV R1,A JZ SDIV MOV A,R3 ;除数求补 CPL A INC A MOV R3,A MOV A,R2 CPL A INC A MOV R2,ABINDIV:CLR A MOV R7,AMOV R6,AMOV R0,#10H ;除法移位次数 LP:CLR CMOV A,R4R

47、LC AMOV R4,AMOV A,R5RLC AMOV R5,AMOV A,R6RLC AMOV R6,AMOV A,R7RLC ALP1:MOV A,R6 ;部分余数减除数SUBB A,R2MOV R1,AMOV A,R7SUBB A,R3JC SMALLMOV R7,AMOV A,R1MOV R6,AINC R4 ;商加1SJMP LP1SMALL:DJNZ R0,LPMOV 20H,R7 ;四舍五入JB 07H,ADD1CLR CMOV A,R6RLC ASUBB A,R3JC RETURNJNZ ADD1MOV A,R6SUBB A,R2JC SDIVADD1:MOV A,R4 ;商加1 ADD A,#01H MOV R4,A MOV A,R5 ADDC A,#00H MOV R5,ASDIV:MOV A,R0 ;求商的

温馨提示

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

评论

0/150

提交评论