当前位置:文档之家› 单片机原理、接口技术及应用课后答案—黄建新

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

作业题及答案第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=(1001 0001.0110 0010 0101 )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,相同, 所以无溢出。

[X -Y]补0100 0100 0001 0010 0101 01100100 01001110 11101 0011 0010C7=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!2009‘HELLO!2009’=48454C4C4F2132303039H第2章2.6 80C51单片机的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.10 80C51单片机具有很强的布尔(位)处理功能?共有多少单元可以位寻址?采用布尔处理有哪些优点?答:是的,80C51单片机具有很强的布尔处理功能,在内部RAM区20H—2FH 的16个单元都可以位寻址;同时21个特殊功能寄存器中还有部分特殊功能寄存器可以位寻址。

布尔(位)处理机,是80C5l系列单片机的突出优点之一,给“面向控制”的实际应用带来了极大的方便。

布尔(位)处理机借用进位标志CY作为位累加器,在布尔运算中,CY是数据源之一,又是运算结果的存放处,位数据传送的中心。

布尔(位)处理机指令系统中有专门进行位处理的指令集,利用位逻辑操作功能进行随机逻辑设计,可把逻辑表达式直接变换成软件执行,方法简便,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省了存储器空间,加快了处理速度,增强了实时性能。

还可实现复杂的组合逻辑处理功能。

所有这些,特别适用于某些数据采集、实时测控等应用系统。

2.12 单片机的复位方法有哪两种?复位后各寄存器及RAM中的状态如何?答:按键复位和外部脉冲复位。

单片机复位后,21个寄存器中,SP=07H,P0—P3均为FFH,SBUF为不定值,其余均为0.2.13 80C51单片机的PSEN、RD、WR、XTAL1和XTAL2引脚各有何作用?单片机时钟电路分别采用内部和外部振荡方式时,XTAL1和XTAL2引脚应如何连接?答:PSEN是片外程序存储器选通信号,低电平有效。

RD(片外数据存储器读选通),输出,低电平有效。

WR(片外数据存储器写选通),输出,低电平有效。

XTAL1和XTAL2内部振荡方式:在80C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTALl,其输出端为引脚XTAL2。

当使用芯片内部时钟时,这两根引线用于外接石英晶体和微调电容。

外部振荡方式:把外部已有的时钟信号引入单片机内。

该方式适宜用来使单片机的时钟信号与外部信号保持同步。

外部振荡信号由XTAL1引入,XTAL2端悬空不用。

第3章3.7用指令实现下述功能。

(1)内部RAM30H单元内容送R0。

MOV R0,30H(2)将立即数10H送入内部RAM30H单元。

MOV 30H,#10H(3)R0内容送入R1。

MOV A,R0MOV R1,A(4)内部RAM30H单元内容送外部RAM30H单元。

MOV R0,#30HMOV A,@R0MOVX @R0,A(5)外部RAM3000H单元内容送内部RAM30H单元。

MOV DPTR,#3000HMOVX A,@DPTRMOV 30H,A(6)ROM3000H单元内容送内部RAM30H单元。

MOV DPTR,#3000HMOV A,#00HMOVC A,@(A+DPTR)MOV 30H,A3.8 已知内部RAM中,(30H)=40H,(40H)=50H,(50H)=5AH,(5AH)=60H,ROM中(125AH)=88H,试分析下面程序的运行结果,并指出每条指令的源操作数寻址方式。

MOV A,50H ;直接寻址MOV R0,A ;寄存器寻址MOV P1,#0F0H ;立即寻址MOV @R0,30H ;直接寻址MOV DPTR,#1200H ;立即寻址MOVX @DPTR,A ;寄存器寻址MOVC A,@A+DPTR ;变址寻址MOV 40H,50H ;直接寻址MOV P2,P1 ;直接寻址程序执行后,P2=F0H ; (40H)= 5AH ;(A)=88H ;(1200H)=5AH;(5AH)=40H3.9 设(R1)=31H,内部RAM31H的内容为68H,32H单元的内容为60H,(A)=10H。

