单片机原理李全利第二版课后题标准答案doc.docx

上传人:b****2 文档编号:25735835 上传时间:2023-06-12 格式:DOCX 页数:37 大小:61.32KB
下载 相关 举报
单片机原理李全利第二版课后题标准答案doc.docx_第1页
第1页 / 共37页
单片机原理李全利第二版课后题标准答案doc.docx_第2页
第2页 / 共37页
单片机原理李全利第二版课后题标准答案doc.docx_第3页
第3页 / 共37页
单片机原理李全利第二版课后题标准答案doc.docx_第4页
第4页 / 共37页
单片机原理李全利第二版课后题标准答案doc.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

单片机原理李全利第二版课后题标准答案doc.docx

《单片机原理李全利第二版课后题标准答案doc.docx》由会员分享,可在线阅读,更多相关《单片机原理李全利第二版课后题标准答案doc.docx(37页珍藏版)》请在冰豆网上搜索。

单片机原理李全利第二版课后题标准答案doc.docx

单片机原理李全利第二版课后题标准答案doc

 

第二章

2.80C51单片机的存储器的组织采用何种结构存储器地址空间如何划分各地址空间的地址范围和容量如何在使用上有何特点

答:

采用哈佛结构,在物理上设计成程序存储器和数据存储器两个独立的空间80C51;基本型单片机片内程序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128字节RAM,地址范围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH还配有21个SFR。

第三章

7.为什么说布尔处理功能是80C51单片机的重要特点答:

单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了片内的布尔功能系统,它可对位(bit)变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。

在实现位操作时,借用了程序状态标志器PSW()中的进位标志Cy作为位操作的“累加器”。

8.对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问答:

寄存器间接寻址方式。

 

15.试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。

答:

MOV2FH,20H

MOV2EH,21H

MOV2DH,22H

16.试编写程序,完成两个16位数的减法:

7F4DH-2B4EH,结果存入内部RAM的30H

和31H单元,30H单元存差的高8位,31H单元存差的低8位。

答:

CLRCY

MOV30H,#7FH

MOV31H,#4DH

MOVR0,#31H

MOVA,@R0

SUBBA,#4E

MOV@R0,A;保存低字节相减结果

DECR0

MOVA,@R0

SUBBA,#2BH

MOV@R0,A;保存高字节相减结果

 

17.试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。

 

答:

MOVA,R2

ANLA,#0F0H

ORLR1,A

18.试编写程序,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、

R3中,R2中存放高8位,R3中存放低8位。

答:

MOVA,20H

MOVB,21H

MULAB

MOVR3,A

MOVR2,B

19.若(CY)=1,(P1)=B,(P3)=01101100B。

试指出执行下列程序段后,CY、P1口及P3口内容的变化情况。

MOV,C

MOV,C

MOVC,

MOV,C

MOVC,

MOV,C

答:

(CY)=1,(P1)=B,(P3)=00111100B

第四章

3.常用的程序结构有哪几种特点如何

答:

顺序程序:

无分支、无循环结构的程序,其执行流程是依指令在存储器中的存放顺序进行的;

分支程序:

可以改变程序的执行顺序;

循环程序:

按某种控制规律重复执行的程序,控制一部分指令重复执行若干次,以便用简短的程序完成大量的处理任务。

4.子程序调用时,参数的传递方法有哪几种

答:

利用累加器或寄存器;利用存储器;利用堆栈。

