您的当前位置:首页正文

单片机复习题

2022-09-16 来源:爱站旅游
导读单片机复习题
 13.完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。(必考!!!程序阅读题) (1)将R0的内容传送到R1; (2)内部RAM单元60H的内容传送到寄存器R2; (3)外部RAM单元1000H的内容传送到内部RAM单元60H; (4)外部RAM单元1000H的内容传送到寄存器R2; (5)外部RAM单元1000H的内容传送到外部RAM单元2000H。 答: (1)MOV A,R0 MOV R1,A (2)MOV R2,60H (3)MOV DPTR,#1000H MOVX A,@DPTR MOV 60H,A (4)MOV DPTR,#1000H MOVX A,@DPTR MOV R2,A (5)MOV DPTR,#1000H MOVX A,@DPTR MOV DPTR,#2000H MOVX @DPTR, A 14.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。(程序阅读题) MOV A,@R1 解析:(A)=((R1))=(30H)=60H MOV @R1,40H ((R1))=(30H)=(40H)=08H MOV 40H,A (40H)=(A)=60H MOV R1,#7FH (R1)=7FH 答: (R1)=7FH (A)=60H (30H)=08H (40H)=60H 15.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。(程序阅读题 必考!!) (1)MOV A,@R0 引导:(A)=((R0)) (2)ANL 40H,#0FH ANL是逻辑与 即0100 0000与0000 1111做逻辑与 (3)ADD A,R4 ADD是加法指令 即寄存器A的内容与工作寄存器R4的内容做加法,存在寄存器A中,并阐明PSW中CY(最高借位) AC(低字节借位) OV(溢出标志位)的零一情况。 (4)SWAP A 该指令是指将寄存器的低四位与高四位互换位置 (5)DEC @R1 ((R1))-1操作 (6)XCHD A,@R1 两寄存器低四位内容互换,结果存在寄存器A中 答: (1)(A)=2CH (2)(40H)=0CH (3)(A)=22H,(CY)=1,(AC)=1,(OV)=0 (4)(A)=8EH (5)(20H)=0EH,P=1 (6)(A)=EFH,(20)=08H 16.若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?(程序阅读题 必考!!) MOV A,50H (A)=(50H)=40H MOV R0,A (R0)=(A)=40H MOV A,#00H (A)=00H MOV @R0,A ((R0))=(40H)=00H MOV A,#3BH (A)=3BH MOV 41H,A (41H)=(A)=3BH MOV 42H,41H (42H)=(41H)=3BH 答: (A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。 17.试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。(程序阅读题 必考!!) (1)使ACC.0置位; 置位操作码 SETB (2)清除累加器高4位; 清零用逻辑与指令 (3)清除ACC.3,ACC.4,ACC.5,ACC.6。清零用逻辑与指令 答: (1)SETB ACC.0 (2)ANL A,#0FH (3)ANL A,#87H 18.试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。(程序阅读题) 答: MOV 2FH,20H MOV 2EH,21H MOV 2DH,22H 19.若(CY)=1,(P1)=10100011B,(P3)=01101100B。试指出执行下列程序段后,CY、P1口及P3口内容的变化情况。(此题是位操作指令的题目,程序中的C均是CY) MOV P1.3,C MOV P1.4,C MOV C,P1.6 MOV P3.6,C MOV C,P1.0 MOV P3.4,C 答: (CY)=1, (P1)=10111011B, (P3)=00111100B 21.编写程序,把外部RAM中1000H~101FH的内容传送到内部RAM的30H~4FH中。(编程题 必考!!背过) 答: ORG 0000H MOV DPTR,#1000H MOV R0,#30H MOV R7,#32 LOOP:MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R7,LOOP RET 22.若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。(程序阅读题) DELAY:MOV R7,#0F6H 一个机器周期 LP:MOV R6,#0FAH 一个机器周期 DJNZ R6,$ 两个机器周期 DJNZ R7,LP 两个机器周期 RET 两个机器周期 答:延时时间: 2µs*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含调用指令2个机器周期) 25.要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。(编程题 必考!!) 答:采用T0实现 a、T0工作在定时方式1时,控制字TMOD配置: M1M0=01,GATE=0,C/T=0,可取方式控制字为01H; b、计算计数初值X: 晶振为12 MHz,所以机器周期Tcy为1μs。1/1000=1×10-3 N=t/ Tcy =0.5×10-3/1×10-6=500 X=216-N=65536-500=65036=FE0CH 即应将FEH送入TH0中,0CH送入TL0中。 c、实现程序如下: ORG 0000H AJMP MAIN ;跳转到主程序 ORG 000BH ;T0的中断入口地址 LJMP DVT0 ORG 0030H MAIN:MOV TMOD,#01H ;设T0工作于方式2 MOV TH0,# 0FEH ;装入循环计数初值 MOV TL0,#0CH ;首次计数值 SETB ET0 ;T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0 SJMP $ ;等待中断 DVT0:CPL P1.1 MOV TH0,# 0FEH MOV TL0,# 0CH SETB TR0 RETI END 26.利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次闪动,闪动频率为1次/秒(即,亮1秒后熄灭并点亮下一个,-----)。(编程题——流水灯) 答:采用定时20ms,计数50次实现1秒定时。编制1秒延时子程序,由主程序调用。 a、T0工作在定时方式1时,控制字TMOD配置: M1M0=01,GATE=0,C/T=0,可取方式控制字为01H; b、计算计数初值X: 晶振为12 MHz,所以机器周期Tcy为1μs。 N=t/ Tcy =20×10-3/1×10-6=20000 X=216-N=65536-20000=45536=4E20H 即应将4EH送入TH1中,20H送入TL1中。 c、实现程序如下: ORG 0000H AJMP MAIN ;跳转到主程序 ORG 0030H MAIN:CLR CY MOV A,#01H LP0:MOV P1,A CALL D1SEC RL A AJMP LP0 D1SEC:MOV R7,#50 ;计数50次 MOV TMOD,#01H DL:MOV TH0,#4EH MOV TL0,#20H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R7,DL RET END 27.利用单片机串行口扩展并行输入接口电路如图所示。试编写程序完成将SW1~SW8的状态反应在P0口所接的LED上(如SW1闭合时L7应点亮)。 答:电路图如下: +5V10K×8VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7L0HGFEDCBAON1234567815S/LP1.774LS165L7RXDTXD1K×8QCLK889S5120SW1~SW8 ORG 0000H MOV SCON,#10H LOOP:CLR P1.7 NOP NOP NOP SETB P1.7 CLR RI JNB RI,$ MOV A,SUBF SJMP LOOP END 28.利用单片机串行口扩展并行输出接口电路如图所示。试编写程序完成将SW1~SW8的状态反应在移位寄存器74LS164所接的LED上(如SW1闭合时L0应点亮)。 答:电路图如下: +5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.710K×8RXDTXDON12345678VCCL7CLRCLKQAQBQCQDQEQFQGQHL01K×889S5120ABSW1~SW874LS164 ORG 0000H MOV SCON,#00H MOV P1,#0FFH LOOP:MOV A,P1 MOV SUBF,A JNB TI,$ CLR TI SJMP LOOP END2 28 中断响应的条件: (1) 有中断请求 (2) 相应的中断允许位置1 (3) CPU开启中断 (4) CPU没有正在处理同级或者高优先级中断 (5) 当前查询周期是所执行指令的最后一个机器周期 (6) 若现在指令是RETI或者是访问IE或IP指令,则该指令以及紧接着的另一条指令已执行完 1.计算机由哪几部分组成?{填空 选择) 由运算器 控制器、存储器、输入设备和输出设备组成,运算器与控制器合称为CPU。 2.微型计算机由哪几部分构成?(填空 选择) 微型计算机由微处理器、存储器和I/O接口电路构成。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。 3.微处理器与微型计算机有何区别?(填空 选择) 微处理器集成了运算器和控制器(即CPU);而微型计算机包含微处理器、存储器和I/O接口电路等。 4. 80C51单片机的存储器的组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点?(填空 选择 简答) 答: 在物理上设计成程序存储器和数据存储器两个独立的空间;80C51基本型单片机片内程序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128字节RAM,地址范围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH还配有21个SFR。 5.80C51单片机的P0~P3口在结构上有何不同?在使用上有何特点? (选择 填空 简答) 答: 作为通用I/O口时,P0、P1、P2和P3都是准双向口。 P0口作输入时,需要外接上拉电阻。 P0可以作为低8位地址/数据总线,此时是一个真正的双向口;P2口可以作为地址线的高8位;P3口是双功能口,每条口线还具有不同的第二功能。(P3口各功能必须记熟 P41) 6.80C51单片机复位后的状态如何?复位方法有几种?(填空 选择 简答) 答: 复位后,PC内容为0000H,P0口~P3口内容为FFH,SP内容为07H,SBUF内容不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。复位方法一种是上电复位,另一种是上电与按键均有效的复位。 7.80C51单片机的片内、片外存储器如何选择?(简答) 答: 80C51的EA引脚为访问片内、片外程序存储器的选择端。访问片内、片外数据存储器需要采用不同的指令加以区分。EA接至低电平时,直接指向片外程序存储器,即0000H-FFFFH。EA接至高电平时,先指向片内程序存储器,即0000H-0FFFH,随后指向片外程序存储器,即1000H-FFFFH。 8.80C51单片机的PSW寄存器各位标志的意义如何?(程序阅读题,会结合具体指令考察累加器ACC结果的状态。) 答: CY:进位、借位标志。有进位、借位时 CY=1,否则CY=0; AC:辅助进位、借位标志(高半字节与低半字节间的进位或借位); F0:用户标志位,由用户自己定义; RS1、RS0:当前工作寄存器组选择位; OV:溢出标志位。有溢出时OV=1,否则OV=0; P:奇偶标志位。存于ACC中的运算结果有奇数个1时P=1,否则P=0。 9. 80C51单片机的当前工作寄存器组如何选择?(选择 填空) 答: 当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW的RS1、RS0 来决定。 10.80C51单片机的控制总线信号有哪些?各信号的作用如何?( 选择 填空 结合英语解释会更加好记) 答: RST(reset):复位信号输入引脚;ALE(address latch enable):地址锁存允许信号输出引脚;EA(external address):内外存储器选择引脚;PSEN(procedure select enable):外部程序存储器选通信号输出引脚。 11.80C51单片机的程序存储器低端的几个特殊单元的用途如何?(选择 填空 必须背过) 答: 0000H:单片机复位入口地址;0003H:外部中断0的中断服务程序入口地址;000BH:定时/计数器0溢出中断服务程序入口地址;0013H:外部中断1的中断服务程序入口地址;001BH:定时/计数器1溢出中断服务程序入口地址;0023H:串行口的中断服务程序入口地址。 12.80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何? 答: 80C51单片机的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。(填空) 这些寻址方式所对应的寄存器和存储空间如下表所示。(表格中的寻址空间必须按类别记熟,填空 选择 程序阅读题——会具体给你一条指令让你判断它的寻址方式 自己结合课本例题53页开始往后看) 序寻址方寄存器或存储空间 号 式 寄存器R0~R7,A、AB、DPTR1 寄存器寻址 和C(布尔累加器) 直接寻片内RAM低128字节、SFR 2 址 片内RAM(@R0,@R1,SP) 寄存器片外RAM(@R0,@R1,3 间接寻@DPTR) 址 ROM 4 立即寻址 ROM(@A+DPTR,@A+PC) 5 变址寻址 ROM(PC当前值的+127~-6 相对寻址 128字节) 可寻址位(内部RAM20H~2FH7 位寻址 单元的位和部分SFR的位) 20.什么是伪指令?常用的伪指令功能如何?(编程中会用到) 答: 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。常用的伪指令包括: ORG,功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址; END,功能是结束汇编; DB,功能是从标号指定的地址单元开始,在程序存储器中定义字节数据; DW,功能是从标号指定的地址单元开始,在程序存储器中定义字数据空间; EQU,功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名; BIT,功能是将位地址赋给指定的符号名。 24.外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?(选择 填空 简答) 答: 当IT0=0时,INT0为电平触发方式。电平触发方式时,CPU在每个机器周期的S5P2采样INT0引脚电平,当采样到低电平时,置IE0=1向CPU请求中断;采样到高电平时,将IE0清0。在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。 电平触发方式时,外部中断源的有效低电平必须保持到请求获得响应时为止,不然就会漏掉;在中断服务结束之前,中断源的有效的低电平必须撤除,否则中断返回之后将再次产生中断。该方式适合于外部中断输入为低电平,且在中断服务程序中能清除外部中断请求源的情况。 当IT0=1时,INT0为边沿触发方式。边沿触发方式时,CPU在每个机器周期的S5P2采样INT0引脚电平,如果在连续的两个机器周期检测到INT0引脚由高电平变为低电平,即第一个周期采样到INT0=1,第二个周期采样到INT0=0,则置IE0=1,产生中断请求。在边沿触发方式下,CPU响应中断时,能由硬件自动清除IE0标志。 边沿触发方式时,在相继两次采样中,先采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。若CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清0。另外,为了保证下降沿能够被可靠地采样到,INT0和INT1引脚上的负脉冲宽度至少要保持一个机器周期(若晶振频率为12MHz,为1微秒)。边沿触发方式适合于以负脉冲形式输入的外部中断请求。 25.定时/计数器工作于定时和计数方式时有何异同点?(简答 选择 填空) 答: 定时/计数器实质是加1计数器。 不同点:设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值乘以机器周期就是定时时间。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。 相同点:它们的工作原理相同,它们都有4种工作方式,由TMOD中的M1M0设定,即 方式0:13位计数器; 方式1:16位计数器; 方式2:具有自动重装初值功能的8位计数器; 方式3:T0分为两个独立的8位计数器,T1停止工作。 23.80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU响应各中断时,其中断入口地址是多少?(选择 填空 简答 非常重要!!) 答:5个中断源,分别为外中断INT0和INT1、T0和T1溢出中断、串口中断。 电平方式触发的外中断标志与引脚信号一致;边沿方式触发的外中断响应中断后由硬件自动复位。 T0和T1,CPU响应中断时,由硬件自动复位。 RI和TI,由硬件置位。必须由软件复位。 另外,所有能产生中断的标志位均可由软件置位或复位。 各中断入口地址:INT0―0003H,T0—000BH,INT1—0013H,T1—001BH,RI和TI—0023H。

因篇幅问题不能全部显示,请点此查看更多更全内容