单片机原理及应用复习题()

2026/1/27 17:12:28

1. MCS-51单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么? 答:功能部件:微处理器(CPU); 数据存储器(RAM); 程序存储器(ROM/EPROM),4个8位并行I/O口(P0口、P1口、P2口、P3口);1个全双工的串行口(TXD、RXD);2个16位定时器/计数器;中断系统(INT0、INT1);21个特殊功能寄存器(SFR)。

各部件功能:CPU(微处理器)包括了运算器和控制器两大部分,还增加了面向控制的处理功能,不仅可处理字节数据,还可以进行位变量的处理;数据存储器(RAM)来存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等;程序存储器(ROM/EPROM)用来存储程序;中断系统具有5个中断源,2级中断优先权;定时器/计数器用作精确的定时,或对外部事件进行计数;串行口可用来进行串行通信,扩展并行I/O口,还可以与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广;特殊功能寄存器用于CPU对片内各功能部件进行管理、控制、监视。

2. MCS-51单片机的引脚EA的作用,该引脚接高电平和接低电平时各有何功能? 答:E\\A\\允许访问片外程序存储器。为高电平时,单片机访问片内程序存储器。为低电平时,单片机则只访问外部程序存储器。 3. MCS?51单片机设有4个8位并行端口,实际应用中8位数据信息由哪个端口传送?16位地址线怎样形成?

答:由P0口传送8位数据信息。P0口为低8位地址线,P2口为高8位地址线。

4. MCS?51单片机内部RAM区的功能结构如何分配?位寻址区域的字节范围是多少?

答:51系列单片机内部数据存储器:00H-7FH单元组成的低128字节地址空间的RAM区,又分为工作寄存区(00H-1FH)位寻址区(20H-2FH)和数据缓冲区。80H-FFH单元组成的高128字节地址空间的特殊功能寄存器。位寻址范围(20H-2FH)

5. 位地址7FH与字节地址7FH有何区别?位地址7FH具体在内存中的什么位置? 答:二者存储的数据位数不一样。位地址7FH存放一位二进制数,字节地址7FH存放8为二进制数。位地址7FH具体在内存中字节地址为20H的最高位上 6. 试分别说明程序计数器PC和堆栈指针SP的作用。复位后PC和SP各为何值? 答:程序计数器PC是一个16位专用寄存器,存放下一条执行指令的首地址,复位后为0000H。SP是一个8位的SFR,它用来存放栈顶的地址,复位后SP为07H。

7. MCS?51单片机的4个I/O接口的作用是什么?三总线是如何分配的?为什么说能作为I/O使用的一般只有P1口?

接口作用:P0、P1、P2、P3都可作通用I/O口使用,除P1口外,其它三个I/O口都有第二功能。

P0还可作为数据/地址总线分时复用。 P2还可作为地址总线。

P3还有第二功能,即P3.0(串行输入口RXD)、P3.1(串行输出口TXD)、

P3.2(外部中断0 INT0)、P3.3(外部中断1 INT1)、P3.4(定时器0外部中断

T0)、P3.5(定时器1外部中断T1)、P3.6(外部存储器写/WR)、P3.7(外部存储器读/RD)

三总线分配是:P0形成数据总线;P2形成地址总线高8位,P0经过锁存器形成地址总线低8位;P3形成控制总线。

数据、地址、控制总线占用了P0、P2、P3口,只有P1口没有被使用。

8. 在应用的时候,为什么P0~P3的端口作为输入时,必须先写“1”才读引脚? 答:这是由P1~P3口的结构决定的。单片机执行读引脚操作时,如果锁存器原来寄存的数据Q=0,那么由于非Q=1将使V导通,引脚P1.n会被钳位在低电平,此时即使P1.n外部电路的电平为1,读引脚的结果也是0. 因此P0~P3口作为输入口时要先写1

9. P0在正确输出的时候为什么要上拉电阻?一般上拉电阻的大小为多少?

答:P0口为了实现准3态,输出驱动级采用漏极开路,这种电路结构只有下拉能力,高电平输出没有电流,在高电平时表现为高阻态,加上拉电阻就会失去高阻态,变成1,0两态。一般用10k.

10. 绘出单片机通过IO端口控制三极管驱动蜂鸣器的电路。

指令系统和汇编语言

1. MCS?51单片机几种寻址方式?P53 题3

答:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。

ADD A,B;寄存器寻址; XCH A,@R1; 寄存器间接寻址;ORL A,#OFH;立即寻址;

XRL 10H,A;寄存器寻址;MOV C,P1.00;位寻址; MOVX A,@R0;寄存器间接寻址;

DEC 30H;直接寻址; ACALL DELAY;直接寻址; MOV A,@A+PC;变址寻址;

2. P53 题3-1 3-2 3-3

MOV 40H, #10H ; (40H)=10H MOV R0, #40H ;(R0)=40H MOV 10H, #2FH ; (10H)=2FH

