单片机技术课后题

第一章

目录

第一章

第二章

第三章

第四章

第五章

第六章

第七章

第八章


1.简述微型计算机硬件结构以及各部分的作用

  • 微处理器:微型计算机的核心
  • 存储器:用来存放程序和数据
  • 输入输出接口电路:连接CPU和外部设备的桥梁
  • 总线:传输信息的公共通信线

2.在计算机内部,一切信息的存取,处理和传递的形式是(二进制)

3.0到9ASCII码是什么(30H到39H)

4.计算机某字节存储单元内容是1000 0111,若解释为无符号数,其值为(135)

5.CPU与外设的数据传送方式包括(无条件)(查询)(中断)(DMA)

6.简述中断的概念:

执行程序的过程中,由于出现某个特殊情况,使得程序转去执行这个情况,等待处理完后才可以接着执行原来的程序

7.简述可编程的定时器/计数器的工作原理

可编程的定时器/计数器的核心部件是一个计数器,计数器的工作就是对输入到该计数器的信号进行计数。

8.串行通信和并行通信的主要区别是什么?各有什么优缺点?

区别:串行通信是指数据一位一位的按顺序传送,并行通信是指数据的各位同时进行传送

优缺点:

  • 从通信距离上,并行适合近距离,串行适合远距离
  • 从通信速率上,并行数据传输速率比串行高
  • 从抗干扰性上,串行基本没有信号间干扰问题
  • 从费用上,串行的费用更低
  • 从硬件可靠性上,并行复杂,安全隐患多;串行简单,安全隐患少
  • 从软件设计上,并行软件简单,串行软件复杂

第二章

1.51系列单片机内部有哪些主要的逻辑部件?

CPU、RAM、ROM、定时器/计数器和多种IO功能部件

2.51系列单片机有4个8位并行端口,实际应用中8位数据信息由哪个端口传送?16位地址线怎么形成?P3口有什么功能?

(1).8位数据信息由P0端口传送

(2).P0、P2端口组成16位地址总线

(3).由P3端口的其他引脚构成串行口,外部中断输入,计数器的计数脉冲输入。

3.51单片机位地址7FH与字节地址7FH有何区别?位地址7FH具体在内存中的什么位置?

(1).存取的数据位数不一样

(2).20H的最高位上

4.51系列单片机的复位作用是什么?复位后单片机的状态如何?

(1).复位的作用:使CPU和系统中其他部件都处于一个确定的初始状态,并从这状态开始工作。

(2).状态如何:ALE、PSEN、P0、P1、P2、P3口都输出高电压

5.什么是时钟周期(震荡周期)、状态周期、机器周期、指令周期?当51系列单片机外部的震荡频率是8MHz时,其机器周期是多少?

(1).时钟周期:单片机提供定时信号的振荡源的周期

(2).状态周期:两个振荡周期是一个状态周期

(3).机器周期:完成指令中一个阶段的时间,一个机器周期是6个状态周期

(4).指令周期:完成一条质指令的时间,n个机器周期

计算: Tm=12/fosc =12/8MHZ=1.5μS

第三章

1.访问外部数据存储器(或者IO口)和程序存储器可以用哪些指令来实现?

MOVX A,@R1
MOVX @R1,A
MOVX @DPTR,A
MOVX A,@DPTR
MOVC A,@A+PC
MOVC A,@A+DPTR

2.设(A)=40H,(RI)=23H,(40H)=05H。执行下列两条指令后,累加器A和RI以及内部RAM中 40H 单元的内容各为何值?

(A) = 25H

(R1)= 40H

(40H) = 03H

3.设(A)=01010101B,(R5)=10101010B,分别写出执行:

的结果

(A)=0000 0000B

(A)=1111 1111B

(A)=1111 1111B

4.用三种方法实现累加器A和寄存器B的内容交换

(1) XCH A,B
(2) MOV R0,A
    MOV A,B
    MOV B,R0
(3) PUSH A POP A
    PUSH B POP B

5.写出实现下列要求的指令或程序片段

(1)
MOV A,30H
ADD A,31H
MOC 31H,A
(2)
MOV A,20H
MOV DRPT,#2000H
MOV @DRPT,A
(3)
MOV A,20H
ANL A,#77H
MOV 20H,A
(4)
MOV A,20H
ORL A,#88H
ANL A,#DFH
MOV 20H,A
(5)
MOV A,20H
ORL A,#88H
XRL A,#20H ;哪位取反哪位为1
MOV 20H,A

