单片机习题参考答案_第1页
单片机习题参考答案_第2页
单片机习题参考答案_第3页
单片机习题参考答案_第4页
单片机习题参考答案_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、铁道社单片机习题集参考答案习题一一、选择题1. 十进制121转换为8位二进制数是( A )。A01111001B B01110111B C01101110B D10001010B2. 十进制数112.375转换成十六进制数是( B )。A70.5H B70.6H C71.5H D71.6H3. 十进制254.28转换为BCD码是( D )。A0011010100.101000 B010001010100.00110000 C1101010100.00101 D001001010100.001010004. 11101111101.1B=( A )。A77D.8H B77C.8H C77D.1H

2、 D77C.1H5. ABC.DEH=( D ) B。A101010111100.11101111 B010101100111.10001001C101111001101.11101111 D101010111100.110111106. 数字符号0和9的ASCII码十进制表示为( C )。A30、39 B30H、39H C48、57 D48H、57H7. 一个字节的十六进制数最大相当于十进制数的( B )。A256 B255 C254 D1008. 将BCD码0011011101010010转换为十进制数,应为( A )。A3752 B1BA90 C3964 D2725二、简答题1. 什么是

3、单片机? 答:把微型计算机的根本功能部件:中央处理器CPU、存储器、输入/输出接口、定时器/计数器、中断系统等多种资源集成在一个半导体芯片上,使得一块集成电路芯片就能构成一个完整的微型计算机。这种集成电路芯片被称为单片微型计算机single chip microcomputer,简称单片机。2. 单片机主要应用于哪些领域?答:(1) 生产自动化 (2) 实时测控 (3) 智能化产品 (4) 智能化仪表 (5) 信息通信技术 (6) 科学研究 (7) 国防现代化3. 单片机应用系统由哪几局部组成?答:单片机应用系统由单片机、外部存储器、输入通道、输出通道等局部组成4. MCS-51系列中8031

4、,8051,8751有什么区别?答:8031/8051/8751 这种芯片常称为 8051子系列,它们之间的区别仅在于片内程序存储器不同。8031片内无程序存储器,8051片内有KB的ROM,8751片内有4KB的EPROM,其它结构性能相同。其中8031易于开发,价格低廉,应用广泛5. 为什么单片机又称为嵌入式微控制器?答:单片机在应用时通常装入到各种智能化产品之中,所以又称嵌入式微控制器(Embedded Micro Controller Unit EMCU)。单片机应用系统就是典型的嵌入式系统。 嵌入式计算机系统,是作为其他系统的组成局部使用的。由于通用计算机系统有限的可靠性、较高的价位

5、及庞大的身躯,限制了其在嵌入式系统的广泛应用,尤其限制了以嵌入式计算机系统作为核心控制产品的开展。单片机以较小的体积、现场运行环境的高可靠性满足了许多对象的嵌入式应用要求。在嵌入式系统中,单片机是最重要也是应用最多的智能核心器件。6. 在51子系列单片机中,程序存储器和数据存储器最大可扩展为多少字节?答:在51子系列单片机中,片外程序存储器和数据存储器最大可扩展为64K字节。7. 在单片机中,片内ROM的配置有几种形式?用户应根据什么原那么选用?答:在单片机中,片内ROM的配置有3种形式?用户应根据实用原那么选用。如:片内驻留掩膜ROM配置的单片机,用户无法自行改写片内的程序,推广应用受到限制

6、;片内驻留EPROM配置的单片机,用户可用开发工具把应用程序写入片内EPROM,该用户带来极大方便,简化系统结构,易于推广应用;片内无ROM配置的单片机,用户必须外接片外EPROM作为程序存储器,其容量可视需要灵活配置。三、计算题1. 将以下十进制数转换为十六进制和二进制数。 (1) 44.375=2C.6H=101100.011B(2) 171=ABH =10101011B(3) 0.6875=0.BH =0.1011B(4) 127.65625=7F.A8H =1111111.10101B2. 将以下十六进制数转换为二进制和十进制数。(1) 7E2H= 11111100010 B =202

