单片机原理与应用部分复习题答案.docx

上传人:b****2 文档编号:2433064 上传时间:2023-05-03 格式:DOCX 页数:27 大小:59.19KB
下载 相关 举报
单片机原理与应用部分复习题答案.docx_第1页
第1页 / 共27页
单片机原理与应用部分复习题答案.docx_第2页
第2页 / 共27页
单片机原理与应用部分复习题答案.docx_第3页
第3页 / 共27页
单片机原理与应用部分复习题答案.docx_第4页
第4页 / 共27页
单片机原理与应用部分复习题答案.docx_第5页
第5页 / 共27页
单片机原理与应用部分复习题答案.docx_第6页
第6页 / 共27页
单片机原理与应用部分复习题答案.docx_第7页
第7页 / 共27页
单片机原理与应用部分复习题答案.docx_第8页
第8页 / 共27页
单片机原理与应用部分复习题答案.docx_第9页
第9页 / 共27页
单片机原理与应用部分复习题答案.docx_第10页
第10页 / 共27页
单片机原理与应用部分复习题答案.docx_第11页
第11页 / 共27页
单片机原理与应用部分复习题答案.docx_第12页
第12页 / 共27页
单片机原理与应用部分复习题答案.docx_第13页
第13页 / 共27页
单片机原理与应用部分复习题答案.docx_第14页
第14页 / 共27页
单片机原理与应用部分复习题答案.docx_第15页
第15页 / 共27页
单片机原理与应用部分复习题答案.docx_第16页
第16页 / 共27页
单片机原理与应用部分复习题答案.docx_第17页
第17页 / 共27页
单片机原理与应用部分复习题答案.docx_第18页
第18页 / 共27页
单片机原理与应用部分复习题答案.docx_第19页
第19页 / 共27页
单片机原理与应用部分复习题答案.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机原理与应用部分复习题答案.docx

《单片机原理与应用部分复习题答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用部分复习题答案.docx(27页珍藏版)》请在冰点文库上搜索。

单片机原理与应用部分复习题答案.docx

单片机原理与应用部分复习题答案

 

《单片机原理及应用》习题参考答案

 

主编:

田亚娟

编写组:

 单片机原理及应用精品课程组 

单位:

 松山职业技术学院电气工程系 

日期:

 2008年12月 

 

第1章绪论

1-1.

(1)9AH,154;6.375,6.6H

(2)1100.011B,0C.6H;0111111.111B,7F.EH

(3)10110111B,183;1111101111.1000B;1007.5

1-2.

(1)[+1101110]原=[+1101110]反=[+1101110]补=01101110

(2)[-1111111]原=11111111[-1111111]反=10000000[-1111111]补=10000001

(3)[+1010111]原=[+1010111]反=[+1010111]补=01010111

(4)[-1000000]原=11000000[-1000000]反=10111111[-1000000]补=11000000

1-3.

(1)(01000111)BCD

(2)(01101000)BCD

(3)(0001100110000110.0111)BCD(4)(0001100101101001)BCD

1-4~1-7略。

第2章MCS-51单片机的结构和原理

2-1~2-2、2-4~2-5、2-7、2-9~2-13、略。

2-3.答:

程序状态标志寄存器PSW是一个8位可编程并可按位寻址的专用寄存器,用来存放当前指令执行结果的有关状态信息,位于特殊功能寄存器区,地址是0D0H。

其各位定义如下:

D7D6D5D4D3D2D1D0

CY

AC

F0

RS1

RS0

OV

P

CY(PSW.7):

进位标志。

累加器A的最高位有进位或借位时,硬件自动使该位置位(即CY=1),否则该位清零。

AC(PSW.6):

辅助进位标志。

当进行加法或减法操作时,若累加器的D3位向D4位有进位或借位时,则硬件自动将其置位,否则该位清零。

F0(PSW.5):

用户通用状态标志。

用户可对该位置位或清零,也可用软件测试该位的状态以控制程序的流向。

RS1(PSW.4)和RS0(PSW.3):

工作寄存器组选择控制位,用户通过指令对RS1和RS0的状态设置,可以选择相应的工作寄存器组。

OV(PSW.2):

溢出标志。

当有符号数加法或减法运算结果超出(-128~+127)围时,说明计算结果已经溢出,此时该位将由硬件自动置位(即OV=1),否则清零。

