《单片机原理和应用》部分习题解答

发布时间 : 星期六 文章《单片机原理和应用》部分习题解答更新完毕开始阅读

16×8=128位,可用位寻址方式访问其各位,其位地址为00H~7FH。位于位地址之后的30H~7FH共80个RAM单元是用户RAM区,也称为数据堆栈缓冲区。该区域主要用于存放用户数据或作堆栈区使用。MCS-51单片机片内高128字节的RAM中,离散地分布着21个具有特殊功能的寄存器SFR,他们包括程序状态字寄存器、累加器、I/O口锁存器、定时/计数器,串口数据缓冲器、数据指针等。

6. 8051单片机有多少特殊功能寄存器? 21个

7.数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?

DPTR是一个16位的特殊功能寄存器,它是用8位DPH和8位DPL两个独立的8位寄存器来表示的16位地址。当对64KB片外RAM寻址时,DPTR可以作间地址寄存器使用,执行MOVX A,@DPTR指令或MOVX @DPTR,A指令。在访问程序存储器时,DPTR作基址,执行MOVC A,@A+DPTR指令,以读取程序存储器内存放的表格常数。

程序计数器PC是一个16位专用计数器,在物理结构上是独立的,不属于特殊功能寄存器SFR。PC用于存放CPU下一条要执行指令的地址,即程序存储器地址。PC本身是没有地址的,是不可以寻址的,因此用户不能对它进行读写操作,但可以通过转移、调用、返回等指令改变其内容,从而实现程序的转移。PC的寻址范围为64KB。

8.程序状态字寄存器PSW的作用是什么?常用状态有哪些位?作用是什么?

PSW是一个8位特殊功能寄存器,用于存放程序的状态和指令的执行状态,供程序查询和判别用。PSW字节地址为D0H,其每一位还有位地址,各位位置如下:

D7 CY D6 AC D5 F0 D4 RS1 D3 RS0 D2 OV D1 未用 D0 P 各位说明如下:

CY:进位标志位。在执行加、减法指令时,如果运算结果的最高位(D7位)有进位或借位,CY位被置“1”,否则清“0”。

AC:半进位标志位。在执行加、减法指令时,其低半字节向高半字节有进位或借位时(D3位向D4位),AC位被置“1”,否则清“0”。AC位主要被用于BCD码加法调整,详见DA指令。

F0:用户自定义标志位。用户根据自己的需要对F0赋以一定含义,由用户置位、复位,作为软件标志。

RS1和RS0:工作寄存器组选择位。它们的0、1组合状态用来确定当前工作寄存器组,前已详述。

OV:溢出标志位。在补码运算,当运算结果超出-128~+127的范围时(溢出),OV位被置“1”,无溢出,OV位为“0”。

P:奇偶校验标志位。每条指令执行完毕,A中有奇数个1,则P=1,否则P=0。该标志位用在串行通信中,常用奇偶校验的方法检验数据传输的可靠性。

9.什么是RAM?什么ROM?试区分其性能和用途?

存储器是在使用过程中利用程序随时可以写入信息,又可以随时读出信息的存储器。一般情况下,我们用此存储器存储数据或运算的中间结果,所以也称之为数据存储器。它分为双极型和MOS型两种,前者读/写速度高,但功耗大,集成度低,故在微型机中几乎都用后者。MOS型存储器又可分为三类。(1)静态RAM 即SRAM(Static RAM),其优点是状态稳定,只要不掉电,信息不会丢失,不需要刷新电路;缺点是集成度低。静态RAM适用于不需要大存储容量的微型计算机系统中。

(2)动态RAM 即DRAM(Dynamic RAM),其存储单元以电容为基础,电路简单,集成度高。但存在电容中电荷由于漏电会逐渐丢失的问题,因此DRAM需定时刷新。它适于大存储容量的计

算机,常说的内存条就是由DRAM组成。

(3)非易失RAM或掉电自保护RAM 即NVRAM(Non Volative RAM)。这种RAM是由SRAM和EEPROM共同构成的存储器,正常运行时和SRAM一样,而在掉电或电源有故障的瞬间,它把SRAM的信息保存在EEPROM中,从而使信息不会丢失。NVRAM多用于存储非常重要的信息和掉电保护。

程序存储器ROM用于存放编好的系统程序和表格常数等,这些是不变信息,一般存放在只读

2

