单片机原理与应用-基于汇编、C51及混合编程1-11章习题解答 下载本文

习题一

1.什么是单片机?

单片机全称单片微型计算机。它是把计算机中的微处理器、只读存储器(ROM)、随机访问存储器(RAM)、I/O接口、串行接口、中断系统、定时/计数器等基本功能部件微型化并集成到一块芯片上构成的小而完善的计算机。

2.单片机的主要用途是什么?

单片机有体积小、功耗低、面向控制、抗干扰能力强、性价比高等优点,被广泛应用于家用电器、办公自动化、工业控制、智能仪器仪表与集成智能传感器、汽车电子与航空航天电子系统等各种控制系统中。

习题二

2-1.STC12C5A60S2单片机的内部集成了哪些功能部件?各个功能部件的具体功能是什么?

在STC12C5A60S2单片机内部,其基本结构主要有中央处理器CPU、程序存储器、数据存储器、定时/计数器、UART串行口、I/O接口、高速A/D转换、同步串行外围接口、PCA、看门狗WDT及片内RC振荡器和外部晶体震荡电路等模块组成。

各部件功能:

中央处理器CPU:负责运算控制和调度,使整个系统协调工作。 程序存储器:用于存放用户程序、数据和表格等信息。

数据存储器:用于存放单片机运行过程中的运算数据及运算地址等。 定时/计数器:常用定时器时钟来实现定时检测、定时控制;还可以用定时器产生毫秒宽的脉冲,来驱动步进电机一类的电器机械。计数器主要用于外部事件的计数。

看门狗WDT:在单片机出现运行紊乱时,可以使单片机重新启动,恢复正常运行。

I/O接口:单片机通过I/O引脚进行输入,输出操作。 振荡器:产生单片机运行所需要的时钟信号。

2-2.封装模式为LQFP-48、PDIP-40的STC12C5A60S2单片机的I/O引脚各有多少?P0、P2口各有什么功能?

封装模式为LQFP-48的STC12C5A60S2单片机有48个引脚,44个I/O引脚。封装模式为PDIP-40的STC12C5A60S2单片机有40个引脚,36个I/O引脚。

P0口和P2口都可以作为通用的I/O口使用;当单片机访问外部扩展电路或设备时,P0口可以作为地址总线的低8位及数据总线接口,地址/数据分时复用,P2口作为地址总线的高8位。

1

2-3.简述PSW寄存器各位的作用。若寄存器A中的内容为63H,P标志位为何值?

CY:进位或借位标志位,简称C。在执行8位的加、减法指令时,用于记录最高位的进位或借位。有进位或借位时则置位,否则清零。

AC:辅助进位标志位,在执行加减法时,若D3向D4有进位或借位时,AC置位,否则AC清零。

OV:溢出标志位。在执行加减法运算时,若运算的结果超出8位有符号数表示的范围-128-+127,表示溢出,OV置1,否则OV清零。

P:奇偶校验标志位。用于记录A寄存器中的1的个数的奇偶性。若A寄存器中1的个数为奇数,则P置位,为偶数则清零。

RS1、RS0:寄存器组选择位,用来选择当前的工作寄存器组。 F0、F1:用户标志位。

若寄存器A中的内容为63H(01100011B),A中“1”的个数为4,所以P=0。

2-4.STC12C5A60S2单片机内部有哪几类存储器?中断服务程序的入口地址分布在哪个区域?

STC12C5A60S2单片机内部有程序存储器、数据存储器RAM、特殊功能寄存器、扩展RAM。

中断服务程序的入口地址位于程序存储器的首部。

2-5.STC系列单片机系统复位后,程序存储器指针PC的值是多少?当单片机正在执行某一条指令时,PC指向哪里?

STC系列单片机系统复位后,程序存储器指针PC的值是 0000H。 当单片机正在执行某一条指令时,PC指向下一条指令的地址。

2-6.片内RAM中,数据存储器的低128字节、高128字节和特殊功能寄存器可以使用什么寻址方式?哪些单元可作为工作寄存器区,那些单元可以位寻址?

访问低128字节RAM时,既能采用寄存器直接寻址,又可寄存器间接寻址。访问高128字节RAM时,只能采用寄存器间接寻址,但可以作为堆栈区。访问特殊功能寄存器,只能直接寻址。

00H-1FH为工作寄存器组区;片内RAM中20H-2FH单元为位寻址区。

2-7.在片内RAM中,位地址为30H的位属于字节地址为多少的单元?

字节地址为26H。

2

