1、( 5) 功能是通用的,像一般微处理机那样可广泛地应用在各个方面。1-7 51 单片机有哪些主要系列产品 ?( 1) Intel 公司的 MCS-51 系列单片机:功能比较强、价格比较低、较早应用的单片 机。此系列三种基本产品是: 8031/8051/8751;(2) ATMEL公司的89系列单片机:内含 Flash存储器,开发过程中可以容易地进 行程序修改。有 8位Flash子系列、ISP_Flash子系列、l2C_Flash子系列;(3) SST公司的SST89系列单片机:具有独特的超级 Flash技术和小扇区结构设计,采用IAP和ISP技术;(4) PHILIPS公司的增强型80C51系
2、列单片机:其产品类型较完整,包括通用型、Flash型、OTP型和低成本型,主要产品系列包括 P80、P87、P89、LPC76、LPC900第二章习题参考答案2-1 51单片机内部包含哪些主要逻辑功能部件?(1) 一个8位微处理器 CPU。(2) 256B数据存储器 RAM和特殊功能寄存器 SFR。(3) 4K程序存储器 ROM。(4) 两个定时/计数器,用以对外部事件进行计数,也可用作定时器。(5) 四个8位可编程的I/O (输入/输出)并行端口,每个端口既可做输入,也可做输出。(6) 一个串行端口,用于数据的串行通信(7) 1个可管理5个中断源、2级优先嵌套的中断管理系统;。(8) 片内振
3、荡器及时钟发生器。2-2 MCS-51引脚中有多少I/O总线?它们和单片机对外的地址总线和数据总线有什么关系 ?地址总线和数据总线各是几位?32条I/O 口线,分为4组,每组8条,称为P0P3 口,P0 口有8位数据总线和地址总 线的低8位,P2 口有地址总线的高 8位,因此单片机的地址总线位是 16位,寻址空间为64KB ,数据总线位宽为8位。同时在P3 口还R/W控制信号线。I/O 口线的总数与地址总线 和数据总线没有多大联系, 只是说地址总线和数据总线需要占用一定的端口。 像AT89C2051单片机,只有15条I/O 口线(P3.6没有引出,作为内部使用),分为P1 口( 8位)和P3
4、口 (7位),没有所谓的地址总线和数据总线,并且 P1 口并不完整,因为 P1.0和P1.1被电压比较器占用了。2-3 51单片机的 EA, ALE,PSEN信号各自功能是什么?EA :为片外程序存储器选用端 ,该引脚有效(低电平)时,只选用片外程序存储器,否则单片机 上电或复位后选用片内程序存储器。ALE :地址锁存有效信号输出在访问片外程序存储器期间 ,ALE以每机器周期两次进行信号输出,其下降沿用于控制锁存 P0输出的低8位地址;在不访问片外程序存储器期间,ALE端仍以上述频率(振荡频率fsc的1/6)出现,可作为对外输出的时钟脉冲或用于 定时目的.PSEN:片外程序存储器读选通信号输出
5、端,低电平有效。2-4 51系列单片机有哪些信号需要芯片引脚的第二功能方式提供P3.0 : RxD串行口输入端P3.1 : TxD串行口输出端P3.2 : INT0 外部中断0请求输入端,低电平有效P3.3 : INT1 外部中断1请求输入端,低电平有效P3.4 : T0 定时/计数器0技术脉冲输入端P3.5 : T1 定时/计数器1技术脉冲输入端P3.6 : WR 外部数据存数器写选通信信号输出端,低电平有效P3.7 : RD 外部数据存数器读选通信信号输出端,低电平有效2-5 51 系列单片机的程序状态字 PSW 中存放什么信息?其中的 OV 标志位在什么情况下 被置位?置位是表示什么意思
6、?PSW 是一个 8 位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。 1)做加法时,最高位,次高位之一有进位则 OV 被置位2)做减法时,最高位,次高位之一借位则 OV 被置位3)执行乘法指令 MUL AB ,积大于 255, OV=14)执行除法指令 DIV AB ,如果 B 中所放除数为 0 ,OV=10V=1 ,置位反映运算结果超出了累加器的数值范围2-9 片内 RAM 低 128 单元划分为哪几个区域?应用中怎么样合理有效的使用? 工作寄存器区,位寻址区,数据缓冲区1工作寄存器区用于临时寄存 8位信息,分成 4 组,每组有 8个寄存器,每次只用 1 组, 其 他各组不
7、工作2位寻址区(20H2FH ),这16个单元的每一位都赋予了一个位地址,位地址范围为 00H7FH ,位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。3由于工作寄存器区,位寻址区,数据缓冲区统一编址, 使用同样的指令访问,因此这三个区既有自己独特的功能,又可统一调度使用,前两个已未使用的单元也可作为一般的用户RAM 单元。2-10 51 系列单片机的堆栈与通用微机中的堆栈有何异同?在程序设计时,为什么要对堆栈指针 SP 重新赋值?堆栈是按先进后出或后进先出的远侧进行读 /写的特殊 RAM 区域51 单片机的堆栈区时不固定的,可设置在内部 RAM 的任意区域内当数据压入堆栈时,SP
8、的内容自动加1,作为本次进栈的指针,然后再存取数据 SP的值 随着数据的存入而增加,当数据从堆栈弹出之后, SP的值随之减少,复位时,SP的初值为07H ,堆栈实际上从 08H 开始堆放信息, 即堆栈初始位置位于工作寄存器区域内, 所以要重 新赋值2-13 什么是时钟周期,机器周期和指令周期?当振荡频率为 6MHZ 时,一条双周期指令的执行时间是多少?时钟周期: 2 个 CPU 振荡脉冲信号的周期 机器周期:一个机器周期包含 6 个状态周期 指令周期:执行一条指令所占用的全部时间 12MHZ 时,一条双周期指令周期时间为 2us 6MHZ 时,一条双周期指令周期时间为 4us2-14 定时器
9、/计数器定时与计数的内部工作有何异同? 定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同: 处于计数器工作模式时,加法计数器对芯片端子 T0(P3.4) 或 T1(P3.5) 上的输入脉冲计数; 处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。2-15 定时器 /计数器有四种工作方式,它们的定时与计数范围各是多少?使用中怎样选择工作方式?工作方式0:定时范围:18192us;计数值范围:18192工作方式1:165536us;165536工作方式2:1256us;1256工作方式3:MlMOH作寿武O1IL3通过TMOD来选择,低4位用于定时器/计数器0,高4位用于定
10、时器/计数器1DT6D5D4D3DIDOGATEerrCTM1,M0 :定时器计数器工作方式选择位2-16 定时器/计数器的门控方式与非门控方式有何不同?使用中怎么样选择哪种工作 方式?初值应设置为多少(十六进制)?GATE :门控位,用于控制定时器 /计数器的启动是否受外部中断请求信号的影响。GATE=1,则定时器/计数器0的启动受芯片引脚INT0(P3.2)控制,定时器/计数器1的启 动受芯片引脚INT1(P3.3)控制GATE=0,则定时器/计数器的启动与引脚 INT0、INT1无关,一般情况下 GATE=02-18 51单片机的五个中断源中哪几个中断源在 CPU响应中断后可自动撤除中断
11、请求 ,哪几个不能撤除中断请求? CPU不能撤除中断请求的中断源时, 用户应采取什么措施?可自动撤除:计数器 T0T1的溢出中断不可自动撤除:电平触发的外部中断;发送接收中断1)电平触发的外部中断:由于 CPU对INTx引脚没有控制作用,也没有相应的中断请求标志位,因此需要外接电路来撤除中断请求信号。2)串行口的发送/接收中断:当串行口发送完或接收完一帧信息时, SCON的TI,RI向CPU申请中断,响应中断后,接口电路不能自动将 TI或RT清0,用户需采用软件方法将TI或RT清0,来撤除中断请求信号2-21使单片机复位有几种方式?复位后单片机的初始状态如何?上电复位,按钮复位( PC)=00
12、00H :程序的初始入口地址为 0000H(PSW) =00H :由于RS1(PSW.4)=0,RS0( PSW.3) =0,复位后单片机选择工作寄存器 0组(SP)=07H:复位后堆栈早起片内 RAM的08H单元处建立TH1、TL0、TH0、TL0:他们的内容为00H,定时器/计数器的初值为0(TMOD)=00H:复位后定时器/计数器T0、T1定时器方式0,非门控方式(TCON)=00H:复位后定时器/计数器T0、T1停止工作,外部中断0、1为电平触发方 式(T2CON) =00H :复位后定时器/计数器T2停止工作(SCON)=00H :复位后串行口工作在移位寄存器方式,且禁止串行口接收I
13、E ) =00H: 复位后屏蔽所有中断(IP) =00H:复位后所有中断源都直指为低优先级P0P3:锁存器都是全1状态,说明复位后 4个并行接口设置为输入口2-23 51 单片机串行口有几种工作方式?这几种工作方式有何不同?各用于什么场 合?有 4 种工作方式:方式 0、方式 1 、方式 2、方式 3 工作方式:方式 0 移位寄存器方式 ;方式 1 、方式 2、方式 3 都是异步通信方式 场合:方式 0 不用于通信,而是通过外接移位寄存器芯片实现扩展 I/O 口的功能;方式 1 用于双机通信;方式 2、 3 主要用于多机通信,也可用于双机通信第三章参考答案3-1 何谓寻址方式? 51 单片机有
14、哪几种寻址方式?这几种方式是如何寻址的? 所谓寻址方式 ,就是 CPU 执行那个一条指令时怎样找到该指令所要求的操作数的方 式。1)立即寻址:操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分 与操作码一起存放在程序存储器中,可以立即得到并执行,例如: MOV A, #30H 指令中 30H 就是立即数。这一条指令的功能是执行将立即数 30H 传送到累加器 A 中的操 作。2) 寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A, R0,即将R0寄存器的内容送到累加器 A中。3) 寄存器间接寻址方式:由指令指出某一寄存器的内容作为操作数地址的
15、寻址方法,例如:MOV A R1将以工作寄存器 R1中的内容为地址的片内 RAM单元的数据传送到 A中去。4) 直接寻址: 指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为 直接寻址。例如: MOV A ,40H 指令中的源操作数就是直接寻址, 40H 为操作数 的地址。该指令的功能是把片内 RAM 地址为 40H 单元的内容送到 A 中5) 变址寻址:基地址寄存器加变址寄存器间接寻址6) 相对寻址:相对寻址是以当前程序计数器 PC值加上指令中给出的偏移量 rel,而构成实际操作数地址的寻址方法。它用于访问程序存储器,常出现在相对转移指令中。7) 位寻址: 位寻址是在位操作指
16、令中直接给出位操作数的地址, 可以对片内 RAM 中的128 位和特殊功能寄存器 SFR 中的 93 位进行寻址。3-2 访问片内、片外程序存储器有哪几种寻址方式? 采用基址寄存器加变址寄存器间接寻址方式MOVC A,A+DPTR MOVC A,A+PC3-3 访问片内 RAM 单元和特殊功能寄存器各有哪几种寻址方式? 访问片内 RAM 有:立即寻址,寄存器寻址,寄存器间接寻址,直接寻址 特殊功能有:直接寻址3-4 若要完成以下的数据传送,应如何用 51 的指令来完成。(1) R0 的内容送到 R1 中。MOV A, R1MOV R0,A(2)外部RAM的20H单元内容送 R0,送内部 RAM
17、的20H单元。MOV DPTR,#0020HMOVX A,DPTR3-5 试比较下列每组两条指令的区别1) MOV A,#24 与 MOV A,24H2) MOV A,R0 与 MOV A,R03) MOV A,R0 与 MOVX A,R04) MOV A,R1 与 MOVX A,DPTR1)前者为立即寻址,将立即数 24H 单元的内容送到 A 中;后者为直接寻址,将 24H 单元的片内 RAM 内容送到 A 中。2) 前者为直接寻址,将 R0单元的内容送到 A中,后者为寄存器间接寻址,将 R0中 的内容为地址的片内 RAM 单元的数据送到 A 中。3) 前者为寄存器间接寻址,将 R0 中的内
18、容为地址的片内 RAM 单元的数据送到 A; 后者为寄存器间接寻址,将 R0 中的内容为地址的片外 RAM 单元的数据送到 A 中。4)用 R1 做地址指针可寻址片内 RAM 的 256 个单元, 但能访问 SFR 块,也可 8 位地 址访问片外RAM的低256个地址单元(00ffH);用DPTR做地址指针,用于访问片外RAM 的 64KB 范围(OOOOffffH) ( 16 位)。1 ) XCHA,R0( A) =30H,(PSW)=00H,2) XCH30H( A ) =A5H,(PSW)=00H3) XCHR04) XCHD(A) =75H,(PSW)=01H5) SWAPA( A)=
19、A7H,(PSW)=01H6) ADDR0 ( A) =AAH,(PSW)=00H7) ADD30H (A) =1FH,(PSW)=81H8) ADD#30H( A ) =AAH,(PSW)=00H9) ADDC(A) =20H,(PSW)=01H10 ) SUBB( A) =D5H,(PSW)=85H11 ) SUBB( A) =4AH,(PSW)=01H12 ) INC R0( A ) =7AH,(PSW)=80H ;13 ) MULAB3-6 已知( A) = 7AH ,(写出以下各条指令执行后R0) = 7AH ,14 ) DIV AB3-7 已知( A) =02H,(R1) =7FH
20、,(DPTR) =2FFCH, (SP) =30H,片内 RAM ( 7FH)=70H,片外 RAM ( 2FFEH)=11H,ROM (2FFEH)=64H,试分别 写出以下指令执行后目标单元的结果。1 ) MOVX DPTR,A2)MOVX A,R13)MOVC A,A+DPTR4)PUSH ACC1) (2FFEH) =02H2)( A) =70H3) (A) = ( 02H+2FFCH ) = (2FFEH ) =64H4) (31H)=02H3-9 DA A指令有什么作用?怎样使用?这条指令是进行 BCD码运算时,跟在 ADD或ADDC指令之后,将相加后存放在 累加器中的结果进行修正
21、。修正的条件和方法为:若(A0 3) 9 或(AC) =1,则(A0 3) +06H A0 3);若(A4 7) 9 或(CY) =1,则(A4 7) +06H A4 7)。若以上二条同时发生,或高 4位虽等于9,但低4位修正后有进位,则应加 66H修正。3-9设(A) =83H , ( RO) =17H , (17H ) =34H,分析当执行下面的每条指令后目标单元的内容,及4条指令组成的程序段执行后 A的内容是什么?ANLA,#17H;与ORL17H,A或XRLA,R0异或CPL取反10000011 与 00010111 :=0000 001100110100 或 00000011 =00
22、11 011100110111 异或 0000 0011 = 0011 0100A 1100 1000 CBH3-10请写出达到下列要求的逻辑操作的指令,要求不得改变未涉及位的内容1) 使累加器A的低位置 12) 清累加器A的高4位3) 使 A.2 和 A.3 置 1 4) 清除 A.3、A.4、A.5、A.6SETB ACC.1;ANL A,#0FH;ORL A,#00001100BANL A,#10000111B3-11指令LJIMP addr16与AJMP addr11的区别是什么?LJIMP addr16是长转移, LCALL的作用就是将 addr16直接赋给 PCAJMP addr1
23、1,在当前 PC的2KB范围跳转(因为 addr11就是2KB ), 即PC高 五位不变,低一位等于 addr11o3-12试说明指令 CJNE R1 , #7AH , 10H的作用。若本条指令地址为 2500H,其转移地址是多少?当前地址 2500H 执行该指令后 PC为2503H,加上10H后,目标地址是2513H。3-13下面执行后(SP) =42H (A) = 40H (B) =40H并解释每条指令的作用。ORG 2000HMOVSP,#40HA,#30HLCALL2500HADDA,#10HB,A;起始地址为 2000H(SP) =40H(A) =30H调用2500H子程序(A )
24、( A) +10 , (A ) =40H(B) =40HHERE:SJMP HEREORG 2500H ;起始地址为 2500HMOV DPTR,#2009H ;( DPTR) =2009HPUSH DPL ;( SP) =40H+1=41HPUSH DPH ; (SP)=41H+1=42HRET ; 返回3-14已知 P1.7= 1, A.0= 0 , C= 1, FIRST=1000H , SECOND=1020H ,试写出下列 指令的执行结果。(1)MOV 26H , C 1(2)CPL A.0 1(3)CLR P1.7 0(4) ORL C, /P1.7 1(5) FIRST : JC
25、 SECOND(6) FIRST : JNB A.0 , SECOND7)SECOND : JBC P1.7, FIRST3-15 经汇编后,下列各条语句标号将是什么值?TABLE : DS 5DB 15, 20, 25, 30 (2005H)=15 ,BEGIN : MOV A , R0 3-16 设 fosc=12MHZ, 定时器 /计数器 0 的初始化程序和中断服务程序如下: MOV TH0,#0DHMOV TL0,#0D0HMOV TMOD,#01HSETB TR0 ;中断服务程序ORG 000BHMOV TH0,#0DHRETI 问: 1)该定时器 /计数器工作于什么方式 ?2)相应的定时时间或计数值是多少?3)为什么在中断服务程序中药重置定时器 /计数器的初值?1)方式 12)定时时间为: fosc=12MHZ Tcy=1us T=N*Tcy=(65536-x)*Tcy 定时范围: 165536计数值为: N=216 -x=65536-x 计数范围为:3)定时器 T0 的溢出对外无脉冲信
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1