6.设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位无符号数相加的程序(采用大端模式存储。

答:

程序如下:

ORG0000H

MOVR0,#21H

MOVR1,#23H

MOVA,@R0

ADDA,@R1

MOV25H,A

DECR0

DECR1

 

MOVA,@R0

ADDCA,@R1

MOV24H,A

SJMP$

END

7.编写程序,把外部RAM中1000H~101FH的内容传送到内部RAM的30H~4FH中。

答:

ORG0000H

MOVDPTR,#1000H

MOVR0,#30H

MOVR7,#32

LOOP:

MOVXA,@DPTR

MOV@R0,A

INCR0

INCDPTR

DJNZR7,LOOP

RET

8.编写程序,实现双字节无符号数加法运算,要求(R0R1)+(R6R7)→(60H61H)。

答:

ORG0000H

MOVA,R1

ADDA,R7

MOV61H,A

MOVA,R0

ADDCA,R6

MOV60H,A

SJMP$

END

9.若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。

DELAY:

MOVR7,#0F6H

LP:

MOVR6,#0FAH

DJNZR6,$

DJNZR7,LP

RET

答:

延时时间:

2μs*{[1+((1+2*250+2)*246)+2]+2}=秒(含调用指令2个机器周

期)

10.在内部RAM的30H~37H单元存有一组单字节无符号数。

要求找出最大数存入BIG单元。

试编写程序实现。

答:

ORG0000H

BIGDATA2FH

ONEDATA2AH

TWODATA2BH

 

START:

MOV

R7,#7

;比较次数

MOV

R0,#30H

LOOP:

MOV

A,@R0

MOV

ONE,A

INC

R0

MOV

TWO,@R0

CLR

C

SUBBA,@R0

JC

NEXT;ONE小,TWO大继续比下一对数

MOV

@R0,ONE

;ONE大放后面(交换)

DEC

R0

MOV

@R0,TWO

;TWO小放前面

INC

R0

;

NEXT:

DJNZR7,LOOP

MOV

BIG,37H

SJMP$

END

11.编写程序,把累加器A中的二进制数变换成3位BCD码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H中。

答:

单字节二进制数转换为压缩的BCD码仅需要2个字节;在将压缩的BCD码拆分存于3个单元。

org0

MOV52H,#0

MOV51H,#0

MOV50H,#0

MOVA,#0FDh

LCALLDCDTH

SJMP$

 

DCDTH:

MOVR7,#8

MOVR0,A;暂存于R0

LOOP:

CLRC

MOVA,R0

RLCA

MOVR0,A

MOVR1,#51H;

 

MOVA,@R1;

ADDCA,@R1;

DAA;

MOV@R1,A;

DECR1

MOVA,@R1

ADDCA,@R1

 

DAA

MOV@R1,A

DJNZR7,LOOP

INCR1;50H已是结果,R1指向51H,51H单元需拆分

MOVA,#00H

XCHDA,@R1

MOV52H,A

MOVA,@R1

SWAPA

MOV@R1,A

RET

END

12.编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。

答:

ORG

0

MOV

R1,#5BH

MOV

A,R1

ANL

A,#0F0H

SWAP

A

ACALL

ASCII

MOV

R3,A

MOV

A,R1

ANL

A,#0FH

ACALL

ASCII

MOV

R4,A

SJMP

$

ASCII:

PUSH

ACC

CLR

C

SUBB

A,#0AH

POP

ACC

JCLOOP

ADD

A,#07H

LOOP:

ADD

A,#30H

RET

END

13.编写程序,求内部RAM中50H~59H十个单元内容的平均值,并存放在5AH单元。

答:

ORG0000H

MOVR7,#10

MOVR0,#50H

MOVB,#10

CLRC

CLRA

LOOP:

ADDCA,@R0

 

INCR0

DJNZR7,LOOP

DIVAB

MOV5AH,A

SJMP$

END

14.如图所示,编制程序实现:

上电后显示“P”,有键按下时显示相应的键号“0”~“7”。

答:

实现程序如下:

TEMPEQU

30H

ORG

0000H

JMP

START

ORG

0100H

START:

MOV

SP,#5FH

MOV

P0,#8CH

;

正序显示"P"

MOV

P3,#0FFH

;

输入方式

CLR

CY

NOKEY:

MOV

A,P3

CPL

A

JZNOKEY

;

无键按下

MOV

TEMP,P3

;

有键按下

CALLD10ms

MOV

A,P3

CJNEA,TEMP,NOKEY;

去抖动

MOV

R2,#0

;

键号计数器复位

MOVA,TEMP

LP:

RRCA

JNCDONE

INCR2

SJMPLP

DONE:

MOVA,R2

MOVDPTR,#CODE_P0

MOVCA,@A+DPTR

MOVP0,A

JMPNOKEY

D10ms:

MOVR5,#10;10MS

D1ms:

MOVR4,#249

DL:

NOP

NOP

DJNZR4,DL

DJNZR5,D1ms

RET

CODE_P0:

 

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

END

第五章

2.某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU处理,

它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H。

试编写主程序及中断服务程序(转至相应的入口即可。

答:

将3个中断信号经电阻线或,接INT1。

ORG0000H

LJMPMAIN

ORG00013H

LJMPZDFZ

ORG0040H

MAIN:

SETBEA

SETBEX1

SJMP$

 

0RG0200H

ZDFZ:

PUSHPSW

PUSHACC

JB,DV0

JB,DV1

JB,DV2

INRET:

POPACC

POPPSW

RETI

ORG2000H

DV0:

------------

JMPINRET

ORG2100H

DV1:

------------

JMPINRET

ORG2200H

DV2:

------------

JMPINRET

3.外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同怎样设定

答:

当IT0=0时,INT0为电平触发方式。

电平触发方式时,CPU在每个机器周期的S5P2采样INT0引脚电平,当采样到低电平时,置IE0=1向CPU请求中断;采样到高电平时,

将IE0清0。

在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。

电平触发方式时,外部中断源的有效低电平必须保持到请求获得响应时为止不,然就

会漏掉;在中断服务结束之前,中断源的有效的低电平必须撤除,否则中断返回之后将再

 

次产生中断。

该方式适合于外部中断输入为低电平,且在中断服务程序中能清除外部中断请求源的情况。

当IT0=1时,INT0为边沿触发方式。

边沿触发方式时,CPU在每个机器周期的S5P2

采样INT0引脚电平,如果在连续的两个机器周期检测到INT0引脚由高电平变为低电平,即第一个周期采样到INT0=1,第二个周期采样到INT0=0,则置IE0=1,产生中断请求。

在边沿触发方式下,CPU响应中断时,能由硬件自动清除IE0标志。

边沿触发方式时,在相继两次采样中,先采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。

若CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清0。

另外,为了保证下降沿能够被可靠地采样到,INT0和INT1引脚上的负脉冲宽度至少要保持一个机器周期(若晶振频率为12MHz,为1微秒)。

边沿触发方式适合于以负脉冲形式输入的外部中断请求。

4.定时/计数器工作于定时和计数方式时有何异同点

答:

定时/计数器实质是加1计数器。

不同点:

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期

等于12个振荡周期,即计数频率为晶振频率的1/12)。

计数值乘以机器周期就是定时时间。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。

在每个机器周期的S5P2期间采样T0、T1引脚电平。

当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。

相同点:

它们的工作原理相同,它们都有4种工作方式,由TMOD中的M1M0设定,

方式0:

13位计数器;

方式1:

16位计数器;

方式2:

具有自动重装初值功能的8位计数器;

方式3:

T0分为两个独立的8位计数器,T1停止工作。

8.利用定时/计数器T0从输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为12MHz。

试设计程序。

答:

采用定时20ms,然后再计数1、49次的方法实现。

a、T0工作在定时方式1时,控制字TMOD配置:

M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;b、计算计数初值X:

晶振为12MHz,所以机器周期Tcy为1μs。

 

c、实现程序如下:

ORG0000H

AJMPMAIN;跳转到主程序

 

ORG0030H

MAIN:

MOVTMOD,#01H

MOVTH0,#4EH;

 

;设T1工作于方式2

装入循环计数初值

 

MOVTL0,#20H;首次计数值

LP0:

SETB

ACALLNT0

CLR

MOVR7,#49;计数49次

LP1:

ACALLNT0

DJNZR7,LP1

AJMPLP0

NT0:

MOVTH0,#4EH

MOVTL0,#20H

SETBTR0

JNBTF0,$

CLRTR0

CLRTF0

RET

END

9.要求从引脚输出1000Hz方波,晶振频率为12MHz。

试设计程序。

答:

采用T0实现

a、T0工作在定时方式1时,控制字TMOD配置:

M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;b、计算计数初值X:

晶振为12MHz,所以机器周期Tcy为1μs。

1/1000=1×10-3

N=t/Tcy=×10-3/1×10-6=500

X=216-N=65536-500=65036=FE0CH即应将FEH送入TH0中,0CH送入TL0中。

c、实现程序如下:

ORG0000H

AJMPMAIN;跳转到主程序

ORG000BH;T0的中断入口地址

LJMPDVT0

ORG

0030H

MAIN:

MOV

TMOD,#01H

设;T0工作于方式2

MOV

TH0,#0FEH;

装入循环计数初值

MOV

TL0,#0CH

;

首次计数值

SETBET0

;T0

开中断

SETBEA

;CPU

开中断

SETBTR0

;

启动T0

SJMP$

;

等待中断

DVT0:

CPL

MOV

TH0,#0FEH

MOV

TL0,#0CH

SETBTR0

RETI

END

 

10.试用定时/计数器T1对外部事件计数。

要求每计数100,就将T1改成定时方式,控制输出一个脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。

设晶振频率

为12MHz。

答:

a、T1工作在计数方式2时,控制字TMOD配置:

M1M0=10,GATE=0,C/T=1,可取方式控制字为60H;

T1工作在定时方式1时,控制字TMOD配置:

M1M0=01,GATE=0,C/T=0,可取方式控制字为10H;b、计算初值X:

定时10ms时:

晶振为12MHz,所以机器周期Tcy为1μs。

-3-6

N=t/Tcy=10×10/1×10=10000

16

X=2-N=65536-10000=55536=D8F0H

即应将D8H送入TH1中,F0H送入TL1中。

计数100时:

N=100

X=28-N=256-100=156=9CH

c、实现程序如下:

ORG0000H

AJMPMAIN

;

跳转到主程序

ORG

001BH

;T1

的中断入口地址

LJMPDVT1

ORG

0030H

MAIN:

MOVTMOD,#60H

;T1工作于计数方式2

MOV

TH1,#9CH

;

装入计数初值

MOV

TL1,#9CH

;

CLR

SETBET1

;T1

开中断

SETBEA

;CPU

开中断

SETBTR1

;

启动T1

SJMP$

;

等待中断

DVT1:

SETB

CLR

ET1

CLR

TR1

MOV

TMOD,#10H

;T1

工作于定时方式1

MOV

TH1,#0D8H;

装初值

MOV

TL1,#0F0H

SETBTR1

JNB

TF1,$

;

查询等待10ms

CLR

TF1

CLR

TR1

CLR

MOV

TMOD,#60H

;T1

工作于计数方式2

 

MOV

 

TH1,#9CH

 

;

 

装初值

MOV

TL1,#9CH

;

SETBET1

SETBTR1

;T1

;

开中断

启动T1

RETI

END

 

11.利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。

编一个程序,使8个指示灯依次闪动,闪动频率为1次/秒(即,亮1秒后熄灭并点亮下一个,-----)。

答:

采用定时20ms,计数50次实现1秒定时。

编制1秒延时子程序,由主程序调

用。

a、T0工作在定时方式1时,控制字TMOD配置:

M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;

b、计算计数初值X:

晶振为12MHz,所以机器周期Tcy为1μs。

N=t/Tcy=20×10-3/1×10-6=20000

X=216-N=65536-20000=45536=4E20H

即应将4EH送入TH1中,20H送入TL1中。

c、实现程序如下:

ORG0000H

AJMPMAIN;跳转到主程序

ORG0030H

MAIN:

CLRCY

MOVA,#01H

LP0:

MOVP1,A

CALLD1SEC

RLA

AJMPLP0

 

D1SEC:

MOVR7,#50

;

计数50次

MOVTMOD,#01H

DL:

MOVTH0,#4EH

MOVTL0,#20H

SETBTR0

JNBTF0,$

CLRTR0

CLRTF0

DJNZR7,DL

RET

END

第六章

1.80C51单片机串行口有几种工作方式如何选择简述其特点答:

 

四种工作方式,由SCON中的SM0、SM1进行定义:

方式0:

同步移位寄存器的输入输出方式,主要用于扩展并行输入或输出口,波特率固定。

方式1:

10位数据的异步通信口,波特率可变。

方式2:

11位数据的异步通信口,波特率固定。

方式3:

11位数据的异步通信口,波特率可变。

5.利用单片机串行口扩展并行输入接口电路如图所示。

试编写程序完成SW1~SW8将的状态反应在P0口所接的LED上(如SW1闭合时L7应点亮)。

答:

电路图如下:

+5V

10K×8

L0

VCC

P0.0

P0.1

P0.2

P0.3

P0.4

H

S/L

P1.7

P0.5

G

5

P0.6

F

6

P0.7

E

1

S

D

L

L7

1K×8

4

C

7

B

Q

RXD

A

CLK

TXD

15

8

ON

89S51

1

2

3

4

5

6

7

8

SW1~SW8

20

ORG

0000H

MOV

SCON,#10H

LOOP:

CLR

NOP

NOP

NOP

SETB

CLR

RI

JNB

RI,$

MOV

A,SUBF

SJMPLOOP

END

6.利用单片机串行口扩展并行输出接口电路如图所示。

试编写程序完成SW1~SW8将的状态反应在移位寄存器74LS164所接的LED上(如SW1闭合时L0应点亮)。

答:

电路图如下:

 

+5V

P1.0

VCC

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

L71K×8

P1.7

10K×8

CLR

QA

CLK

QB

QC

RXD

4

QD

6

TXD

1

QE

S

ON

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

当前位置:首页 > 高等教育 > 院校资料

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

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