单片机全部作业答案 09机制

发布 2022-09-02 10:36:28 阅读 8903

第一章。

1-5答:至少可存放211个二进制数,每个二进制数有4位,地址范围是00000000000b-11111111111b,即为0000h-07ffh。

1-6答:程序计数器pc的作用是用来存放将要执行的指令所在的存储器地址,pc有自动加1功能,从而实现程序的顺序执行,在8位机中pc通常有二进制16位。

1-12答:(3)11110010b若为原码,则表示负数,其真值为:-(1x 26+1x 25+1x 24+0x 23+0x22+1x 21+0x 20)= 114。

若其为反码,则对应的原码为:10001101,真值为:-13。

若其为补码,其对应的原码是10001110,计算过程如下:先求出反码,再求补码:10001101+1=10001110相应的真值为-14。

1-18(1)

答:x=+48,y=+38;

x ]补=00110000。[y]补=00100110[x ]补+[y]补=01010110=86d

ovc7c8000

3)答:x=-34,y=+87;

x ]补=11011110。[y]补=01010111[x ]补+[y]补=00110101b=53d

ovc7c8110无溢出,结果正确。

第二章2-4答:

mcs-51单片机中执行程序的地址放在pc寄存器中,是16位二进制数,最大寻址范围是0000h-0ffffh,pc是一个特殊功能寄存器。

答:内部ram单元的低节划分为3个主要部分,分别是1:通用寄存器区(00h-1fh)

此区域重要是作为cpu就近存取数据使用,可提高单片机的运算速度。共32字节,分成四组;00-07h为0组,08-0f为1组,10h-17h,18-1fh为2和3组。同时只能使用其中一组,具体使用哪一组,可通过设置psw寄存器中的rs0,rs1来选定。

2:位寻址区(20-2fh)

共16个单元,每个单元的每一位可以单独寻址,总共128个位(从00h编号到7fh)这些位地址可以按该位在相应单元的位置来寻址,如20h的0为,可表示为20h.0,也可以直接用00h表示。

3:用户寄存器区(30h-7fh)

可以用来存放用户数据,前两个区域虽然也可以存放用户数据,但通常要作为位寻址或通用寄存器用。2-11

答:sp表示堆栈指针(stack pointer),有8位,作用是用来指示栈顶的位置,系统复位后,sp=07h,为避免使用通用寄存器和位地址区,通常将其重新赋值为30h开始到7fh的区域中某个值(如50h)。2-13

答:mcs-51的寻址范围是0000000000000000b-1111111111111111b,写成16进制为:0000h-0ffffh,可最多配置64kb的外部ram和外部rom。

3-4(1)mov a, #30h(其中30h代表立即数)

2)mov 30h,@r1(其中30h代表直接地址)3-5 (1)

mov a, #2; a=2(74 02)

mov r1, #030h; r1=30h(79 30)mov@r1,a; (30h)=a=2;(f7)mov 35h, r1; (35h)=r1=30h(8935)xch a, r1; a=30h(00110000b)h, r1=2;(c9h)psw(program status word)( cyp)=00hp:当a中1的个数为奇数时,p为1,否则为03-6(3)mov p1,25h

或者:mov a,25h;

mov p1,a

7)从外部rom区域读数据的指令只有:movc a,@a+dptr或者是movc a,@a+pc

读写外部ram单元(需要一个16位地址)的指令也只有。

两条:movx a,@dptr;以及movx @dptr, a

movx a, @ri (i=0,1)以及movx @ri, a(使用前应该把p2口赋值成高八位地址。ri指向低八位地址。、mov a,#

mov dptr,#4000h;movc a,@a+dptrmovx @dptr, a或者mov a,#

mov dptr,#4000h;movc a,@a+dptrmov r0, #00h;mov p2, #40h;movx @r0, a

3-9(3)mov a,50h;xrl a,#e0hmov 50h,a;

4)mov a,50horl a,#f0h;anl a,#f0hmov 50h,a

3-12(37feh)acall 3a00h(双字节)(3800h)

1先做:sp=55h(sp)=38h;(54h)=00h2转向:pc=3a00h

acall 3a00h

3a00h)subt:

第四章作业。

4-2设一个加数放在50-52h单元中,另一个加数放在53-55h中,进位放在位地址00中,试编程实现多字节加法程序设计(p121)答:程序如下:

org 1000hpush pswclr c

mov r0,50h;加数指针mov r1,53h;被加数指针mov r2, #3;字节长度。

addd10:mov a,@r0

addc a, @r1mov @r0, ainc r0inc r1

djnz r2, add10:是否结束?否则继续循环mov 00, cend;

4-3试用除法指令将20h单元的两位bcd码变成ascii码后存。

入21h和22h单元答:

org 1000h

mov a,20hmov b,#16;div ab

add a,#30h商即等于高四位mov 21h,a;

mov a,b;余数等于低四位add a,#30hmov 22h,aend

4-4从20h单元开始存放一组带符号数,其个数已在1fh单元。

中。要求统计出大于0,小于0和等于0的个数并存于one、

two、three三个单元中。答:org 1000h

one data 30htwo data 31hthree data 31h

mov r0, 1fh;计数个数放在r0mov r1,20h;;取第一个数。

loop:mov a, @r1

cjne a,#0, l1;先作a-0运算,不等于零则转移inc threesjmp l3

l1: jb acc.7, l2;<0则转移。

inc onesjmp l3

l2: inc two;l3: djnz r0, loopsjmp $end

4-5在128分支程序里,试用ljmp代替ajmp指令,修改后的。

程序有何特点?(p116)最多可实现多少分支?(2k/3)

