单片机习题

更新时间:2023-10-05 15:12:01 阅读量: 综合文库 文档下载

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

选择:

1、单片机应用程序一般存放在( )

A、RAM B、ROM C、寄存器 D、CPU 2.在单片机中,通常将一些中间计算结果放在( )中 A、累加器 B、控制器 C、程序存储器 D、数据存储器 3.CPU主要的组成部部分为( ) A、运算器、控制器 B、加法器、寄存器 C、运算器、寄存器 D、运算器、指令译码器 4、89C51单片机的堆栈区应建立在( )。

A. 片内数据存储区的低128字节单元 B. 片内数据存储区 C.片内数据存储区的高128字节单元 D.程序存储区 5、 89C51单片机中既可位寻址又可字节寻址的单元是( ) A、20H B、30H C、00H D、70H 6、在89C51单片机中,PC存放的是( )

A、正在执行指令的地址 B、将要执行的下一条指令的地址 C、正在执行指令的操作码 D、对已执行过的指令条数计数 7、为了使10H—17H作工作寄存器使用RS1、 RS0的取值为( ) A 、0 ,0 B、 0 ,1 C、 1, 0 D、 1, 1 8.下述哪条引脚为输入脚( )

A 、RESET B、 ALE C、 RD D、 PSEN 9、在89C51单片机中,SP存放的是( )

A、堆栈栈低的地址B、堆栈栈顶的地址 C、堆栈栈低的内 D、堆栈栈低的内容 10.数据指针DPDR在( )中

A、CPU控制器 B、CPU运算 C、外部程序存储器 D、外部数据存储器 11.单片机上电后或复位后,工作寄存器R0是在( ) A、0区00H单元 B、0区01H单元 C、0区09H单元 D、SFR 12、89C51的内部RAM中,可以进行位寻址的地址空间为( ) A、00H∽2FH B、20H∽2FH C 、00H∽FFH D、20H∽FFH 13、在堆栈操作中,当进栈数据全部弹出后,S P指向( )

A、栈底单元 B、7FH单元 C、栈底单元地址加1D、栈底单元地址减1 14、关于指针DPTR,下列说法正确的是( )

A.DPTR是一个8位寄存器 B.DPTR不可寻址 C.DPTR是由DPH和DPL两个8位寄存器组成的 D.DPTR的地址83H 填空:

1、PC存放_______________,具有___________特性。在89C51中决定程序执行顺序的是PC还是DPTR?它是______位?(是,不是)SFR?

2、PSW用于存放_______________,在8051中PSW是_______ 位,当89C51执行94H+4BH后,PSW的CY、AC、OV、P的值是多少?

4. 89C51中21个特殊功能寄存器,其地址凡是能被8整除的都有 寻址功能。

5.89C51片内20H~2FH范围内的数据存储器,既可以 寻址又可以 寻址。

6.______________用来存放下一条要执行的指令的地址.

7、 89C51的堆栈只可设置在 ,其最大容量为 ,堆栈寄存器SP是 位寄存器。 简答:

1.决定程序执行顺序的寄存器是哪个?它是几位的?它是不是特殊功能寄存器?

2.什么叫堆栈?堆栈指示器SP的作用是什么? 89C51单片机堆栈的最大容量不能超过多少字节?

4. 89C51内部RAM有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定?

5、 89C51单片机的内部RAM可以分为几个不同的区域?各区的地址范围及其特点?

6、为了使10H—17H作为工作寄存器使用,应该采用什么办法实现?CPU复位后,R0---R7的单元地址是多少?

7、89C51的位寻址区在哪里?位寻址空间是多少? 8. 89C51的EA端有何用途?

9. 89C51的存储器分哪几个空间?如何区别不同空间的寻址? 10. 简述89C51片内RAM的空间分配。

11. 简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。 12. 89C51如何确定和改变当前工作寄存器组?

13. 89C51 P0~P3口结构有何不同?用作通用I/O口输入数据时,应注意什么? 15. 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么? 16. 使单片机复位有几种方法?复位后机器的初始状态如何?

17 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?

18. 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么? 19. 位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?

20. 89C51单片机的时钟周期与振荡周期之间有什么关系?什么叫机器周期和指令周期?

22. 89C51有几种低功耗方式?如何实现? 23. PC与DPTR各有哪些特点?有何异同?

24. DPTR是什么寄存器?它由哪几个特殊功能寄存器组成? 思考题

3. 简述89C51汇编指令格式。

4. 简述89C51的寻址方式,并举例说明。

5. 要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式? 10. 如何访问SFR,可使用哪些寻址方式?

11. 如何访问片外RAM单元,可使用哪些寻址方式? 12. 如何访问片内RAM单元,可使用哪些寻址方式? 13. 如何访问片内外程序存储器,可使用哪些寻址方式? 14. 说明十进制调整的原因和方法。

16. 已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。

ANL A, #17H ORL 17H, A

XRL A, @R0 CPL A

17. 使用位操作指令实现下列逻辑操作。要求不得改变未涉及位的内容。

(1) 使ACC.0置1; (2) 清除累加器高4位;

(3) 清除ACC.3,ACC.4,ACC.5,ACC.6。

18. 已知(SP)=25H,(PC)=2345H,(24H)=12H,(25H)=34H,(26H)=56H。问此时执行“RET”指令以后,(SP)=? (PC)=?

1.编程实现把内部RAM R0~R7的内容传递到20H~27H单元。

6. 试编写程序,查找在内部RAM的20H~50H单元中出现00H的次数,并将查找的结果存入51H单元。

11. 编写一个程序,把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。

14. 试编写程序: 采用“与”运算,判断某8位二进制数是奇数还是偶数个1。 思考题:

1、什么是中断和中断系统?其主要功能是什么?

2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。

5、什么是中断优先级?中断优先处理的原则是什么?

7、89C51在什么条件下可响应中断? 简述89C51单片机的中断响应过程。 10、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求? 思考题

1、定时器模式2有什么特点?适用于什么应用场合?

2、单片机用内部定时方法产生频率为100Hz等宽距形波,假定单片机的晶振频率为12MHz。请编程实现。

3、89C51定时器有哪几种工作模式?有何区别?

4、89C51单片机内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?

9、一个定时器的定时时间有限,如何实现两个定时器的串行定时,以满足较长定时时间的要求?

10、使用一个定时器,如何通过软、硬件结合的方法,实现较长时间的定时? 13、已知89C51单片机的fosc=6MHz, 请利用T0和P1.0输出矩形波。矩形波高电平宽50μs,低电平宽300μs. 思考题

1、什么是串行异步通信,它有哪些作用?

答:在异步串行通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式:起始位、数据位、校验位、停止位。通信采用帧格式,无需同步字符。存在空闲位是异步通信的特征之一。

4、89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?

答:89C51串行口有4种工作方式:

方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。 有2种帧格式:10位,11位

方式0:方式0的波特率≌fosc/12(波特率固定为振荡频率1/12) 方式2:方式2波特率≌2SMOD/64×fosc

方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率) 幻灯片23

5、若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?

答:已知每分钟传送3600个字符,方式3每个字符11位,则: 波特率=(11b/字符)×(3600字符/60s)=660b/s

7、设fosc=11.059MHz,试编写一段程序,其功能为对串行口初始化,使之工作与方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。 解:

START:MOV SCON,#40H ;串行接口工作于方式1

MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0E8H ;赋定时器计数初值 MOV TL1,#0E8H

SETB TR1 ;启动定时器T1 MOV A,SBUF ;读出接收缓冲器数据 MOV SBUF,A ;启动发送过程 JNB TI,$ ;等待发送完 CLR TI ;清TI标志 SJMP $ ;结束

8、若晶振为11.0592MHz,串行口工作与方式1,波特率为4800b/s。写出用T1作为波特率发生器的方式字和计数初值。 解:

MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0FAH ;赋定时器计数初值 MOV TL1,#0FAH

13、当89C51串行口按工作方式1进行串行数据通信时。假定波特率为1200b/s,系统时钟频率fosc=6.0MHZ,,请编写以中断方式接受数据的初始化程序。(取SMOD=0) 解:

MAIN: MOV SP,#60H

MOV SCON ,#50H MOV PCON ,#00H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1

SETB ES SETB EA

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

Top