7、1(2) 1FFFH= 1111111111111 B =8191(3) 3200H= 11001000000000 B =12800(4) F7H= 11110111 B =2473. 将以下二进制带符号数,分别用原码和补码表示。 (1) +1010011B +1010011B原=+1010011B补=01010011B (2) -01011010B-01011010B原=11011010B -01011010B补=10100110B(3) +0101010B +0101010B原=+0101010B补=00101010B(4) -0111100B -0111100B原=10111100B

8、-0111100B补=11000100B4. 以下机器数为带符号数的补码,试写出他们对应的真值。 (1) E2HE2H真值=-30(2) 1FH1FH真值=+31(3) 00111100B00111100B真值=+60(4) 11000011B 11000011B真值=-615. 将以下BCD码转换为十进制数。 (1) BCD码0011011101010010转换为十进制数为3752 (2) BCD码1001011010000100转换为十进制数为96846. X、Y,试分别计算X+Y补和X-Y补,并指出是否产生溢出。 (1) X+1001110,Y+0010110X+Y补01100100 不

9、会产生溢出X-Y补00111000 不会产生溢出 (2) X+0101101, Y-1100100X+Y补11001001 不会产生溢出X-Y补10010001 产生溢出 (3) X-0101110, Y+0111011 (4) X-1000101, Y-0110011习题二一、选择题1. 在MCS-51单片机中,DPTR和SP分别是 C 的存放器ADPTR和SP均为8位 BDPTR为8位,SP为16位CDPTR为16位,SP为8位 DDPTR和SP均为16位2. 在MCS51单片机中,地址总线和数据总线分别是 D 条。A均为8条 B地址总线为8条,数据总线为16条C均为16位 D地址总线为1

10、6条,数据总线8条3. 决定程序执行顺序的存放器是 B 。A程序是否有转移指令B指令地址存放器程序计数器PC C累加器A D堆栈指针SP4. MCS-51单片机有 B 条引脚。A28 B40 C20 D325. MCS-51单片机的一个指令周期包括 A 个机器周期。A14 B6 C12 D26. R0R7所在的工作存放器区是由 A 来选定的。APSW存放器的RS1和RS0 BCPUC内部数据存贮器 D程序7. 8031单片机的外部程序存储器的读选通信号是 D 有效。A输入,高电平 B输出,高电平C输入,低电平 D输出,低电平8. 在MCS-51单片机中,PC的初值和P0、P1、P2、P3的初值

11、为 A 。APC的初值为0000H,P0、P1、P2、P3的初值为FFHBPC的初值为0003H,P0、P1、P2、P3的初值为00HCPC的初值为0000H,P0、P1、P2、P3的初值为00HDPC的初值为0003H,P0、P1、P2、P3的初值为FFH9. 单片机存储器在物理上它们是 D 个相互独立的存贮器空间。A1 B2 C3 D410. MCS-51单片机的工作存放器区的地址范围是 A 。A00H1FH B00H0FH C00H07H D00H08H二、简答题18051有多少个特殊功能存放器?它们可以分为几组?各完成什么主要功能?答:8051有21个特殊功能存放器;2决定程序执行顺序

12、的存放器是哪个?它是几位存放器?是特殊功能存放器吗?答:决定程序执行顺序的存放器是程序计数器PC;它是16位存放器;不是特殊功能存放器。3DPTR是什么存放器?它的作用是什么?它是由哪几个存放器组成?答: DPTR数据地址指针是一个16位的专用地址指针存放器,它由DPH和DPL这两个特殊功能存放器组成。DPH是DPTR的高8位,DPL是DPTR的低8位,DPTR用于存放16位地址,可对外部数据存储器RAM64KB(0000H0FFFFH)地址空间寻址。48051的工作存放器分成几个组?每组为多少个单元?8051复位后,工作存放器位于哪一组?答:8051的工作存放器分成4组;每组8个单元;805