4-7外部ram从2000h-2100h有一数据块,请编写程序将它们传递到外部ram3000h-3100h区域。答:

org 1000h

mov dptr,#2000hmov r0,#0mov p2,#30h;mov r2, #0;个数(256个)

loop:movx,a,@dptr;从外部ram取数movx @r0, a;存外部raminc r0inc dptrdjnz r2 loop

mov dptr,#2100h;还剩一个没有传递movxa,@dptrmov dptr, #3100h;movx @dptr,aend;

4-10使用连续除10的方法实现8位无符号二进制数到bcd码表示的十进制数的转换。(见例4-4,略)第五章。

5-2什么叫接口?i/o接口的作用是什么?

5-4i/o接口有哪四种传输方式,各自的应用场合是什么?5-8什么叫中断源,mcs-51有哪几种源,各有什么特点?5-13中断允许寄存器ie的各位定义是什么,如何设定?

5-19哪些中断可以随着中断响应被自动撤消?,哪些用户自己撤消?如何撤消?

答:int1,int0,t/c1,t/c0在中断响应后被自动撤除中断标志(但要注意在电平触发方式下的int0,int1可能由于信号在响应中断后继续存在而被再次响应,因此需要用户自己通过软硬件结合的方式撤除中断源的电平。

ri ti需要用户在中断服务程序里清除该标志,使用指令如clrri或clr ti。

5-20试写出int0为边沿触发方式的中断初始化程序答:setb easetb ex0setb it0第六章。

6-2读引脚与‘读-修改-写’操作有什么不同?

答:读引脚指令如mova,p1,是直接从p1引脚的电平读数据。注意在读之前要先向p1口送全1,即:

mov a,#0ffh;

mov p1,a;

mov a,p1;

读-修改-写’指令如orlp1,a是先读取锁存器的数据状态,与a逻辑或操作后再输出到p1口引脚上。

6-6定时器/计数器用作定时时,定时时间与那些因素有关,用作计数时,对输入信号频率有哪些限制?

答:定时时间与定时器初值,定时器工作模式(终值),系统晶体**器频率有关。

计数脉冲频率不大于系统晶体**器频率的1/24。

6-9以t/c1进行外部事件计数。每计满2000个后,转为20ms定时方式工作,定时时间到后又转为计数模式,如此循环不止。假定单片机晶振频率为6mhz,请使用模式1编程。

答:机器周期为t=12/fosc=2us计数方式下tmod:01010000=50h

计数初值c= 216-2000= 0f830h th1=0f8h,tl1=030h;当转换为定时方式时,tmod:00010000=10h;则需要20ms/t=10000次计数后溢出。

定时初值c=216-10000=d8f0h;th1=d8h tl1=0f0h

程序。org 1000h

ajmp mainorg 000bhajmp tc1int

org 2000hmain:

mov sp,#6fh;mov tmod,#50hmov th1,#0f8hmov tl1,#030hsetb easetb et1

setb tr1; start

mov a,#0;0 is for counter, 1 is for timersjmp $;在此等待。

org 3000htc1int:

clr tr1

jz counter;如果当前是counter方式则,转counterdec a;否则是timer

mov tmod,#50h;change to counter

mov th1,#0f8h;

mov tl1,#30h;sjmp endint

counter:

inc a; change to timermov tmod,#10h

mov th1,#0d8hmov tl1,#0f0hendint:

6-14已知8051单片机的fosc=12mhz,用t/c1定时,试编写由p1.0和p1.1分别输出周期为2 ms和500us的方波的程序;答:参看例6-2。

定时250=500/2 us,每次时间到,在中断服务程序里可将p1.1setb tr1;reti

取反。每隔4次中断,将p1.0取反。tmod=0000000=00h,机器周期=12/fosc=1us

计数个数=250us/1us=250;定时初值c=213-250=1f 06h

第七章7-4扩展三片2764eprom和一片6264ram芯片。

可接地。注意图上圆圈部分是rom和ram扩展时的控制线不同之处,psen连接到rom芯片的oe,而rd,wr连接到ram芯片的oe和wr端。

1号2764:(0000-1fffh),2号(2000-2fffh),3(3000-3fffh)4号为6264(4000-4fffh)。

实际上由于6264是ram,扩展时,它与2764eprom占用不同的地址空间,可以直接将其cs端接地,即(注意最右端的红色圆圈),此时1号2764:(0000-1fffh),2号(2000-2fffh),3(3000-3fffh)而6264的地址范围也是0000-1fffh。

另外,当芯片较少,可以不使用74hc138译码器,直接将p2.7,p2.6等高地址线连接到芯片的片选端cs,参考第七章ppt。

单片机原理及应用复习全部作业答案

第一章。答 3 11110010b 若为原码,则表示负数,其真值为 1x 26 1x 25 1x 24 0x 23 0x 22 1x 21 0x 20 114。若其为反码,则对应的原码为 10001101,真值为 13。若其为补码,其对应的原码是10001110,计算过程如下 先求出反码,再求补码 ...

单片机作业答案

作业答案2 第2章 mcs 51单片机指令系统与汇编语言程序设计。4.假定累加器a中的内容为30h,执行指令1000h movc a,a pc后,把程序存储器 1031h 单元的内容送入累加器a中。6.指出下列指令中的源操作数的寻址方式。1 mov r0,30h立即寻址。2 mov a,30h直接寻...

答案单片机作业

作业一答案。1 简述cc2530的存储空间是如何映射的?答 cc2530物理存储器的两种主要存储介质 sram flash 虚拟存储空间的种类及地址范围如下 1 code 0x0 0xffff 64kb 2 data 0x00 0xff 节 3 xdata 0x0 0xffff 64kb 4 sfr...