单片机原理及应用作业答案

更新时间:2023-05-03 19:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

作业答案0-1

绪论

1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。

2.什么叫单片机?其主要特点有哪些?

解:

将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。

单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。

第1章 MCS-51单片机的结构与原理

15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:

MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。

MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-R n)?

解:

开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。

27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?

解:

时钟周期又称为振荡周期,由单片机部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。

执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1~4个不等的机器周期。

当MCS-51的主频为12MHz时,一个机器周期为1s。执行一条指令需要的最长时间为4s。

第2章 MCS-51单片机指令系统与汇编语言程序设计

4. 假定累加器A中的容为30H,执行指令1000H:MOVC A,A+PC后,把程序存储器( 1031H )单元的容送入累加器A中。

7. 指出下列各指令在程序存储器中所占的字节数

(1)MOV DPTR,#1234H 3字节

(2)MOVX A, DPTR 1字节

(3)LJMP LOOP 3字节

(4)MOV R0,A 1字节

(5)AJMP LOOP 2字节

(6)MOV A,30H 2字节

(7)SJMP LOOP 2字节

(8)MOV B,#30H 2字节

15.设堆栈指针(SP)=60H,片RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中的容将有何变化?

PUSH 30H

PUSH 31H

POP DPL

POP DPH

MOV 30H, #00H

MOV 31H, #0FFH

解:

结果为: 61H、62H单元为堆栈单元,其容已被弹出栈。 (30H)=00H

(31H)=0FFH (DPTR)=2410H (SP)=60H

17.完成以下的数据传送过程

(1)R1的容传送到R0。

(2)片外RAM 20H单元的容送R0。

(3)片外 RAM 20H单元的容送片RAM 20H单元。

(4)片外RAM 1000H单元的容送片 RAM 20H单元。

(5)ROM 2000H单元的容送R0。

(6)ROM 2000H单元的容送片RAM 20H单元。

(7)ROM 2000H单元的容送片外RAM 20H单元。

解:

(1)R1的容传送到R0 ;

MOV A, R1

MOV R0, A

(2)片外RAM 20H单元容送R0 ;

MOV R1, #20H

MOVX A, R1

MOV R0, A

(3)片外 RAM 20H单元的容送片RAM 20H单元;

MOV R0, #20H

MOVX A, R0

MOV 20H, A

(4)片外RAM 1000H单元的容送片 RAM 20H 单元;

MOV DPTR, #1000H

MOVX A, DPTR

MOV 20H, A

(5)ROM 2000H单元的容送R0单元;

CLR A

MOV DPTR, #2000H

MOVC A, A+DPTR

MOV R0, A

(6)ROM 2000H 单元的容送片RAM 20H单元;

CLR A

MOV DPTR, #2000H

MOVC A, A+DPTR

MOV 20H, A

(7)ROM 2000H单元的容送片外RAM 20H单元。

CLR A

MOV DPTR, #2000H

MOVC A, A+DPTR

MOV R0, #20H

MOVX R0, A

19.编程将片RAM的40H~60H单元中容送到片外RAM以3000H开始的单元中。并将原片RAM 数据块区域全部清0。

解: ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV SP, #60H

MOV R7,#21H

MOV R1,#40H

MOV DPTR,#3000H

LOOP: MOV A,R1

MOVX DPTR,A

MOV R1, #00H

INC R1

INC DPTR

DJNZ R7,LOOP

SJMP $

END

23.设有100个有符号数,连续存放在片外RAM以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数。

解: ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV R2,#100

MOV R3,#00H

MOV R4,#00H

MOV R5,#00H

MOV DPTR,#2000H

LOOP:MOVX A,DPTR

CJNE A,#00H,NET1

INC R3

SJMP NET3

NET1: ACC.7 NET2

INC R4

SJMP NET3

NET2:INC R5

NET3:INC DPTR

DJNZ R2,LOOP

SJMP $

END

24.试编一查找程序,从外部RAM首地址为2000H、长度为9FH的数据块中找出第一个ASCII 码A,将其地址送到20A0H和20A1H单元中。

解: ORG 0000H

LJMP MAIN

ORG 0030H

MAIN: MOV SP, #60H

