单片机原理、接口技术及应用课后答案—黄建新

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机原理、接口技术及应用课后答案—黄建新作业题及答案第1章1.9完成下列数制的转换。(1)1011.1101B=(11.8125)D=(B.D)H(2)110.101B=(6.625)D=(6.A)H(3)166.25=(10100110.0100)B=(A6.4)H(4)1011011.101B=(5B.A)H=(10010001.011000100101)BCD(5)100001100011.01000101BCD=(863.45)D1.10写出下列真值对应的原码、反码和补码。(1)+1100110B【+1100110B】原码=66H【+1100110B】反吗=66H【+1100110B】补码=66H(2)-1000100B【-1000100B】原码=C4H【-1000100B】反码=BBH【-1000100B】补码=BCH(3)-86【-86】原码=D6H【-86】反码=A9H【-86】补码=AAH1.11写出下列机器数分别作为原码、反码和补码时,其表示的真值分别是多少?(1)01101110B+110(6EH)(2)10110101B-53(35H),-74(-4AH),-75(-4BH)1.12已知X和Y的真值,试分别计算[X+Y]补和[X-Y]补,并指出是否产生溢出(设补码均用8位二进制表示)。(1)X=+1000100B,Y=-0010010BX补=01000100B,Y补=11101110B[X+Y]补:C7=1,C6=1,相同,所以无溢出。0100010011101110100110010[X-Y]补C7=0,C6=0,相同,所以无溢出。(2)X=+1100001B,Y=+1000010B[X+Y]补:有溢出[X-Y]补无溢出(3)X=-1101001B,Y=-1010101B[X+Y]补:有溢出[X-Y]补:无溢出1.13用十六进制写出下列字符的ASCII码。(1)NBA‘NBA’=4E4241H(2)HELLO!2021‘HELLO!2021’=48454C4C4F2132303039H010001000001001001010110第2章2.680C51单片机的EA信号有何功能?在使用80C31和89C51单片机时,EA信号应如何处理?答:EA是访问外部程序存储器选通信号。当其为低电平时,对ROM的读操作限定为外部存储器;当其为高电平时,对ROM的读操作是从内部开始的,当PC值大于内部程序存储器地址范围时,CPU自动转向读外部程序存储器。80C31单片机片内无ROM,应将EA引脚固定接低电平,以迫使系统全部执行片外程序存储器程序。89C51单片机应将EA引脚接+5V电源。2.9系统复位后,CPU使用哪一组工作寄存器?它们的地址是什么?如何改变当前工作寄存器组?答:系统复位后,CPU使用0组寄存器,它们的地址分别是:R0--R7:00H—07H.可以通过改变PSW寄存器的PSW.4和PSW.3两位的值来改变工作寄存器组。2.1080C51单片机具有很强的布尔(位)处理功能?共有多少单元可以位寻址?采用布尔处理有哪些优点?答:是的,80C51单片机具有很强的布尔处理功能,在内部RAM区20H—2FH的16个单元都可以位寻址;同时21个特殊功能寄存器中还有部分特殊功能寄存器可以位寻址。布尔(位)处理机,是80C5l系列单片机的突出优点之一,给“面向控制”的实际应用带来了极大的方便。布尔(位)处理机借用进位标志CY作为位累加器,在布尔运算中,CY是数据源之一,又是运算结果的存放处,位数据传送的中心。布尔(位)处理机指令系统中有专门进行位处理的指令集,利用位逻辑操作功能进行随机逻辑设计,可把逻辑表达式直接变换成软件执行,方法简便,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省了存储器空间,加快了处理速度,增强了实时性能。还可实现复杂的组合逻辑处理功能。所有这些,特别适用于某些数据采集、实时测控等应用系统。2.12单片机的复位方法有哪两种?复位后各寄存器及RAM中的状态如何?答:按键复位和外部脉冲复位。单片机复位后,21个寄存器中,SP=07H,P0—P3均为FFH,SBUF为不定值,其余均为0.2.1380C51单片机的PSEN、RD、WR、XTAL1和XTAL2引脚各有何作用?单片机时钟电路分别采用内部和外部振荡方式时,XTAL1和XTAL2引脚应如何连接?答:PSEN是片外程序存储器选通信号,低电平有效。RD(片外数据存储器读选通),输出,低电平有效。WR(片外数据存储器写选通),输出,低电平有效。XTAL1和XTAL2内部振荡方式:在80C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTALl,其输出端为引脚XTAL2。当使用芯片内部时钟时,这两根引线用于外接石英晶体和微调电容。外部振荡方式:把外部已有的时钟信号引入单片机内。该方式适宜用来使单片机的时钟信号与外部信号保持同步。外部振荡信号由XTAL1引入,XTAL2端悬空不用。第3章3.7用指令实现下述功能。(1)内部RAM30H单元内容送R0。MOVR0,30H(2)将立即数10H送入内部RAM30H单元。MOV30H,#10H(3)R0内容送入R1。MOVA,R0MOVR1,A(4)内部RAM30H单元内容送外部RAM30H单元。MOVR0,#30HMOVA,@R0MOVX@R0,A(5)外部RAM3000H单元内容送内部RAM30H单元。MOVDPTR,#3000HMOVXA,@DPTRMOV30H,A(6)ROM3000H单元内容送内部RAM30H单元。MOVDPTR,#3000HMOVA,#00HMOVCA,@(A+DPTR)MOV30H,A3.8已知内部RAM中,(30H)=40H,(40H)=50H,(50H)=5AH,(5AH)=60H,ROM中(125AH)=88H,试分析下面程序的运行结果,并指出每条指令的源操作数寻址方式。MOVA,50H;直接寻址MOVR0,A;寄存器寻址MOVP1,#0F0H;立即寻址MOV@R0,30H;直接寻址MOVDPTR,#1200H;立即寻址MOVX@DPTR,A;寄存器寻址MOVCA,@A+DPTR;变址寻址MOV40H,50H;直接寻址MOVP2,P1;直接寻址程序执行后,P2=F0H;(40H)=5AH;(A)=88H;(1200H)=5AH;(5AH)=40H3.9设(R1)=31H,内部RAM31H的内容为68H,32H单元的内容为60H,(A)=10H。请指出运行下面的程序后各单元内容的变化。MOVA,@R1;(A)=68HMOV@R1,32H;(31H)60HMOV32H,A;(32H)=68HMOVR1,#45H;(R1)=45H程序前3条指令将内部RAM31H和32H单元内容互换。3.10已知当前PC值为2021H,用两种方法将ROM207FH单元中的常数送入累加器A。(1)MOVDPTR,#207FHMOVA,#00HMOVCA,@A+DPTR(2)MOVA,#7CHMOVCA,@A+PC3.16已知延时程序为DELAY:MOVR0,#0A0HLOOP1:MOVR1,#0FFHLOOP2:NOPDJNZR1,LOOP2DJNZR0,LOOP1若系统的晶振频率为12MHz,请指出该延时子程序的延时时间。机器周期数DELAY:MOVR0,#0A0H1LOOP1:MOVR1,#0FFH1LOOP2:NOP1DJNZR1,LOOP22DJNZR0,LOOP12由于晶振频率为12MHz,1M=1μs该程序延时时间为:【1+(1+2)*255+2】*160+1=122.881ms第4章4.13编写程序将内部RAM40H~60H单元清0MOVR7,#21HMOVR0,#40HLOOP:MOV@R0,#00HINCR0DJNZR7,LOOPSJMP$4.15编程将外部RAM的1000H~1FFF区域的数据送到2021H~2FFFH区域。ORG0100HMOVDPTR,#1000HMOVR7,#10HLL1:MOVR6,#00HLL:MOVXA,@DPTRMOVB,AMOVA,DPHADDA,#10HMOVDPH,AMOVA,BMOVX@DPTR,AMOVA,DPHCLRCSUBBA,#10HMOVDPH,AINCDPTRDJNZR6,LLINCDPHDJNZR7,LL1SJMP$4.16已知一内部RAM以BLOCK1和BLOCK2为起始地址的存储区中分别有5字节无符号被减数和减数(低位在前,高位在后。请编写减法子程序令它们相减,并把差放入以BLOCK1为起始地址的存储单元。BLOCK1EQU30HBLOCK2EQU40HORG0000HLJMPSTARTSTART:MOVR0,#BLOCK1MOVR1,#BLOCK2MOVR7,#1LP:MOVR6,#5CLRCLP1:MOVA,@R0SUBBA,@R1MOV@R0,AINCR0INCR1DJNZR6,LP1DJNZR7,LPSJMP$END4.17从内部RAM20H单元开始存有一组带符号数,其个数已存放在1FH单元中。要求统计出大于0、等于0和小于0的数的数目,并把统计结果分别存放在ONE、TWO、THREE三个单元中。ONEEQU1EHTWOEQU1DHTHREEEQU1CHORG0000HLJMPSTARTSTART:MOVONE,#00HMOVTWO,#00HMOVTHREE,#00HMOVR0,#20HMOVR7,1FHLOOP3:MOVA,@R0INCR0JZLOOP1JBACC.7,LOOP2INCONESJMPHALTLOOP1:INCTWOSJMPHALTLOOP2:INCTHREEHALT:DJNZR7,LOOP3SJMP$4.18设内部RAM30H单元有两个非零的BCD数,请编写求两个BCD数的积,并将积以压缩型BCD数形式送入31H单元的程序。ORG0000HMOVA,30HANLA,#0F0HSWAPAMOVB,AMOVA,30HANLA,#0FHMULA,BMOVB,#0AHDIVABSWAPAORLA,BMOV31H,ASJMP$4.20编制绝对值函数程序。绝对值函数方程如下:假设X存于30H单元,Y存于40H单元。X及Y均为补码数.XEQU30HYEQU40HORG0000HLJMPSTARTSTART:MOVA,XJZLOOPJNBACC.7,LOOPCPLAADDA,#01HLOOP:MOVY,ASJMP$END4.21试编写统计数据区长度的程序,设数据区从内RAM30H开始,该数据区以0结束,统计结果送人2FH中。且数据区结束字符,也计入统计数据区的长度中去.ORG0000HLJMPSTARTSTART:MOVR0,#30HMOVR7,#00HLOOP:MOVA,@R0INCR0INCR7CJNEA,#00H,LOOPMOV2FH,R7SJMP$4.23巳知R7中为2位十六进制数,试编程将其转换为ASCII码,存人内部RAM31H、32H中(低字节在前)。英文字母为大写.ORG0000HLJMPSTARTSTART:MOVSP,#60HMOVA,R7LCALLBCDASCIIMOV31H,A?????X00XY当-=当当XXMOVA,R7SWAPALCALLBCDASCIIMOV32H,ASJMP$BCDASCII:ANLA,#0FHCJNEA,#10,LOOPLOOP:JCAD30HADDA,#07HAD30H:ADDA,#30HHT:RETEND解法2ORG0000HLJMPSTARTSTART:MOVDPTR,#TABMOVA,R7ANLA,#0FHMOVCA,@A+DPTRMOV31H,AMOVA,R7ANLA,#0F0HSWAPAMOVCA,@A+DPTRMOV32H,ASJMP$TAB:DB30H,31H,32H,33H,34H,35H,36H,37H,38HDB39H,41H,42H,43H,44H,45H,46HEND4.24设在MA和MB单元中有两

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功