单片机原理及应用 复习全部作业答案Word文档下载推荐.docx

上传人:b****6 文档编号:17185343 上传时间:2022-11-28 格式:DOCX 页数:11 大小:138.35KB
下载 相关 举报
单片机原理及应用 复习全部作业答案Word文档下载推荐.docx_第1页
第1页 / 共11页
单片机原理及应用 复习全部作业答案Word文档下载推荐.docx_第2页
第2页 / 共11页
单片机原理及应用 复习全部作业答案Word文档下载推荐.docx_第3页
第3页 / 共11页
单片机原理及应用 复习全部作业答案Word文档下载推荐.docx_第4页
第4页 / 共11页
单片机原理及应用 复习全部作业答案Word文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

单片机原理及应用 复习全部作业答案Word文档下载推荐.docx

《单片机原理及应用 复习全部作业答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用 复习全部作业答案Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

单片机原理及应用 复习全部作业答案Word文档下载推荐.docx

至少可存放211个二进制数,每个二进制数有4位,地址范围是00000000000B-11111111111B,即为0000H-07FFH。

若要把每个二进制数增加到8位,则应加大数据线数目到8个。

1-14

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

第二章

2-4

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

2-6

内部RAM单元的低128字节划分为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表示堆栈指针(StackPointer),有8位,作用是用来指示栈顶的位置,系统复位后,SP=07H,为避免使用通用寄存器和位地址区,通常将其重新赋值为30H开始到7FH的区域中某个值(如50H)。

2-13

MCS-51的寻址范围是0000000000000000B-1111111111111111B,写成16进制为:

0000H-0FFFFH,可最多配置64KB的外部RAM和外部ROM。

 

3-4

(1)MOVA,#30H(其中30H代表立即数)

(2)MOV30H,@R1(其中30H代表直接地址)

3-5

(1)

MOVA,#2;

A=2(7402)

MOVR1,#030H;

R1=30H(7930)

MOV@R1,A;

(30H)=A=2;

(F7)

MOV35H,R1;

(35H)=R1=30H(8935)

XCHA,R1;

A=30H(00110000B)H,R1=2;

(C9H)

PSW(ProgramStatusWord)(Cy,,,,,,,,,,,P)=00H

P:

当A中1的个数为奇数时,P为1,否则为0

3-6(3)MOVP1,25H

或者:

MOVA,25H;

MOVP1,A

(7)从外部ROM区域读数据的指令只有:

MOVCA,@A+DPTR或者是MOVCA,@A+PC

读写外部RAM单元(需要一个16位地址)的指令也只有两条:

MOVXA,@DPTR;

以及MOVX@DPTR,A