13、1复位后工作存放器位于0组。5MCS-51引脚中有多少I/O线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位?答:MCS-51引脚中有多少32条线;它们由P2、P0口构成单片机对外的地址总线,由P0口分时使用构成数据总线;地址总线和数据总线各是16位和8位。6什么叫堆栈?堆栈指针SP的作用是什么?8051单片机堆栈的容量不能超过多少字节?答:在程序中往往需要一个后进先出LIFO的RAM区域,用于调用子程序响应中断时的现场保护,这种LIFO的缓冲区称为堆栈。堆栈指针SP的作用是在压栈时SP加1,在出栈时SP减1,始终指向当前的栈顶。堆栈原那么上可以设在内部RAM的任

14、意区域,但由于00H1FH为工作存放器区,20H2FH为位寻址区,所以堆栈一般设在30H7FH的范围之内,这个区域只能字节寻址。8051单片机堆栈的容量不能超过80个字节。78051单片机的内部数据存贮器可以分为几个不同区域?各有什么特点?答:对于8051单片机,其片内有256字节的数据存储器地址空间,可把它们的物理地址空间划分成四个用途不同的区域。低128字节地址空间00H7FH为片内数据存储器区,包含(1)工作存放器区、(2) 位寻址区、3数据缓冲区和堆栈区。高128字节地址空间80HFFH为特殊功能存放器区SFR。8MCS-51单片机程序存储器的寻址范围是多少?8051单片机可以配置的存

15、贮器最大容量是多少? 答:MCS-51单片机程序存储器的寻址范围是0000HFFFFH;8051单片机可以配置的存贮器最大容量是64KB。98051单片机对外有几条专用控制线?其功能是什么?答:8051单片机对外有4条专用控制线;ALE/:ALE为地址锁存允许信号。在访问外部存储器时,ALE用来把扩展地址低8位锁存到外部锁存器。在不访问外部存储器时,ALE引脚以不变的频率时钟振荡器频率的1/6周期性地发出正脉冲信号,因而它又可用作外部定时或其它需要。但要注意,在遇到访问外部数据存储器时,会丧失一个ALE脉冲,ALE能驱动8个LSTTL负载。在8751单片机内部EPROM编程期间,此引脚接编程脉

16、冲(功能)。RST/VPD:RST为复位信号输入端。当RST引脚持续接入两个机器周期(24个时钟周期)以上的高电平时,使单片机完成复位操作。此引脚还可以接入备用电源。当主电源Vcc 一旦发生断电(称掉电或失电),降到一定低电压值时,可由VPD向内部RAM提供电源,以保护片内RAM中的信息不丧失,使上电后能继续正常运行有关此方面的电路可查阅其它书籍。:外部程序存储器ROM 的选通信号。当从外部程序存储器取指令或数据期间,产生负脉冲作为外部ROM的选通信号。而在访问外部数据RAM或片内ROM时,不会产生有效的信号。可驱动8个LSTTL负载。/VPP :访问外部程序存储器控制信号。对8051和807

17、1,当为高电平时,假设访问的地址空间在04KB0000H0FFFH范围内,CPU访问片内程序存储器;假设访问的地址超出4KB时,CPU将自动执行外部程序存储器的程序,即访问片外程序存储器;当为低电平时,只能访问片外程序存储器。对于8031,必须接地,只能访问片外程序存储器。第二功能为对8751的EPROM编程期间,接+21V编程电源。10什么叫指令周期?什么叫机器周期?MCS-51的一个机器周期包括多少时钟周期?答:指令周期指执行一条指令所占用的全部时间;假设把一条指令的执行过程划分为几个根本操作,那么完成一个根本操作所需的时间称为机器周期;MCS-51的一个机器周期包括6个时钟周期。11为什

18、么要了解CPU的时序?答:了解CPU的时序有助于程序设计时计算程序段的执行时间。128051是低电平复位还是高电平复位?复位后,P0P3口处于什么状态?答:8051是高电平复位;复位后,P0P3口处于全“1状态138051的时钟周期,机器周期,指令周期是如何分配的?当振荡频率为10MHz时,一个机器周期为多少微秒?答:8051的一个指令周期通常由14个机器周期组成;一个机器周期由6个时钟周期组成;当振荡频率为10MHz时,一个机器周期为0.2微秒。14在8051扩展系统中,片外程序存储器和片外数据存储器共处同地址空间,为什么不会发生总线冲突?答:访问片外程序存储器使用MOVC类指令、访问片外数