存储器ROM中,只读存储器有ROM、PROM、EPROM、EPROM等。

1)掩膜ROM

这种存储器的存储电路对0和1两种状态,是在制造时由生产厂家根据用户需求,通过掩膜工艺制作或不制作晶体管栅极来实现的,一旦制作完毕,存储内容不可修改。

2)PROM是针对掩膜ROM的不可修改而提出的。掩膜ROM在用户软件开发时不能更改,故PROM是由用户编程。PROM出厂时为熔丝断裂型,编程输入时,对需要写1的单元通过大电流熔断其熔丝,丝断后不可再恢复,故只能写入一次。

3)EPROM是一种可多次写入的ROM。EPROM芯片上开有一个石英窗口,当芯片在紫外线照射时,入射光子驱散EPROM中的电子,将原来存储的电荷信息擦除,EPROM所存信息被擦除。当再次使用时,可重新写入新内容。EPROM在系统开发时可多次修改程序。常用的芯片有2732、2764、27128、27256、27512等,其容量分别为4KB、8KB、16KB、32KB、64KB等。

4)E2PROM是近年来使用的新产品,它可以直接接在+5V电源上进行电擦除,也可以电写入,并能一次写几位或几个字节。常用的芯片由2816(2K×8位)、2817(2K×8位)、2864(8K×8位)等。

10.MCS-51系列单片机片内RAM有多少单元?各有哪些用途?这些用途各占用哪些单元?堆栈的栈区在哪里?

256个片内RAM单元。单片机的片内数据存储器地址空间如图2-10所示。片内RAM最大可寻址256个单元。它们又分为两个部分,低128字节(00H~7FH),是真正的RAM区;高128字节(80H~FFH)为特殊功能寄存器SFR区。 8051片内真正可作数据存储器用的只有128个RAM单元,即00H~7FH地址空间。他们又可划分为三个区域:工作寄存器区、位寻址区和数据缓冲区。工作寄存器区占00H~1FH的32个RAM单元,分为四组工作寄存器,每组由8个工作寄存器R0~R7组成。位寻址区位于工作寄存器区后的16个RAM单元,其单元地址为20H~2FH,共16×8=128位,可用位寻址方式访问其各位,其位地址为00H~7FH。位于位地址之后的30H~7FH共80个RAM单元是用户RAM区,也称为数据堆栈缓冲区。该区域主要用于存放用户数据或作堆栈区使用。8051单片机复位时,堆栈指针8051SP指向07H单元,当用户使用堆栈时,应先设置堆栈区。用户堆栈一般设在30H~7FH之间,单片机原则上栈深128个字节,即不超过RAM区。

11.何谓堆栈?为什么要设置堆栈?栈区是怎样确定?数据进栈、出栈遵循何种规律?进栈、出栈时指针将怎么样变化?通常栈底所指是什么内容?栈顶所指又是什么?

堆栈是在RAM区中,按照先进后出的原则设置的专用存储区域。堆栈的起始地址,叫栈底。已存数据的最低地址单元,叫栈顶。由栈底到栈顶的存储区域称为栈区。栈底是封死的,只开放栈顶。栈区中数据的存取遵从先进后出的原则。数据的入栈、出栈由堆栈指针SP统一管理。数据入栈,SP的内容先自动加1,SP指向新的栈顶,再堆入一个数据。数据出栈,每弹出一个数据,SP的内容自动减1,指向新的栈顶。堆栈主要用于CPU执行主程序时的现场保护。如主程序调用子程序或执行中断服务时,要将断点数据推入堆栈,记忆断点的位置,待子程序或中断服务程序执行完毕,再将堆栈中保护的断点数据弹出,即恢复现场,使CPU继续执行主程序。

12.何谓时钟周期、机器周期、指令周期?针对MCS-51系列单片机,如采用12MHz晶振,它们的频率和周期各是多少?

振荡周期的二倍宽为时钟周期,时钟周期也称为状态,用S表示,这样一个状态包含两个节拍,分别用P1、P2表示。1个机器周期=6个时钟周期=12个振荡周期

指令周期是指执行一条指令所需要的时间。不同的指令,所需要的执行时间是不同的。MCS-51单片机的指令周期通常含有1~4个机器周期。如果8051单片机的晶振频率为12MHz,则其振荡周期为1/12us,机器周期为1us,指令周期在1~4us之间。

