微机控制技术第三章、第四章练习题答案.._第1页
微机控制技术第三章、第四章练习题答案.._第2页
微机控制技术第三章、第四章练习题答案.._第3页
微机控制技术第三章、第四章练习题答案.._第4页
微机控制技术第三章、第四章练习题答案.._第5页
免费预览已结束,剩余14页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机控制技术第三章、第四章练习题答案 第三章3-1选择题1、MOVXA,DPTR指令中源操作数的寻址方式是(B)(A)寄存器寻址(B )寄存器间接寻址(C)直接寻址(D )立即寻址2.ORG0003H10、对程序存储器的读操作,只能使用(D)LJMP 2000HORG 000BHLJMP 3000H当CPU响应外部中断 0后,PC的值是(B)(A)0003H( B)2000H( C)000BH( D)3000H3.执行PUSH ACC指令,MCS-51完成的操作是(A)4、5、6、(A)SP+1SP (ACC)(SP)( B) (ACC )(B)(C) SP-1 SP (ACC (SP) (

2、D) (ACC )(SP)(SP)LCALL指令操作码地址是 2000H,执行完相子程序返回指令后,(C)2000H( B) 2001H(C) 2002H(D) 2003H51执行完MOV A, #08H后,PSW的一位被置位(D)(A) (A) C ( B) F0 ( C) OV ( D) PF面条指令将MCS-51的工作寄存器置成 3区(B)(A) MOV PSW, #13H ( B) MOV PSW, #18H(B)SETB P SW.4 CLR P SW.3 (d) SETB P SW.3 CLR P SW.47、执行 MOVX A , DPTR指令时,MCS-51产生的控制信号是(C

3、)(D) /PSEN (B) ALE ( C) /RD(D) /WRSP-1SPSP+1 PPC= (D)8、MOV C , #00H的寻址方式是(A)(A) 位寻址(B )直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP , #00H当执行完左边的程序后,PC的值是(C)(A)0040H(B) 0041H( C) 0042H( D) 0043H456调用子程序指令(如:CALL )及返回指令(如:RET)与堆栈有关但与PC 无关。75、6、7、8、9、错)子序的转返与PC 也有关( PC 入栈与出栈)MOVINCCLRMOVANL

4、ADDC10、XORR1,#80HDPTR (对 )(错)R0 (错 )指令系统中没有。R1,#80HR1,#0FHA,CP1,#31H对)错)错)(对)A ) MOV 指令 (B)PUSH 指令 ( C)MOVX 指令( D)MOVC 指令3-2 判断题 。MCS-51的相对转移指令最大负跳距是127B。(错)128B当MCS-51上电复位时,堆栈指针 SP=00H。 ( SP=07H)( 错 )3-3 简答题 1 简述 MCS-51 汇编语言指令格式。答: MCS-51 汇编语言格式如下: 标号:操作码助记符 操作数 1 操作数 2 操作数 3注释标号是用户定义的符 号,其值代表这条指令的

5、地址。 操作码助记符是指令系统规定的代表特定指令功 能的英文缩写符。 每条指令都有操作码记符。 指令的操作数最多有 3 个,也有无 操作数的指令。注释字段是用户对程序的说明,便于对程序的阅读和理解。简答 2 MCS-51 指令系统主要有哪几种寻址方式?试举例说明。答: MCS-51 指令操作数主要有以下 7种寻址方式:举例寻址方式立即寻址MOVA,#16直接寻址MOV20H,P1寄存器寻址MOVA , R0寄存器间接寻址MOVXA, DPTR变址寻址MOVCA, A+DPRT相对寻址SJMPLOOP位寻址ANLC,70H3 对访问内部 RAM 和外部 RAM ,各应采用哪些寻址方式?答:对内部

