已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3-11解答:(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。MOVA,R1MOVR0,A(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。MOVR1,#60HMOVXA,R1MOVR0,A(3)MOVR1,#60HMOVXA,R1MOV40H,A(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。MOVDPTR,#1000HMOVXA,DPTRMOVR1,#40HMOVXR1,A(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。MOVDPTR,#2000HMOVA,#00HMOVCA,A+DPTRMOVR2,A(6)MOVDPTR,#2000HMOVA,#00HMOVCA,A+DPTRMOV40H,A(7)MOVDPTR,#2000HMOVA,#00HMOVCA,A+DPTRMOVDPTR,#0200HMOVXDPTR,A3-12解答:片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。数据交换需要使用数据交换指令XCH。MOVDPTR,#1000HMOVXA,DPTRXCHA,60HMOVXDPTR,A3-13解答:本题需要采用查表指令。ORG0200HMOVDPTR,#TABMOVA,R7MOVCA,A+DPTRORG0300HTAB:DB0,1,4,9,16,25,36,49,64,813-16解答:本题涉及的是16位数的减法运算,首先应让低8位相减,然后让高8位带着借位相减。注意:应在低8位相减前将进位位CY清空0。CLRCMOVA,#56HSUBBA,#78HMOVR0,AMOVA,#23HSUBBA,#45HMOVR1,A3-17解答:A(A)23H,(A)=03H42H(42H)(A),(42H)=37HA(A)(R0),(A)=34HA(),(A)=CBH结果:(A)=CBH3-18解答:(1)MOVDPTR,#1000HMOVXA,DPTRCPLAMOVXDPTR,A(2)MOVR0,#60HMOVXA,R0ANLA,#3FHXRLA,#03HMOVXR0,A3-20解答:MOVDPTR,#1000HMOVXA,DPTRMOVB,#10MULABMOV30H,AMOV31H,BMOVDPTR,#2000HMOVXA,DPTRMOVB,#32MULABADDA,30HMOV30H,AMOVA,BADDCA,31HMOV31H,A3-21解答:MOVR7,#10MOVDPTR,#block1MOVR0,#block2LOOP:MOVXA,DPTRMOVR0,AINCDPTRINCR0DJNZR7,LOOP3-22解答:MOVA,#01HLOOP:MOVP0,ARLALCALLDELAYSJMPLOOPDELAY:MOVR7,#00HDELAY1:MOVR6,#00HDJNZR6,$DJNZR7,DELAY1RET3-23解答:ORLC,11HMOV11H,CMOVC,P1.0ORLC,10HANLC,11HMOVP1.0,C3-24解答:(1)正确。(2)错误。原因:清零指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H7FH),所以该条指令错误。(3)错误。原因:ACC是直接字节地址,不能用于清零指令。(4)正确。ACC.0是一个位,可以应用到清零指令中。(5)正确。(6)错误。原因:取反指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H7FH),所以该条指令错误。(7)错误。原因:ACC是直接字节地址,不能用于取反指令。(8)正确。ACC.0是一个位,可以应用到取反指令中。3-25解答:ANLA,BORLA,CMOVF,C3-27解答:(1)MOVP1,#0CAH;P1CAH,P1=CAH=11001010BMOVA,#56H;A56H,A=56H=01010110BJBP1.2,L1;若P1.2=1,则转移至L1JNBACC.3,L2;若ACC.3=0,则转移至L2L1:L2:执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。(2)MOVA,#43H;A43H,A=43H=01000011BJBACC.2,L1;若ACC.2=1,则转移至L1JBCACC.6,L2;若ACC.6=1,则转移至L2,同时将ACC.6清零L1:L2:执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。3-28解答:(1)MOVA,P1CPLAANLA,#0F0HSWAPAMOVP1,A(2):LOOP:JNBP1.4,L1;JNBP1.5,L2;JNBP1.6,L3;JNBP1.7,L4;LJMPLOOP;L1:MOVP1,#01H;LJMPLOOP;L2:MOVP1,#02H;LJMPLOOP;L3:MOVP1,#03H;LJMPLOOP;L4:MOVP1,#04H;LJMPLOOP;第4章 汇编语言程序设计4-1解答:ORG0100HMOVA,21HADDA,23HMOV25H,AMOVA,20HADDCA,22HMOV24H,ARET4-2解答:ORG0200HMOVA,51HMOVB,#20MULABMOV53H,AMOV52H,BMOVA,50HMOVB,#3MULABADDA,53HMOV53H,AMOVA,BADDCA,52HMOV52H,ARET4-3解答:XA暂存A20?A50?2B5B1BABAAFUNC保存结果开始返回YNYN题图4-1 习题4-3流程图ORG0300HMOVA,DATACJNEA,#20,LOP1LOP1:JCLOP3CJNEA,#50,LOP2LOP2:JCLOP4MOVB,#1LJMPLOP5LOP3:MOVB,#2LJMPLOP5LOP4:MOVB,#5LOP5:MULABMOVFUNC,ARET4-4解答:ORG0400HMOVA,mun+1JNBACC.7,LOOPCLRCMOVA,numSUBBA,#01HCPLAMOVnum,AMOVA,#num+1SUBBA,#00HCPLAMOVnum+1,ALOOP:RET4-5解答:ORG0500HMOVDPTR,#JPTABMOVA,R2RLAJMPA+DPTRJPTAB:AJMPKEY0AJMPKEY1AJMPKEY2AJMPKEY15KEY0:KEY1:KEY2:KEY15:4-6解答:ORG0600HMOVR0,#40HMOVDPTR,#2000HMOVR7,#21HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOOPRET4-7解答:ORG0700HMOVDPTR,#DATAMOVR7,#10LOOP:MOVXA,DPTRORLA,#80HMOVXDPTR,AINCDPTRDJNZR7,LOOPRET4-8解答:ORG0800HMOVDPTR,#3000HMOVR0,#30HMOVR7,#7LOOP:MOVXA,DPTRMOVR0,AINCDPTRINCDPTRINCR0DJNZR7,LOOPRET4-9解答:ORG0900HMOVDPTR,#1000HMOVR1,#30HMOVR7,#31HLOOP:MOVXA,DPTRMOVR1,ACLRAMOVXDPTR,AINCDPTRINCR1DJNZR7,LOOPRET4-10解答:ORG0A00HMOVR1,#DAT1MOVDPTR,#DAT2MOVR6,#10HLOOP1:MOVA,R1CJNEA,#0DH,LOOP2LJMPLOOP3LOOP2:MOVXDPTR,AINCR1INCDPTRDJNZR6,LOOP1LOOP3:RET4-11解答:ORG0B00HMOVDPTR,#3000HMOVR7,#100MOVone,#00HMOVtwo,#00HMOVthree,#00HLOP1:MOVXA,DPTRJZLOP2JNBACC.7,LOP3INCthreeLJMPLOP4LOP2:INCtwoLJMPLOP4LOP3:INConeLOP4:INCDPTRDJNZR7,LOP1RET4-12解答:ORG0C00HMOVR0,#50HMOVA,#00HMOVR7,#10LOP:ADDA,R0INCR0DJNZR7,LOPMOVB,#10DIVABMOV5AH,ARET4-13解答:ORG0D00HMOVR0,#40HMOVA,R0MOVR7,#47LOOP:INCR0MOV30H,R0CJNEA,30H,CHKCHK:JCLOOP1MOVA,R0LOOP1:DJNZR7,LOOPMOVMIN,ARET4-14解答:ORG0E00HSTART:MOVR0,#40HMOVR7,#19CLR00HLOOP:MOVA,R0MOV30H,AINCR0MOV31H,R0CLRCSUBBA,R0JNCNEXTMOVR0,30HDECR0MOVR0,31HINCR0SETB00HNEXT:DJNZR7,LOOPJB00H,STARTMOVR0,#40HMOVDPTR,#2000HMOVR7,#20LOP1:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOP1RET4-15解答:ORG0F00HMOVDPTR,#2000HMOVR7,#100LOOP1:MOVXA,DPTRCJNEA,#44H,LOOP2MOV30H,DPLMOV31H,DPHMOVDPTR,#20A0HMOVA,30HMOVXDPTR,AINCDPTRMOVA,31HMOVXDPTR,ALJMPLOOP3LOOP2:INCDPTRDJNZR7,LOOP1LOOP3:RET4-16解答:ORG1000HMOVR0,#30HMOVR1,#50HMOVR7,#20LOP1:MOVA,R0CJNEA,#0AH,LOP2LOP2:JNCLOP3ADDA,#30HLJMPLOP4LOP3:ADDA,#37HLOP4:MOVR1,AINCR0INCR1DJNZR7,LOP1RET4-17解答:ORG1100HMOVR0,#40HMOVR1,#60HMOVR7,#NLOP1:MOVA,R0CJNEA,#41H,LOP2LOP2:JNCLOP3CLRCSUBBA,#30HLJMPLOP4LOP3:CLRCSUBBA,#37HLOP4:MOVR1,AINCR0INCR1DJNZR7,LOP1RET4-18解答:ORG1200HMOVDPTR,#2000HMOVR0,#30HMOVR7,#5LOP1:MOVXA,DPTRANLA,#0FHADDA,#30HMOVR0,AINCR0MOVXA,DPTRANLA,#0F0HSWAPAADDA,#30HMOVR0,AINCR0INCDPTRDJNZR7,LOP1MOVDPTR,#2005HMOVR0,#30HMOVR7,#10LOP2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOP2RET4-19解答:ORG1300HMOVDPTR,#2000HMOVR0,#30HMOVR7,#10LOP1:MOVXA,DPTRCLRCSUBBA,#30HMOVR0,AINCDPTRMOVXA,DPTRCLRCSUBBA,#30HSWAPAORLA,R0MOVR0,AINCDPTRINCR0DJNZR7,LOP1MOVDPTR,#3000HMOVR0,#30HMOVR7,#10LOP2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOP2RET4-20解答:ORG1400HMOVA,40HMOVB,AMULABMOV31H,AMOVA,30HMOVB,AMULABCLRCSUBBA,31HMOV30H,ARET4-21解答:ORG1500HMOVA,#80HLOOP:MOVP1,ALCALLDELRRASJMPLOOPDEL:MOVR7,#100DEL1:MOVR6,#198DJNZR6,$DJNZR7,DEL1RET4-22解答:ORG1600HMOVA,#55HLOOP:MOVP1,ALCALLDELRLASJMPLOOPDEL:MOVR7,#250DEL1:MOVR6,#198DJNZR6,$DJNZR7,DEL1RET第5章 定时/计数器5-1解答:51系列单片机的内部设有两个定时/计数器。分别有两种工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位进行选择。定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚T0(P3.4)或T1(P3.5)。5-2解答:51系列单片机的定时/计数器有四种工作模式。分别由TMOD中的M1和M0进行选择。特点如下:M1 M0特 点 0 0模式0。TLX中低5位与THX中的8位构成13位计数器。计满溢出时,13位计数器回零。 0 1模式1。TLX与THX构成16位计数器。计满溢出时,16位计数器回零。 1 0模式2。8位自动重装载的定时/计数器,每当计数器TLX溢出时,THX中的内容重新装载到TLX中。 1 1模式3。对定时器0,分成2个8位计数器,对于定时器1,停止计数。5-3解答:51系列单片机的T0和T1在模式0中,使用了TLX中低5位与THX中的8位构成13位计数器,TLX中的高3位弃之未用。5-4解答:对于T1,设置为模式3,将使它停止计数并保持原有的计数值,其作用如同使TR1=0,因此,没有什么实质意义。对于T0,设置为模式3时,16位计数器被分成两个互相独立的8位计数器TL0和TH0,其中TL0利用了定时/计数器0本身的一些控制位:、GATE、TR0、和TF0。它既可以按照计数方式工作,也可以按照定时方式工作。而TH0被规定只可用作定时器方式,借用了T1的控制位TR1和TF1。5-5解答:(TMOD)=27H=00100111B此时,T1工作于模式2,定时方式(即波特率发生器方式)。T1工作于模式3,TL0和TH0同为计数方式。5-6解答:单片机系统复位后(TMOD)=00H,即T0工作在模式0,使用的是TL0的低5位和TH0构成13位定时/计数器,由于(TH0)=06H,(TL0)=00H,所以定时的初值为:X=0000011000000B=192假设系统晶振频率为6MHz,机器周期T=2s,则定时时间为:定时值=(M-X)T=(213-192)2s=16000s=16ms5-7解答:ORG0000HLJMPSTARTORG0200HSTART:MOVTMOD,#20HMOVTL1,#231SETBTR1LOOP:SETBP1.2MOVTH1,#81LOP1:JBCTF1,LOP2SJMPLOP1LOP2:CLRP1.2MOVTH1,#231LOP3:JBCTF1,LOOPSJMPLOP3END5-8解答:ORG0000HLJMPSTARTORG0300HSTART:MOVTMOD,#51HLOOP:CLRTR0MOVTL1,#18HMOVTH1,#0E0HSETBTR1LOP1:JBCTF1,LOP2SJMPLOP1LOP2:CLRTR1MOVTL0,#18HMOVTH0,#0E0HSETBTR0LOP3:JBCTF0,LOOPSJMPLOP3END5-13解答:初值=65 536fose/(波特率216) =65 536(11.059 2106)/(19 200216) =65 53618 =65518 =FFEEH即T2的重复装载常数为:TH2=0FFH,TL2=0EEH第7章 中断系统74 解答:MOV IE,#10010110B;T0、串行口允许中断 MOV IP,#00010100B;和串行口中断为高优先级 CLR IT1 ;电平触发方式78 解答:主机频率6MHz,定时器最大定时130 ms左右,取100 ms为定时时间单位,高电平包含6个单位,低电平包含4个单位,共10个单位。选用定时器T0模式1,初值: P1.7驱动发光二极管,R7作时间单位计数器。电路如图7-1。电路中7404是反向器,P1.7输出高电平,灯不亮。400ms 600ms图7-1 P1.7驱动发光二极管电路P1.7编程: ORG 0000H ;复位地址LJMP STAT ;转初始化程序ORG 000BH ;T0中断服务程序LJMP PT0 ;转T0中断服务程序ORG 1000H ;初始化程序首地址STAT: CLR P1.7 ;输出低电平MOV TMOD, #01H ;置T0定时器方式1MOV TH0, #3CH ;置T0初值,定时100 msMOV TL0, #0B0H ;置T0初值,定时100 msSETB TR0, ;T0启动MOV R7, #10 ;计数器置初值MOV IE, #10000010B ;T0开中LJMP $ ;等待中断PT0: CJNE R7,#10, PT02 SETB P1.7;计数器值105时,灯灭 LJMP PT04PT02: CJNE R7,#4, PT04 CLR P1.7;计数器值41时,灯亮PT04: DJNZ R7, PT0DMOV R7, #10 ;计数器置初值PT0D: RETI ;中断返回79 解答:由于未规定波特率,A、B机保持一致则可。取串行口工作在模式2,SMOD1。A机发送子程序:TXDA:MOV TMOD, #20H ;置T1定时器工作方式2MOV SCON, #40H ;置串行方式1,禁止接收MOV PCON, #80H ;置SMOD=1(SMOD不能位操作)CLR ES ;禁止串行中断MOV R0, #40 H ;置发送数据区首地址MOV R2, #20H ;置发送数据长度TRSA:MOV A, R0 ;读一个数据 MOV C,P MOV TB8,C ;置校验位MOV SBUF, A ;发送JNB TI, $ ;等待一桢数据发送完毕CLR TI ;清发送中断标志INC R0 ;指向下一字节单元DJNZ R2, TRSA ;判数据发完否?未完继续RET ;B机接收子程序:RXDB:MOV TMOD, #20H ;置T1定时器工作方式2MOV SCON, #40H ;置串行方式1,禁止接收SM2=0MOV PCON, #80H ;置SMOD=1(SMOD不能位操作)CLR ES ;禁止串行中断MOV R0, #60H ;置接收数据区首地址MOV R2, #20H ;置接收数据长度SETB REN ;启动接收SETB F0 ;先置出错标志F0为1。RDSB:JNB RI, $ ;等待一桢数据接收完毕CLR RI ;清接收中断标志MOV A, SBUF ;读接收数据MOV R0, A ;存接收数据MOV C,RB8ANL C,PJC RDSB2;都是1,则正确MOV C,RB8ORL C,PJNC RDSB2;都是0,则正确LJMP RXDBD;出错RDSB2:INC R0 ;指向下一数据存储单元DJNZ R2, RDSB ;判数据接收完否?未完继续CLR F0 ;正确接收,则清除出错标志F0RXDBD:RET ;84 解答:程序存储器和数据存储器的扩展相同点是:由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据线。程序存储器和数据存储器的扩展不相同点是:数据存储器的读和写由CPU的和信号控制,地址空间任意选取;程序存储器读选信号由CPU的控制,程序空间从0000H开始。8031与2732、6116连接的电路图如图8-1。图8-1 8031与2732、6116的电路图85解答:8031单片机与两片2732A EPROM芯片连接如图8-2图8-2 8031单片机与两片2732连接的电路图 86 解答:静态RAM 6116的容量是2KB,选用2片6116可满足扩展要求,8031单片机与2片6116芯片连接如图8-3。图8-3 8031与两片6116的连接图87解答:由于题中没有片选要求,所以取P2.7作片选。扩展I/O口作普通输入、输出。这里随机定义为A、B口输出、C口输入。控制字为00000011B(03H)8031与8155连接的硬件电路图如图8-4。图 8-4 8031与8155连接的电路图初始化程序:MOV DPTR ,#7FF8H;命令口地址MOV A,#03H;控制字MOVX DPTR,A;控制字送入命令口88 解答: 分析可编程8255的工作状况可知:A口为普通输入,B口普通输出,C口未用,可定义成普通输入,控制字为10011001B,即99H,编程如下:MOV DPTR,#8255命令口MOV A,#99HMOVX DPTR,ALOOP:MOV DPTR,# 8255A口MOVXA,DPTRCPL AMOV DPTR,# 8255B口MOVXDPTR,ALJMPLOOP89解答: 8155工作方式控制字的作用是使可编程的A口、B口、C口工作在需要的方式下以及控制定时器的启动和停止。各位的功能定义如图8-5所示。 图8-5 8155控制字810解答:设定时计数器的输入脉冲fin=500kHz,定时10mS(100次/秒),相当于进行5k分频,计数为1388H,工作在模式3(连续脉冲),初值为D388H。编程:8155初始化子程序STR8155:MOV DPTR, #7F84H ;指向定时计数器低位寄存器 MOV A, #88H ; MOVX DPTR, A;低位寄存器赋值 INC DPTR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026新统编版(新)小学道德与法治六年级上册第四单元《知法守法 依法维权》学情自测卷附答案
- 2025青岛卫生人才教育培训平台公需课考试题库答案
- 2026年青岛国际机场集团有限公司人员招聘考试参考试题及详细答案解析
- 初中作文教学设计:习惯自律与转变素材的深度开发与运用
- 2025下半年教师资格考试(高中美术)新版试卷真题含答案
- 2026年哈尔滨市政建设投资集团有限责任公司人员招聘笔试备考题库及详细答案解析
- 小学三年级德育与法治教学设计-消防安全主题班会《生命至上筑牢防火墙》
- 2026年广州市城市建设投资集团有限公司人员招聘考试备考试题及答案
- 小学三年级劳动中秋月饼我会做教学设计
- 2025注安考试题真题及答案
- 2026年企业文化企业建设知识竞赛-中国电信知识竞赛历年参考题库含答案解析
- ESG管理制度手册
- 2026苏教版二上数学第二单元第5课时《用1~6的乘法口诀求商》课件
- 2026年广东省检察官逐级遴选笔试题目及答案
- 校园小导游、小讲堂(课件)-2025-2026学年人教版二年级上册数学
- 《演唱 郊游》课件2025-2026学年冀少版三年级下册音乐
- 矿山全员责任制考核制度
- 2026年乡村医生真题【历年真题】附答案详解
- 2026年C1驾照三力测试模拟题库
- 2026年中国农业银行招聘考试笔试试题(含答案)
- 早产儿母乳喂养知识培训
评论
0/150
提交评论