13.MCS-51怎样实现上电复位与操作复位?并请综述各专用寄存器复位后的状态. RST引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就能使单片机复位。上电自动复位是通过电容充电实现的,电路如图2-13a所示。上电瞬间,RST端电位与Vcc相同,随着充电电流减少,RST的电位逐渐下降,直到复位信号无效。

按钮复位可采用如图2-13b所示的脉冲复位和如图2-13c所示的电平复位电路。2-13b图的复位脉冲应保持两个机器周期以上,过后由内部下拉电阻保证RST变为低电平。

寄存器 PC B SP P0~P3 IE TCON TH0 TH1 SCON

14.MCS-51系列单片机怎样实现掉电保护?怎样工作在节电操作方式?

单片机系统在运行中,如发生掉电故障,RAM中的信息就会丢失。因此,单片机设置了掉电保护工作方式:即先把有用的信息转存到内部随机存储器中,再由备用电源VPD维护供电。若将PCON的IDL置为“1”,单片机即进入待机工作方式(可使用ORL PCON,#01H来实现)。若将PCON的PD置为“1”,单片机即进入掉电工作方式。

习 题 三 参考答案

1. 略

2. 7中寻址方式:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对

寻址和位寻址。在立即寻址中,操作数的数值在指令中写出,一眼就可看出其数值的大小。在寄存器寻址中,操作数存放在寄存器中,指令中给出的是寄存器的名称。在直接寻址中,操作数存放在存储器中,指令中给出的是操作数的存放地址。在寄存器间接寻址中,操作数存放在存储器中,该存储单元的地址又存放在寄存器中,而指令中给出的是寄存器名称。在变址寻址中,操作数存放在程序存储器中,操作数的地址是累加器A

复位状态 0000H 00H 07H FFH 0X000000B 00H 00H 00H 00H 寄存器 ACC PSW DPTR IP TMOD TL0 TL1 SBUF PCON 复位状态 00H 00H 0000H XX000000B 00H 00H 00H 不定 OXXX0000B 与数据指针DPTR或程序计数器PC的值的和。相对寻址方式是以PC的当前值(该当前值是指执行完这条相对转移指令时PC的字节地址)作为基地址,加上指令中给定的偏移量所得结果作为转移地址。位寻址是指对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式。 3.

(1) MOVX A,@R0 ;是把间址寄存器R0所指定的片外RAM内容送到A。

MOVX @R0,A;是A的内容送到把间址寄存器R0所指定的片外RAM单元。 (2) MOVX @R0,A;是A的内容送到把间址寄存器R0所指定的片外RAM单元。 MOVX @DPTR,A;是A的内容送到把间址寄存器DPTR所指定的片外RAM单元。

(3) MOVX A,@R1;是把间址寄存器R0所指定的片外RAM内容送到A。

MOVX A,@DPTR;是把间址寄存器DPTR所指定的片外RAM内容送到A。

4.(1)MOV R6,A (2)MOV 7BH,A (3)MOV R0,#7BH

(4)MOV DPTR,#007BH

MOV A,#00H

MOVC A,@A+DPTR

5. MOV A,40H;执行后,(A)=48H

MOV R1,A;执行后,(R1)=48H MOV P1,# 0F0H;执行后,(90H)=F0H MOV @R1,30;执行后,(48H)=38 H MOV DPTR, # 1234H;执行后,(DPTR)=1234H MOV 40H,38H;执行后,(40H)=40H MOV 41,30H;执行后,(41H)=38H MOV 90H,R1;执行后,(90H)=48H MOV 48H,#30H;执行后,(48H)=30H MOV A,@R1;执行后,(A)=30H MOV P2,P1;执行后,(A0H)=48H

6. 机器码 执行结果

(1)FE (R6)=35H (2)F6 (6FH)=35H (3)74 90 (A)=90H (4)E5 90 (A)=FCH (5)75 81 (80H)=81H

(6)F2 片外RAM(6FH)=35H (7)C0E0 (C1)=35H (8)C8 (A)=6FH,(R0)=35H 7. 机器码 执行结果 (1) E6 (A)=70H

(2) F0 片外RAM(2FFCH=02H (3) 93 (A)=64H

(4) D7 (A)=00H,片内RAM(7FH)=72H 8.(1)ORL A,#80H

联系合同范文客服:xxxxx#qq.com(#替换为@)