6、 RAM 的寻址方式有直接寻址、寄存器间接寻址和可对位寻址的位寻址。对外部 RAM 的寻址方式只能用寄存器 R0/R1(8 位地址)或 DPTR(16 位 地址)间接寻址。4 设内部 RAM (30H) =5AH , (5AH) =40H , ( 40H) =00H,端口 P1=7FH,问执行下列指令后,各有关存储单元(即 R0,R1,A,B,P1,30H ,40H 及 5AH单元)的内容如何?MOVR0,#30H;R0=30HMOVA,R0;A=5AHMOVR1,A;R1=5AHMOVB,R1;B=5AHMOVR1,P1;(5AH)=7FHMOVA,P1;A=7FHMOV40H,#20H;(

7、40H)=20HMOV30H,40H;(30H)=20H解:每一条指令执行后的结果如注释字段所标。 最后结果为: R0=30H,R1=5AH ,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。5 SJMP (短转移)指令和 AJMP (绝对转移)指令的主要区别。前者提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移(-128+127),后者的转移目标地址必须在与 AJMP的下一条指令的第一字节相同的2KB区的程序储存器中。短转移方便了可重定位编码。SJMP方便了 PC 可重定位编码,但转移范围小。而 ASJMP 转移范围大,但存

8、在跳区的限制, AJMP 指令只能位于 2KB 区的最后 2个字节处时,才可跳到下一个区去。 因此用 AJMP 指令来代替SJMP指令是有条件的,也就是目标地址必须与它下面的指令存放地 址在同一个 2KB 区域内。3-4 编程题1编程将片内 RAM30H单元开始的15 B的数据传送到片外 RAM3000H开始的单元中去。STRAT:MOVR0,#30HMOVR7,#0FHMOVDPTR,#3000HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOOPRET解:2片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和解 ADDIO :MOVR0

9、,30HMOVR7,#9MOVA,R0LOOP: INCR0ADDA,R0DJNZR7,LOOPMOV30H,ARET编一个程序,将累加器中的一个字符从串行接口发送出去 解SOUT:MOVSCON,#40HMOVTMOD,#20HMOVTL1,#0E8H;MOVTH1,#0E8HSETBTR1MOVSBUF,AJNBT1,$CLBT1RET;设置串行接口为工作方式;定时器T1工作于模式2;设置波特率为 1200b/s用查表法编一子程序,将MAIN:MOVA,R3;待转换的数送 AMOVDPTR,#TAR;表首地址送 DPTRMOVCA,A+DPTR;查 ASCII 码表MOVR3,A;查表结果

10、送 R3RETTARDB30H,31H,32H,33H,34HDB35H,36H,37H,38H,39HR3 中的 BCD 码转换成ASCII 码 .解开始的单元内有片内 RAM40H于 50H 单元中START:MOVR0,#40H; 数据块首地址送 R0MOVR7,#09H;比较次数送R7MOVA,R0;取数送ALOOP:INCR0MOV30H,R0;取数送3 0 HCJNEA,30H,NEHT; ( A )与( 30H )相比NEXT:JNCBIE1(A) >(30H)转 BIR110B 二进制数,编程找出其中最大值并存解MOVA,3OH;(A) < (30H),大数送 AB

11、IE1:DJNZR7,LOOP;比较次数减1,不为0,继续比较MOV5OH,A; 比较结束,大数送 50HRET6 编一子程序,从串行接口接受一个字符解: START:MOVTMOD,#2OH; 定时器 T1 工作于模式 2MOVTH1,#OE8H; 设置波特率为 1 200b/sMOVTL1,#OE8HSETBTR1; 启动 T1MOVSCON,#5OH; 串行接口工作于方式 1 ,充许接收L1:JNBRI,L1; 等待接收数据,末接收到数据,继续等待;接收到数据,清 RICLRRIMOVA,SBUF;接收到数据送 ARET7 利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。解

12、 用RO和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节存放到R2中作计数初值。主程序:MOVR0,#20H; 指向加数最低字节MOVR1,#29H;指向另一加数最低字节MOVR2,#04H;字节数作计数值ACALLJASUB;调用加法子程序AJMP$RTEJAFA:START:MOV20H,#00H;计正数个数计数器MOVDP TR,#0000HMOVXA,D PTR;数据块长度-10HMOV10H,AINCDPTRQPTR指向第一个数的地址TWO:MOVXA,D PTR;取数7 AJBACC.7,ONE;是负数转ONE,准备取下一个数INC20H;是正数,