MOV DPTR,#2000H

MOV R7,#9FH

LP0: MOVX A,DPTR

CJNE A, #41H, LP1

MOV R2,DPL

MOV R3,DPH

MOV DPTR,#20A0H

MOV A, R2

MOVX D PTR,A

INC DPTR

MOV A, R3

MOVX D PTR,A

SJMP LP2

LP1: INC DPTR

DJNZ R7, LP0

LP2: RET

END

27.编程实现将片外RAM中2400H~2450H单元中的数传送到2500H~2550H单元中。解:

ORG 0000H

LJMP MAIN

ORG 0030H MAIN: MOV R7,#51H

MOV DPTR, #2400H LOOP: MOVX A,DPTR

MOV DPH, #25H

MOVX DPTR,A

MOV DPH, #24H

INC DPTR

DJNZ R7 ,LOOP

SJMP $

END

另一种方法:

ORG 0000H

LJMP MAIN

ORG 0030H MAIN: MOV 30H,#24H

MOV 31H,#00H

MOV 32H,#25H

MOV 33H,#00H

MOV R2,#51H LOOP: MOV DPH,30H

MOV DPL,31H

MOVX A,DPTR

MOV DPH,32H

MOV DPL,33H

MOVX DPTR,A

INC 31H

INC 33H

DJNZ R2,LOOP

SJMP $

END

第三章作业答案

6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2定时)。

27.请写出1

INT为低电平触发的中断系统初始化程序。

解:

1

INT为低电平触发的中断系统初始化程序如下:

ORG 0000H

LJMP MAIN

ORG 0013H

LJMP INTN1

ORG 0100H

MAIN:MOV SP,#60H

SETB EA

SETB EX1 ;开1

INT中断

CLR PX1 ;令1

INT为低优先级

CLR IT1 ;令1

INT为电平触发

SJMP $

END

28.说明MCS-51单片机响应中断后,中断服务的入口地址。

解:

中断源中断矢量

外部中断0(0

INT)0003H

定时器T0中断000BH

外部中断1(1

INT)0013H

定时器T1中断001BH

串行口中断0023H

36

解:

设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。

37.利用定时器输出周期为2 ms的方波, 设单片机晶振频率为 6 MHz。试编程实现之。解:

选用定时器/计数器T0 作定时器,工作在方式1,输出为P1.0 引脚, 2 ms 的方波可由 1 ms的高低电平相间隔而成,因而只要每隔1 ms对 P1.0 取反一次即可得到这个方波。初值的计算如下:ST0=12/(6×106)= 2×10-6S

TC=M-T/T0=216-1×10-3/2×10-6=65536-500=65036=FE0CH

当定时器/计数器采用方式0时,初值为:

TC=M-T/T0=213-1×10-3/2×10-6=8192-500=7692=1E0CH,

则真正的16位计数初值为:F00CH(高8位,低5位)

程序如下:

ORG 0000H

LJMP START

ORG 000BH

LJMP T0INT ; T0中断入口

ORG 0030H

START:MOV SP, #60H ;初始化程序

MOV TL0, #0CH ; T0赋初值

MOV TH0, #0FEH

MOV TMOD, #01H ;定时器/计数器0工作于方式1

SETB TR0 ;启动T0

SETB ET0 ;开T0中断

SETB EA ;开总允许中断

SJMP $

T0INT:PUSH ACC

PUSH PSW

CPL P1.0

MOV TL0, #0CH

MOV TH0, #0FEH

SETB TR0 ;启动T0

POP PSW

POP ACC

RETI

END

当采用查询方式时:

兰色字部分应该为:

LP1: JBC TF0, LP2

SJMP LP1

LP2: CPL P1.0

MOV TL0, #0CH

MOV TH0, #0FEH

SETB TR0

SJMP LP1

END

48.某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。 解:11(位)×3600(字符/分钟)=39600b/分钟=660b/s (方式3为每个字符11位)。

49.利用8051串行口控制8位发光二极管工作,要求发光二极管每1s 交替地亮、灭,画出电路图并编写程序。

解:

主程序框图如下: 开始

串口初始化,FFH 送SBUF

设置标志

调延时子程序

标志位取反

标志为零?

