单片微机原理与接口技术复习题.pdf
单单片片微微机机原原理理与与接接口口技技术术复复习习题题公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-一、填空题1、若单片机振荡脉冲频率为 6MHz 时,一个机器周期为_ 2s _。2、AT89C51 单片机的 XTAL1 和 XTAL2 引脚是_外接晶振或时钟_引脚。3、定时器计数器的工作方式 3 是指的将定时器/计数器 T0拆成两个独立的 8 位计数器。4、若由程序设定RS1、RS0=01,则工作寄存器R0R7的直接地址为 _080FH_。5、写出完成相应功能的汇编指令:将立即数 11H 送到 R2_ MOV R2,#11H_、使置位_ SETB、使累加器的最低 2 位清零_ ANL A,#0FCH _。6、A/D 转换的作用是将_模拟_量转为数字量。ADC0809 是_8_位的 A/D 转换芯片。7、8051 的堆栈区一般开辟在用户 RAM 区的地址为 30H7FH。8、所谓寻址,其实质就是_如何确定操作数的单元地址问题_。9、若单片机振荡脉冲频率为 12MHz 时,一个机器周期为_1s _。10、定时器中断请求发生在_计数溢出的时候_。11、中断响应时间是指_从中断请求发生直到被响应去执行中断服务程序所需的时间_。12、通过 CPU 对 I/O 状态的测试,只有 I/O 已准备好时才能进行 I/O 传送,这种传送方式称为_程序查询方式_。13、在中断服务程序中现场保护和现场恢复期间,中断系统应处在 _关中断_状态。14、8051 单片机的内部硬件结构包括了:中央处理器(CPU)、数据存储器(RAM)、程序存储器、和 2 个 16 位定时/计数器以及并行 I/O 口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过?内部总线相连接。15、MCS-51 的堆栈只可设置在 RAM 的地址为 30H7FH,堆栈寄存器 sp 是 8 位寄存器。16、MCS-51 单片机的 P0P4 口均是并行 I/O 口,其中的 P0 口和 P2 口除了可以进行数据的输入、输出外,通常还用来构建系统的数据总线 和 地址总线?,在P0P4 口中,P0 为真正的双相口,P1P3 为准双向口;P3 口具有第二引脚功能。17、若 LED 为共阳极接法(即负逻辑控制),则字符 3 的八段代码值(a-dot)应当为_0D_H。18、MCS-51 片内 20H2FH 范围内的数据存储器,既可以_字节_寻址又可以位寻址。19、AT89C51 单片机有_2_级中断,_5_个中断源。20、MCS-51 系列单片机的典型芯片型号分别为_8031 或 8051_、_ AT89C51 或 AT89C52_、_ AT89S51 或 AT89S52_。21、假定(SP)=40H,?(39H)=30H,(40H)=60H。执行下列指令:POP?DPHPOP?DPL后,DPTR 的内容为 6030H,SP 的内容是 38H。22、MCS51 单片机外部中断请求信号有电平方式和边沿方式,在电平方式下,当采集到 INT0、INT1 的有效信号为低电平时,激活外部中断。23、十进制数 45 转换成十六进制数是_2D_H,转换成二进制数是_00101101_B。24、AT89C51 单片机内部硬件结构是由一个_8_位中央处理器(CPU)、一个256B 片内 RAM 及_4_KB Flash ROM、_21_个特殊功能寄存器、_4_个 8 位并行 I/O 口、_2_个 16 位定时/计数器、_1_个串行 I/O 口以及中断系统等部分组成,各功能部件通过片内单一总线联成一个整体,集成在一块芯片上。25、单片机内有组成微机的主要功能部件 CPU、存储器 和 I/O 接口。26、堆栈的特性是先进后出,8051 的堆栈一般开辟在内部RAM30H7FH 的范围内,其堆栈指针是SP。27、RS232C 是串行通信总线标准。28、AT89C51 单片机的 P0 口用作输出时,应外接_上拉电阻_。29、除了单片机芯片和电源外,AT89C51 单片机最小系统包括_时钟_电路和_复位_电路。30、MCS-51 有一个全双工的异步串行口,有4种工作方式。二、选择题1、下列同样优先级的中断源同时请求时,哪个可以优先处理?C2、MCS-51 单片机复位操作的主要功能是把 PC 初始化为 C。3、在 MCS-51 单片机内,当执行中断处理程序最后一句指令 RETI 后,D。A.程序返回到 ACALL 的下一句 B.程序返回到 LCALL 的下一句C.程序返回到主程序开始处 D.程序返回到响应中断时一句的下一句4、8051 单片机中,唯一一个用户可以使用的 16 位寄存器是 D。5、在 CPU 内部,反映程序运行状态或反映运算结果的寄存器是B。6、下列指令能使累加器 A 的最高位置 1 的是 D。A,#7FH A,#80H A,#7FH A,#80H7、MCS51 系列单片机的汇编指令系统共 A条指令。8、MCS-51 单片机 CPU 的主要组成部分为A。A运算器、控制器 B加法器、寄存器 C运算器、加法器D运算器、译码器9、单片机上电复位后,PC 的内容和 SP 的内容为B。A0000H,00H B0000H,07H C0003H,07H D0800H,08H10、访问外部存储器或其它接口芯片时,作数据线和低 8 位地址线的是A。AP0 口 BP1 口 CP2 口 DP0 口 和 P2 口11、8051 单片机上电复位后,堆栈区的最大允许范围是B个单元。A64 B120 C128 D25612、8051 的 P0 口,当使用外部存储器时它是一个 D。A传输高 8 位地址口 A传输低 8 位地址口C传输高 8 位数据口 D传输低 8 位地址/数据口13、寻址方式就是C的方式。A查找指令操作码 B查找指令 C查找指令操作数 D查找指令操作码和操作数14、ALU 表示 D。A累加器 B程序状态字寄存器 C计数器 D算术逻辑部件15、定时/计数器有种操作模式,它们由 B寄存器中的 M1 M0 状态决定。16、判断运算是否溢出时用 PSW 的 B标志位。17、访问片外数据存储器的寻址方式是C。A.立即寻址 B.寄存器寻址 C.寄存器间接寻址 D.直接寻址18、8051 单片机的 VSS(20)引脚是 B引脚。A主电源+5V B接地 C备用电源 D访问片外存贮器19、下列指令正确的是 A。DPTR,#1234H R1,R2 A,DPTR A,A+DPTR20、所谓 CPU 是指 A。A、运算器和控制器 B、运算器和存储器 C、输入输出设备 D、控制器和存储器21、MCS-51 复位后,程序计数器 PC=B。即单片机从 B开始执行指令。A0001H B0000H C0003H D0023H22、单片机的 P0、P1 口作输入用途之前必须 A。A在相应端口先置 1 B在相应端口先置 0 C外接高电平 D外接上拉电阻23、程序是以C形式存放在程序存储器中的。语言程序 B.汇编程序C.二进制编码码24、用 Protues 软件仿真单片机实验时,要装载到单片机中的文件后缀名是A。25、MCS-51 单片机复位后,专用寄存器 ACC 的状态是 C。A01H B07H C00H D0FFH26、8051 的程序计数器 PC 为 16 位计数器,其寻址范围是 D。A8K B16K C32K D64K27、MCS-51 的立即寻址方式中,立即数前面D。A应加前缀“/:”号 B不加前缀号 C应加前缀“”号 D应加前缀“#”号28、单片机中 PUSH 和 POP 指令常用来 C。A保护断点 B保护现场 C保护现场,恢复现场D保护断点,恢复断点29、MCS-51 寻址方式中,直接寻址的寻址空间是 D。A工作寄存器 R0R7 B专用寄存器 SFR C程序存储器 ROM数据存储器 256 字节范围30、单片机中使用 MOVX A,R1 指令,C寻址数据存储器 1050H 单元。A能直接 B不能 C与 P2 口配合能 D与 P1 口配合能31、下列指令中比较转移指令是指 B。DJNZ Rn,rel BCJNE Rn,#data,rel CDJNZ direct,rel DJBC bit,rel32、执行如下三条指令后,30H 单元的内容是 B。MOV R1,#30HMOV 40H,#0EHMOV R1,40HA40H B0EH C30H DFFH33、在 MCS-51 指令中,下列指令中 C是无条件转移指令。ALCALL addr16 BDJNZ direct,rel CSJMP rel DACALLaddr1134、可实现将内部数据存储单元的内容传送到累加器 A 中的指令是C。AMOVX A,R0 BMOV A,#data CMOV A,R0 DMOVX A,DPTR35、指令 MUL AB 执行前(A)=18H,(B)=05H,执行后,A、B 的内容是D。A90H,05H B90H,00H C78H,05H D78H,00H36、MCS-51 指令系统中,指令 MOV A,R0,执行前(A)=86H,(R0)=20H,(20H)=18H,执行后C。A(A)=86H B(A)=20H C(A)=18H D(A)=00H37、MCS-51 指令系统中,指令 ADD A,R0执行前(A)=38H,(R0)=54H,(C)=1 执行后,其结果为D。A(A)=92H(C)=1 B(A)=92H(C)=0C(A)=8CH(C)=1 D(A)=8CH(C)=038、控制串行接口工作方式的寄存器是C39、已知:R0=12H(12H)=28HMOV A,#32H MOV A,45HMOV A,R0执行结果 A 的内容为B40、下列指令能使累加器 A 低 4 位不变,高 4 位置 F 的是 D。AANL A,#OFH BANL A,#OFOH CORL A,#OFH DORL A,#OF0H41、下列指令能使 R0 高 4 位不变,低 4 位置 F 的是 C。AANL R0,#OFH BANL R0,#OFOH CORL 0,#OFH DORL R0,#OFH42、单片机中的程序计数器 PC 用来 C。A.存放指令 B.存放正在执行的指令地址C.存放下一条指令地址 D.存放上一条指令地址43、单片机 AT89C51 访问片外程序存储器,EA引脚 A。A.必须接地 B.必须接+5V 电源C.可悬空 D.以上三种情况视需要而定44、下列指令能使 R0 的最高位取反的是B。ACPL BXRL 00H,#80H CCPL(R0).7 DARL R0,#80H45、下列指令判断若累加器 A 的内容不为 0 就转 LP 的是D。AJB A,LP BJNZ A,LP CJZ LP DCJNE A,#0,LP46、MCS-51 指令系统中,执行下列程序后,程序计数器 PC 的内容为 C。ORG 000HMOV DPDR,#1000MOV A,#00HMOV 20H,ALJMP 1500ENDA100 B1000 C1500 D047、MCS-51 指令系统中,执行下列程序后,堆栈指针 SP 的内容为 B。MOV SP,#30HMOV A,20HLACALL 1000MOV 20H,ASJMP$A00H B30H C32H D07H48、在单片机算术运算过程中,指令 DA A 常用于C运算。A二进制 B加法 CBCD 码加法 D十六进制49、指令 ANL A,R0 的功能是A。A.将 A 与寄存器 R0 的内部容按位逻辑与 B.将 A 与寄存器 R0 的内部容按位逻辑异或C.将 A 与寄存器 R0 的内部容按位逻辑非 D.将 A 与寄存器 R0 的内部容按位逻辑或50、执行下列程序后,内部 RAM 30H 单元的内容是 B。MOV 30H,#00HMOV R0,#30HMOV A,30HADD A,#05HMOVC A,A+PCMOV R0,ASJMP$TDB:DB 00H,01H,02H,03H,05HA00H B02H C05H D30H51、定时器 T1 的溢出标志为 TF1,采用查询方式,若查询到有溢出时,该标志A。A.由软件清零 B.由硬件自动清零 C.随机状态都可以52、对程序存储器的读操作,只能用下列哪一种指令 B。53、将内部数据存储器 53H 单元的内容传送至累加器,其指令是 A。AMOV A,53H BMOV A,#53H CMOVC A,53H DMOVXA,#53H54、8051 单片机的定时器 T1 用作定时方式时是 B。A由内部时钟频率定时,一个时钟周期加 1B由内部时钟频率定时,一个机器周期加 1C由外部时钟频率定时,一个时钟周期加 1D由外部时钟频率定时,一个机器周期加 155、8051 单片机的定时器 T0 用作定时方式时是D。A由内部时钟频率定时,一个时钟周期加 1B由外部计数脉冲计数,一个机器周期加 1C外部定时脉冲由 T0()输入定时D由内部时钟频率计数,一个机器周期加 156、用 8051 的定时器 T1 作计数方式,用模式 2,则工作方式控制字为A。A60H B02H C06H D20H57、用 8051 的定时器 T1 作定时方式,用模式 2,则初始化编程为 B。AMOV TOMD,#06H BMOV TOMD,#20H CMOV TOMD,#10H DMOVTOMD,#60H58、启动定时器 1 开始定时的指令是D。ACLR TR0 BCLR TR1 CSETB TR0 DSETB TR159、使 8051 的定时器 T1 停止计数的指令是使 TCON 的 D。ATF0 位置 1 BTR0 位置 1 CTR0 位置 0 DTR1 位置 060、下列指令判断若定时器 T0 未计满数就原地等待的是 B。AJB T0,$BJNB TF0,$CJNB TR0,$DJB TF0,$61、当 CPU 响应外部中断 1 INT1 的中断请求后,程序计数器 PC 的内容是C。A0003H B000BH C00013H D001BH62、MCS-51 单片机的串行口是 B工作的。A.单工 B.全双工 C.半双工 D.单工/半双工63、若某存储器芯片地址线为 10 根,那么它的存储容量为A。64、当外部中断 0 发出中断请求后,中断响应的条件是C。ASETB ET0 BSETB EX0 CMOV IE,#81H DMOV IE,#61H三、判断题()1MCS-51 单片机是高档 16 位单片机。()28051 的累加器 ACC 是一个 8 位的寄存器,简称为 A,用来存一个操作数或中间结果。()3MCS-51 的数据存储器在物理上和逻辑上都分为两个地址空间:一个是片内的 256 字节的 RAM,另一个是片外最大可扩充 64K 字节的 RAM。()4单片机的一个机器周期是指完成某一个规定操作所需的时间,一般情况下,一个机器周期等于一个时钟周期。()5MCS-51 单片机上电复位后,片内数据存储器的内容均为 00H。()6MCS-51 单片机的片内存储器称为程序存储器。()7所谓的单片机,就是将 CPU、存储器、定时/计数器、中断功能以及I/O 设备等主要功能部件都集成在一起的超大规模集成电路的微型计算机。()88051 每个中断源相应地在芯片上都有其中断请求输入引脚。()9MCS-51 单片机的指令格式中操作码与操作数之间必须用“,”分隔。()10MCS-51 指令:MOVX A,DPTR;表示将 DPTR 指示的地址单元中的内容传送至 A 中。()11MCS-51 指令中,MOVC 为 ROM 传送指令。()12RC A 为循环左移指令。()13CPU 和外设之间的数据传送方式主要有查询方式和中断方式,两者相比后者的效率更低。()14MCS-51 单片机,CPU 对片外 RAM 的访问只能用寄存器间接寻址的方式,且仅有 4 条指令。()15指令 MUL AB 执行前(A)=F0H,(B)=05H,执行后(A)=FH5,(B)=00H。()16()17MOV A,R7将 R7 单元中的数据作为地址,从该地址中取数,送入 A中。()18已知:A=1FH,(30H)=83H,执行 ANL A,30H 后,结果:A=03H(30H)=83H P=0。()19MCS-51 指令系统中,执行指令 ORG 2000H;BCD:DB“A,B,C,D”;表示将 A、B、C、D 的 ASII 码值依次存入 2000H 开始的连续单元中。()2051 单片机只能做控制用,不能完成算术运算。下面几条指令是否正确:()21MOV R1,80H()22INC DPTR()23CLR R0()24ANL R1,#0FH()258051 单片机的 PC 与 DPTR 都在 CPU 片内,因此指令 MOVC A,A+PC与指令 MOVC A,A+DPTR 执行时只在单片机内部操作,不涉及片外存储器。()26设 PC 的内容为 35H,若要把程序存贮器 08FEH 单元的数据传送至累加器 A,则必须使用指令 MOVC A,A+PC。()27在 MCS-51 单片机内部结构中,TCON 为控制寄存器,主要用来控制定时器的启动与停止。()28PC 存放的是当前执行的指令。()29DECC A,C 该指令书写格式正确。()30MCS-51 单片机系统复位时,TMOD 模式控制寄存器的低 4 位均为 0。()318051 单片机对最高优先权的中断响应是无条件的。()32MCS-51 单片机的中断允许寄存器的 IE 的作用是用来对各中断源进行开放或屏蔽的控制。()33为了消除按键的抖动,常用的方法有硬件和软件两种方法。()34ADC0809 是一块数/模转换芯片,而 DAC0832 是一块模/数转换芯片。()35串行口的中断,CPU 响应中断后,必须在中断服务程序中,用软件清除相应的中断标志位,以撤消中断请求。()36指令 JNB TF0,LP 的含义是:若定时器 T0 未计满数,就转 LP。()37当 8051 的定时器 T0 计满数变为 0 后,溢出标志位(TCON 的 TF0)也变为 0。四、程序分析题1、已知(A)=83H,(R0)=17H,(17H)=34H,执行下列程序段后:ANL A,#17HORL 17H,AXRL A,R0CPL A问:(A)=CBH,(R0)=17H,(17H)=37H。2、已知(10H)=5AH,(2EH)=1FH,(40H)=2EH,(60H)=3DH,执行下列程序段后:MOV 20H,60HMOV R1,20HMOV A,40HXCH A,R1XCH A,60HXCH A,R1MOV R0,#10HXCHD A,R0问:(A)=5AH(10H)=1FH(2EH)=3DH(40H)=2EH(60H)=3DH3、执行下列程序段:MOV A,#00HMOV R7,#0FFHMOV PSW,#80HADDC A,R7问:(CY)=1(AC)=1(P)=0(ACC)=00H(R7)=0FFH4、已知(A)=19H,(B)=04HDIV AB问:执行后,(A)=6(B)=15、写出执行每条指令后的结果。MOV A,#25H CLR A ;(A)=_00H_。CPL A ;(A)=_0DA H_。6、执行下列程序段中第一条指令后,()=_0_,()=_0_,()=_0_;执行第二条指令后,()=_1_,()=_1_,()=_1_.ANL P1,#73HORL P1,#38H7、下列程序段执行后,(A)=_13_,(B)=_16_.MOV A,#0FBHMOV B,#12HDIV AB8、下列程序段执行后,(R0)=_7EH_,(7EH)=_FFH_,(7FH)=_3FH_.MOV R0,#7FHMOV 7EH,#0MOV 7FH,#40HDEC R0DEC R0DEC R09、写出下列指令执行后的结果。MOV A,#37H MOV R0,#20H MOV R0,A ANL A,#0FH(A)=_07H_ (R0)=_ 20H _ (20H)=_37H _10、已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=_0BH_,内部 RAM(0AH)=_46H_,(0BH)=_45H_PUSH DPLPUSH DPH11、下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为 6MHz,问执行下列程序需要多少时间_16us_MOV R3,#100;1LOOP:NOP;1NOPNOPDJNZ R3,LOOP;2RET;212、执行下面程序后,所实现的逻辑运算式为=/。MOV C,ANL C,CPL ANL C,MOV,C13、写出下面每条指令顺序执行后,各目的存储单元的值,并说明该条指令中源操作数的寻址方式。MOV R0,#20H;_(R0)=20H_立即寻址_MOV 20H,#29H;_(20H)=29H立即寻址_CLR C;_CY=0_MOV A,R0;_(A)=29H _寄存器间接寻址_14、执行如下三条指令后,30H 单元的内容是 _0EHMOV R1,#30HMOV 40H,#0EHMOV R1,40H15、请分析下面程序执行后的操作结果,(A)=_40H_,(R0)=_60H_。MOV A,#60HMOV R0,#40HMOV R0,AMOV 41H,R0XCH A,R016、请描述数码管静态显示和动态扫描显示的原理?态显示位码始终有效,每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 58=40 根 I/O 端口来驱动,数码管动态扫描的方法,将 8 个数码管的段选线并联在一起,由位选线控制是哪一位数码管有效,轮流向各位数码管送出字形码和相应的位选,轮流点亮扫描过程中,每位数码管的点亮时间是极为短暂的(约 1ms),利用数码管的余晖效应和人眼的视觉残留效应,使人感觉好像各位数码管同时都在显示。17、已知:(R0)=00H,写出执行指令后的结果。ORG 0000H MOV A,R0 JZ L1 MOV R1,#00H AJMP L2L1:MOV R1,#0FFHL2:SJMP L2 END执行完整段程序后,(A)=_00H _ (R1)=_0FFH _。18、已知片内 RAM 中 ONE 和 TWO 两个单元中存有两个无符号数,将两个数中的小者存入 30H 单元。请完成以下程序实现上述功能。MOV A,ONECJNE A,TWO,BIGSJMP STO BIG:JC STO MOV A,TWO STO:MOV 30H,ARET19、执行下面程序后,(A)=_ 06H _。MOV A,#06HMOVC A,A+PCDB 00H,01H,02H,03H,04H,05H,06H20、设(SP)60H,片内 RAM 的(30H)24H,(31H)10H,执行程序:PUSH 30H PUSH 3lH POP DPL POP DPH MOV A,#00HMOVX DPTR,A最后执行结果是将 0 送 _外部 RAM 地址为 2410H 的单元中_。21、写出下面每条指令顺序执行后,各目的存储单元的值,并说明该条指令中源操作数的寻址方式(已知内部 RAM(40H)的值为 30H)。MOV R1,#40H;_(R1)=40H,立即寻址_CLR C;_(Cy)=0,位寻址_MOV A,R1;_(A)=30H,寄存器间接寻址_RLC A;_(A)=60H,寄存器寻址22、有如下程序段:MOV R0,#30HSETB CCLR AADDC A,R0MOVR0,A执行后(30H)=31H23、执行下列程序后,(A)=_40H_,(B)=_1_。MOV A,#0AHMOV B,#20HMUL AB24、存放于 ADDR1 和 ADDR2 中的两个无符号二进制数,求其中的大数并存于ADDR3 中,请完成以下程序实现上述功能。MOVA,ADDR1CJNE A,ADDR2,LP1LP1:J C LP2 MOV ADDR3,A SJMP LP3 LP2:MOV ADDR3,ADDR2 LP3:RET25、要求在 AT89C51 单片机引脚输出周期为 100s 的方波。设 fosc=12MHz。使用 T0,采用中断控制写出在方式 1 下的设计程序26、设 R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)=76H,下列程序执行后,结果如何?CLRMOV R2,#3HLOOP:MOV,R0ADDC,R1MOV R0,AINC R0INC R1DJNZ R2,LOOP JNC NEXT MOV R0,#01H SJMP$NEXT:DEC R0 SJMP$答:(20)H=20H ,(21H)=00H ,(22H)=17H,Cy=1 ,A=17H,R0=23H ,R1=28H27、执行下列程序后,(A)=_40H(B)=_01HMOV A,#0AHMOV B,#20HMUL AB;=;串行数据输入移位时钟脉冲输出锁存器控制脉冲;=29、内部 RAM 从 list 单元开始存放一单字节正数表,表中之数作无序排列,并以-1 作结束标志。编程实现表中找出最小值。MOV R0,#LISTMOV A,R0MOV MIN,ALOOP5:INC R0MOV A,R0_JNB,LOOP3RETLOOP3:CJNE A,MIN,LOOP1LOOP1:_JNC_ LOOP2MOV MIN,ALOOP2:SJMP LOOP530、设两个十进制数分别在内部 RAM 40H 单元和 50H 单元开始存放(低位在前),其字节长度存放在内部 30H 单元中。编程实现两个十进制数求和,并把求和结果存放在 40H 开始的单元中。MOV R0,#40HMOV R1,#50HMOV R2,#30H_CLR C_LOOP:MOV A,R0ADDC A,R1_DA A_MOV R0,INC R0INC R1DJNZ R2,LOOPRET