MOVXA,@Ri(i=0,1)以及MOVX@Ri,A(使用前应该把P2口赋值成高八位地址。

Ri指向低八位地址。

MOVA,#0

MOVDPTR,#4000H;

MOVCA,@A+DPTR

MOVX@DPTR,A或者

MOVR0,#00H;

MOVP2,#40H;

MOVX@R0,A

3-9(3)MOVA,50H;

(4)MOVA,50H

XRLA,#E0HORLA,#F0H;

MOV50H,A;

ANLA,#F0H

MOV50H,A

3-12(37FEH)ACALL3A00H(双字节)

(3800H)

1先做:

SP=55H(SP)=38H;

(54H)=00H

2转向:

PC=3A00H

ACALL3A00H

(3A00H)SUBT:

第四章作业

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

要求统计出大于0,小于0和等于0的个数并存于ONE、TWO、THREE三个单元中。

ORG1000H

ONEDATA30H

TWODATA31H

THREEDATA31H

MOVR0,1FH;

计数个数放在R0

MOVR1,20H;

取第一个数

LOOP:

MOVA,@R1

CJNEA,#0,L1;

先作A-0运算,不等于零则转移

INCTHREE

SJMPL3

L1:

JBACC.7,L2;

<

0则转移

INCONE

L2:

INCTWO;

L3:

DJNZR0,LOOP

SJMP$

END

4-3外部RAM从2000H-2100H有一数据块,请编写程序将它们传递到外部RAM3000H-3100H区域。

ORG1000H

MOVDPTR,#2000H

MOVR0,#0

MOVP2,#30H;

MOVR2,#0;

个数(256个)

LOOP:

MOVX,A,@DPTR;

从外部RAM取数

MOVX@R0,A;

存外部RAM

INCR0

INCDPTR

DJNZR2LOOP

MOVDPTR,#2100H;

还剩一个没有传递

MOVXA,@DPTR

MOVDPTR,#3100H;

MOVX@DPTR,A

END;

4-5在128分支程序里,试用LJMP代替AJMP指令,修改后的程序有何特点?

(答案略)最多可实现多少分支?

(2K/3)

4-7设一个加数放在50-52H单元中,另一个加数放在53-55H中,进位放在位地址00中,试编程实现多字节加法程序设计(P121)

程序如下:

PUSHPSW

CLRC

MOVR0,50H;

加数指针

MOVR1,53H;

被加数指针

MOVR2,#3;

字节长度

ADDD10:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR2,ADD10:

是否结束?

否则继续循环

MOV00,C

END;

4-10使用连续除10的方法实现8位无符号二进制数到BCD码表示的十进制数的转换。

(见例4-4,略)

4-11试用除法指令将20H单元的两位BCD码变成ASCII码后存入21H和22H单元

MOVA,20H

MOVB,#16;

DIVAB

ADDA,#30H商即等于高四位

MOV21H,A;

MOVA,B;

余数等于低四位

ADDA,#30H

MOV22H,A

第五章

5-2什么叫接口?

I/O接口的作用是什么?

5-4I/O接口有哪四种传输方式,各自的应用场合是什么?

5-8什么叫中断源,MCS-51有哪几种源,各有什么特点?

5-13中断允许寄存器IE的各位定义是什么,如何设定?

5-19哪些中断可以随着中断响应被自动撤消?

,哪些需要用户自己撤消?

如何撤消?

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

RITI需要用户在中断服务程序里清除该标志,使用指令如CLRRI或CLRTI撤销标志RI或TI。

5-20试写出INT0为边沿触发方式的中断初始化程序

SETBEA

SETBEX0

SETBIT0

第六章

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

读引脚指令如MOVA,P1,是直接从P1引脚的电平读数据。

注意在读之前要先向P1口送全1,即:

MOVA,#0FFH;

MOVP1,A;

MOVA,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=0F830HTH1=0F8H,TL1=030H;

当转换为定时方式时,TMOD:

00010000=10H;

则需要20ms/T=10000次计数后溢出

定时初值C=216-10000=d8f0h;

th1=d8HTL1=0F0H

程序

AJMPMAIN

ORG000BH

AJMPTC1INT

ORG2000H

MAIN:

MOVSP,#6FH;

MOVTMOD,#50H

MOVTH1,#0F8H

MOVTL1,#030H

SETBET1

SETBTR1;

START

MOVA,#0;

0isforCOUNTER,1isforTIMER

SJMP$;

在此等待

ORG3000H

TC1INT:

CLRTR1

JZCOUNTER;

如果当前是Counter方式则,转COUNTER

DECA;

否则是TIMER

MOVTMOD,#50H;

changetocounter

MOVTH1,#0F8H;

MOVTL1,#30H;

SJMPENDINT

COUNTER:

INCA;

changetotimer

MOVTMOD,#10H

MOVTH1,#0D8H

MOVTL1,#0F0H

ENDINT:

SETBTR1;

RETI

6-14已知8051单片机的fosc=12MHz,用T/C1定时,试编写由P1.0和P1.1分别输出周期为2ms和500us的方波的程序;

参看例6-2。

定时250=500/2us,每次时间到,在中断服务程序里可将P1.1取反。

每隔4次中断,将P1.0取反。

TMOD=0000000=00H,

机器周期=12/fosc=1us

计数个数=250us/1us=250;

定时初值C=213-250=1F06H

第七章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。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1