MOV A, 10H ; (A)=2FH (10H)=2FH

XCH A, @R0 ; (A)=10H (R0)=40H (40H)=10H

XCHD???A,???10H????????;?????(A)=?2FH????(R0)=?40H????????(10H)=10H MOV????@R0,??A?????????;????(A)=2FH????(R0)=40H????(40H)=2FH ?SWAP????A???????????????;??????(A)=F2H?

MOV???R0,????A???????;???????(A)=F2H????(R0)=F2H.

3.12MHz晶振时,通过汇编语言实现软件件延时100ms?1s? 100MS: ORG 1000H

DELAY:MOV R6,#200 LOOP1:MOV R7,#248 NOP

LOOP2:DJNZ R7,LOOP2 DJNZ R6,LOOP1 RET 1s:

ORG 1000H

DL1S:MOV R7,#10 DL1:MOV R6,#200 DL2:MOV R5,#248 DL3:DJNZ R5,DL3

DJNZ R6,DL2 DJNZ R7,DL1 RET

中断系统

1. MCS-51单片机有几个中断源?各中断标志是如何产生的?如何清除?

答:有5个中断源,分别是外部中断0,定时器0,外部中断1,定时器1,串行口。

中断标志产生:外部中断可以设置边沿触发或者电平触发,边沿触发进入中断程序后硬件自动清中断标志,电平触发需要软件清标志位;

定时器T0,T1计数溢出产生中断,进入中断程序硬件自动清标志位; 串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清标志位;

2. 外部中断(INT0,INT1)申请处理过程。

答:在CPU已经开放了外部中断允许的前提下:在INT0/INT1引脚输入一个负脉冲或低电平, TCON寄存器中的IE0/IE1标志位自动变“1”,检测到IE0/IE1变“1”后,将产生指令:LCALL 0003H(/0013H)执行中断服务程序,并将IE0/IE1标志位自动清“0”,以备下次申请。 3. P79 习题题5-4~5-14。

下列哪个引脚可以作为中断请求输入线?( P3.2 )。

STC89C51RC单片机在中断响应期间,不能自动清除的中断标志位是(串行口) STC89C51RC单片机的串行中断入口地址为(0023H)

要使MCS-51能够响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是(98H ) 计算机使用中断的方式与外界交换信息时,保护现场的工作应该是(在中断响应中完成) MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是(INT0,T0) 若MCS-51中断源都编程为同级,当它们同时申请中断时,CPU首先响应(INT0) 当CPU响应串行接口中断时,程序应转到(0023H) 外部中断1固定对应的中断入口地址为(0013H)

MCS-51单片机可分为两个中断优先级别,各中断源的优先级别设定是利用寄存器(IP) 各中断源发出的中断请求信号,都会标记在MCS-51系统中的(TCON/SCON)

定时器

1. 如果MCS?51单片机系统的晶振频率为12MHz,分别指出定时器/计数器方式1和方式2的最长定时时间。

答:晶振的频率为12MHz,机器周期 =12/Fosc = 12/(12x10^6Hz) =1μs 定时器/计数器工作方式1,是16位计数器,

最大计数值 =2^16 =65536d ,最大延时时间 =65536μs 定时器/计数器工作方式2,是8位自动重装初值计数器, 最大计数值 =2^8 =256d, 最大延时时间 =256μs

2. MCS-51单片机内设有几个可编程的定时器/计数器?它们可以有4种工作方式,如何选择和设定?作为定时器或计数器应用时,它们的速率分别为晶振频率的多少倍?

答:2个16位的定时器/计数器。 通过TMOD的M1M0选择。

M1M0 = 00:方式0——13位定时器/计数器工作方式; M1M0 = 01:方式1——16位定时器/计数器工作方式;

M1M0 = 10:方式2——常数自动装入的8位定时器/计数器工作方式; M1M0 = 11:方式3——仅适用于T0,为两个8位定时器/计数器工作方式;在方式3时T1停止计数。 是外部晶振频率的12倍。

3. 利用定时器T0工作方式1实现1秒的定时程序设计(晶振12MHz,C语言)。 #include #include main() {

TMOD=1x01;

TH0=(65536-50000)/256; THL=(65536-50000)%6; ET0=1; TR0=1; EA=1;

while(1);

}

?void timer0() interrupt 1 {

?uchar count;

TH0 = (65536-50000)/256; ? TL0 = (65536-50000)%6; ?count++; ? if(count == 20) ? { ??count = 0; ??

} }

4. 利用定时器T0工作方式2实现P1^0输出2kHz方波程序设计(晶振12MHz,C语言)。

#include #include main() {

TMOD=0x02;

TH0=(256-250)/256; THL=(256-250)%6; ET0=1; TR0=1;


单片机原理及应用复习题().doc 将本文的Word文档下载到电脑
搜索更多关于: 单片机原理及应用复习题() 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219