PSW.1:

保留位。

也可作为用户自行定义的状态标志位,其用法与PSW.5相同。

P(PSW.0):

奇偶标志位。

每个指令周期由硬件按累加器A中值为“1”的个数的奇偶性自动置位或清零。

若A中有奇数个“1”,则P置位,否则清零。

2-6.答:

不能。

因为在这种情况下,系统要进行扩展ROM。

P0口和P2口作为专用端口使用。

P0口分时作为低8位地址的输出口和数据输入输出口。

P2口作为高8位地址输出口。

2-8.答:

00H~7FH为8051的片RAM的空间。

①00H~1FH是通用寄存器区,共32个单元分成0,1,2,3四个区,每个区的8个单元都用R0~R7来表示。

②20H~2FH共16个单元是位寻址区,每个单元的每一位都有它自己的位地址。

③30H~7FH是堆栈和数据缓冲区。

可用来对运算结果等中间数据暂时保存和有关的数据堆栈。

我们把部RAM中字节地址00H~7FH与位地址00~7F完全重合的现象,称为地址重叠现象,MCS-51指令系统提供了不同的访问指令和寻址方式来解决这种地址重叠现象。

CPU在对位寻址单元进行位操作时,设置有专用的位操作指令。

第3章MCS-51单片机的指令系统

3-1~3-5略

3-6.E530MOVA,30H(A)←(30H)

7442MOVA,#42H(A)←

853874MOV74H,38H(74H)←(38H)

7850MOVR0,#50H(R0)←50H

26ADDA,R0(A)←(A)+((R0))

D212SETB12H(12H)←01H

3-7.MOVA,30H;直接寻址方式,将部RAM的30H单元的容传送

;给累加器A

MOVA,#30H;立即寻址方式,将立即数30H传送给累加器A

MOV31H,R0;寄存器寻址方式,将寄存器R0的容传送到31H单元

MOV31H,R0;寄存器间接寻址,将寄存器R0所指的地址单元的容

;传送到31H

3-8.

(1)R0的容送R1。

MOVA,R0

MOVR1,A

(2)外部RAM40H单元的容送部RAM40H单元。

MOVR0,#40H

MOVXA,R0

MOV40H,A

(3)外部RAM7E00H单元容送部RAMR0。

MOVDPTR,#7E00H

MOVA,DPTR

MOVR0,A

(4)外部ROM7E00H单元容送部RAM20H单元。

MOVDPTR,#7E00H

MOVA,#00H

MOVCA,A+DPTR

MOV20H,A

(5)外部ROM7E00H单元容送外部RAM20H单元。

MOVDPTR,#7E00H

MOVA,#00H

MOVCA,A+DPTR

MOVR0,#20H

MOVXR0,A

(6)外部RAM2000H单元容送外部RAM1000H单元。

MOVDPTR,#2000H

MOVXA,DPTR

MOVDPTR,#1000H

MOVXDPTR,A

3-9.(R0)=42H,(42H)=08H,(A)=80H,(50H)=80H

3-10.MOVA,#192

ADDA,#88H

MOV30H,A

MOVA,#00H

ADDCA,#00H

MOV31H,A

3-11.A=57HCy=1;A=3BHCy=0

3-12.(20H)=00H(A)=00HCy=1;

取消DA后:

(20H)=9AH(A)=9AHCy=0

3-13.rel=0F75H-0F46H=2FH

3-14.与操作结果为:

00H

或操作结果为:

FFH

异或操作结果:

FFH

3-15.C=1P1=BBHP3=3CH

第4章MCS-51单片机的程序设计

4-1.ORG0000H

CLRC

MOVA,50H

MOVB,#10

MULAB

MOV53H,B

ADDA,51H

MOV52H,A

MOVA,53H

ADDCA,#0

MOV53H,A

END

4-2.ORG0000H

MOVR7,#30

MOVR6,#0

MOVR5,#0

MOVR4,#51H

MOVR3,#71H

MOVR0,#20H

MAIN:

MOVA,R0

JBACC.7,MAIN1

INCR6

MOVR1,R4

MOVR1,A

AJMPLOOP

MAIN1:

INCR5

MOVR1,R3

MOVR1,A

LOOP:

DJNZR7,MAIN

MOV50H,R6

MOV70H,R5

END

4-3.ORG0000H

CLRC

MOVR7,#4