2-8.STC系列单片机复位后,使用了哪一工作寄存器组?当CPU使用的工作寄存器组为2组时,R2对应的RAM地址是多少?

STC系列单片机复位后,所使用的工作寄存器组为0组;当CPU使用的工作寄存器组为2组时,R2对应的RAM地址是12H。

2-9.什么是堆栈?简述STC12C5A60S2单片机的堆栈处理过程。

堆栈是在RAM中开辟的一片数据缓冲区,常用于保护CPU现场及临时数据,其操作遵循先进后出、后进先出的原则。

STC12C5A60S2单片机的堆栈处理过程:数据入栈时,SP指针内容先自动加1,然后再将数据推入到SP指针指向的单元;出栈时,先将SP指针所指向单元的数据弹出,然后SP指针的内容自动减1.

2-10.以下关于数据指针DPTR和程序指针PC的概述是否正确?

(1)DPTR是可以访问的,而PC不能访问; √ (2)它们都是16位的寄存器; √ (3)它们都具有临时存储数据的功能; × (4)DPTR可以分成2个8位的寄存器使用,而PC不能。 √

2-11.单片机与外部存储器连接时,P0口用作地址/数据复用,需要添加什么芯片才能锁存8位地址信息?

单片机与外部存储器连接时,P0口用作地址/数据复用,需要添加地址锁存器,如74LS373。

2-12.如何设置 STC12C5A60S2单片机I/O口工作模式?若设置P1.7为强推挽输出,P1.6为开漏,P1.5为弱上拉,P1.4,P1.3,P1.2,P1.1,和P1.0为高阻输入,应如何设置相关寄存器?

STC12C5A60S2单片机上电复位后所有引脚都默认为准双向(弱上拉)方式。根据具体应用可由软件配置成:准双向、强推挽、仅为输入或开漏输出4种工作方式。Px(x=0,1,2,3,4,5)口引脚的工作方式由特殊功能寄存器PxM1和PxM0相应位的配置决定 I/O口工作模式设定 PxM1[7:0] PxM0[7:0] I/O 口模式 0 0 准双向口 (传统 8051I/O口模式 ),灌电流可达20mA, 拉电流为230uA 0 1 强推挽输出 ,输入输出电流都能可达20mA。 1 0 仅为输入 (高阻) 1 1 开漏 ,内部上拉电阻断开 若设置P1.7为强推挽输出,P1.6为开漏,P1.5为弱上拉(准双向),3

P1.4,P1.3,P1.2,P1.1,和P1.0为高阻输入,可通过以下的两条指令来完成:

MOV P1M1,#01011111B; MOV P1M0,#11000000B;

2-13.I/O口作为输入引脚,应工作在何种方式?读外部引脚状态时,为何要先向相应引脚对应的锁存器写入“1”?

I/O口作为输入引脚,应工作在准双向或仅为输入状态;

在准双向口配置情况下,先输出高电平,使d管截止,才可读到正确的外部输入状态。

2-14.STC12C5A60S2单片机复位方式有哪些?复位后单片机的初始状态如何?

STC12C5A60S2单片机复位方式有上电复位、看门狗复位、外部低压检测复位、软件复位。

复位后,单片机从用户程序区0000H处开始正常工作;堆栈指针SP指向07H,P0~P3为FFH。

习题三

3-1 使用Proteus对电路进行仿真,有哪些步骤?

使用Proteus进行单片机系统设计、仿真主要有七个步骤,依次是新建设计文件,选取元件并加入列表区,将元件摆放到图形编辑窗口,放置电源、地线、布线、加载目标程序代码,运行仿真。

3-2 在Keil中,源程序文件从编辑到生成*.hex文件,经过哪些过程?

在Keil中,源程序文件从编辑到生成*.hex文件要经过建立工程,建立源程序文件,建立文件和程序的连接,工作环境和参数的设置,再进行编译、连接可以生成目标文件。

3-3 在Keil中,如何对源程序文件进行软件模拟调试?

Keil软件中有一个仿真CPU用来模拟程序的执行,可以在没有硬件和仿真器的情况下进行程序的调试,这就是软件模拟调试的方法。对源文件进行软件模拟调试,首先要启动调试。对工程编译、连接成功以后,使用菜单“Debug”—>“Start/StopDebug Session”进入调试状态,按“Ctrl+F5”组合键或者使用

按钮也能进入调试状态。这时,源程序窗口的左侧出现一个黄色箭头,指

向main( )函数的第一行,该箭头总是指向即将要运行的语句行。退出调试状态和启动调试状态方法一致。

调试过程中使用最多的是“Debug”菜单,而该菜单上的大部分命令可以在

4