6.试分析下列程序段执行后,A=?(30H)=?

初始值:
30H = 0xA4(二进制 1010 0100)
A = 0xD6(二进制 1101 0110)
R0 = 0x30
R2 = 0x5E(二进制 0101 1110)
执行指令:
ANL A, R2:A = 0xD6 & 0x5E = 0x56(二进制 0101 0110)
ORL A, @R0:A = 0x56 | 0xA4 = 0xF6(二进制 1111 0110)
SWAP A:交换 A 的高低 4 位,A = 0x6F(二进制 0110 1111)
CPL A:按位取反,A = 0x90(二进制 1001 0000)
XRL A, #0xFE:A = 0x90 ^ 0xFE = 0x6E(二进制 0110 1110)
ORL 30H, A:30H = 0xA4 | 0x6E = 0xEE(二进制 1110 1110)
结果:
A = 0x6E
(30H) = 0xEE

7.设片内RAM(30H)=0EH,则执行下面程序后,(A)=?并指出该程序完成的功能

(A) = 0x8C

该程序完成的功能:二进制的倍数运算

第四章

1.编程将片内 30H~39H 单元中的内容送到以 3000H 为首的存储区中。

2.从片内 RAM 60H 开始存放 20 个数据,试统计正数、负数及零的个数,并将结果分别存放在 50H/51H/52H 单元中。

3.设 10 次采样值依次存放在片内 RAM 50H~59H 的连续单元中,试编程去掉一个最大值,去掉一个最小值,求其余 8 个数的平均值,并将结果存放在 60H 中。

4.编写程序将 R4、R5、R6 中的 3 字节数据对半分解成 6 字节,存入显示缓冲区(DISMEM0~DISMEM5)。

5.设片内 RAM 中以 20H 开始的单元,连续存放 10 个非压缩 BCD 码,试将其转换为 ASCII 码,存放到片内以 50H 开始的单元中。

6.从 20H 单元开始有一无符号数据块,其长度在 20H 单元。求出数据块中的最小值,并存入 21H 单元。

1.
MOV R0,#30H
MOV DRPT,#3000H
MOV R7,#10
LOOP1:
MOV A,@R0
MOVX @DRPT,A
INC R0
INC DRPT
DJNZ R7,LOOP1
2.
MOV R0,#60H
MOV R7,#20
MOV 50H,#0
MOV 51H,#0
MOV 52H,#0
LOOP2:
MOV A,@R0
JZ ZERO_COUNT
JB ACC.7,NEG_COUNT
INC 50H
SJMP NEXT_DATA
ZERO_COUNT:
INC 52H
SJMP NEXT_DATA
NEG_COUNT:
INC 51H
NEXT_DATA
INC R0
DJNZ R7,LOOP2
3.
MOV R0,#50H
MOV R7,#10
MOV A,@R0
MOV 5AH,A
MOV 5BH,A
LOOP3:
INC R0
MOV A,@R0
CJNE A,5AH,COMP_MAX
COMP_MAX:
JC NOT_MAX
MOV 5AH,A
NOT MAX:
CJNE A,58H,COMP_MIN
COMP_MIN:
JNC NOT_MIN
MOV 5BH,A
NOT_MIN:
DJNZ R7,LOOP3

MOV R0,#50H
MOV R7,#10
MOV R6,#0
MOV R5,#0
LOOP4:
MOV A,@R0
CJNE A,5AH,NOT_MAX_SUM
SJMP SKIP_SUM
NOT_MAX_SUM:
CJNE A,58H,NOT_MIN_SUM
SJMP SKIP_SUM
NOT_MIN_SUM:
ADD A,R5
MOV R5,A
CLR A
ADD A,R6
MMOV R6,A
SKIP_SUM:
INC R0
DJNZ R7,LOOP4

MOV A,R5
MOV B,#8
DIV AB
MOV 60H,A

4.
MOV A,R4
ANL A,#0F0H 
SWAP A
MOV DISMEM0,A
MOV A,R4
ANL A,#0FH
MOV DISMEM1,A

MOV A,R5
ANL A,#0F0H
SWAP A
MOV DISMEM2,A
MOV A,R5
ANL A,#0FH
MOV DISMEM3,A

