《单片机综合练习题.doc》由会员分享,可在线阅读,更多相关《单片机综合练习题.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除一、 填空题:1. 从计算机总线的功能看,可以将总线分为 , 和 。2. 数据总线用于 ,总线的条数多数由 所决定。3. 存储器的分类方法很多,按其工作方式可分为 和 。按存储器和CPU的关系可分为 和 。4. 用来指示随机存储器中堆栈的栈顶的16位地址。5. 地址缓冲器在 与 之间起缓冲作用。6. 用来存放参与运算的一个操作数以及运算后的结果。7. ALU由 和其他逻辑电路组成,其功能是 。8. (+31)10的反码是 ,(-122)10的补码是 。9. 十进制数29的二进制表示为 。10. 单片微型计算机由CPU、存储器和 三部分组成。11.
2、 当使用8751且EA=1,程序存储器地址 时,访问的是片内ROM。12. MCS51特殊功能寄存器只能采用 寻址方式。13. MCS51片内20H2FH范围内的数据存储器,既可以字节寻址又可以 寻址。14. 若用传送指令访问MCS51的程序存储器,它的操作码助记符是 。15. 计算机的系统总线有地址总线、控制总线和 总线。16. 输入输出设备是计算机与外部世界交换信息的 。17. PC复位后为 。18. 一个机器周期= 节拍、一个机器周期=12个振荡周期,一个振荡周期=1节拍。19. 12根地址线可寻址 KB存储器。20. MCS51单片机内RAM的存储器区共有 单元,分为 组寄存器,每组
3、个单元,以 作为寄存器名称。21. MCS-51系列单片机片内有 个特殊功能寄存器(SFR)。它们分布在内部RAM的 区域内。22. 单片机的复位方式有 和 两种。单片机复位后,片内寄存器都进入初始状态,其中PC = ;Acc = ;PSW = ;SP = 。23. 一台计算机的指令系统就是它所能执行的 集合。24. 以助记符形式表示的计算机指令就是它的 语言。25. MCS-51系列单片机片内有 个特殊功能寄存器(SFR)。它们分布在片内寄存器RAM的 128地址空间。26. MCS-51单片机的特殊功能寄存器中SP是 。复位后SP= 。当执行过程序:MOV SP,#70H; PUSH AC
4、C; PUSH DPL; PUSH DPH;POP ACC;POP DPL;后,SP= 。27. MCS-51系列单片机中断系统中有 个中断源,其中2个外部中断源的输入端为 和 。中断可设置 个中断优先级。在特殊功能寄存器(SFR)中IP为 ,IE为 。28. MCS-51系列单片机片内部有 个定时器/计数器,其中T0有 种工作方式,其方式1是 位定时器/计数器。在MCS-51系列单片机中,特殊功能寄存器(SFR)中的TMOD是 ,其位地址为 。图1 ADC0809的内部逻辑结构 29. 步进电动机由 和 两大部分组成。 是促使步进电动机旋转的根本原因。步进电机定子绕组的通电状态每改变一次,它
5、的转子便转过一个确定的角度,即步进电机的 。 30. A/D转换器,通常是指一个将 转变为 的电子元件,图1为ADC0809内部逻辑结构图,8路模拟开关可选通 ,允许8路模拟量分时输入共用 进行转换。三态输出锁存器用于 ,当OE端为 时,才可以从三态输出锁存器取走转换完的数据。31. 中断优先级是由片内的 控制的。MCS-51有5个独立的中断源,如果各位优先级控制位被置1,则相应的中断被设置为 ;如果清0,则相应的中断被设置成为 。若5个独立的中断源都被设置成同一优先级,这5个中断源会构成不同的自然优先级,其排列顺序 , , , , 。 二、 单项选择题:1. 当MCS51复位时,下列说法正确
6、的是( )。(A)PC=0000H (B)SP=00H (C)SBUF=00H (D)(30H)=00H2. 要用传送指令访问MCS51片外RAM,它的指令操作码助记符应是( )。(A)MOV (B)MOVX (C)MOVC (D)以上都行3. PC中存放是( )。 (A)下一指令的地址 (B)当前正在执行的指令 (C)当前正在执行的指令的地址(D)下一条要执行的指令4. 8031是( )。 (A)CPU (B)微处理器 (C)单片微机 (D)控制器5. 要把P0口高4位变0,低4位不变,应使用指令( )。 (A)ORL P0,#0FH (B)ORL P0,#0F0H (C)ANL P0,#0
7、F0H (D)ANL P0,#0FH 6. 所谓CPU是指( )。 (A)运算器与控制器 (B)运算器与存储器 (C)输入输出设备 (D)控制器与存储器7. LCALL指令操作码地址是2000H,执行完相应子程序返回指令后,PC=( )。 (A)2000H (B)2001H (C)2002H (D)2003H8. 对程序存储器的读操作,只能使用( )。 (A)MOV 指令 (B)PUSH指令 (C)MOVX指令 (D)MOVC指令9. 判断是否溢出时用PSW的( )标志位,判断是否有进位时用PSW的( )标志位。 (A)CY (B)OV CP DRS0 ERS1 10. 在运用仿真系统调试程序
8、时,当要观察子程序内部指令的执行结果时,通常采用( )调试方法。(A)单步调试(F8) (B)跟踪调试(F7) C快速运行到光标处调试(F4)D断点调试(F2) E连续运行调试(F9)11. 当单片机从8155接口芯片内部RAM的20H单元中读取某一数据时,应使用( )类指令。(A) MOV A,20H (B)MOV* A,Ri C MOVC A,A+DPTR DMOV* A,DPTR12. 当串行口向单片机的CPU发出中断请求时,若CPU允许并接受中断请求时,程序计数器PC的内容将被自动修改为( )。(A)0003H (B)000B C0013H D001BH E0023H13. 子程序的返
9、回和中断响应过程中的中断返回都是通过改变PC的内容实现的,而PC内容的改变是( )完成的。(A)通过POP命令 (B)通过MOV 指令 C通过RET或RETI指令 D自动14. 单片机复位后,SP、PC、I/O口的内容为( )(A)SP = 07H PC = 00H P0 = P1 = P2 = P3 = FFH(B)SP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00HCSP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFHDSP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H15. 8031定时/
10、计数器共有四种操作模式,并由TMOD寄存器中M1 M0的状态决定,当M1 M0的状态为10 时,定时/计数器被设定为( )(A)13位定时/计数器 (B)16位定时/计数器C自动重装8位定时/计数器 DT0为2个独立的8位定时/计数器,T1停止工作16. 8031有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行 SETB RS1 指令,此时只能使用( )区的工作寄存器。 (A)0区 (B)1区 C2区 D3区 17. 在MCS-51单片机中,当有压入或弹出堆栈操作时,SP的内容将随之增大或减小;程序计数器PC的内容将始终指示下一条将要执行指令的地址,所
11、以只要改变PC的内容将改变程序的运行路径。SP的内容与PC的内容( )。 (A)都是8位地址 (B)都是16位地址 C位数相同 D位数不同三、 做图题(10分)单片机最小应用系统是由 外接 和 构成的。试画出单片机最小应用系统电路图。四、 简答题: 1. 单片机有哪几个发展阶段?发展的趋势是什么? 2. MCS-51系列单片机设置4组工作寄存器,应如何连续使用第0、2组?3. 什么叫堆栈?堆栈指示器SP的作用是什么?4. 试解释什么是单片机的时钟周期、机器周期、指令周期。5. MOV A,#2CH和MOV Acc,#2CH这两条指令有什么区别?6. 使用查表指令MOVC A,A+PC;“表”应
12、放在哪里? 7. ANL A,RN 指令和 ANL C, bit 指令有何不同?8. 什么是子程序?编写时应注意那些问题?9. 什么叫中断?什么叫中断系统?中断系统的功能是什么? 10. 简易数字电压表的硬件电路主要由哪几个部分组成? 试画出其原理框图,并说明各组成部分的功能。11. 工作时序是设计接口电路和编制应用程序的重要依据。单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O 设备访问形式控制该ADC0809模块。看ADC0809时序图(如图2所示)说明ADC0809的控制过程是:(15分)图2 ADC0809读写时序12. 什么叫中断源?AT89S51有哪些中断源?各中断源
13、怎样发出中断请求的? 13. LCD1602采用标准的16脚(带背光)接口,如图1所示。试说明各引脚功能。五、 分析题: 1. 已知A=83H,R0=17H,(31H)=34H,请写出执行完下列程序后A的内容。ANL A,#17HORL 17H,AXRL A,R0CPL A结果:(A)= 。2. 假定累加器A的内容为30H,执行指令: 1000H:MOVC A, A+PC 后,把程序存储器 单元的内容送累加器A中。3. 假定DPTR的内容为8100H,累加器A的内容为40H,执行下列指令: MOVC A, A+DPTR 后,送入A的是程序存储器 单元的内容。4. 假定(SP)=60H,(ACC
14、)=30H,(B)=70H,执行下列指令: PUSH ACCPUSH B 后,(SP)的内容为 ,61H单元的内容为 ,62H单元的内容为 。5. 假定(SP)=62H,(61H)=30H,(62H)=70H,执行下列指令: POP DPHPOP DPL 后,DPTR的内容为 ,SP的内容为 。6. 假定(A)=85H,(R0)=20H,(20H)=0AFH。执行下列指令: ADD A,R0 后,累加器A的内容为 ,CY的内容为 ,AC的内容为 ,OV的内容为 。7. 假定(A)=85H,(20H)=0FFH,(CY)=1。执行下列指令: ADDC A,20H 后,累加器A的内容为 ,CY的内
15、容为 ,AC的内容为 ,OV的内容为 。8. 假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。执行下列指令: INC A INC R3 INC 30H INC R0 后,累加器A的内容为 ,R3的内容为 ,30H的内容为 ,40H的内容为 。9. 假定(A)=0C5H。执行下列指令: SWAP A 后,累加器A的内容为 。10. 已知(30H)=40H,(40H)=10H,(10H)=00H,(P1)=2AH试分析执行过下列程序后各有关RAM单元的内容。MOV R0,#30HMOV A, R0MOV R1,AMOV A,P1MOV R1,AM
16、OV 10H,#20HMOV 30H,10HADD A,30H结果:(A)= ,(30H)= ,(40H)= ,(10H)= ,(P1)= 11. 设(10H)01H,(20H)1AH,SP=2FH,执行程序PUSH 10HPUSH 20HPOP 10HPOP 20H结果为:(10H)= ,(20H)= 。12. 设AC3H,R0=AAH, 执行指令“ADD A,R0”后,(A)= ,(CY)= ,(AC)= ,(OV)= ,(P)= 。13. 设AEEH,R0=CIH,Cy=1,执行指令ADDCA,R0后,(A)= ,(CY)= ,(AC)= ,(OV)= ,(P)= 。14. (A)=CA
17、H,(R3)=55H,(Cy)=1,执行指令SUBBA,R3后,(A)= ,(CY)= ,(AC)= ,(OV)= ,(P)= 。15. 设(30H)82H,(40H)19H存放的都是用BCD码表示的十进制数,试编程求其和,并给出运算结果。16. 设(30H)=32H,(40H)=19H存放的都是用BCD码表示的十进制数,程求其差,并给出运算结果。17. 设A中内容为34H,分别执行下列程序,写出结果。1) ANL A,#0F0H ;(A)= 2) ORL A,#0F0H ;(A)= 3) XRL A,#0F0H ;(A)= 4) CPL A ;(A)= 18. 把累加器A中的低4位送到外部R
18、AW的2000H单元中。19. 利用循环移位指令,编程实现对累加器A中的内容进行乘10的操作。20. 设X,Y, Z都代表位地址,试编程实现Z = XY。21. 已知Cy=1,计算执行双字节指令“2080H:JC 14H”后PC= 。22. 下列程序段的循环执行次数是 。 L0:MOV R1,#10H DJNZ R1 , L023. 在单片机片内的ROM中测得从1000H开始的11个存储单元中存放有一段程序,其机器码如列表所示。试根据机器码译出其源程序,并指出执行此程序的结果。地址内容1000H90H1001H20H1002H03H1003H74H1004H18H1005H75H1006H20
19、H1007H38H1008H78H1009H20H100AHC6H24. 已知A=83H,R0=17H,(31H)=34H,请写出执行完下列程序后A的内容。ANL A,#17HORL 17H,AXRL A,R0CPL A结果:(A)= 六、 分析程序题: 该程序是信号灯控制程序,采用P1口控制八个发光二极管的亮与灭(设输出低电平时,对应发光二极管被点亮)。ORG 0000H AJMP MAIN ;转主程序ORG 001BH ;该地址是(T1的中断入口)的地址AJMP CONT ;当出现(中断)时,才会执行到该指令ORG 0100H MAIN: MOV TMOD,#10H ;执行该指令的目的是(
20、设定T1的工作方式)MOV TH1,#3CH ;置50ms定时初值MOV TL1,#0B0H ;此时堆栈指针SP的内容是(07H)SETB EA ;执行该指令前,EA的初始值是(0)SETB ET1 ;定时器T1开中断SETB TR1 ;执行该指令的目的是(启动定时器T1工作)CLR 08H ;清1s计满标志位MOV R3,#14H ;置50ms循环初值DISP: MOV R2,07HMOV A,#0FEHNE*T: MOV P1,A ;第2次执行完该指令后,对应(第2位)灯被点亮JNB 08H,$ ;查询1s时间到否CLR 08H ;清标志位RL A DJNZ R2,NE*TMOV R2,#
21、07HNE*T1:MOV P1,AJNB 08H,$CLR 08HRR ADJNZ R2,NE*T1SJMP DISPCONT: MOV TH1,#3CH ;程序执行到此处时,堆栈指针SP的内容是(09H)MOV TL1,#0B0H DJNZ R3,E*IT ;判1s定时到否MOV R3,#14H ;重置50ms循环初值SETB 08H ;标志位置1E*IT: RETI ;该指令的功能是将(堆栈的内容)送至PC连续运行该程序时,观察二极管的变化规律是(灯被依次循环点亮 ) 七、 编程题 : 1. 利用直接寻址和寄存器间接寻址把立即数34H送入内部RAW的30H单元。2. 将片外RAW4000H
22、单元的数读出,写入片外RAW4020H单元中。3. 设程序存储器中存放了一张09的平方表,试编制根据累加器A中的数(09)查其平方值的程序。4. 编写程序段,实现片内RAW10H和20H的内容交换。5. 试编写多字节无符号数加法运算的程序。设被加数存放在30H与31H单元,加数存放在40H与41H单元,和存放在20H与21单元。6. 试编制两字节无符号减法运算程序,设被减数存放在30H与31H单元中,减数存放在40H与41H单元中,差存在20H与21H单元中。7. 利用乘法指令编写1234H56H的程序,结果存入R5,R6,R7中。8. 编程实现DPTR减1,并将结果送入DPTR.9. 试设计
23、一段循环子程序,把内部RAM中30H3FH这16个存储单元的数据移送给外部RAM中从0100H开始的存储单元中。10. 试编写一段程序,用定时器使单片机的P1.0输出400Hz的方波。(晶振为12MHz)11. 试设计一段程序,求逻辑方程P1.2 = ACC.1(B.0+P2.1)+P3.3。12. 试编写一段程序,使其功能为读P1口的高4位,读出的数据取反后从P1口的低4位输出。并把编好的程序译成机器码。13. 试设计一段循环程序,把内部RAMZ中30H3FH这16个存储单元的数据移送给外部RAM中从0100H开始的存储单元中。14. 试a存放在累加器A中,B存放在寄存器B中,要求按下式计算
24、y值并将结果y存入累加器A中,试编制相应的程序,编写一段子程序。 a-b(a0) y=a+b(a0)15. 试设计一段循环程序,把内部RAMZ中30H3FH这16个存储单元的数据移送给外部RAM中从0100H开始的存储单元中。16. 试编写一段子程序,其功能是延时20ms.(晶振为6MHz)17. 试编写一段程序,用定时器使单片机的P1.0输出400Hz的方波。(晶振为12MHz)18. 试编程实现内部RAM25H单元与外部RAM5000H单元的数据交换。19. 使T1利用方式1每隔60ms延时,在P0.0引脚上输出一个正跳变。20. 工作时序是设计接口电路和编制应用程序的重要依据。试由LCD
25、1602时序图(如图83所示)写出LCD1602写指令的程序(设RS,RW, E已经定义完毕)。图7-5 写操作时序21. 要求采用外部中断0电平触发方式进行数据采集,将外部中断0的次数读入单片机内并从P0口输出并显示。(15分)22. 工作时序是设计接口电路和编制应用程序的重要依据。试由ADC0809时序图(如图2所示)写出ADC0809的驱动程序(设AdcST, AdcOE, AdcEOC, ADDA, ADDB, ADDC已经定义完毕)。(10分) 图2 题23 步进电机控制电路图23. 电路如图2所示,计数器:l 按键(P1.0 )一次,计数器加1,数码管显示按键的次数(十进制); l 当按键按满15次之后,不再计数,数码管停滞显示“15”; l 按下清除键(P1.1),按键累计数清0,数码管显示0。 图 1 题24 数码管显示电路图24. 试设计一步进电机控制系统,用单片机控制四相混合式步进电机的正转、反转。设开机后电机不转,按下不同的键,分别使步进电机连续顺时针和逆时针旋转,按下停止键后电机停止。25. 电路如图3所示,小键盘: n 由4*4小键盘输入数码,数码管显示输入值; n 设置按键音:即按键按下蜂鸣器响起,按键抬起蜂鸣器停止响声。【精品文档】第 9 页题 25