MOVR6,#3

MOVR0,#DATA+4

MOVR1,#DATA

MOVA,R0

JNBACC.7,END0

LP:

MOVA,R1

CPLA

MOVR1,A

INCR1

DJNZR7,LP

MOVA,R0

SETBACC.7

MOVR0,A

MOVR1,#DATA

MOVA,R1

ADDA,#1

MOVR1,A

LP1:

INCR1

MOVA,R1

ADDCA,#0

MOVR1,A

DJNZR6,LP1

END0:

SJMP$

END

4-4.ORG0000H

MAIN:

MOVDPTR,#4000H

MOVR7,#50

CLRA

LOOP:

MOVXDPTR,A

INCDPTR

DJNZR7,LOOP

END

4-5.ORG0000H

CLRC

MOVR0,#DATA0

MOVA,R0

JZMAIN0

JNBACC.7,MAIN1

SUBBA,#5

SJMPMAIN0

MAIN1:

ADDA,#5

MAIN0:

MOVDATA2,A

END

4-6.ORG0000H

MAIN:

MOVR0,#55H

MOVA,60H

CLRC

SUBBA,#30H

JCMAIN1

MOVA,60H

SUBBA,#3AH

JNCMAIN1

MOVR0,#00H

MAIN1:

MOV62H,R0

END

4-7.ORG0000H

STADADATA20H

SLANGDATA1FH

CMCRQ:

MOVR0,#STADA

MOVB,#00H

CRLP1:

MOVXA,40

CJNEA,#0DH,CRNEXT

MOVSLANG,B

SJMP$

CRNEXT:

INCB

INCR0

SJMPCRLP1

END

4-8.ORG0000H

MAIN:

MOVR0,#20H

LOOP:

CJNE40,#20H,NKG

INCR0

SJMPLOOP

NKG:

MOV95H,R0

END

4-9.ORG0000H

DATAEQU30H

MAIN:

MOVA,DATA

ADDA,DATA

MOVR2,A

ADDA,#06H

MOVCA,A+PC

XCHA,R2

ADDA,#03H

MOVCA,A+PC

MOVR3,A

RET

TAB:

DW01,01,02,06,24,120,720,5040

END

4-10.ORG0000H

MAIN:

MOVR0,#40H

MOVA,R0

ANLA,#0FH

MOVB,A

INCR0

MOVA,R0

ANLA,#0FH

SWAPA

ORLA,B

INCR0

MOVR0,A

END

4-11.ORG1000H

DATA1EQU40H

DATA2EQU2000H

MAIN:

MOVR1,#14H

MOVR0,#DATA1

MOVDPTR,#DATA2

NEXT:

MOVA,DPTR

XCHA,R0

MOVXDPTR,A

INCR0

INCDPTR

DJNZR1,NEXT

SJMP$

END

4-12.ORG1000H

DATA1EQU40H

DATA2EQU2000H

MAIN:

MOVR1,#32H

MOVR0,#DATA1

MOVDPTR,#DATA2

NEXT:

MOVA,R0

MOVXA,DPTR

INCR0

INCDPTR

DJNZR1,NEXT

SJMP$

END

4-13.平方表的一个数据占2个字节

ORG0000H

MAIN:

ADDA,A

PUSSACC

MOVCA,A+DPTR

MOVR7,A

POPA

INCA,

MOVCA,A+DPTR

MOVR6,A

SJMP$

TAB:

DB00,00,00,01,00,04,00,09,00,16H,······

DB······04H,00

END

4-14~4-15略。

第5章中断系统及定时/计数器

题5-1~5-8答案略