MOV A,R6
ANL A,#0F0H
SWAP A
MOV DISMEM4,A
MOV A,R6
ANL A,#0FH
MOV DISMEM5,A

5.
MOV R0,#20H
MOV R1,#50H
MOV R7,#10
LOOP:
MOV A,@R0
ORL A,#30H
MOV @R1,A
INC R0
INC R1
DJNZ R7,LOOP




6.
MOV R0,#21H
MOV R7,20H
MOV A,@R0
MOV 21H,A
LOOP:
    INC R0
    MOV A,@R0
    CJNE A,21H,COMPARE
COMPARE:
    JNC NEXT
    MOV 21H,A
NEXT
    DJNZ R7,LOOP
    SJMP $
    













第五章

1.在 51 系列单片机的输入/输出端口中,哪个输入输出端日执行输出功能时没有内部上拉电阻

P0

2.在51系列单片机中,若要扩展外部存储器或 IO口时,数据总线连接哪个输入输出端口

P0

3.在51系列单片机中,若输入/输出端口执行输入操作时,为何要先送“1”到该输入端口?

防止场效应管处于导通状态使引脚为0,从而引起误读

4.编写一个延迟1s的延迟子程序

DEL0:
    MOV R5, #10    ; 外层循环
DEL1:
    MOV R6, #100   ; 中层循环
DEL2:
    MOV R7, #250   ; 内层循环(1ms)
DEL3:
    DJNZ R7, DEL3  ; 4μs × 250 = 1ms
    DJNZ R6, DEL2  ; 中层循环 × 100 = 100ms
    DJNZ R5, DEL1  ; 外层循环 × 10 = 1000ms(1s)
    RET

5.开关抖动现象怎么处理

写5到10毫秒的延迟子程序

6.简述51系列单片机的P0P1P2P3口各有什么特点,以P1口为例说明准双向IO口的意义

(1).特点:

[1].P0口既可以作为通用的IO接口使用,也可以作为单片机系统的地址/数据线使用,为此在PO口的电路中有一个多路转换电路MUX。在信号控制下,多路转换电路可以分别接通锁存器输出或者地址/数据线输出

[2].P1口只能作为一般的IO接口使用,记为P1.7~P1.0

[3].P2口可以作为通用的IO接口使用,也可以作为地址总线使用,故其位结构比P1口多了一个多路控制开关MUX。P2口作为一般接口使用时,记为P2.7~P2.0作为地址口使用时是地址的高8位,记为A15~A8

[3].P3口可以作为通用IO接口使用,还可以作为第二功能口使用。P3作为一般的IO接口使用时记为P3.7~P3.0

(2).意义:

[1].灵活性:准双向IO口允许同一个引脚在不同的时间执行不同的功能。

[2].节省资源:同一引脚可以进行输入和输出。

[3].易于控制:通过简单的寄存器操作,可以轻松的切换输入输出。

第六章

1.什么是中断源?51系列单片机有哪些中断源?各有什么特点?

(1)引起计算机中断的事件

(2).五种中断源:一类是外部中断源,包括INTO和INT1(零和一)。另一类是内部中断源,包括两个定时器,一个计数器

(3).外部中断源:主要用于响应外部事件,灵活性强,适用于实时响应需求高的场合。

     内部中断源:主要用于处理内部功能和状态变化,适用于周期性任务和数据处理。

2.编写一段对中断系统初始化的程序,允许外部中断0,外部中断1,定时器/计数器T0溢出中断为高优先级中断

; 中断系统初始化:允许外部中断0、外部中断1、定时器T0溢出中断,T0为高优先级
INIT_SYSTEM:
    ; 开启总中断
    SETB EA        
    ; 允许外部中断0
    SETB EX0       
    ; 外部中断0设为跳沿触发(可按需改电平触发,如 CLR IT0 )
    SETB IT0       
    ; 允许外部中断1
    SETB EX1       
    ; 外部中断1设为跳沿触发(可按需改,如 CLR IT1 )
    SETB IT1       
    ; 允许定时器T0溢出中断
    SETB ET0       
    ; 设置定时器T0为高优先级
    SETB PT0       
    ; 关闭串口中断(手写代码里 SETB ES 是多余的,题目没要求 )
    CLR ES         
    ; 外部中断0设为低优先级(默认也低,可清确保 )
    CLR PX0        
    ; 外部中断1设为低优先级(默认也低,可清确保 )
    CLR PX1        
    ; 串口中断优先级设为低(多余配置,清掉 )
    CLR PS         
    RET