00H 送SBUF

FFH 送SBUF Y

N

程序如下:

ORG 0040H

MOV SCON ,#00H

MOV SBUF ,#0FFH

SETB C

MOV 00H ,C

AA : ACALL DELAY

CPL 00H

MOV C ,00H

JC BB

MOV SBUF ,#00H

SJMP CC

BB :MOV SBUF ,#0FFH

CC :AJMP AA

DELAY : MOV R7,#8

D1:MOV R6,#250

D2:MOV R5,#250

D3:DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

END

第四章作业答案

16. MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?

解:

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。

18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址围。

解:

硬件连接电路图如图4.18所示。各芯片的地址围为:

2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH

6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH

图4.18 4.18题硬件连接电路图

21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B 口按方式1输出。

解:

程序如下:

MOV DPTR,#7F03H

MOV A,#10010100B

MOV DPTR,A

25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。

解:

电路连接图如图4.25所示。

图4.25 4.25题硬件连接电路图

其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。设MCS-51单片机主频为12MHz。

程序如下:

ORG 0000H

LJMP START

ORG 0030H

START:MOV SP, #60H

MOV DPTR, #7FFFH ; 数据指针指向8255A控制口

MOV A, #80H

MOVX DPTR, A ; 工作方式字送8255A控制口

MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口

MOV A, #0FH ; 置红色发光二极管亮

LP1: MOVX DPTR, A ; 置红色发光二极管亮

LCALL DELAY ; 调用1S延时子程序

CPL A ; 置发光二极管亮反色

LJMP LP1 ; 循环执行

DELAY: MOV R7,#8 ; 1S延时子程序

D1:MOV R6,#250

D2:MOV R5,#250

D3:DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

END

采用定时器T0方式1中断实现1S定时。

1S=50mS×20次。

T0方式1实现50mS定时,初值=216-50mS/1μS=15536=3CB0H

(1S=20mS×50次,初值=216-20mS/1μS=45536=B1E0H)

ORG 0000H

LJMP START

ORG 000BH

LJMP TT0

ORG 1000 H

START:MOV SP, #60H

MOV DPTR, #7FFFH ; 数据指针指向8255A控制口

MOV A, #80H

MOVX DPTR, A ; 工作方式字送8255A控制口

MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口

MOV A, #0FH ; 置红色发光二极管亮

MOV R2, A

MOVX DPTR, A ; 置红色发光二极管亮

MOV 30H, #00H ; 次数计数单元初值

MOV TL0, #0B0H ; T0赋初值

MOV TH0, #3CH

MOV TMOD, #01H ; 定时器/计数器0工作于方式1

SETB TR0 ; 启动T0

SETB ET0 ; 开T0中断

SETB EA ; 开总允许中断

LP1:SJMP LP1 ; 等待定时器中断

TT0:PUSH ACC

PUSH PSW

INC 30H

MOV A, 30H

CJNE A, #20, LP2

MOV A, R2

CPL A

MOV R2, A

MOVX DPTR, A

MOV 30H, #00H

LP2: MOV TL0, #0B0H ; T0赋初值

MOV TH0, #3CH

POP PSW

POP ACC

SETB TR0

RETI

END

26.简述RS-232C, RS-422A及RS-485串行通信接口的特点,画出在双机通信情况下,3个串行通信接口的接口电路。

解:

RS-232C采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的,采用负逻辑,其驱动器负载为3k~7k。由于RS-232C发送电平与接收电平的差仅为2~3V,所以其共模抑制能力差,再加上双绞线上的分布电容,因此,RS-232C适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。

RS-422由RS-232发展而来,RS-422定义了一种平衡通信接口,将传输速率提高到

10Mb/s,传输距离延长到1220m(速率低于100kb/s时),并允许在一条平衡总线上最多连接10个接收器。RS-422是一种单机发送、多机接收的单向、平衡的通信总线标准。

RS-485是在RS-422的基础上制定的标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485总线标准。它采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平。具有较高的灵敏度,能检测低至200mV的电压,具有抑制共模干扰的能力,数据传输可达千米以上。

RS-232的双机通信接口电路如图4.26-1所示。

图4.26-1 4.26题硬件连接电路图