13、正数计数器加1ONE:INCDPTR;地址指针加1DJNZ10H,TW;数据块长度减1不等于0,继续寻找RETORG0030H9编制一个循环闪烁灯的程序。有 8个发光二极管,每次其中某个灯闪烁点亮8若图数据块是有符号数, 解JASUB: CLRCJASUB1: MOVA,R0;取出加数的一个字节(4ADDCA,R1;加上另一数的一个字节MOVR0,A;保存和数INCR0;指向加数的高位INCR1;指向另一加数的高位DJNZR2,JASUB1;全部加完了吗?RET多字节加法子程序:求正数个数,编程并注释。E无符号数加数)10次后,转到下一个闪烁10次,循环不止。画出电路图。亮。P1.7D7 Q7

14、5V本程序的硬件连接如图所示。当 P1.0输出高电平时,LED灯亮,否则不其程序如下:MOVA,#01H;灯亮初值SHIFT:LCAILFLASH;调闪亮10次子程RRA;右移一位SJMPSHIFT;循环FLASH:MOVR2,#0AH闪烁10次计数FLASH1;MOVP 1,A;点亮LCALLDELAY;延时MOVP1,#00H;熄灭LCALLDELAY;延时DJNZR2,FLASH1;循环RET第四章4-1填空1. MCS-51的Po 口作为输出端口时2. MCS-51有 个并行10入"1"3. 设计8031系统时,_P0、P28_个SL型TTL负载.,每位能驱动口 ,

15、其中P0P3是准双向口,所以由输出转输入时必须先写口不能用作一般10 口 .4. MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器_SCON_加以选择.中 断 .T1的TR1和TF1_两个控制位.,优先级由软件填写特殊功能寄存器5. 当使用慢速外设时,最佳的传输方式是6. 当定时器To工作在方式3时要占定时器1P_加7. MCS-51有_5_个中断源,有 2个中断优先级 以选择.8. 用串口扩并口时,串行接口工作方式应选为方式9. 在串行通信中,有数据传送方向单工、半双工、全双工三种方式10. 外部中断 入口地址为_0013H 4-2判断X)1. MCS-51 的

16、 5 个中断源优先级相同。( X2. 要进行多机通信, MCS-51 串行接口的工作方式应为方式3. MCS-51 上电复位时, SBUF=00H 。( X )。4. MCS-51 有 3 个中断源 ,优先级由软件填写特殊功能寄存器5. 用串口扩并口时 ,串行接口工作方式应选为方式 1.(6. 外部中断 INTO 入口地址为 _0013H( X )7. MCS-51 外部中断 0的入口地址是 0003H。 (V)1。IP 加以选择 .).8. TMOD 中的 GATE=1 时,表示由两个信号控制定时器的启停。9. 使用 8751 且 =1 时,仍可外扩 64KB 的程序存储器。 (10. PC

17、存放的是当前执行的指令。(X )11MCS-51 的特殊功能寄存器分布在12.MCS-51 有 4 个并行 IO 口 ,其中(X)(VX)。X60H80H 地址范围内。 (X )P0P3 是准双向口 ,所以由输出转输入时必须先写入"0"4-3 选择1.在中断服务程序中 ,至少应有一条 (A)传送指令(B)转移指令(C)加法指法(D)中断返回指令2要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容 应是( B )(A) 98H(B) 84H(C) 423. D MCS-51 在响应中断时 ,下列哪种操作不会发生 ( D ).(A)保护现场(B)

18、保护PC(C)找到中断入口若悬河(D)保护4. 用 MCS-51 串行接口扩展并行 IO 口时,串行接口工作方式应选择 ( C(A)方式0(B)方式15. MCS51 有中断源(A(A) 5个(B) 2个(D) 22HPC 转入中断入口 )(D) 方式 3(C)方式2)(C) 3 个(D) 6 个6. MCS-51 响应中断时,下面哪一个条件不是必须的()(A )当前指令执行完毕(B)中断是开放的确(C)没有同级或高级中断服务须(D)7. 使用定时器 T1 时,有几种工作模式(A)1种(B)2 种(C)8. 计算机在使用中断方式与外界交换信息时必须有 RET1 指令D)3种(D) 4种,保护现

19、场的工作方式应该是( B )(A)由CPU自动完成(B)在中断响应中完成功之路(C)应由中断服务程序完成(D)在主程序中完成9. 下面哪一种传送方式适用于处理外部事件(A)DMA(B)无条件传递进(C)中断C )(D)条件传递1、2、 4 章的编程1. 8225A控制字地址为 300FH,请按:A 口方式0输入,B 口方式1输出,C 口高位输出,C 口低位输入 ,确定 8225A 控制字并编初始化程序 .解:控制字为 10010101=95H初始化程序: MOV DPTR ,#300FH(2)ORG1000HTIME:MOVR7,#10T3:MOVR6,#200T2:MOVR6,#250T1:

20、DJNZR5,T1DJNZR6,T2DJNZR7,T3RET(2)1min=60 ,调用上面1s 子程序 60 次ORGMOV0030HR0,#60TIMER0,LOOP2)写出程序清单解:4 f?X=216-t(F/12)MOV A,#95H MOVX DPTR ,A1 jlSo2.编定一个软件延时1S和1mi n的子程序.设f osc=6Hz,则一个机器周期 解:(1) 1S=2US*5*1000005*100000=250*200*10LOOP:LCALLDJNZRET3. 请编制串行通信的数据发送程序,发送片内 RAM50H5FH 的 16B 数据,串行接口 设定为方式2,采用偶校验方

21、式。设晶振频率为6MHz o解:查询方式发送程序如下MOVSCON,#8OHM OVPCON,#80HMOVR0,#50HMOVR7,#16HLOOP: MOVA,MOVC,PMOVTB8,CMOVSBUF,AJNBT1,$CLRT1INCR0DJNZR7,LOOPRET4.应用单片机内部定时器 T0 工作在方式 1 下,从 P1.0 输出周期为 2ms 的方波脉冲信号,已 知单片机的晶振频率为 6MHZ o请( 1 )计算时间常数 X,应用公式X=2 16 t (f/12)=216-1*10 -3 *6* 1 0 6/122)写出程序清单解:4 f?解:X=216-t(F/12)=OFEOC

22、HORG 3000HSTART:MOV TMOD,#01HMOV TL0,#OCHMOV THO,#OFEHSETB TR0LOOP: JBC TFO,DONESJMP LOOPDONE: MOV TL0,#OCHMOV THO,#OFEHCPL P1.0SJMP LOOP5.应用单片机内部定时器TO工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为 6MHZ 。请( 1)计算时间常数X,应用公式 X=2 I" t (f/12)=216-0.5*10 -3 *6*1 0 6/12 =FF06HORG 3000HSTART:MOV TMOD,#01HMOV

23、 TL0,#06HMOV THO,#FFHSETB TR0LOOP: JBC TFO,DONESJMP LOOPDONE: MOV TL0,#06HMOV THO,#FFHCPL P1.0SJMP LOOP6、 用 89C51 的 P1 口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)o编出汇编语言程序。解: ORG0100HABC:SETBP1.0SETBP1.7JBPI.7,$JNBP1.7,$CLRP1.0MOVDAY: NOPNOPR2,#0DJNZR2,DAYSJMPABC7、设计一个 4 位数码显示电路,解: ORG0100HMOVA,#08HMOVR2,#01HMOVDPTR,#TABMOVC A,A+DPTRMOVP1,ANEXT:MOVA,R2MOVP3,AACALLDAYJBACC.4,LPDRL AMOVR2,AAJMPNEXTLPD: RETTAB: DBEND7编制一个循环闪烁的程序。有解:并用汇编语言编程使"8" 从右到左显示一遍。8 个发光二极管,每次其中某个灯闪烁点亮 到下一个闪烁 10 次,循环不止。画出电路图。A,#01H10 次后,转MOVSHIFT:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论