3.在51单片机中,外部中断有哪两个触发方式?如何加以区分?

TT=1为脉冲触发方式

TT=0为电平触发方式

由TCON寄存器的IT0和IT1位进行选择和区分

4.51单片机能提供几个汇总段优先级?各个中断优先级如何确定?在同一优先级中各个中断源的优先级如何确定?

(1).两个中断优先级

(2).用中断优先寄存器的5位状态管理五个中断源的优先级别

(3).同一级中硬件决定了优先级,由高到低排序:外部中断0中断;定时器计数器0溢出中断;外部中断1中断;定时器计数器1溢出中断;串行口中断

5.中断允许寄存器IE各位的定义是什么?

EA:中断允许总控制位 EA=1开放中断,EA=0 CPU屏蔽所有中断请求

EX0、ET0、EX1、ET1、ES

第七章

1.简述TMOD各位的含义

TMOD称为工作方式及工作模式选择寄存器,用于设定两个定时器计时器的工作方式,但是TMOD寄存器不能寻址,只能用字节传送指令设置内容

2.初始值TH0、TL0怎样计算?

3.51系列单片机内设有几个可编程的定时器/计数器?简述其作为定时器使用和计数器的不同

(1).两个十六位计数器。每个十六位计数器可以分位两个八位计数器

(2).做定时器时,输入的时钟脉冲是由晶体振荡器输出经12分频得到的。

(3).做计数器时,是对外部事件的计数,外部输入信号通过响应外部输入的引脚T0或者T1输入

4.简述TR0、TF0的含义以及应用

TR0:定时器/计数器运行控制位

应用:等于0的时候停止定时器计数器工作,等于1的时候启动定时器计数器工作

TF0:加法计数器溢出标志位

应用:当加法计数器溢出时,该位置为1,使用中断方式时,该位置为0

5.如果51系列单片机系统的晶振频率为12MHZ,分别指出定时器/计数器模式1和模式2的最长定时时间

6.为什么在选择工作模式时先选择模式2,模式2不能满足要求了再选模式1?

因为模式2具有自动重装计数初值的功能,而工作模式1和工作模式0不能自动重装初值。

第八章

1.简述TI和RI的含义

(1).TI是发送中断标志位,方式0时发送完第八位后,该位由硬件置位,在其他模式下,于发送停止位之前,由硬件置位

(2).RI是接收中断标志位,方式0时接收完第八位后,该位由硬件置位,在其他模式下,当接收到停止位后由硬件置位。

2.简述波特率的含义

在并行通信中,传输速度以每秒传输字节数表示,在串行通信中,常用波特率来表示数据传送的速率,波特率就是每秒内传送二进制数据的位数。

3.51单片机的串行通信工作方式1和工作方式3通信模式下,波特率通过哪个定时器驱动产生?采用何种定时模式?如果要求采用的始终评率位11.0592MHz,产生的波特率为2400b/s,应该怎么对定时器进行初始化操作?

(1)T1

(2)模式二

; UART初始化子程序
UART_Init:
    ; 配置定时器1为模式2
    MOV TMOD, #20H      ; TMOD = 0010 0000B (定时器1模式2)
    
    ; 设置波特率为2400bps(晶振11.0592MHz)
    MOV TH1, #0FDH      ; 初值计算为253(0xFD)
    MOV TL1, #0FDH      ; 自动重装值
    
    ; 波特率不加倍(SMOD=0)
    MOV PCON, #00H      ; PCON = 0000 0000B
    
    ; 启动定时器1
    SETB TR1            ; 开启定时器1
    
    ; 配置串口为方式1(8位数据,可变波特率,允许接收)
    MOV SCON, #50H      ; SCON = 0101 0000B (REN=1允许接收)
    
    RET                 ; 返回主程序

4.若异步通信,每个字符由11位组成,串行口每秒传送250个字符,波特率是多少

11*250=2750

5.51单片机的串行口控制寄存器SCON的SM2,TB8,RB8有何作用

SM2是多级通信控制位,控制接收哪个位置的数据

TB8是发送数据的第九位,表示主机发送的是地址帧还是数据帧

RB8接收数据的第九位,表示接到数据的特征

补充:8-3:

7-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值