《2022年单片微型计算机原理及接口技术课后习题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年单片微型计算机原理及接口技术课后习题答案 .pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题二2-1 试述 8051 单片机主要由哪几个部分构成? 1. 一个 8 位微处理器CPU 2. 数据存储器RAM 和特殊功能寄存器3. 内部程序存储器ROM 4. 两个定时 /计数器5. 四个 8 位可编程的I/O 并行端口6. 一个串行端口7. 中断控制系统8. 内部时钟电路2-2 MCS-51 单片机的片外总线是怎样构成的?试画出其结构示意图。1. 片外总线构成 : 1)地址总线 AB 2)数据总线 DB 3)控制总线CB 2. 结构示意图2-3 MCS-51 单片机四组并行IO 口在使用时各有什么特点? 1. P0 口特点 : 1) 作输出口使用时,由于输出驱动为漏极开路式,需外接上
2、拉电阻,阻名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 值一般为 510K. 2) 作输入口使用时,在输入数据时 ,应先向端口写入” 1” ,使引脚处于悬浮状态 ,再读入数据 . 3) 扩展 ROM 和(或)RAM 时,作为地址 /数据总线使用 (地址 A7A0,数据 D7D0) 2. P1 口特点 : 1) 作输出口使用时,无需外接上拉电阻(内部有上拉电阻) 2) 作输入口使用时,在输入数据时,应先向端口写入” 1” ,使
3、引脚处于悬浮状态 ,再读入数据 . 3. P2 口特点 : 1) 作输出口使用时,无需外接上拉电阻(内部有上拉电阻) 2) 作输入口使用时,在输入数据时,应先向端口写入” 1” ,使引脚处于悬浮状态 ,再读入数据 . 3) 扩展 ROM 和(或)RAM 时,作为地址 /数据总线使用 (地址 A15A8,数据 D15D8) 4. P3 口特点 : 1) 作输出口使用时,无需外接上拉电阻(内部有上拉电阻) 2) 作输入口使用时,在输入数据时,应先向端口写入” 1” ,使引脚处于悬浮状态 ,再读入数据 . 3) 第二功能如下表名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
4、- - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 2-4 MCS-51单片机的存储器有几个存储空间?各自的地址范围和容量是多少 ?使用时各有什么特点? 四个存储空间 :(不同的单片机有所不同) 1. 片内 RAM, 地址范围 :00HFFH, 共 256 个字节1) 00H1FH 为通用寄存器区,共分四组(0 组 1 组 2 组 3 组,由 PSW 的 RS1 RS0 决定 ,复位时自动选中0 组) 每组 8 个寄存器 R0R7 2) 20H2FH 为位寻址区 ,共 128 位(16*8) 3)30H
5、7FH 为通用 RAM 区,共 64 个字节4)80HFFH 为特殊功能寄存器(SFR)区,共 128 个字节并行口串行口中断系统定时 /计数器等功能单元和状态寄存器等共21 个单元离散的分布在这个区中,其他空闲单元不能使用2. 片外 RAM, 地址范围 :0000HFFFFH, 共 64K 字节3. 片内 ROM(EA=1), 地址范围 :0000H0FFFH, 共 4K 字节4. 片外 ROM(EA=0), 地址范围 :0000HFFFFH, 共 64K 字节2-5 在单片机内RAM 中哪些字节有位地址?哪些字节没有位地址?特殊功能寄存器中安排位地址的作用何在? 有位地址的字节:20H2F
6、H 80H 88H 90H 98H A0H A8H B0H B8H D0H E0H F0H SFR 安排地址位的作用:可按位访问 ,方便使用2-6 什么叫振荡周期、时钟周期、机器周期和指令周期? 振荡周期 -为单片机提供时钟信号的振荡源的周期时钟 (状态 )周期 -振荡源信号经二分频后形成的时钟脉冲信号机器周期 - 完成一个基本操作所需的时间,由 6 个时钟 (状态 )周期组成指令周期 -CPU 执行一条指令所需的时间时钟 (状态 )周期 =2 振荡周期机器周期 =6 时钟 (状态 )周期 =12 振荡周期指令周期 =1 个或 2 个或 4 个机器周期2-7 若单片机使用的晶振为6MHz ,那
7、么振荡周期、机器周期和指令周期分别是多少 ? fosc=6MHZ T 振荡 =1/fosc=0.167s 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - T 机器 =12* T 振荡 =2s T 指令 =(14) T 机器 =28s 2-8 当单片机使用的晶振为12MHz 时,执行一条指令所需的最长时间为多少 ? fosc=12MHZ T 指令 =14s TMAX指令 =4s 2-9 说出单片机复位后,各特殊功能寄存器的初始化
8、状态是什么各特殊功能寄存器的初始化状态如表特别 SP=07H,P0P3=FFH 注意 : 复位后要先给SP 赋值 (30H7FH), P0P3 置初值习题三3-1 说明下列各条指令划线部分的寻址方式,并用图说明指令实现的操作。(1)ADD A,30H ; 直接寻址(2)MOVX A,DPTR ; 寄存器间接寻址(3)MOVC A,A+PC ; 变址寻址(4)ORL 60H ,#22H ; 直接寻址立即寻址(5)MOV R1 ,A ; 寄存器间接寻址3-2 查附录写出下列各条指令的机器码。ACALL 0100H ;3100 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
9、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - LCAlL 0300H ;120300 AJMP 0100H ;2100 LJMP 0300H ;D20300 SJMP 5 ;80FB SJMP $十 5 ;8003 3-3 设 R0=7EH ,DPTR=10FEH ,片内RAM中 7EH 、7FH 单元内容为0AAH 、0BBH ,试分析下列每条指令、增加注释并写出其执行结果。INC R0 ;(7EH)+1 7EH, (7EH)=0ABH 1NC R0 ;R0+1 R0, (R0)=7FH 1N
10、C R0 ;(7FH)+1 7FH, (7FH)=0BCH 1NC DPTR;DPTR+1 DPTR DPTR=10FFH 3-4 若 A=80H ,R0=17H ,(17H)=34H ,执行下段程序后,A=? ANL A,#17H;A=0 ORL 17H,A ;A=0 (17H)=34H XRL A,R0;A=34H CPL A ;A=0CBH 3-5 说明下段程序执行过程中,SP 的内容以及堆栈中内容的改变过程。MOV SP,#20H;SP=20H MOV A,#20H ;A=20H MOV B,#30H ;B=30H PUSH ACC ;SP+1 SP=21H,(21H)=20H PUS
11、H B ; SP+1 SP=22H,(22H)=30H POP ACC ;(22H) A,SP-1 SP=21H POP B ;(21H) B,B=20H,SP-1 SP=20H 3-6 有程序如下:CLR RS1;位操作RS1=0 CLR RS0;位操作RS0=0 MOV A,#38H; 字节操作A=38H MOV R0,A ; 字节操作R0=38H MOV 29H,R0;字节操作(29H)=38H SETB RS0 ; 位操作RS0=1 MOV C,RS0 ;位操作C=RS0=1 MOV R1,A ;字节操作R1=A=38H 名师资料总结 - - -精品资料欢迎下载 - - - - - -
12、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - MOV 26H,A ; 字节操作 (26H)=A=38H MOV 28H,C ; 位操作(28H)=C=1 ADDC A,26H ; 字节操作 A+(26H)+C A=71H 试问:(1)区分哪些是位操作指令?哪些是字节操作指令? (2)写出程序执行后有关寄存器和RAM 中有关单元的内容。3-7已知 (61H)=0F2H ,(62H) :0CCH 。说明下面程序功能,写出涉及的寄存器及片内RAM 单元的最后结果。MOV A,#61H ;A=6
13、1H MOV B,#02H ;B=02H DIV AB ;A/B=A( 商)=30H B(余数 )=01H ADD A,62H ;A+(62H) A=0FCH(C=0) MOV 63H,A ;A (63H)=0FCH CLR A ;A=0 ADDC A,B ;A+B+C A=01H MOV 64H,A ;A (64H)=01H 3-8说明下面程序功能,在括号中填出所缺的机器码。0020 78 ADRl :MOV RO,#ADRl 0022 (79) ADR2 :MOV R1,#ADR2 0024 7A Ll:MOV R2,#LL 0026 C3 CLR C 0027 E6 LOOP :MOV
14、A,R0 0028 37 ADDC A,R1 0029 F6 MOV R0,A 002A 08 1NC R0 002B 09 1NC Rl 002C DA(F9) DJNZ R2,LOOP 002E 80 (FE ) SJMP $ 功能 : LL 个字节的加法被加数放在ADRl 为首的单元内加数放在 ADR2 为首的单元内低字节放在低地址单元结果放在被加数单元名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 3-9试编程将片外数
15、据存储器1000H 单元中的数据与片内RAM 中 30H单元中的内容互换程序如下 : MOV 31H, 30H MOV DPTR, #1000H MOVX A, DPTR MOV 30H, A MOV A, 31H MOVX DPTR, A SJMP $ 习题四4-1 两个 4 位 BCD 码数相加,设被加数和加数分别存于片内RAM 的 40H、41H 和 45H46H 单元中,和数存于50H、51H 单元中 (均是低位在前,高位在后 ),试编写程序。根据题意 ,最高位将不产生进位(或不考虑 ) ORG 0000H LJMP START ORG 0200H START: MOV A, 40H
16、ADD A, 45H; 低位相加DA A ;BCD 调整MOV 50H, A;存和低位MOV A, 41H ADDC A, 46H; 高位带进位位相加DA A ;BCD 调整MOV 51H , A; 存和高位SJMP $ END 4-2 已知片外RAM 中 2100H 单元中存有一有符号整数。试编写程序, 求该单元数据的绝对值。ORG 0000H LJMP START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - ORG 0
17、200H START: MOV DPTR, #2100H MOVX A, DPTR JNB ACC.7 NN; 为正数 ,不变CPL A (DEC A);为负数 ,取反加一 (或减一取反 ) INC A (CPL A) ;A 中为绝对值NN: SJMP $ 如果要将绝对值存于原单元中,则 NN 后的程序变为 : NN: MOVX DPTR, A SJMP $ END 4-3 统计片外数据存储器2100H 单元开始的数据块(长度为100 个字节 )中绝对值为100 的数的个数。ORG 0000H LJMP START ORG 0200H START: MOV DPTR, #2100H MOVX
18、A, DPTR JNB ACC.7 NN ;为正数 ,不变CPL A (DEC A) ; 为负数 ,取反加一 (或减一取反 ) INC A (CPL A) ;A 中为绝对值NN: CJNE A, #100, MM ;100 转 MM INC R0 ;R0 存绝对值为100 的个数 MM: INC DPL ;调整 DPTR MOV A, DPL CJNE A, #100, AGI ;不到 100 个,取下一个SJMP $ END 4-4 设单片机采用6MHz 晶振,计算如下一段程序的执行时间,你能说明这段程序的作用吗? T 机器 =1*12/fosc=12/6MHZ=2 s MOV R0,#20
19、H(1); 低位地址R0 MOV R3,#05H(1); 字节数 -1 R3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - MOV A,R0(1) CPL A (1);低位取反加一ADD A,#01H (1) ;不能用 INC A( 不影响 CY 位) MOV R0,A (1);以上程序共6 个机器周期NEXT : INC R0 (1) MOV A,R0(1) CPl A (1) ADDC A,#00H (1) MOV R0
20、,A (1) DJNZ R3,NEXT(2); 循环 5 次,每次 7 个机器周期SJMP $ (2) END 执行时间 =(6+5*7)T 机器 =41*2=82 s 以上程序为求一个6 字节的负数 (补码 )的绝对值4-5 编写程序,将片外数据存储器2000H 单元开始的10 个有符号数求平均值。 (假定其和在 -128 一+127 之间 )。4-6 将 ROM 中 1000H 单元开始的 100 个单元的数据移到片外数据存储器2000H 开始的连续单元。ORG 0000H LJMP AGI ORG 0200H MOV DPTR, #1000H AGI: CLR A MOVC A, A+D
21、PTR XRL DPH, #30H; 调整 DPTR1000H 2000H MOVX DPTR, A;传送XRL DPH, #30H; 调整 DPTR2000H 1000H INC DPTR; 调整 DPTR MOV A, DPL CJNE A, #64H,AGI;DPL0 Y= 255 X=0 |X|+5 X0 根据变量 X 的大小求出Y 值并放入数据存储器从2000H 开始的相应单元。画出程序流程图并编写源程序。ORG 0000H LJMP STAR ORG 0200H STAR: MOV DPTR, #2000H START: MOVC A, DPTR JB ACC.7, NEG;X0
22、MUL AB;Y=3X LJMP SAVE ZERO: MOV A,#0FFH;Y=255 LJMP SAVE NEG: DEC A CPL A ;绝对值ADD A, #05H;Y=X 绝对值 +5 SAVE: MOVX DPTR, A;存结果INC DPTR; 调指针MOV A, DPH CJNE A, #21H, START; 没完继续SJMP $ END 4-8 将 4-6 题改为子程序结构,画出程序流程图并编写源程序。NUM EQU #64H ORG 0000H LJMP START ORG 0100H START : MOV DPTR, #1000H 名师资料总结 - - -精品资料
23、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - ACALL AGI SJMP $ ORG 0200H AGI: MOVC A, DPTR XRL DPH, #30H; 调整 DPTR1000H 2000H MOVX DPTR, A;传送XRL DPH, #30H; 调整 DPTR2000H 1000H INC DPTR; 调整 DPTR MOV A, DPL CJNE A, NUM,AGI;DPLNUM,取下一个数RET END 4-9 用位操作指令实现下
24、面的逻辑方程。(1)P1.2=ACC.1 P1.4PSW.1+20H 21H (2)PSW.1=(PSW.2+20H+P3.3) ACC.3+P1.2 P2.1 (1) ORG 0100H MOV C, ACC.1 ANL C, P1.4 ANL C, /PSW.1 MOV 22H, C;暂存结果MOV C, 20H ANL C, 21H ORL C, 22H MOV P1.2, C;结果输出SJMP $ (2) ORG 0100H MOV C, /PSW.2 ORL C, 20H ORL C, P3.3 ANL C, ACC.3 MOV 21H, C;暂存结果MOV C, P1.2 ANL
25、C, P2.1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - ORL C, 21H CPL C MOV PSW.1, C SJMP $ 习题五5-1 8031 单片机内设有几个定时计数器?它们是由哪些专用计时器构成,其地址分别是多少? 8031 单片机内设有2 个定时计数器T0,T1 T0 由 TH0 和 TL0 组成T1 由 TH1 和 TL1 组成TH0 地址 :8CH TL0 地址 :8AH TH1 地址 :8DH
26、TL1 地址 :8BH 5-2试说明定时器方式寄存器TMOD中 GATE 位的作用。如何用GATE位测量外部脉冲的宽度? GATE 位的作用 : GATE=0 时,由 TRX 控制 TX启停 ,常用 . GATE=1 时,只有 TRX和 INTX都为 1,才可启动 TX. 测量外部脉冲宽度方法:使 GATE=1,TRX=1, 外部脉冲接于INTX引脚,当 INTX由 0 变 1 时,TX开始计数 (方式 0 或 1), 当 INTX由 1 变 0 时,TX停止计数 (设初值 TC=0 即 THX=0,TLX=0),检测 TX常数的变化量 (TC, 即THX,TLX). 脉冲宽度 =TC*T 机
27、器5-3设单片机的cLK=12MHz ,要求用 T0 定时 150 s,分别计算采用定时方式 0、定时方式1 和定时方式2 的定时初值。cLK=12MHz, T机器 =1 s 方式 0:TC=213-150/1=8192-150=8042=1F6DH=11111011 01101B TH0TL0 低 5 位所以初值 TH0=FBH,TL0=0DH 方式 1:TC=216-150/1=65536-150=65386=FF6AH 所以初值 TH0=FFH,TL0=6AH 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
28、- - - - - - - 第 12 页,共 15 页 - - - - - - - - - 方式 2:TC=28-150/1=256-150=106=6AH 所以初值 TH0=TL0=6AH 5-4单片机CLK=6MHz ,问定时器处于不同工作方式时,最大定时范围分别是多少 ? cLK=6MHz, T机器 =12/6MHz =2 s, Tmin=2s 方式 0:Tmax=213*2 s=16.384ms 方式 1: Tmax=216*2 s=131.072ms 方式 2.3: Tmax=28*2 s=0.512ms 5-5什么叫中断源 ?MCS-51 有哪些中断源 ?各有什么特点 ? 中断源
29、-中断请求的来源MCS-51 有 5 个中断源 :2 个外部中断源INT0,INT1 3 个内部中断源T0,T1,TI/RI 特点 : INT0,INT1由 P3.2,P3.3 端口引入 ,低电平或下降沿引起中断T0,T1 定时 /计数器中断 ,由 T0,T1 回零溢出引起中断TI/RI串行 I/O 中断 ,串行端口一帧字符发送/接收后引起中断这些中断由中断允许寄存器IE(A8H) 和中断优先寄存器IP(B8H) 控制复位后 ,IP 清零 ,自然的中断优先顺序: INT0 T0 INT1 T1 TI/RI 中断服务程序入口地址分别为: 0003H 000BH 0013H 001BH 0023H
30、5-6什么叫中断嵌套?什么叫中断系统?中断系统的功能是什么? 中断嵌套就是在中断响应的过程中又有更高一级的中断申请到来,则在中断响应的过程中再响应中断(中断中套中断 ) 中断系统 :为了实现中断功能而设置的各种硬件和软件的统称中断系统的功能:1. 实现中断及返回2. 实现优先权排队3. 高级中断源能中断低级中断源的中断处理5-78031 的五个中断标志位代号是什么?位地址是什么?它们在什么情况下被置位和复位? 五个中断标志位代号是: IE0 TF0 IE1 TF1 RI/TI 位地址是 : 89H 8DH 8BH 8FH 98H/99H 有中断申请时中断标志位被置位,CPU 响应中断后 ,一般
31、IE0(INT0) TF0(T0) IE1(INT1) TF1(T1) 可 被 自 动 复 位 , 但 当INT0,INT1为低电平触发时,不能自动复位,此种情况应保证在中断服务程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 15 页 - - - - - - - - - 序结束之前将低电平触发信号变为高电平,否则将再次响应中断.RI/TI 中断标志也不能自动复位. 5-8中断允许寄存器IE 各位定义是什么?请写出允许T1 定时器溢出中断的指令 ? 中断允许寄存器IE
32、各位定义 : EA ES ET1 EX1 ET0 EX0 全局串口T1 INT1 T0 INT0 相应各位为 ” 1” 时,开相应中断 , 为” 0” 时, 关相应中断允许 T1 定时器溢出中断: MOV IE, #88H 或: SETB EA SETB ET1 5-9 MCS-51 响应中断是有条件的,请说出这些条件是什么?中断响应的全过程如何 ? 响应中断条件:无下列条件时,中断将被响应1CPU 正在执行一个同级或高一级的中断服务程序2当前执行的那条指令还未执行完3当前执行的指令是RETI 或 IE IP 寄存器读写指令,执行这些指令后,至少再执行一条指令,才会响应中断。中断响应的全过程:
33、中断响应后,一般自动清除中断请求标志(串口中断请求标志,要用软件清除),由硬件自动将PC 内容(断点地址)压入栈中保护, 然后将对应的中断矢量装入PC,使程序转向中断矢量地址单元去,执行中断服务程序,中断服务程序执行完成,断点地址出栈装入 PC,从断点继续执行程序。5-10在 MCS-51 中,哪些中断可以随着中断被响应而自动撤除?那些中断需要用户来撤除 ?撤除的方法是什么? 一般 T0 T1 INT0 INT1 中断可以随着中断被响应而自动撤除,串行中断 RI/TI不能自动撤除,需要用户来撤除,撤除的方法是在中断服务程序中清RI 或 TI 5-11试写出 INT0 为边沿触发方式的中断初始化
34、程序。SETB IT0; 下降沿触发SETB EA;也可 MOV IE, #81H;开中断SETB EX0 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页 - - - - - - - - - 5-12若 8031 单片机的CLK=6MHz ,请利用定时器TO 定时中断的方法,使 P1.0 输出如下图所示的矩形脉冲T0 方式 1 定时 1ms T 机器 =12/6MHz =2 s TC=216-1ms/2 s=65536-500=FE0CH ORG 0000
35、H LJMP MAIN ORG 000BH LJMP TOINT MAIN: MOV TMOD, #01H;T0 方式 1 MOV TH0, 0FEH MOV TL0, #0CH; 定时 1ms MOV IE, #82H;开 T0 中断MOV R0, #00H;计数初值SETB TR0; 启动 T0 SJMP $ TOINT: MOV TH0, #0FEH MOV TL0, #0CH; 重置初值MOV C, P1.0 JC LOW; 测出 ” 1” , 则置 ” 0”INC R0; 测出 ” 0” , 则计数值加1 CJNE R0,#01H,RR; 计数值为 1,则” 0” 持续 , 为 2,则变为 ” 1”AJMP RRR; ” 0” 持续RR: SETB P1.0; 变为 ” 1”MOV R0,#00H AJMP RRR LOW: CLR P1.0; 置” 0”RRR: RETI 1ms 2ms 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -