1、习题一1.什么是单片机,和微机相比较,它有什么优点?2.请叙述 51 系列单片机的主要产品及其特点。3.除 51 系列单片机外,常用的单片机还有哪些型号,各有什么优点?4.单片机中常用的数制有哪些,它们之间相互如何转换?5.计算机中常用的二进制编码有哪些,请分别予以叙述。6.(1) 10和(-1) 10的原码、反码和补码分别是多少?习题二1.单片机主要应用在什么领域?2. 89C51 单片机包含哪些主要逻辑功能部件? 各有什么主要功能?3.89C51 单片机 端如何使用?EA4.什么是机器周期、指令周期?89C51 指令周期、机器周期和时钟周期的关系如何?当主频为 12MHz 时,一个机器周期
2、等于多少微秒?执行一条最长的指令需多少微秒?5. 如何认识 89C51 存储器空间在物理结构上可划分为四个空间,而在逻辑上又可划分为三个空间?各空间的寻址范围、寻址方式是什么?6.89C51 有哪些主要的特殊功能寄存器,分布在哪里?7.内部 RAM 低 128B 从功能和用途方面,可划分为哪三个区域? 8.89C51 内部 RAM 有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定? 9.89C51 的外部 RAM 和 I/O 口是如何编址的,如何寻址? 10.89C51 的程序存储器的寻址空间是多少,如何区别片内程序存储器和片外程序存储器的?11.89C51 的位寻址
3、区在哪里,位寻址空间是多少? 12.什么是堆栈,什么是 SP,89C51 的堆栈位于什么地方,复位后堆栈指针初值是多少,一般将 SP 设置为多少? 进栈、出栈时堆栈指针将怎样变化?13.单片机包括哪两种复位方式,在单片机应用系统中为何需要系统复位,复位后主要寄存器的状态如何?14.89C51 的 P3 口各引脚的第二功能是什么? 15.89C51 有几种低功耗方式,如何进入和退出?习题三1.什么是指令,什么是指令系统?2.89C51 总共有多少条指令,分为哪几类?3.89C51 有哪些寻址方式,各自的寻址空间如何?4.说明下列指令中源操作数采用的寻址方式。MOV A,R7MOV A,55HMO
4、V A,55HJMP A+DPTRMOV 30H,CMOV A,R0MOVX A,R05.下列各条指令单独执行后,A 中的结果是什么?设( 60H)=35H, (A)=19H, (R0 )=30H, (30H )=0FH , (DPTR)=2000H, (2000H)=0AAH, (2019H)=23H。(1)MOV A,#48H (2)ADD A,60H(3)ANL A,R0(4)XCHD A,R0(5)MOVX A,DPTR(6)MOV A,R0 (7)MOVC A,A+DPTR6.阅读下列程序段,写出每条指令执行后的结果。(1)并说明此程序段完成什么功能?MOV R1,#30H ;(R1
5、)=MOV A,#64H ;(A)=ADD A,#47H ;(A)=DA A ;(A)=MOV R1,A ;(R1)=(2)若(A)=80H, (R0)=17H , (17H)=34H,执行下列程序段后, (A )=?ANL A,#17H ;(A)=ORL 17H,A ;(17H)= , (A )=XRL A,R0 ;(A)=CPL A ;(A)=(3)设 (A)=0FH , ( R0)=30H,内部 RAM (30H )=0AH , (31H )=0BH, (32H )=0CH ,请写出在执行各条列指令后,所示单元的内容MOV A,R0 ;(A)= MOV R0,32H ;(30H)= MO
6、V 32H,A ;(32H)= MOV R0,#31H ;(R0)= MOV A, R0 ;(A)= (4) MOV SP,#50H MOV A,#0F0H MOV B,#0FHPUSH ACC ;(SP)= ;(51H)= PUSH B ;(SP)= ;(52H)= POP ACC ;(SP)= ;(B)= POP B ;(SP)= ;(A)= (5) MOV A,#30HMOV B,#0AFHMOV R0,#31HMOV 30H,#87HXCH A,R0 ;(A)= ;(R0)= SWAP A ;(A)=7.已知程序执行前有 A=02H,SP=52H , (51H)=FFH,(52H)=F
7、FH。下述程序执行后,各寄存器和 RAM 单元的值是多少? POP DPH POP DPL MOV DPTR,#4000H RL A MOV B,A MOVC A,A+DPTR PUSH A MOV A,B INC A MOVC A,A+DPTR PUSH A RET ORG 4000H DB 10H,80H,30H,50H,30H,50H A=( ) ,SP= ( ) , (51H)=( ) , (52H)=( ) ,PC=( ) 。8. 假定累加器 A 中的内容为 30H,执行指令1000H:MOVC A,A+PC后,把程序存储器( )单元的内容送入累加器 A 中。9. 试编写 1 个程序
8、,将内部 RAM 中 45H 单元的高 4 位清 0,低 4 位置 1。 10. 试编写程序,查找在内部 RAM 的 30H50H 单元中是否有 0AAH 这一数据。若有,则将 51H 单元置为“01H” ;若未找到,则将 51H 单元置为“00H”。11. 试编写程序,查找在内部 RAM 的 20H40H 单元中出现“00H”这一数据的次数。并将查找到的结果存入 41H 单元。 12. 若 SP=60H,标号 LABEL 所在的地址为 3456H。LCALL 指令的地址为2000H,执行指令如下:2000H:LCALL LABEL 后,堆栈指针 SP 和堆栈内容发生了什么变化?PC 的值等于
9、什么?如果将指令 LCALL 直接换成ACALL 是否可以?如果换成 ACALL 指令,可调用的地址范围是什么?13.编写程序,进行两个 16 位数的减法:6F5DH-13B4H,结果存入内部 RAM的 30H 和 31H 单元,30H 存差的低 8 位。14.编写程序,进行两个 16 位数的加法:6F5DH+13B4H,结果存入内部 RAM的 30H 和 31H 单元,30H 存和的低 8 位。15.已知 R3,R4 中存有一个 16 位的二进制数,高位在 R3 中,低位在 R4 中。请编程将其求补,并存回原处。16.已知 30H,31H 中存有一个 16 位的二进制数,高位在前,低位在后。
10、请编程将其乘 2,并存回原单元处。17.内存中有 2 个四字节压缩的 BCD 码形式存放的十进制数,一个存放在 30H 33H 的单元中,一个存放在 40H43H 的单元中 。请编程将求它们的和,结果存放在 30H33H 中。习题四1. 写出 89C51 单片机汇编指令的指令格式,并举例说明。2. 单片机的程序设计包括哪几个步骤?3. 单片机的分支结构程序指令有哪几条?4. 编程将片内 40H60H 单元中的内容送到以 3000H 为首的存储区内。5. 已知内部 RAM 的 20H 和 21H 单元中各有一个无符号 8 位二进制数,试编程比较它们的大小,并把大数送到 30H 单元。6. 若从
11、30H 单元开始有 100 个数,编一个程序检查这些数,正数保持不变,负数取补后送回。7. 设在 2000H2004H 单元中存放有 5 个压缩 BCD 码,编程将它们转换成ASCII 码,存放到以 2005H 为首地址的存储区中。8. 试编写一段延时程序,延时时长为 1s。设单片机的晶振频率为 12MHz。9. 编程计算下列算式的程序(1)23H+45H+ABH+03H=(2)CDH+15H-38H-46H=(3)1234H+8347H=(4)AB123H-43ADCH=10. 设 5AH 单元中有一变量 X,请编写计算下述函数式的程序,结果存入 5B 单元。15408Y2X习题五1. 什么
12、是中断?在单片机中中断能实现哪些功能?2. 中断服务子程序和普通子程序有什么区别?3. 什么是中断优先级?中断优先级处理的原则是什么?4. 什么是中断嵌套?5. 89C51 有几个中断源,各中断标志如何产生的,又如何清 0 的?CPU 响应中断时,中断入口地址各是多少?6. 简述 89C51 单片机中断响应过程。7. 中断响应后,是怎样保护断点和保护现场的?8. 在 89C51 Flash ROM 中,应如何安排程序区?9. 试编写出外部中断 1 为边沿触发方式的中断初始化程序。10. 89C51 有哪几种扩展外部中断源的方法?各有什么特点?11. 当正在执行某一中断源的中断服务程序时,如果有
13、新的中断请求出现,问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?12. 试编写一段对中断系统初始化的程序,允许 INT0、INT1、T0、串行口中断,且使 T0 中断为高优先级。13. 在 89C51 中,需要外加电路实现中断撤除的是:(1)定时中断(2)脉冲方式的外部中断(3)串行中断(4)电平方式的外部中断14. 在 89C51 单片机中,外部中断有哪两种触发方式?如何加以区别?15. 在 89C51 单片机的应用系统中,如果有多个外部中断源,怎样进行处理?16. 在 89C51 中,以下几种中断优先级顺序能否实现?如可以,中断优先级应如何设置,若不行,请说明理由。(
14、1)定时器 0,定时器 1,外中断 0,外中断 1,串行口中断。(2)串行口中断,外中断 0,定时器 0,外中断 1,定时器 1。(3)外中断 0,定时器 1,外中断 1,定时器 0,串行口中断。(4)外中断 0,外中断 1,串行口中断,定时器 0,定时器 1。(5)串行口中断,定时器 0,外中断 0,外中断 1,定时器 1。(6)外中断 0,外中断 1,定时器 0,串行口中断,定时器 1。(7)外中断 0,定时器 1,定时器 0,外中断 1,串行口中断。习题六1. 89C51 单片机中的定时/计数器有什么实际用途?2. 89C51 单片机内部有几个定时/计数器,他们有哪些专用寄存器?3. 定
15、时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?4. 门控制信号 GATE 为 1 时,外部中断引脚 在什么状态下启动计数?INT05. 当定时器 T0 用作模式 3 时,由于 TR1 位已被 T0 占用,如何控制定时器 T1的开启和关闭?6. 定时/计数器中的工作模式由哪个特殊寄存器设置?试叙述几种工作模式功能。7. 定时器/计数器的工作模式 2 有什么特点?适用于哪些应用场合?8. 时钟频率为 12MHz。要求定时值分别为 0.1ms、1ms、10ms,定时/计数器 T0分别工作在模式 0、模式 1、模式 2,其定时初值各为多少?9. 当定时器 T0 用于模式 3 时,
16、应该如何控制定时器 T1 的启动和关闭?10 设晶振频率 fosc=12MHz,89C51 定时器 0 的模式 0、模式 1、模式 2 的最大定时时间分别为多少?11. 已知 89C51 单片机系统时钟频率为 24MHz,请利用定时器 T0 和 P1.2 输出矩形脉冲。矩形波高电平宽度 50s,低电平宽度 350s。12. 设 89C51 单片机的晶振频率为 6MHz,以计数器 T1 进行外部事件计数,每计数 100 个外部事件输入脉冲后,计数器 T1 转为定时工作方式,定时 5ms后,又转为计数方式。如此周而复始地工作,试编程实现。13. 设 89C51 单片机的晶振频率为 12MHz,要求
17、用定时器/计数器 T0 产生 1ms的定时,试确定计数初值以及 TMOD 寄存器的内容。14. 定时器/计数器作为外部中断源使用时,需要如何初始化,以 T0 为例通过程序说明。习题七1. 并行数据通信与串行数据通信各有什么特点?分别适用于什么场合?2. 什么是串行异步通信?它有哪些特征?3. 半双工通信和全双工通信的区别?4. 波特率的含义是什么?5. 某异步通信接口按方式 3 传送,已知其每分钟传送 3600 个字符,计算其传送波特率。6. 串行口异步通信时,ASCII 码“3”的字符格式(10 位)如何?7. 单片机的串行接口由哪些功能部件组成?各有什么作用?8. 使用哪个特殊功能寄存器来
18、确定串行口的工作方式?MCS-51 单片机串行口有几种工作方式?各工作方式的波特率如何确定?9. 简述串行接口接收和发送数据的过程。10. 89C51 单片机的串行口控制寄存器 SCON 的 SM2,TB8 ,RB8 有何作用?11. 简述利用串行口进行多机通讯的原理。12. 设晶振频率为 11.0592 MHz,串行口工作在方式 1,波特率为 4800 b/s。写出用 T1 作为波特率发生器的方式字并计算 T1 的计数初值。13. 为什么定时器 T1 用作串行口波特率发生器时,常选用工作方式 2,若已知系统时钟频率和通信的波特率,则如何计算其初值? 14. 已知定时器 T1 设置成方式 2,
19、用作波特率发生器,系统时钟频率为24MHz,求可能产生的最高和最低的波特率是多少?15. 设计一个单片机的双机通信系统,串行口工作在方式 1,编写通信程序将甲机内部 RAM 30H3FH 存储区的数据块通过串行口传送到乙机内部 RAM 40H4FH 存储区中去。16. 利用 89C51 串行口控制 8 个发光二极管工作,要求发光二极管每隔 1s 交替的亮灭,画出电路并编写程序。习题八1. 简述 89C51 系列单片机系统扩展时总线形成电路的基本原理,并说明各控制信号的作用。2. 单片机系统的扩展一般包含哪几个方面的内容?3. 系统的三总线,是指哪三总线?每组总线都是有哪些引脚组成?4. 用 P
20、0、P2 作为地址线,选 11 位地址线、13 位地址线、16 位地址线时,寻址范围各是多少?5. 问什么当 P2 作为扩展存储器的高 8 位地址后,不再适宜做通用 I/O 端口了?6. 解释在 89C51 系列单片机扩展多个芯片时,可能出现“地址不连续”或一个芯片有多个地址的现象?7. 简述地址译码和线选法的特点及应用场合。8. 8255A 共有几种工作方式?各适用于哪些场合?9. 8255A 的 A、B 口工作于方式 0,A 口输输出,B 口输输入,C 口上半部输出,下半部输入,试编写其初始化程序。10. 简述在扩展 I/O 接口中单片机 和 引脚在控制接口电路中起什么作用?WRD11.
21、89C51 单片机外部程序存储器和数据存储器地址范围都是 0000HFFFFH,在实际使用时如何区分?12. 给 89C51 单片机扩展一片 2716 和 6116,请画出系统连接图。13. 采用统一编址的方法对 89C51 单片机进行存储器扩展。要求用一片 2764、一片 2864 和一片 6264,扩展后存储器的地址应连续,试给出电路图及地址分配表。习题九1. 试说明非编码键盘的工作原理,为何要消除键抖动?又为何要等待键释放?2. 说明矩阵式键盘按键按下的识别原理。3. 键盘有哪三种工作方式?说明它们的工作原理和特点。4. 用 89C51 的 P1 口作 8 个按键的独立式按键接口,试画出
22、其中断方式的接口电路及相应的键盘处理程序。5. 设计一个 2*2 行列式键盘并编写扫描子程序。6. LED 的静态显示方式与动态显示方式有何区别?各有什么优缺点?7. 设计一个 LED 显示/ 键盘电路。8. A/D 转换器的性能指标有哪些?9. 分析 A/D 转换器产生量化误差的原因,1 个 8 位的 A/D 转换器,当输入电压为 0-5V 时,其最大的量化误差是多少?10. A/D 转换器的种类有哪些?11. 用 ADC0809 的中断方式对 8 路模拟信号进行循环采集,各采集 100 个数据分别存入 8 个数据区中。试画出应用系统的连接电路,并编写控制程序。12. 对于采用线反转法原理来
23、编写识别某一按键按下并得到其键号的程序13. DAC0832 与 8051 单片机连接时有哪些控制信号?其作用是什么?14. 89C51 与 DAC0832 接口时,有哪三种连接方式?各有什么特点?各适合在什么场合使用?15. 在一个由 89C51 单片机与一片 DAC0809 组成的数据采集系统中,DAC0809 的地址是 7FF8H-7FFFH,试画出有关逻辑框图,并编写出每隔1min 轮流采集一次 8 个通道的程序。共采样 100 次,其采样值存入片外RAM3000H 开始的存储单元中。16. 试用 89C51 单片机、按钮开关和 LED 显示器等器件,设计一个四路抢答器,请画出硬件电路17. 89C51 单片机的 P3 口接一个共阴极的数码管,P1 口接 44 的键盘,每个键的键值依次是 0F ,要求任意按下一个键,则在数码管上显示该键的键值,请编写一段程序完成上述任务。习题十1. C51 的 data、bdata、idata 有什么区别?2. 定义变量 a、b、c,a 为内部 RAM 的可位寻址区的字符变量;b 为外部数据存储区浮点型变量;c 为指向 int 型 xdata 区的指针。