19、据存储器使用MOVX类指令,因使用不同的指令产生不同的控制信号,所以不会发生总线冲突。158051的P3口具有哪些第二功能?答:P3.0的第二功能是RXD(串行输入口)P3.1的第二功能是 TXD(串行输出口) P3.2的第二功能是 (外部中断0输入)P3.3的第二功能是(外部中断1输入)P3.4的第二功能是T0(定时器0外部输入)P3.5 的第二功能是T1(定时器1外部输入)P3.6的第二功能是(外部数据存储器写脉冲输出)P3.7的第二功能是(外部数据存储器读脉冲输出)16位地址7CH与字节地址7CH有什么区别?位地址7CH具体在内存中什么位置?答:位地址7CH指向一个存储位的地址;字节地址

20、7CH指向一个存储单元的地址;位地址7CH在内存中字节地址为2FH的D4位。17程序状态字PSW的作用是什么?常用的状态标志有哪几位?作用是什么?答:程序状态字存放器PSW相当于标志存放器,用于存放指令执行结果的一些特征,供程序查询和判别之用。常用的状态标志有6位。CY:进位标志;AC:辅助进位;RS1和RS0:工作存放器组选择位;OV:溢出标志;P:奇偶标志。18在程序存储器中,0000H,0003H,000BH,0013H,001BH,0023H这6个单元有什么特定的含义?答:在程序存储器中,有六个单元是分配给系统使用的,具有特定的含义。0000H:单片机系统复位后,PC=0000H,即程

21、序从0000H开始执行指令。通常在0000H00002H单元安排一条无条件转移指令,使之转向主程序的入口地址。0003H:外部中断0入口地址。000BH:定时器0溢出中断入口地址。0013H:外部中断1入口地址。001BH:定时器1溢出中断入口地址。0023H:串行口中断入口地址。19假设P1P3口作通用I/O口使用,为什么把它们称为准双向口?答:用于输入时,必须先向相应端口的锁存器写入“1。习题三一、简答题1. 简述以下名词术语的根本概念: 指令、指令系统、程序、汇编语言指令。2. MCS-51 单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?3. 要访问特殊功能存放器和片外数据存储器,

22、应采用哪些寻址方式?4. MCS-51 单片机的指令系统可分为哪几类?试说明各类指令的功能。5. 外部数据传送指令有哪几条?试比拟下面每一组中两条指令的区别。(1) MOVX A,R0 ; MOVX A,DPTR MOVX A,R0 和MOVX A,DPTR指令均为外部数据传送指令,但访问的存储空间大小不同(2) MOVX R0,A ; MOVX DPTR,A 同上(3) MOVX A,R0 ; MOVX R0,A A与外部数据存储器和外部数据存储器与A 之间的传送6. 在 MCS-51 单片机片内RAM中,(30H)= 38H,(38H)= 40H,(40H)= 48H,(48H)= 90H

23、,分析下段程序中各指令的功能;说明源操作数的寻址方式,以及按序执行每条指令后的结果。 MOV A,40H ;直接寻址 A=48HMOV R0,A ;存放器寻址 R0=48HMOV R0,30H ;直接寻址 (48H)=38HMOV 40H,38H ;直接寻址 (40H)=40HMOV R0,30H;直接寻址 R0=38HMOV 90H,R0;存放器寻址 (90H)=38HMOV 48H,# 30H;立即寻址 (48H)=30HMOV A,R0;存放器间接寻址A=40H7. DA A指令的作用是什么?怎样使用? DA A指令的作用是在进行BCD码运算时,跟在ADD和ADDC指令之后,将相加后存放

24、在累加器A中的结果进行调整修正。8. 试编程将片外数据存储器50H中的内容传送到片内RAM 54H 单元中。 MOVR0,#50H MOVXA,R0 MOV54H,A9. 试编程将存放器 R7 的内容传送到 R1中去。 MOV A,R7 MOV R1,A 10. 用两种方法实现累加器A与存放器B的内容交换。 XCH A,B 或 MOV R0,A MOV A,B MOV B,R011. 试编程将片外 RAM 40H 单元的内容与 R1 的内容交换。 MOV B,R1 MOVR0,#40H MOVX A,R0 MOV R1,AMOVA,B MOVX R0,A12. 假设要完成以下的数据传送,应如何