5-9.出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外部中断(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。

编程如下:

ORG0000H

LJMPSTAT

ORG0003H

LJMPINT

ORG0100H

STAT:

MOVSP,#60H

SETBIT0

MOVIP,#01H

MOVIE,#81H

MOV30H,#0

MOV31H,#0

MOV32H,#0

LJMPMAIN;转主程序,MAIN主程序可以处理循环显示等任务。

ORG0200H;中断服务子程序首地址

INT:

PUSHAcc

PUSHPSW

MOVA,30H

ADDA,#2

MOV30H,A

CLRA

ADDCA,31H

MOV31H,A

CLRA

ADDCA,32H

MOV32H,A

PUSHPSW

PUSHAcc

RETI

5-10.电路图如右图所示。

程序如下:

ORG0000H

LJMPMAIN

ORG0003H

LJMPEXTER

ORG1000H

MAIN:

SETBIT0

SETBEX0

SETBEA

LOOP:

AJMPLOOP

ORG1050H;中断程序入口

EXTER:

MOVR2,#0FFH

MOVA,#01H

FLASH:

RRA

MOVR7,#0FFH;定时

LOOP1:

MOVR6,#0FFH

LOOP2:

NOP

NOP

DJNZR6,LOOP2

DJNZR7,LOOP1

MOVP1,A

DJNZR2,FLASH

RETI

END

5-11.思路:

根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到P1口的四个输入端,然后在中断程序中查询P1口,确定是哪一个故障申请的中断。

电路如下图所示。

一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。

在中断程序中可以显示故障信息。

扩展4个外中断源电路如下图所示。

主程序和中断服务程序如下:

ORG0000

AJMPZCX1

NOP

ORG0013H

AJMPINT1

NOP

ORG0100H

ZCX1:

MOVSP,#30H

MOVIP,#04H

CLRIT1

SETBEA

SETBEX1

ZCX2:

其他处理程序

AJMPZCX2

ORG0200H

INT1:

PUSHPSW

PUSHACC

MOVA,P1

ANLA,#0FH

JNBACC0,X1

ACALLXY1

X1:

JNBACC1,X2

ACALLXY2

X2JNB:

ACC2,X3

ACALLXY3

X3:

JNBCC3,X4

ACALLXY4

X4:

POPACC

POPPSW

RETI

XY1:

OC处理子程序(略)

RET

5-12~5-17略。

第6章单片机串行通信及接口

6-1~6-3略。

6-4.串行口的方式控制字SCON=50H,允许接收,T1工作方式控制字TMOD=20H;若晶振频率

=11.0592MHz,串行口工作于方式1,波特率为4800bps,查表6-2可得T1计数初值为TH1=TL1=0FAH,此时SMOD=0,所以PCON=00H。

6-5.设计双机通信系统如下:

设甲、乙两进行通信、波特率为2400,晶振均为11.0592MHz。

甲机将片外RAM的3400H~34FFH的数据块通过串行口传送给乙机,发送数据前将数据块长度发给乙机,当数据发送完向乙机发送一个累加校验和。

乙机接收将数据放在片外RAM的4400~44FFH单元中,同时进行累加和校验,如果和甲机发送的累加和一致,发数据“00H”表示接收正确,如果不一致,发数据“FFH”,甲方再重发。

解:

(1)T1计数初值:

两机晶振为11.0592MHz,波特率为2400,T1工作在定时器方式2,查表6-2可得TH1=TL1=0F4H,PCON寄存器的SMOD位为0。

(2)约定R7作为数据长度计数器,计数256个字节。

采用减1计数,初值取0,R6作为累加和寄存器。

甲机发送程序:

TRT:

MOVTMOD,#20H

MOVTH1,#0F4H

MOVTL1,#0F4H

SETBTR1

MOVSCON,#50H

RPT:

MOVDPTR,#3400H

MOVR7,#00H

MOVR6,#00H

MOVSBUF,R7

LOOP1:

JBCTI,L00P2

AJMPLOOP1

LOOP2:

MOVXA,DPTR

MOVSBUF,A

ADDA,R6

MOVR6,A

INCDPTR

LOOP4:

JBCTI,LOOP3

AJMPLOOP4

LOOP3:

DJNZR7,LOOP2

MOVSBUF,R6

MOVR6,#00H

LOOP6:

JBCTI,LOOP5

AJMPLOOP6

LOOP5:

JBCRI,LOOP7

AJMPLOOP5

LOOP7:

MOVA,SBUF

JZLOOP8

AJMPRPT

LOOP8:

RET

乙机接收程序:

首先接收数据长度,然后接收数据,当接收256字节后,接收校验码,进行累加和校验,数据传送结束时,向甲机发送一个状态字节,表示传送正确或出错。

RSU:

MOVTMOD,#20H

MOVTH1,#0F4H

MOVTL1,#0F4H

SETBTR1

MOVSCON,#50H

DPT:

MOVDPTR,#4400H

LOOP0:

JBCRI,L00P1

AJMPLOOP0

LOOP1:

MOVA,SBUF

MOVR7,A

MOVR6,#00H

WTD:

JBCRI,LOOP2

AJMPWTD

LOOP2:

MOVA,SBUF

MOVXDPTR,A

INCDPTR

ADDA,R6

MOVR6,A

DJNZ R7,WTD

LOOP5:

JBCRI,LOOP4

AJMPLOOP5

LOOP4:

MOVA,SBUF

XRLA,R6

MOVR6,#00H

JZLOOP6

MOVSBUF,#0FFH

LOOP8:

JBCTI,LOOP7

AJMPLOOP8

LOOP7:

AJMPDPT

LOOP6:

MOVSBUF,#00H

LOOP9:

JBCTI,LOOP3

AJMPLOOP9

LOOP3:

RET

6-6.电路图如下图所示,串行口处于方式0条件下发送数据。

程序如下:

ORG2000H

MOVSCON,#00H

MOVA,#0FFH

MOVSBUF,A

LOOP:

JNBTI,LOOP

CLRTI

ACALLDEL

CPLA

MOVSBUF,A

SJMP LOOP

DEL:

MOVR5,#10

DEL0:

MOVR6,#200

DEL1:

MOVR7,#248

NOP

DEL2:

DJNZR7,DEL2

DJNZR6,DEL1

DJNZR5,DEL0

RET

END

第7章单片机系统扩展

略。

第8章A/D和D/A转换的接口技术

8-1~8-6、8-8、8-9、8-10、8-13~8-15略。

8-7.用8031和DAC0832设计一个周期和幅值可调的锯齿波、三角波和阶梯波的波形发生器。

要求画出电路图并编程。

答:

见下图

 

程序如下:

1)程序1:

DA_ADREQU7FFFH;DA的地址

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#DA_ADR;DA的地址

CLRA

LOOP:

MOVXDPTR,A

INCA

CJNEA,#0FFH,LOOP

SJMPMAIN

END

2)程序2:

DA_ADREQU7FFFH;DA的地址

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#DA_ADR;DA的地址

CLRA

LOOP:

MOVXDPTR,A

INCA

ACALLDEL

CJNEA,#0FFH,LOOP

L2:

SJMPL1

L1:

MOVXDPTR,A

DECA

ACALLDEL

CJNEA,#0,L0

SJMPMAIN

DEL:

MOVR7,#5

DJNZR7,$

RET

END

3)程序3:

图中Δt=0.1ms,ΔV=10,阶梯波级数为10级。

DA_ADREQU7FFFH;DA的地址

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#DA_ADR;DA的地址

CLRA

MOVR7,#5

LOOP:

MOVXDPTR,A

ACALLDEL

ADDA,#51

DJNZR7,LOOP

SJMPMAIN

DEL:

MOVR6,#5

L1:

MOVR5,#255

DJNZR5,$

DJNZR6,L1

RET

END

8-11.答:

在启动A/D转换指令“MOVXDPTR,A”中,A中数据写到ADC0809的三态输出锁存缓冲器,A中的数据是什么都无所谓,因为这时数据输出允许信号无效,三态输出锁存缓冲器对外呈高阻状态。

DPTR中的地址包含了选中转换模拟量的模拟通道和START信号。

作用是使STAET信号有效从而启动A/D转换器进行转换,并同时使EOC信号为低电平表示转换开始。

读转换信号指令“MOVXA,DPTR”中,DPTR中的地址包含了选中转换模拟量的模拟通道和OE信号。

作用是使OE信号有效从而使数据经过三态输出锁存缓冲器输出,数据出现在数据总线上。

8-12.答:

程序如下;

ORG0000H

LJMPMAIN

ORG0003H

LJMPINT0

ORG0030H;主程序

MAIN:

DATAEQU30H

MOVR0,#DATA;设立数据存储区指针

MOVR2,#08H;设置8路采样计数值

SETBIT0;设置外部中断0为边沿触发方式

SETBEA;CPU开放中断

SETBEX0;允许外部中断0中断

MOVDPTR,#0BFFFH;送入口地址并指向INT0

LOOP:

MOVXDPTR,A;启动A/D转换,A的值无意义

HERE:

SJMPHERE;等待中断IN0

ORG0100H;中断服务程序

INT0:

MOVXA,DPTR;读取转换后的数字量

MOVR0,A;存入片RAM单元

DECDPL;指向下一模拟通道

INCR

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2