......专业word可编辑.《单片微型计算机与接口技术》思考题与习题解答第0章基础知识0.1将下列十进制数转换为十六进制数:64,98,80,100,125,255。0.140H,62H,50H,64H,7DH,FFH0.2将下列十六进制无符号数转换为十进制数:32CH,68H,D5H,100H,B78H,3ADH。O.2812,104,213,256,2936,9410.3写出下列十进制数的原码和补码,用8位或16位数填人表1中(要求用十六进制数表示)。表1十进制数原码补码十进制数原码补码28250-28-347l00928-130-9280.3十进制数原码补码十进制数原码补码281CH1CH250FAHFAH-289CHE4H-347815BHFEA5H10064H64H92803AOH03AOH-1308082HFF7EH-92883AOHFC60H0.4用十进制数写出下列补码表示的机器数的真值:1BH,97H,80H,F8H,......专业word可编辑.397DH,7AEBH,9350H,CF42H。O.4机器数的真值分别为:27,233,-128,-8,14717,31467,-27824,-124780.5用补码运算完成下列算式,并指出溢出OV和进位CY:(1)33H+5AH(2)-29H-5DH(3)65H-3EH(4)4CH-68H0.5(1)33H+5AH=8DH,OV=1,CY=0(2)-29H-5DH=7AH,OV=1,CY=1(3)65H-3EH=27H,OV=0,CY=1(4)4CH-68H=E4H,0V=O,CY=O0.6将表2中的十进制数按要求转换,用十六进制数填入。表2十进制数压缩BCD数非压缩BCD数ASCII码3825548376410001025O.6十进制数压缩BCD数非压缩BCD数ASCII码3838H0308H3338H255255H020505H323535H483483H040803H343833H764764H070604H373634H......专业word可编辑.10001000H01000000H31303030H10251025H01000205H31303235H0.7写出下列ASCII码表示的十六进制数(如313035H为105H):374341H,32303030H,3841353DH。0.7ASCIl码表示的十六进制数分别为:105H,7CAH,200¨。H,8A50H第1章MCS-51单片机1.1什么是嵌入式系统?其控制核心有哪几种类型?1.1见绪论1.2单片微型计算机与微处理器在结构上和使用中有什么差异?单片机和DSP在使用上有什么差别?1.2单片微型计算机是包含CPU、存储器和I/O接口的大规模集成芯片,即它本身包含了除外部设备以外构成微机系统的各个部分,只需接外设即可构成独立的微机应用系统。微机处理器仅为CPU,CPU是构不成独立的微机系统的。DSP是数据处理的专用芯片,单片机主要用做控制,也具有简单的数据处理能力。1.351系列单片机内部有哪些功能部件?1.3见1.1.1节1.451系列单片机有哪些品种?结构有什么不同?各适用于什么场合?1.4见绪论1.551系列单片机的存储器可划为几个空间?各自的地址范围和容量是多少?在使用上有什么不同?1.5见表1-51.6在单片机内部RAM中,哪些字节有位地址,哪些没有位地址?特殊功能寄存器SFR......专业word可编辑.中哪些可以位寻址?有什么好处?1.6见表1-1和表1-21.7已知PSW=10H,通用寄存器R0~R7的地址分别是多少?1.7当PSw=10H,表明选中的为第二组通用寄器RO~R7的地址为10H~17H1.8程序存储器和数据存储器可以有相同的地址,而单片机在对这两个存储区的数据进行操作时,不会发生错误,为什么?1.8序存储器和数据存储器尽管地址相同,但在数据操作时,所使用的指令不同,选通信号也不同,因此不会发生错误。1.9填空:堆栈设在存储区,程序存放在存储区,I/0接口设置在存储区,中断服务程序存放在存储区。1.9内部数据程序外部数据程序1.10若单片机使用频率为6MHz的晶振,那么状态周期、机器周期和指令周期分别是多少?1.10振荡周期=0.1667us,机器周期=2us,指令周期=2~8us1.11复位时,A=,PSW=,SP=,P0~P3=1.11A=0,PSW=0,SP=07,P0~P3=FFH第2章指令系统2.1MCS-51单片机有哪几种寻址方式,适用于什么地址空间?用表格表示。2.1见2.1节2.2MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据存储单元的内容是否为O?......专业word可编辑.2.2因为累加器A自带零标志,因此,若判断某内部RAM单元的内容是否为零,必须将其内容送到A,通过JZ指令即可进行判断。2.3设A=0,执行下列两条指令后,A的内容是否相同,说明道理。(1)MOVCA,@A+DPTR(2)MOVXA,@DPTR2.3当A=O时,两条指令的地址虽然相同,但操作码不同,MOVC是寻址程序存储器,MOVX是寻址外部数据存储器,送入A的是两个不同存储空间的内容。2.4指出下列各指令中操作数的寻址方式指令目的操作数寻址方式源操作数寻址方式ADDA,40HPUSHACCMOVB,20HANLP1,#35HMOV@R1,PSWMOVCA,@A+DPTRMOVX@DPTR,A2.4目的操作数源操作数寄存器直接SP间接寻址直接直接直接直接立即寄存器问址直接......专业word可编辑.寄存器变址寄存器间址寄存器2.5执行下列程序段MOVA,#56HADDA,#74HADDA,ACC后,CY=,OV=,A=。2.5CY=1,OV=0,A=94H2.6在错误的指令后面括号中打×。MOV@R1,#80H()MOVR7,@R1()√×MOV20H,@R0()MOVR1,#0100H()√×CPLR4()SETBR7,0()××MOV20H,21H()ORLA,R5()√√ANLR1,#OFH()XRLP1,#31H()×√MOVXA,2000H()MOV20H,@DPTR()××MOVA,DPTR()MOVR1,R7()××PUSHDPTR()POP30H()×√MOVCA,@R1()MOVCA,@DPTR()××MOVX@DPTR,#50H()RLCB()××ADDCA,C()MOVC@R1,A()××2.6√×√×......专业word可编辑.××√√×√×××××√××××××2.7设内部RAM中(59H)=50H,执行下列程序段:MOVA,59HMOVR0,AMOVA,#0MOV@R0,AMOVA,#25HMOV51H,AMOV52H,#70H问A=,(50H)=,(51H)=,(52H)=。2.7A=25H,(50H)=O,(51H)=25H,(52H)=70H2.8设SP=60H,内部RAM的(30H)=24H,(31H)=10H,在下列程序段注释的括号中填执行结果。PUSH30H;SP=(),(SP)=()......专业word可编辑.PUSH3lH;SP=(),(SP)=()POPDPL;SP=(),DPL=()POPDPH;SP=(),DPH=()MOVA,#00HMOVX@DPTR,A最后执行结果是()。2.8SP=(61H),(SP)=(24H)SP=(62H),(SP)=(10H)SP=(61H),DPL=(10H)SP=(60H),DPH=(24H)执行结果将0送外部数据存储器的2410单元。2.9对下列程序中各条指令作出注释,并分析程序运行的最后结果。MOV20H,#0A4HMOVA,#017)6HMOVR0,#20HMOVR2,#57HANLA,R2ORLA,@R0SWAPACPLAORL20H,ASJMP$2.9程序运行后内部RAM(20H)=B4H,A=90H......专业word可编辑.2.10将下列程序译为机器码。机器码源程序LA:MOVA,#01HLB:MOVP1,ARLACJNEA,#10,LBSJMPLA2.10机器码源程序7401LA:M()VA,#01HF590LB:M()VP1,A23RLAB40AFACJNEA,#10,LB80F6SJMPLA2.11将累加器A的低4位数据送P。口的高4位,P。口的低4位保持不变。2.11ANLA,#0FHSWAPAANLP1.#OFHORLP1,ASJMP$2.12编程将R0(R2)的内容和R1(R3)的内容相交换。2.12MOVA,ROXCHA,R1......专业word可编辑.MOVR0,ASJMP$2.12MOVA,R2XCHA,R3MOVR2,ASJMP$2.13试用3种方法将A累加器中的无符号数乘4,积存放于B和A寄存器中。2.13(1)利用乘法指令MOVB,#04HMULABSJMP$(2)利用位移指令RLARLAMOV20H。AANLA,#03HMOVB,AMOVA,20HANLA,#OFCHSJMP$(3)用加法指令完成ADDA,ACC......专业word可编辑.MOVRO,A:RO=2AMOVA,#0ADDCA。#0MOVB,A;B存2A的进位MOVA,ROADDA,ACCMOVR1,A;R1=4AMOVA,BADDCA,B;进位x2MOVB,A;存积高位MOVA,R1;存积低位SJMP$2.14编程将内部RAM40H单元的中间4位变反,其余位不变放回原单元。2.14方法1:XRL40H,#3CHSJMP$方法2:MOVA,40HCPLAANLA,#3CHANL40H,#OC3HORL40H,ASJMP$......专业word可编辑.2.15有两个BCD码数存放在(20H)和(21H)单元,完成(21H)+(20H)=(23H)(22H)。(24H)+(25H)=(23H)(22H)2.15MOVA,20HADDA,21HDAAMOV22H,A;存和低字节MOVA,#OADDCA,#0MOV23H,A;存进位SJMP$2.15MOVA,24HADDA,25HDAAMOV22H,A;存和低字节MOVA,#OADDCA,#0MOV23H,A;存进位SJMP$2.16如果R0的内容为0,将R1置为0,如R0内容非0,置R1为FFH,试进行编程。2.16MOVA.R0JZZEMOVR1.#OFFH......专业word可编辑.SJMP$ZE:MOVR1,#OSJMP$2.17完成(51H)×(50H)=(53H)(52H)的编程(式中均为内部RAM)。2.17MOVA,50HMOVB,51HMULABMOV53H。BMOV52H,ASJMP$2.18将P1.1和P1.0同时取反10次。(将P1.2和P1.0同时取反10次)2.18MOVR7,#0AHWOP:XRLP1,#03HDJNZR7,WOPSJMP$2.18MOVR7。#0AHWOP:XRLP1,#05HDJNZR7,WOPSJMP$2.19将内部RAM单元3字节数(22H)(21H)(20H)×2送(23H)(22H)(21H)(20H)单元。2.19单片机的移位指令只对A,且只有循环移位指令,为了使本单元的最高位移进下一单......专业word可编辑.元的最低位,必须用大循环移位指令移位4次。ORGOCLRCMOVA,20HRLCAMOV20H,AMOVA,21HRLCAMOV21H,AMOVA,22HRLCAMOV22H.AMOVA,#ORLCAMOV23H,ASLMP$第3章程序设计3.1编写程序,把片外数据存储器0000H~0050H中的内容传送到片内数据存储器20H~70H中。3.1因为是多个单元操作,为方便修改地址,使用问址操作。片外地址用DPTR指示.只能用M()Vx指令取数到A,片内地址用RO或R1指示,只能用MOV指令操作,因此,循环操作外部数据存储器一A一内部数据存储器。......专业word可编辑.ORGOO