请指出运行下面的程序后各单元内容的变化。

MOV A,@R1 ;(A)=68HMOV @R1,32H ;(31H)60HMOV 32H,A ;(32H)=68HMOV R1,#45H ;(R1)=45H程序前3条指令将内部RAM31H和32H单元内容互换。

3.10 已知当前PC值为2000H,用两种方法将ROM207FH单元中的常数送入累加器A。

(1)MOV DPTR,#207FHMOV A,#00HMOVC A,@A+DPTR(2)MOV A,#7CHMOVC A,@A+PC3.16 已知延时程序为DELAY:MOV R0,#0A0HLOOP1:MOV R1,#0FFHLOOP2:NOPDJNZ R1,LOOP2DJNZ R0,LOOP1若系统的晶振频率为12MHz,请指出该延时子程序的延时时间。

机器周期数DELAY:MOV R0,#0A0H 1LOOP1:MOV R1,#0FFH 1LOOP2:NOP 1DJNZ R1,LOOP2 2DJNZ R0,LOOP1 2由于晶振频率为12MHz,1M=1μs该程序延时时间为:【1+(1+2)*255+2】*160+1=122.881ms第4章4.13编写程序将内部RAM40H~60H单元清0MOV R7,#21HMOV R0,#40HLOOP:MOV @R0,#00HINC R0DJNZ R7,LOOPSJMP $4.15 编程将外部RAM的1000H~1FFF区域的数据送到2000H~2FFFH区域。

ORG 0100HMOV DPTR,#1000HMOV R7,#10HLL1: MOV R6,#00HLL: MOVX A,@DPTRMOV B,AMOV A,DPHADD A,#10HMOV DPH,AMOV A,BMOVX @DPTR,AMOV A,DPHCLR CSUBB A,#10HMOV DPH,AINC D PTRDJNZ R6,LLINC D PHDJNZ R7,LL1SJMP $4.16已知一内部RAM以BLOCK1和BLOCK2为起始地址的存储区中分别有5字节无符号被减数和减数(低位在前,高位在后。

请编写减法子程序令它们相减,并把差放入以BLOCK1为起始地址的存储单元。

BLOCK1 EQU 30HBLOCK2 EQU 40HORG 0000HLJMP STARTSTART:MOV R0,#BLOCK1MOV R1,#BLOCK2MOV R7,#1LP:MOV R6,#5CLR CLP1:MOV A,@R0SUBB A,@R1MOV @R0,AINC R0INC R1DJNZ R6,LP1DJNZ R7,LPSJMP $END4.17 从内部RAM20H单元开始存有一组带符号数,其个数已存放在1FH单元中。

要求统计出大于0、等于0和小于0的数的数目,并把统计结果分别存放在ONE、TWO、THREE三个单元中。

ONE EQU 1EHTWO EQU 1DHTHREE EQU 1CHORG 0000HLJMP STARTSTART:MOV ONE,#00HMOV TWO,#00HMOV THREE,#00HMOV R0,#20HMOV R7,1FHLOOP3: MOV A,@R0INC R0JZ LOOP1JB ACC.7,LOOP2INC ONESJMP HALTLOOP1: INC TWOSJMP HALTLOOP2: INC THREEHALT: DJNZ R7,LOOP3SJMP $4.18 设内部RAM30H 单元有两个非零的BCD 数,请编写求两个BCD 数的积,并将积以压缩型BCD 数形式送入31H 单元的程序。

ORG 0000H MOV A, 30HANL A, #0F0HSWAP AMOV B, AMOV A, 30HANL A, #0FHMUL A, BMOV B, #0AHDIV A BSWAP AORL A, BMOV 31H, ASJMP $4.20 编制绝对值函数程序。

相关主题