RS-422和RS-485的双机通信接口电路如图4.26-2所示。

图4.26-2 4.26题硬件连接电路图

31.何谓“看门狗”?它如何实现对系统程序的监控?

解:

“看门狗(WDT)”,也称为程序监视定时器。WDT的作用是通过不断监视程序每周

期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了“死循环”,并对进入“死循环”的程序作出系统复位处理。

在程序中设置适当的指令,清WDT,就可监视微处理器的工作。例如在主程序开始时,将WDT置位,如果主程序执行过程中产生死循环,就无法清WDT,超过WDT的定时时间时,WDT就会对微处理器发出复位信号。从而实现对系统程序的监控。

32.说明I2C总线的特点以及在单片机中实现该总线的方法。

解:

I2C总线是由串行数据线SDA和串行时钟线SCL构成的,可发送和接收数据。它允许若干兼容器件共享总线。所有挂接在I2C总线上的器件和接口电路都应具有I2C总线接口,且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的地址信号寻址,不需要片选线。

I2C总线最主要的优点是其简单性和有效性。占用的空间小,降低了互连成本。总线的长度可高达7.6m,并且能够以10kbps的最大传输速率支持40个组件。支持多主控器件,其中,任何能够进行发送和接收的设备都可以成为主器件。主控能够控制信号的传输和时钟频率。当然,在某时刻只能有一个主控器件。

在单片机控制系统中,广泛使用I2C器件。如果单片机自带I2C总线接口,则所有I2C 器件对应连接到该总线上即可;若无I2C总线接口,则可以使用I/O口模拟I2C总线。

使用单片机I/O口模拟I2C总线时,硬件连接非常简单,

只需两条I/O口线即可,在软件中分别定义成SCL和SDA。

MCS-51单片机实现I2C总线接口电路如图4.32所示。

电路中单片机的P1.0引脚作为串行时钟线SCL,P1.1

引脚作为串行数据线SDA,通过程序模拟I2C串行总线的

通信方式。I2C总线适用于通信速度要求不高而体积要求

较高的应用系统。

图4.32 4.32题硬件连接电路图

第五章作业答案

6. 当DAC 0832 D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为( D)。

A:0832H B;FE00H C:FEF8H D;以上三种都可以

10.简述D/A转换器的主要技术指标。

解:

D/A转换器的主要性能指标有:

(1)分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。

(2)精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程V FS的百分数或最低有效位(LSB)的分数形式表示。

(3)线性误差:D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。常以LSB的分数形式表示。