25、用MCS-51的指令来实现?1R1内容传送到R0。2外部RAM 20H单元内容R0。3外部RAM 20H单元内容送内部RAM 20H单元。4外部RAM 1000H单元内容送内部RAM 20H单元。5外部ROM 20H单元内容R0。6外部ROM 2000H单元内容送内部RAM 20H单元。13. :A= 0C9H,B= 8DH,CY= 1。 执行指令 ADDC A,B 结果如何? A=57H执行指令 SUBB A,B 结果如何? A=3BH14. 列举4条能使累加器 A清零的指令。 CLR A MOV A,#00H AND A,#00H XOR A,ACC15. 试用 3 种方法将累加器 A 中

26、无符号数乘 2。 1) MOV B,#02 MUL AB 2) RL A 3) ADD A,ACC16. 分析以下指令执行后, A及PSW中进位位CY、奇偶位P和溢出位OV的值。 (1) 当 A = 5BH 时; ADDA,# 8CH (2) 当 A = 5BH 时; ANLA,# 7AH (3) 当 A = 5BH 时; XRLA,# 7FH (4) 当 A = 5BH,CY=1 时 ;SUBB A,# 0E8H 17. 试说明指令 CJNE R1,7AH,10H 的作用。假设本指令地址为250H,其转移地址是多少? R1与7AH比拟不等于转移,转移的偏移量为10H;其转移地址是263H18

27、. 参照例题21假设系统的晶振频率为 5MHz,求子程序 DELAY 的延时时间。假设想加长或缩短延时时间,应怎样修改? 晶振频率为 5MHz时,1M=2.4微秒,子程序 DELAY 的延时时间共为1002*2.4=2404.8微秒;假设想加长或缩短延时时间可以增加/减少NOP指令或增加/减少循环19. 试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清“0”。MOV A,#0F0H MOV DPTR,#2100H MOVX DPTR,A20. 试编程将内部数据存储器40H单元的第0位和第7位置“1”,其余位变反。 MOV A,40HCPL A SETB ACC.0SETB

28、ACC.7MOV 40H,A21. 将 ACC.5 与80H位相与的结果,通过 P1.4 输出。 MOV C,80H ANL C,ACC.5 MOV P1.4,C22. 使用位操作指令,求下面逻辑方程: (1) P1.7=ACC.0(B.0P2.1) MOV C,B.0ORL C,P2.1MOV 30H,CMOV C,ACC.0ANL C,30HORL C,/P3.2MOV P1.7,C (2) PSW.5=P1.3ACC.2B.5MOV C,P1.3ANL C, ACC.2ORL C, B.5ANL C,/P1.1MOV PSW.5,C(3) P2.3= B.4P1.0 根本同上 三、分析计

29、算1. A7AH,R030H,(30H)A5H,PSW81H。问执行以下各指令的结果(每条指令都以题中规定的数据参加操作)。(1) XCHA,R0A30H R07AH P0 (2) XCHA,30HAA5H (30H)7AH P0 (3) XCHA,R0AA5H (30H)7AH P0 (4) XCHDA,R0A75H (30H)AAH P1 (5) SWAPA AA7H P1 (6) ADDA,R0 AAAH CY0 OV1 P0 (7) ADDA,30H A1FH CY1 OV1 P1 (8) ADDA,30H AAAH CY0 OV1 P0 (9) ADDCA,R0 AABH CY0 O

30、V1 P1 (10)SUBBA,30H AD4H CY1 OV0 P0 (11)ADDA,30H A CY OV P (12)DAA A CY P (13)RLA A CY P (14)RLCA A CY P (15) CJNEA,30H,00 A CY P (16) CJNEA,30H,00 A CY P 2. 设A82H,R017H,(17H)34H,问执行以下指令后A? ANLA,17H;A=02H ORL17H,A;A=02H (17H)=36H XRLA,R0;A=34H CPLA;A=CBH3. :A75H,PSW81H,转移指令所在地址为2080H,当执行以下指令后,PC值等于多

