单片机综合练习题(10页).doc
-第 1 页一、一、二、二、三、三、四、四、单片机综单片机综合练习题合练习题-第 2 页五、五、填空题填空题:1.从计算机总线的功能看,可以将总线分为,和。2.数据总线用于,总线的条数多数由所决定。3.存储器的分类方法很多,按其工作方式可分为和。按存储器和CPU 的关系可分为和。4.用来指示随机存储器中堆栈的栈顶的 16 位地址。5.地址缓冲器在与之间起缓冲作用。6.用来存放参与运算的一个操作数以及运算后的结果。7.ALU 由和其他逻辑电路组成,其功能是。8.(+31)10的反码是,(-122)10的补码是。9.十进制数 29 的二进制表示为。10.单片微型计算机由 CPU、存储器和三部分组成。11.当使用 8751 且 EA=1,程序存储器地址时,访问的是片内 ROM。12.MCS51 特殊功能寄存器只能采用寻址方式。13.MCS51 片内 20H2FH 范围内的数据存储器,既可以字节寻址又可以寻址。14.若用传送指令访问 MCS51 的程序存储器,它的操作码助记符是。15.计算机的系统总线有地址总线、控制总线和总线。16.输入输出设备是计算机与外部世界交换信息的。17.PC 复位后为。18.一个机器周期=节拍、一个机器周期=12 个振荡周期,一个振荡周期=1 节拍。19.12 根地址线可寻址KB 存储器。20.MCS51 单片机内 RAM 的存储器区共有单元,分为组寄存器,每组个单元,以作为寄存器名称。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;PUSHACC;PUSHDPL;PUSHDPH;POPACC;POPDPL;后,SP=。27.MCS-51 系列单片机中断系统中有个中断源,其中 2 个外部中断源的输入端为和。中断可设置个中断优先级。在特殊功能寄存器(SFR)中 IP为,IE 为。28.MCS-51 系列单片机片内部有个定时器/计数器,其中 T0 有种工作方式,其方式1是位定时器/计数器。在MCS-51系列单片机中,特殊功能寄存器(SFR)中的 TMOD 是,其位地址为。29.步进电动机由和两大部分组成。是促使步进电动机旋转的根本原因。步进电机定子绕组的通电状态每改变一次,它的转子便转过一个确定的角度,即步进电机的。30.A/D 转换器,通常是指一个将转变为的电子元件,图1为 ADC0809内部逻 辑 结 构 图,8 路 模 拟 开 关 可 选通,允许8路模拟量分时输入共用进行转换。三态输出锁存器用于,当 OE 端为时,才可以从三态输出锁存器取走转换完的图 1ADC0809 的内部逻辑结构-第 3 页数据。31.中断优先级是由片内的控制的。MCS-51 有 5 个独立的中断源,如果各位优先级控制位被置 1,则相应的中断被设置为;如果清 0,则相应的中断被设置成为。若 5 个独立的中断源都被设置成同一优先级,这 5 个中断源会构成不同的自然优先级,其排列顺序,。六、六、单项选择题单项选择题:1.当 MCS51 复位时,下列说法正确的是()。(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)ORLP0,#0FH(B)ORLP0,#0F0H(C)ANLP0,#0F0H(D)ANLP0,#0FH6.所谓 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)OVCPDRS0ERS110.在运用仿真系统调试程序时,当要观察子程序内部指令的执行结果时,通常采用()调试方法。(A)单步调试(F8)(B)跟踪调试(F7)C快速运行到光标处调试(F4)D断点调试(F2)E连续运行调试(F9)11.当单片机从 8155 接口芯片内部 RAM 的 20H 单元中读取某一数据时,应使用()类指令。(A)MOV A,20H(B)MOV*A,RiC MOVC A,A+DPTRDMOV*A,DPTR12.当串行口向单片机的 CPU 发出中断请求时,若 CPU 允许并接受中断请求时,程序计数器PC 的内容将被自动修改为()。(A)0003H(B)000BC0013HD001BHE0023H13.子程序的返回和中断响应过程中的中断返回都是通过改变 PC 的内容实现的,而 PC 内容的改变是()完成的。(A)通过 POP 命令(B)通过 MOV 指令C通过 RET 或 RETI 指令D自动14.单片机复位后,SP、PC、I/O 口的内容为()(A)SP=07HPC=00HP0=P1=P2=P3=FFH(B)SP=00HPC=0000HP0=P1=P2=P3=00HCSP=07HPC=0000HP0=P1=P2=P3=FFHDSP=00HPC=00HP0=P1=P2=P3=00H15.8031 定时/计数器共有四种操作模式,并由 TMOD 寄存器中 M1 M0 的状态决定,当 M1 M0的状态为 10 时,定时/计数器被设定为()(A)13 位定时/计数器(B)16 位定时/计数器C自动重装 8 位定时/计数器DT0 为 2 个独立的 8 位定时/计数器,T1 停止工作-第 4 页16.8031 有四个工作寄存器区,由 PSW 状态字中的 RS1、RS0 两位的状态来决定,单片机复位后,若执行 SETB RS1 指令,此时只能使用()区的工作寄存器。(A)0 区(B)1 区C2 区D3 区17.在 MCS-51 单片机中,当有压入或弹出堆栈操作时,SP 的内容将随之增大或减小;程序计数器 PC 的内容将始终指示下一条将要执行指令的地址,所以只要改变 PC 的内容将改变程序的运行路径。SP 的内容与 PC 的内容()。(A)都是 8 位地址(B)都是 16 位地址C位数相同D位数不同七、七、做图题做图题(10(10 分)分)单片机最小应用系统是由外接和构成的。试画出单片机最小应用系统电路图。八、八、简答题:简答题:1.单片机有哪几个发展阶段?发展的趋势是什么?2.MCS-51 系列单片机设置 4 组工作寄存器,应如何连续使用第 0、2 组?3.什么叫堆栈?堆栈指示器 SP 的作用是什么?4.试解释什么是单片机的时钟周期、机器周期、指令周期。5.MOV A,#2CH 和 MOV Acc,#2CH 这两条指令有什么区别?6.使用查表指令 MOVCA,A+PC;“表”应放在哪里?7.ANL A,RN指令和 ANL C,bit指令有何不同?8.什么是子程序?编写时应注意那些问题?9.什么叫中断?什么叫中断系统?中断系统的功能是什么?10.简易数字电压表的硬件电路主要由哪几个部分组成?试画出其原理框图,并说明各组成部分的功能。11.工作时序是设计接口电路和编制应用程序的重要依据。单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O 设备访问形式控制该 ADC0809 模块。看 ADC0809时序图(如图 2 所示)说明 ADC0809 的控制过程是:(15 分)图 2ADC0809 读写时序12.什么叫中断源?AT89S51 有哪些中断源?各中断源怎样发出中断请求的?13.LCD1602 采用标准的 16 脚(带背光)接口,如图 1 所示。试说明各引脚功能。九、九、分析题:分析题:1.已知 A=83H,R0=17H,(31H)=34H,请写出执行完下列程序后 A 的内容。ANLA,#17HORL17H,AXRLA,R0CPLA结果:(A)=。2.假定累加器 A 的内容为 30H,执行指令:-第 5 页1000H:MOVCA,A+PC后,把程序存储器单元的内容送累加器 A 中。3.假定 DPTR 的内容为 8100H,累加器 A 的内容为 40H,执行下列指令:MOVCA,A+DPTR后,送入 A 的是程序存储器单元的内容。4.假定(SP)=60H,(ACC)=30H,(B)=70H,执行下列指令:PUSHACCPUSHB后,(SP)的内容为,61H 单元的内容为,62H 单元的内容为。5.假定(SP)=62H,(61H)=30H,(62H)=70H,执行下列指令:POPDPHPOPDPL后,DPTR 的内容为,SP 的内容为。6.假定(A)=85H,(R0)=20H,(20H)=0AFH。执行下列指令:ADDA,R0后,累加器 A 的内容为,CY 的内容为,AC 的内容为,OV 的内容为。7.假定(A)=85H,(20H)=0FFH,(CY)=1。执行下列指令:ADDCA,20H后,累加器 A 的内容为,CY 的内容为,AC 的内容为,OV 的内容为。8.假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。执行下列指令:INCAINCR3INC30HINCR0后,累加器 A 的内容为,R3 的内容为,30H 的内容为,40H 的内容为。9.假定(A)=0C5H。执行下列指令:SWAPA后,累加器 A 的内容为。10.已知(30H)=40H,(40H)=10H,(10H)=00H,(P1)=2AH 试分析执行过下列程序后各有关 RAM 单元的内容。MOV R0,#30HMOV A,R0MOV R1,AMOV A,P1MOV R1,AMOV 10H,#20HMOV 30H,10HADD A,30H结果:(A)=,(30H)=,(40H)=,(10H)=,(P1)=11.设(10H)01H,(20H)1AH,SP=2FH,执行程序PUSH10HPUSH20HPOP10HPOP20H结果为:(10H)=,(20H)=。12.设 AC3H,R0=AAH,执行指令“ADDA,R0”后,(A)=,(CY)=,(AC)=,(OV)=,(P)=。-第 6 页13.设 AEEH,R0=CIH,Cy=1,执行指令 ADDCA,R0 后,(A)=,(CY)=,(AC)=,(OV)=,(P)=。14.(A)=CAH,(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)ANLA,#0F0H;(A)=2)ORLA,#0F0H;(A)=3)XRLA,#0F0H;(A)=4)CPLA;(A)=18.把累加器 A 中的低 4 位送到外部 RAW 的 2000H 单元中。19.利用循环移位指令,编程实现对累加器 A 中的内容进行乘 10 的操作。20.设 X,Y,Z 都代表位地址,试编程实现 Z=XY。21.已知 Cy=1,计算执行双字节指令“2080H:JC14H”后 PC=。22.下列程序段的循环执行次数是。L0:MOVR1,#10HDJNZR1,L023.在单片机片内的 ROM 中测得从 1000H 开始的 11 个存储单元中存放有一段程序,其机器码如列表所示。试根据机器码译出其源程序,并指出执行此程序的结果。地址内容1000H90H1001H20H1002H03H1003H74H1004H18H1005H75H1006H20H1007H38H1008H78H1009H20H100AHC6H24.已知 A=83H,R0=17H,(31H)=34H,请写出执行完下列程序后 A 的内容。ANLA,#17HORL17H,AXRLA,R0CPLA结果:(A)=十、十、分析程序题:分析程序题:该程序是信号灯控制程序,采用 P1 口控制八个发光二极管的亮与灭(设输出低电平时,对应发光二极管被点亮)。ORG0000HAJMPMAIN;转主程序ORG001BH;该地址是(T1 的中断入口)的地址-第 7 页AJMPCONT;当出现(中断)时,才会执行到该指令ORG0100HMAIN:MOVTMOD,#10H;执行该指令的目的是(设定 T1 的工作方式)MOVTH1,#3CH;置 50ms 定时初值MOVTL1,#0B0H;此时堆栈指针 SP 的内容是(07H)SETBEA;执行该指令前,EA 的初始值是(0)SETBET1;定时器 T1 开中断SETBTR1;执行该指令的目的是(启动定时器 T1工作)CLR08H;清 1s 计满标志位MOVR3,#14H;置 50ms 循环初值DISP:MOVR2,07HMOVA,#0FEHNE*T:MOVP1,A;第 2 次执行完该指令后,对应(第 2位)灯被点亮JNB08H,$;查询 1s 时间到否CLR08H;清标志位RLADJNZR2,NE*TMOVR2,#07HNE*T1:MOVP1,AJNB08H,$CLR08HRRADJNZR2,NE*T1SJMPDISPCONT:MOVTH1,#3CH;程序执行到此处时,堆栈指针 SP 的内容是(09H)MOVTL1,#0B0HDJNZR3,E*IT;判 1s 定时到否MOVR3,#14H;重置 50ms 循环初值SETB08H;标志位置 1E*IT:RETI;该指令的功能是将(堆栈的内容)送至 PC连续运行该程序时,观察二极管的变化规律是(灯被依次循环点亮)十一、十一、编程题编程题:1.利用直接寻址和寄存器间接寻址把立即数 34H 送入内部 RAW 的 30H 单元。2.将片外 RAW4000H 单元的数读出,写入片外 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 页8.编程实现 DPTR 减 1,并将结果送入 DPTR.9.试设计一段循环子程序,把内部 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 中,要求按下式计算 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.工作时序是设计接口电路和编制应用程序的重要依据。试由 LCD1602 时序图(如图 83 所示)写出 LCD1602 写指令的程序(设 RS,RW,E 已经定义完毕)。图7-5写操作时序21.要求采用外部中断 0 电平触发方式进行数据采集,将外部中断 0 的次数读入单片机内并从 P0 口输出并显示。(15 分)22.工作时序是设计接口电路和编制应用程序的重要依据。试由 ADC0809 时序图(如图 2所示)写出 ADC0809 的驱动程序(设 AdcST,AdcOE,AdcEOC,ADDA,ADDB,ADDC 已经定义完毕)。(10 分)图 2-第 9 页题 23步进电机控制电路图23.电路如图 2 所示,计数器:按键(P1.0)一次,计数器加 1,数码管显示按键的次数(十进制);当按键按满 15 次之后,不再计数,数码管停滞显示“15”;按下清除键(P1.1),按键累计数清 0,数码管显示 0。题 24数码管显示电路图24.试设计一步进电机控制系统,用单片机控制四相混合式步进电机的正转、反转。设开机后电机不转,按下不同的键,分别使步进电机连续顺时针和逆时针旋转,按下停止键后电机停止。25.电路如图 3 所示,小键盘:由 4*4 小键盘输入数码,数码管显示输入值;设置按键音:即按键按下蜂鸣器响起,按键抬起蜂鸣器停止响声。图1-第 10 页题 25