(4)转换时间T S(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。

22.具有8位分辨率的A/D转换器,当输入0~5V电压时,其最大量化误差是多少?

解:

对于8位A/D转换器,实际满量程电压为5V,则其量化单位1LSB=5V/256=0.0196V,考虑到A/D转换时会进行四舍五入处理,所以最大量化误差为(1/2)LSB,即0.0098V。

23.在一个80C51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为0~5V。试画出有关逻辑电路图,并编写产生矩形波,其波形占空比为1:4,高电平为2.5V,低电平为1.25V的转换程序。

解:

硬件电路连接图如图5.23所示。

图5.23 5.23题逻辑电路图

DAC0832的口地址为7FFFH。波形占空比为1:4,高电平波形/低电平波形为1/3。

当V O=2.5V时,D=80H;V O=1.25V时,D=40H。

程序如下:

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV SP,#60H

MOV DPTR,#7FFFH

NEXT:MOV A,#80H

MOVX DPTR,A

ACALL DELAY

MOV R4,#03H

MOV A,#40H

MOVX DPTR,A

LOOP:ACALL DELAY

DJNZ R4,LOOP

AJMP NEXT

DELAY:……

RET

END

24.在一个80C51与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H~7FFFH。试画出逻辑电路图,并编写程序,每隔1分钟轮流采集一次8个通道数据,8个通道总共采集100次,其采样值存入以片外RAM 3000H开始的存储单元中。

解:

硬件电路连接图如图5.24所示。

图5.24 5.24题逻辑电路图

设80C51的时钟频率为12MHz,程序如下:

ORG 0000H

LJMP MAIN

ORG 001BH

LJMP T1_1

ORG 0030H

MAIN:MOV SP,#60H ;设堆栈指针

MOV R7,#100 ;置采集次数

MOV R1,#30H ;片外RAM地址高位

MOV R0,#00H ;片外RAM地址低位

MOV R2,#20 ;置入初值20(计1 s)

MOV R3,#60 ;置入初值60(计1 min)

MOV TOMD,#10H ;定时器T1工作于模式1

MOV TH1,#3CH ;计数器定时50ms的初值

MOV TL1,#0B0H

SETB EA ;开中断

SETB ET1 ;定时器T1允许中断

SETB TR1 ;启动定时器T1

LOOP:SJMP LOOP ;等待中断

DJNZ R7,LOOP ;是否到100次?

SJMP $

ORG 0100H

T1_1:MOV TH1,#3CH ;中断服务程序,重新赋计数器初值

MOV TL1,#0B0H

DJNZ R2,RETI_0 ;1 s未到,返回

MOV R2,#20 ;重新置“1s”计数器初值

DJNZ R3,RETI_0 ;1 min未到,返回

MOV R3,#60 ;重新置“1min”计数器初值

MOV R6,#8 ;8个通道计数器初值

MOV DPTR,#7FF8H ;IN0地址

LOOP1:MOVX DPTR,A ;启动A/D转换

P1.0,$ ;判转换是否结束

MOVX A,DPTR ;读取转换结果

PUSH DPH ;将通道地址压入堆栈

PUSH DPL

MOV DPH,R1 ;将片外RAM地址送DPTR

MOV DPL,R0

MOVX DPTR,A ;将转换结果存入片外RAM

INC DPTR ;片外RAM地址加1

MOV R1,DPH ;保存片外RAM地址

MOV R0,DPL

POP DPL ;恢复通道地址

POP DPH ;通道地址加1

INC DPTR

DJNZ R6,LOOP1 ;8个通道是否采集结束

RETI_0:RETI ;中断返回

END

习题1

2. CPU由(运算器)和(控制器)组成。

12. 采用 8031单片机必须扩展(B)。

A:数据存储器 B:程序存储器 C:I/O接口 D:显示接口

16. 8051单片机的控制总线信号有哪些?各有何作用?

解:

控制线一共有6条:

(1)ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/PROG上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。

(2)EA/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片ROM还是使用片外ROM。若EA=0,则允许使用片ROM;若EA=1则允许使用片外ROM。

(3)PSEN:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSEN上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下PSEN线均为高电平封锁状态。

(4)RST/V PD:复位/备用电源线,可以使8051处于复位工作状态。

习题2

2. 在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。

5. 8051执行完MOV A,#08H后,PSW的( D)位被置位。

A:C B:F0 C:OV D:P

11.片RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?

解:

位寻址是直接寻址方式的一种。虽然部RAM位寻址区的位地址围00H~7FH与低128个单元的单元地址围00H~7FH形式完全相同,但是在应用中可以通过以下的方法区分:

1.通过指令操作码(指令的类型)区分:

位操作只有17条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

MOV C,bit CPL bit (C) bit,rel

MOV bit,C ORL C,bit (/bit) JNB bit,rel

CLR bit (C) ANL C,bit (/bit) JC rel

SETB bit (C) JBC bit,rel JNC rel

位操作只有MOV、 CLR 、SETB、 CPL 、ORL、 ANL 、、JNB、 JBC、 JC、 JNC几种操作码,其中:、JNB、JBC、JC、JNC是位寻址特有的。

2. 当指令操作码一样时,可通过操作数的表现形式来区分。直接位地址的表示方法有:

(1)直接使用位地址形式。如:MOV 00H, C

(2)字节地址加位序号的形式。如:MOV 20H.0, C

(3)位的符号地址(位名称)的形式。如:ANL C, P

(4)字节符号地址(字节名称)加位序号的形式。如:CPL PSW.6

3. 可通过指令中的累加器区分:

位操作中的累加器为C,单元操作中的累加器为A。

13.在“MOVC A, A+DPTR”和“MOVC A, A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?

解:

使用A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。

使用A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。

15.设堆栈指针(SP)=60H,片RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中的容将有何变化?

PUSH 30H

PUSH 31H

POP DPL

POP DPH

MOV 30H, #00H

MOV 31H, #0FFH

解:

结果为: 61H、62H单元为堆栈单元,其容已被弹出栈。 (30H)=00H

(31H)=0FFH (DPTR)=2410H (SP)=60H

19.编程将片RAM的40H~60H单元中容送到片外RAM以3000H开始的单元中。并将原片RAM 数据块区域全部清0。

解: ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV SP, #60H

MOV R7,#21H

MOV R0,#40H

MOV DPTR,#3000H

LOOP: MOV A,R0

MOVX DPTR,A

MOV R0, #00H

INC R0

INC DPTR

DJNZ R7,LOOP

SJMP $

END

20.编程计算片RAM区30H~37H 的8个单元中数的算术平均值,结果存放在3AH单元中。

解: ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV R0,#30H

MOV R1,#00H

MOV R2,#00H

MOV R3,#08H

LP2:MOV A,R0

ADD A,R2

MOV R2,A

JNC LP1

INC R1

LP1:INC R0

DJNZ R3,LP2

MOV R3,#03H

CLR C

LP3:MOV A,R1

RRC A

MOV R1,A

MOV A,R2

RRC A

MOV R2,A

DJNZ R3,LP3

MOV 3AH,R2

SJMP $

END

22.设有两个长度均为15的数组,分别存放在片外RAM以2000H和2100H开始的存储区中,试编程求其对应项之和,结果存放在以2200H为首地址的存储区中。

解:

ORG 0000H

LJMP MAIN

ORG 0030h

MAIN: MOV DPTR,#2000H

MOV A,#OFFH

MOVX DPTR,A

MOV DPTR,#2100H

MOV A,#34H

MOVX DPTR,A

MOV DPTR,#2008H

MOV A,#33H

MOVX DPTR,A

MOV DPTR,#2108H

MOV A,#44H

MOVX DPTR,A

MOV DPTR,#200EH

MOV A,#0EEH

MOVX DPTR,A

MOV DPTR,#210EH

MOV A,#32H

MOVX DPTR,A

MOV DPTR,#2000H

MOV R1,#30H

MOV R2,#15 LOOP: MOVX A,DPTR

MOV R1,A

INC DPTR

INC R1

DJNZ R2,LOOP

MOV R1,#30H

MOV DPTR,#2100H

MOV R2,#15

MOV R0,#40H LOOP1:

MOVX A,DPTR

CLR C

ADDC A,R1

MOV R0,A

INC DPTR

INC R1

INC R0

DJNZ R2,LOOP1

MOV DPTR,#2200H

MOV R2,#15

MOV R0,#40H LOOP2: MOV A,R0

MOVX DPTR,A

INC R0

INC DPTR

SJMP $

DJNZ R2,LOOP2

END

习题3

8. 在数据通信中,有数据传送方式有(单工)、(半双工)、(全双工)、(多工)四种方式。

9. 设置串行口为10位UART,则其工作方式应选用为(工作方式1)。

19. 控制串行接口工作方式的寄存器是( C )。

A:TCON B:PCON C:SCON D:TMOD

24.简述MCS-51单片机的中断响应过程。

解:

单片机一旦响应中断请求, 就由硬件完成以下功能:

(1)根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1;

(2)执行硬件中断服务子程序调用, 并把当前程序计数器PC的容压入堆栈,保护断点,寻找中断源;

(3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);

(4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。

(5)中断返回,程序返回断点处继续执行。

31.MCS-51的中断服务程序能否存放在64KB程序存储器的任意区域?如何实现?

解:

可以。在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMP Add16),转到相应64K程序存储器的任意地址(Add16)处,执行相应的中断程序。

习题4

9. 扩展外部存储器时要加锁存器74LS373,其作用是(A)。

A:锁存寻址单元的低八位地址 B:锁存寻址单元的数据

C:锁存寻址单元的高八位地址 D:锁存相关的控制和选择信号

16. MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?

解:

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,并且,访问二者的指令也不同。因此,两者虽然共处于同一地址空间,但由于控制信号和访问指令不同,所以不会发生总线冲突。

17.某一单片机应用系统,需扩展4KB的EPROM和2KB的RAM,还需外扩一片8255并行接口芯片,采用线选法,画出硬件连接图,并指出各芯片的地址围。

解:

硬件连接图如下图所示。

图 4.17题硬件连接电路图

注:8255的复位线RESET应与MCS-51的RESET线连上。复位、晶振电路应画上。

各芯片的地址围为:

2732:E000H~EFFFH 6116:D800H~DFFFH 8255:BFFCH~BFFFH

20.8255A有几种工作方式?如何选择工作方式?A口和B口的工作方式是否完全相同?解:

8255A有3种工作方式:方式0、方式1和方式2。

① 方式0(基本输入/输出方式)。这种方式不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。

② 方式1(选通输入/输出方式)。这种工作方式下,A组包括A口和C口的高四位(PC7~PC4),A口可由程序设定为输入口或输出口,C口的高四位则用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低四位(PC3~PC0),功能和A组相同。

③ 方式2(双向I/O口方式)。仅A口有这种工作方式,B口无此工作方式。此方式下,A口为8位双向I/O口,C口的PC7~PC3用来作为输入输出的控制和同步信号。此时,B口可以工作在方式0或方式1。

21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B 口按方式1输出。

解:

程序如下:

ORG 0000H

LJMP START

ORG 0030H

START:MOV SP, #60H

MOV DPTR,#7F03H

MOV A,#10010100B

MOVX DPTR,A

SJMP $

END

习题5

18.A/D转换器ADC0809的编程要点是什么?

解:

在软件编写时,应根据硬件连接电路计算被选择的模拟通道的地址;执行一条输出指令,启动A/D转换;转换结束后,执行一条输入指令,读取A/D转换结果。

可以采用延时、查询和中断的方法判别A/D转换结束。

19.在什么情况下要使用D/A转换器的双缓冲方式?试以DAC0832为例画出双缓冲方式的接

口电路。

解:

(1)应设置D/A转换器的双缓冲方式的情况

有些D/A转换器(如DAC0832)的部具有两极缓冲结构,即芯片有一个8位输入寄存器和一个8位DAC寄存器。

这样的双缓冲结构,可以使DAC转换输出前一个数据的同时,将下一个数据传送到8位输入寄存器,以提高D/A转换的速度。更重要的是,能够使多个D/A转换器在分时输入数据后,同时输出模拟电压。

(2)D/A转换器DAC0832的双缓冲方式的接口电路如图5.19所示。

图5.19 DAC0832双缓冲连接电路图

20.用单片机控制外部系统时,为什么要进行A/D和D/A转换?

解:

单片机只能处理数字形式的信息,但是在实际工程量遇到的是连续变化的物理量,如温度、压力、流量、光通量、位移量以及连续变化的电压、电流等。对于非电信号的物理量,必须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为OV~5V电平的模拟量。所以必须加接模拟通道接口,以实现模拟量和数字量之间的转换。A/D(模/数)转换就是把输入的模拟量变为数字量,供单片机处理;而D/A(数/模)转换就是将单片机处理后的数字量转换为模拟量输出。

习题6

5.显示器和键盘在单片机应用系统中的作用是什么?

解:

具有人机对话功能。实现人对应用系统的状态干预和数据输入以及应用系统向人报告运行和运行结果。

12.矩阵式键盘的编程要点是什么?

解:

(1)判断键盘上有无键按下:列输出全0,读行输入状态,若状态为全1,则说明键盘无键按下;若不全为1,则说明键盘有按下。

(2)消除按键抖动的影响:在判断有键按下后,用软件延时的方法,再判断键盘状态,如果仍为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理。

(3)求按键位置,计算键号:用扫描的方法识别闭合键N所在的行号X和列号Y,并根据:以下公式计算闭合键的键号N =X行首键号+列号Y。

(4)键闭合一次仅进行一次按键处理:方法是等待按键释放之后,再进行按键功能的处理操作。

习题7

1.简述单片机应用系统设计的一般方法及步骤。

解:

单片机应用系统设计的一般方法及步骤如图7.1所示。

(1)明确设计任务

(2)器件选择(3)总体设计

本文来源:https://www.bwwdw.com/article/qfqe.html

Top