31、少? (1) 执行JNZ12H后,PC值?PC2094H (2) 执行JNC4H后, PC值?PC2082H (3) 执行JB P,55H后, PC值? PC20D8H(4) 执行JBC AC,78H后, PC值?PC2083H (5) 执行CJNEA,50H,9AH后,PC值? PC201DH (6) 执行DJNZ PSW,0BCH后,PC值? PC203FH4. SP25H,PC2345H,(24H)12H,(25H)34H。问此时执行RET指令以后,SP?PC?执行RET指令以后,SP23H PC3412H5. 假设SP25H,PC2345H,标号LABEL所在的地址为3455H,问执行

32、长调用指令LCALL LABLE后,堆栈指针和堆栈的内容发生什么变化?PC的值等于什么?堆栈指针SP=27H;堆栈的内容发生变化(26H)=48H,(27H)=23H;PC的值等于3455H6. 上题中的LCALL指令能否直接换成ACALL指令,为什么?如果使用ACALL指令,那么可调用的地址范围是什么?LCALL指令不能直接换成ACALL指令,因为超出了转移范围,如果使用ACALL指令,那么可调用的地址范围是2K四、编写程序1. 试编写程序,将内部RAM的20H,21H,22H,三个连续单元的内容依次存入2FH,2EH和2DH单元。MOV 20H,2FHMOV 21H,2EHMOV 22H,

33、2DH2. 试编写程序能够将内部RAM中32H30H的内容左移1位,即:32H31H30HCY0CLR CMOV A,30HRLC AMOV 30H,AMOV A,31HRLC AMOV 31H,AMOV A,32HRLC AMOV 32H,A3. 编写程序,假设累加器A的内容分别满足以下条件时,那么程序转至LABEL存贮单元。设A中存的是无符号数。(1) A10CLR CSUBB A,#10HJNC LABEL(2) A10 (3) A104. 利用查表技术将累加器A中的一位BCD码转换为相应的十进制数的七段字型码,结果送P1口输出。09的七段码分别是:3FH、05H、5BH、4FH、55H

34、、5DH、7DH、07H、TFH、5FH。MOV DPTR,#TABMOVC A,A+DPTRMOV P1,ATAB:DB 3FH、05H、5BH、4FH、55H、5DH、7DH、07H、TFH、5FH习题四一、简答题1什么叫“伪指令?伪指令与指令有什么区别?2MCS-51系列单片机汇编语言有哪些伪指令?它们的用途是什么?汇编语言的格式是怎样的? 3汇编语言程序设计分哪几个步骤? 4列出画程序流程图的各种图形符号,并说明用途。 5分析下述程序的功能。X DATA 30H Y DATA 32H MOV A,X JNB ACC.7,TRUE CPL A ADD A,#01HTRUE:MOV Y,A

35、本程序的功能是求片内RAM地址为30H单元中数的补码后送32H单元二、计算题1以下程序执行后,按要求答复以下问题。(1) ORG2000HMOVA,00HMOVB,01HMOVSP,10HPUSHACCPUSHBRET结果:SP= 10H ,PC= 0201H 。(2) 运行前:CY=0,AC=0,OV=0,P=0。MOVA,77H MOVB,34H ADDA,B DAA 结果: A= 11H ,CY= 1 。(3) 运行前:CY=0,AC=0,OV=0,P=0。 MOV A,07HMOVB,02H MUL AB 结果:A= 0EH ,B= 00H ,OV= 0 ,P= 1 。(4) MOVR

36、0,10H MOV10H,20H MOVR0,30H MOVA,R0 结果:A= 10H ,R0= 10H ,(10H)= 30H 。2以下程序段汇编后,从3000H开始的各有关存储器单元的内容将是什么?ORG 3000HTAB1: EQU 3234HTAB2: EQU 4000HDB STARTDW TAB1,TAB2,9000H从3000H开始的各有关存储器单元的内容是S 、T、A 、R、 T、 32H、34H、40H、00H、90H 、00H三、应用题1编写程序将内部RAM 30H中的压缩BCD码转换为ASCII码,并存入31H和32H单元中。MOV A,30HANL A,#0FHADD

37、 A,#30HMOV 31H,AMOV A,30HSWAP AANL A,#0FHADD A,#30HMOV 32H,ASJMP $2假设晶振为6MHz,试编制一个延时5ms的子程序。MOV R0,#5LP1:MOV R1,#124LP2:NOPNOP DJNZ R1,LP2 DJNZ R0,LP1 RET 1+1+2*124+1+2*5+1+2*2s=4996s 3试编制一段程序,其功能是在P1.0输出周期大约为6MS,占空比为2:1的脉冲(设fose=12MHz)。START:SETB P1.0ACALL YSACALL YSCPL P1.0ACALL YSSJMP STARTYs: MO

38、V R0,#6LP1:MOV R1,#249LP2:NOPNOP DJNZ R1,LP2 DJNZ R0,LP1 RET4编程将片内20H单元开始的30个数传送到片外RAM3000H开始的单元中。MOV R0,#20HMOV DTPR,#3000HMOV R1,#30LP: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R1SJMP $5在片外2000H开始的单元中有100个有符号数,试编程统计其中正数、负数、零的个数的程序MOV R0,#100MOV DPTR,#2000HHUI: MOVX A,DPTRCJNE A,#00H,PT1INC R1JMP SSSP

39、T1: JNB ACC.7 ZHENINC R3JMP SSSZHEN:INC R2SSS: INC DPTRDJNZ R0,HUISJMP $6. 试设计数据块传送程序,将起始地址为0200H的100个连续单元中的内容送到以2000H为首址的区域中去。MOV R7,#100MOV P2,#20HMOV R0,#00HMOV DTPR,#0200HLOOP: MOVX A,DPTRMOVX R0,AINC R0INC DPTRDJNZ R7,LOOPSJMP $7设有两个长度为15的数组,分别存放在0200H和0500H为首址的存储区域中,试编写程序求其对应项之和,结果存放在以0600H为首址

40、的存储区域中。MOV R7,#15MOV R0,#00HCLR CLOOP:MOV P2,#02HMOVX A,R0MOV B,AMOV P2,#05HMOVX A,R0ADDC A,BMOV P2,#06HMOVX R0,AINC R0DJNZ R7,LOOPSJMP $8分别用数据传送指令和位操作指令编写程序,将内RAM位寻址区的128位单元全部清零。MOV R0,#20HMOV R1,#0FHMOV A,#00HLOOP: MOV R0,AINC R0DJNZ R1,LOOPSJMP $9编程求内部RAM中40H49H10个单元中的内容的平均值,并放人4AH单元中。START:MOV R

41、3,#0MOV R4,#0MOV R2,#10MOV R0,#40HLOOP: MOVA,R3ADD A,R0MOVR3,ACLRAADDCA,R4MOVR4,AINCR0DJNZ R2,LOOP;调用单字节无符号除法程序即可10设内部RAM中30H和31H单元中有2个带符号数,求出其中的大数存放在32单元中。CLR CMOV A,30HSUBB A,31HJZ XMAXJB ACC.7,NEGJB OV,YMAXSJMP XMAXNEG: JB OV,XMAXYMAX: MOV A,31HSJMP RMAXXMAX: MOV A,30HRMAX: MOV 32H,ARET11请用位操作指令编

42、写下面逻辑表达式值的程序。 (1) P1.7=ACC.0 (B.0P2.1)P3.2 MOV C, B.0ORL C, P2.1ANL C, ACC.0ORL C, P3.2MOV P1.7,C (2) PSW.5=P1.3ACC.2B.5P1.1 (3) P2.3=P1.5B.4ACC.7P1.0 12使用位操作指令实现以下逻辑操作,但不得改变未涉及位的内容。 (1) 使ACC.0置“1” SETB ACC.0(2) 去除累加器高4位CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4 (3) 去除ACC.3,ACC.5,ACC.7位。 CLR ACC.7 CLR

43、ACC.5 CLR ACC.313试编程把片外RAM从2040H开始的连续50个单元的内容按降序排列,结果存入3000H开始的存储区中。START;MOV R0,#50MOV DPTR,#2040HMOV R1,#20HLOOP:MOVXA, DPTRMOV R1,AINC DPTRINCR1 DJNZ R0,LOOPACALL SORTMOV DPTR,#3000HMOV R1,#20HLOOP:MOV A , R1MOVX DPTR, AINC DPTRINCR1 DJNZ R0,LOOP SJMP $14试编一查表程序,从首地址为2000H,长度为100的数据表中,查找出A的ASCII码

44、,将其地址存入2021H和2021H单元中。MOV R7,#100MOV    B,A         MOV    DPTR,#2000HLOOP:MOVX   A,DPTR          CJNE   A,B,NFIND       

45、0;  SJMP FIND          RETNFIND:INC    DPTR          DJNZ   R7,LOOP FIND: MOV    2021H,DPLMOV    2021H,DPH      

46、60;   RET15设计一个多字节无符号数加法子程序和减法子程序。N字节无符号数加法程序 (R0+R1)=(R0) ;入口: R0,R1,R7 ;占用资源: ACC,B ;出口: R0,CF NADDN: MOV B,R0 CLR C NADN1: MOV A,R0 ADDC A,R1 MOV R0,A INC R0 INC R1 DJNZ R7,NADN1 MOV R0,B RET;N字节无符号数减法程序 (R0-R1)=(R0) ;入口: R0,R1,R7 ;占用资源: ACC,B ;出口: R0,CF NSUBN: MOV B,R0 MOV R7,N CLR C N

47、SUBN1 : MOV A,R0 SUBB A,R1 MOV R0,A INC R0 INC R1 DJNZ R7,NSUBN1 MOV R0,B RET16在128分支程序中是用AJMP指令实现分支转移的。假设用长转移指令LJMP来代替AJMP指令,以便子程序入口地址可在64KB范围内安排。试修改原来的程序,使之能适应新的要求。?修改后的程序最多能有256个分支MOV DPTR,#JPTAB MOV A,R1MOV B,#03MUL ABPUSH AMOV A,BADD A,DPHPOP AJMP A+DPTRJPTAB: LJMP PROGRAM0LJMP PROGRAM1 LJMP PR

48、OGRAMN习题五一、选择题(1) MCS-51单片机中断源和可设置的中断优先等级分别为( B )。 A中断源为2个,中断优先等级为2个 B中断源为5个,中断优先等级为2个 C中断源为4个,中断优先等级为1个 D中断源为3个,中断优先等级为1个(2) MCS-51单片机定时/计数器的方式0和方式1分别是( A )位定时/计数器。 A13和16 B16和13 C8和16 D16和8(3) MCS-51单片机定时/计数器的最大定时时间是( B )(设时钟频率为6MHz)。 A65.536ms B131.072ms C8.192ms D16.384ms(4) MCS-51单片机定时/计数器方式l时,

49、其最大的计数个数是( A )。 A65536 D65635 C8192 D256 (5) T1中断源的中断矢量地址是( D )。 A0003H B000BH C0013H D001BH (6) IE0是( C )的中断标志。 AT0 BT1 C D二简答题(1) 以方式0为例,说明MCS-51的定时/计数器实现计数和定时功能的根本原理。以THi、TLi 16位中的13位TLi的高3位未用构成一个加1计数器,定时方式工作时,以主频12分频后的频率信号作为加1脉冲信号;计数方式工作时,以从外部接口送入的频率信号作为加1脉冲信号。(2) 单片机8051内部有几个定时/计数器?它们由哪些专用存放器组成?单片机8051内部有2个定时/计数器;它们由TH0、TL0、TH1、TL1、TMOD、TCON专用存放器组成。(3) 单片机8051的定时/计数器有哪几种工作方式?各有什么特点?单片机8051的定时/计数器有种工作方式;工作方式:13位计数器;工作方式:16位计数器;工作方式:初值可以自动重新装入的8位计数器;工作方式:T0拆分成两个独立的8位计数器,占用了T1的有关引脚、控制位、中断,T1仍可工作在不需

温馨提示

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

评论

0/150

提交评论