单片机原理及其接口技术王敏课后作业答案.docx

上传人:b****2 文档编号:11674361 上传时间:2023-06-02 格式:DOCX 页数:21 大小:79.09KB
下载 相关 举报
单片机原理及其接口技术王敏课后作业答案.docx_第1页
第1页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第2页
第2页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第3页
第3页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第4页
第4页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第5页
第5页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第6页
第6页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第7页
第7页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第8页
第8页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第9页
第9页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第10页
第10页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第11页
第11页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第12页
第12页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第13页
第13页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第14页
第14页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第15页
第15页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第16页
第16页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第17页
第17页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第18页
第18页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第19页
第19页 / 共21页
单片机原理及其接口技术王敏课后作业答案.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机原理及其接口技术王敏课后作业答案.docx

《单片机原理及其接口技术王敏课后作业答案.docx》由会员分享,可在线阅读,更多相关《单片机原理及其接口技术王敏课后作业答案.docx(21页珍藏版)》请在冰点文库上搜索。

单片机原理及其接口技术王敏课后作业答案.docx

单片机原理及其接口技术王敏课后作业答案

标准化管理部编码-[99968T-6889628-J68568-1689N]

 

单片机原理及其接口技术王敏课后作业答案

第二章作业(P40)

2-4MCS-51单片机中执行程序的地址放在哪由几个位组成最大寻址范围是多少

答:

放在程序计数器PC中,16位,64KB。

2-5在程序存储器中,0000H、0003H、000BH、0013H、001BH、0023H这6个单元有什么特定的含义

答:

0000H复位后,PC=0000H,开始执行程序的地址

0003H外部中断0(INT0)入口地址

000BH定时器0中断(TF0)入口地址

0013H外部中断1(INT1)入口地址

001BH定时器1中断(TF1)入口地址

0023H串行口中断TI/RI入口地址

2-10开机复位以后,CPU使用哪一组工作寄存器它们的地址是什么如何改变当前工作寄存器

答:

使用第0组工作寄存器,00H-07H,通过修改PSW中的RS1和RS0两位来改变当前的工作寄存器。

第三章作业(P75)

3-7指出指令中的50H或66H个代表什么

解:

①MOVA,#50H立即数

MOVA,50H直接地址

MOV50H,#20H直接地址

MOVC,50H位地址

MOV50H,20H直接地址

②MOV@R0,#66H立即数

MOVR6,#66H立即数

MOV66H,#45H直接地址

MOV66H,C位地址

MOV66H,R1直接地址

3-9写出能完成下列数据传送的指令:

解:

①R1中内容传送到R0;

MOVA,R1

MOVR0,A

②内部RAM20H单元中的内容送到30H单元;

MOV30H,20H

③外部RAM20H单元中的内容送到内部RAM20H单元;

MOVR0,#20H

MOVXA,@R0

MOV20H,A

④外部RAM2000H单元中的内容送到内部RAM20H单元;

MOVDPTR,#2000H

MOVXA,@DPTR

MOV20H,A

⑤外部ROM2000H单元中的内容送到内部RAM20H单元;

MOVDPTR,#2000H

MOVA,#00H

MOVCA,@A+DPTR

MOV20H,A

⑥外部2000H单元中的内容送到外部RAM3000H单元;

MOVDPTR,#2000H

MOVXA,@DPTR

MOVDPTR,#3000H

MOVX@DPTR,A

3-11已知:

(20H)=X;(21H)=Y;(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少

①MOVSP,#70H②MOVSP,#60H

PUSH20HPUSH22H

PUSH21HPUSH21H

PUSH22HPUSH20H

解:

(73H)=Z;

(72H)=Y;

(71H)=X;

(63H)=X;

(62H)=Y;

(61H)=Z;

3-20试编出能完成如下操作的程序:

解:

①使20H单元中数的高两位变“0”,其余位不变;

ANL20H,#3FH

②使20H单元中数的高两位变“1”,其余位不变;

0RL20H,#0C0H

③使20H单元中数的高两位变反,其余位不变;

XRL20H,#0C0H

④使20H单元中数的高四位变“1”,低四位变“0”;

MOV20H,#0F0H

⑤使20H单元中数的所有位变反。

XRL20H,#0FFH

3-27已知:

外部RAM2000H为始址的存储区有20个带符号补码数,请编一程序把正数和正零取出来放到内部RAM20H为始址的存储区(负数和负零不作处理)。

解:

ORG0000H

AJMPMAIN

ORG0100H

MAIN:

MOVR0,#14H

MOVR1,#20H

MOVDPTR,#2000H

ROT:

MOVXA,@DPTR

JB,NEXT

MOV@R1,A

INCR1

NEXT:

INCDPTR

DJNZR0,ROT

SJMP$

END

第四章作业(P104)

4-7已知RAM的BLOCK单元,请编写其中可以统计正负数个数分别存入NUM和NUM+1单元的程序。

解:

ORG0100H

LENDATA20H

NUMDATA21H

BLOCKDATA23H

MAIN:

MOVNUM,#00H

MOVNUM+1,#00H

MOVR0,#BLOCK

LOOP:

MOVA,@R0

JNB,POSI

INCNUM+1

SJMPNEXT

POSI:

INCNUM

NEXT:

INCR0

DJNZLEN,LOOP

SJMP$

END

4-9外部RAM从2000H-2100H单元有一数据块,请编出将它们传送到外部RAM3000H-3100H区域的程序。

解:

采用当型循环,判断程序结束条件

ORG1000H

MOVDPTR,#2000H

NEXT:

MOVXA,@DPTR

ORLDPH,#10H;将DPH中的20H变成30H

MOVX@DPTR,A

ANLDPH,#0EFH;将DPH中的30H变成20H

INCDPTR

MOVA,DPH

CJNEA,#21H,NEXT

MOVXA,@DPTR;将2100H单元的数据送A

MOVDPH,#31H

MOVX@DPTR,A;将A的数据送3100H单元

SJMP$

END

4-11将内部RAM的AAA单元中8位无符号数转换成BCD码表示的十进制数。

(要求用连续除10的方法实现)

解:

ORG0100H

AAADATA20H

BAIDATA21H

SHIDATA22H

GEDATA23H

MOVA,AAA

MOVB,#0AH

DIVAB

MOVGE,B

MOVB,#0AH

DIVAB

MOVSHI,B

MOVBAI,A

SJMP$

END

4-15请编写能从内部RAM的BLOCK为起始地址的20个无符号数找出最小值,并把它送到MIN单元的程序。

解:

ORG0100H

MINDATA20H

BLOCKDATA21H

MAIN:

MOVR0,#BLOCK

MOVR2,#13H

MOVA,@R0

LOOP:

INCR0

MOVB,@R0

CJNEA,B,NEXT

NEXT:

JCNEXT1

MOVA,@R0

NEXT1:

DJNZR2,LOOP

MOVMIN,A

SJMP$

END

第五章作业(P155)

6-4编程,利用定时器T0(工作在方式1)产生一个50Hz的方波,由输出,晶振频率为12MHz。

解:

按照题意,定时器T0需要工作在方式1定时10ms,则TMOD控制字为01H;已知fosc=12MHz,则机器周期为1μs。

定时初值=216–10ms/1μs=55536=D8F0H,即TH0=0D8H,TL0=0F0H。

则相应的程序如下:

ORG0000H

AJMPSTART

ORG2000H

START:

MOVTMOD,#01H;写入工作方式字

MOVTH0,#0D8H;写入计数初值

MOVTL0,#0F0H

SETBTR0;启动T0

LOOP:

JBCTF0,PE;TF0=1溢出转移PE,并清除TF0

AJMPLOOP;TF0为0转LOOP等待

PE:

MOVTH0,#0D8H;重装初值

MOVTL0,#0F0H

CPL;取反

AJMPLOOP;转LOOP等定时时间到

END

6-5在8051单片机中,已知晶振频率为12MHz,试编程使和分别输出周期为2ms和500ms的方波。

设晶振频率为6MHz,试用T0作为外部计数器,编程实现每当计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环下去。

解:

1)按照题意,定时器T0需要工作在方式1定时1ms,则TMOD控制字为01H;已知fosc=12MHz,则机器周期为1μs。

定时初值=216–1ms/1μs=64536=FC18H,即TH0=0FCH,TL0=18H。

则相应的程序如下:

主程序:

ORG1000H

START:

MOVTMOD,#01H

MOVTH0,#0FCH

MOVTL0,#18H

MOVIE,#82H;开T0中断

SETBTR0;启动T0

MOVR0,#0FAH;软件计数器赋初值

LOOP:

SJMP$;等待中断

中断程序:

ORG000BH

AJMPBRT0

ORG0080H

BRT0:

CPL

DJNZR0,NEXT;250ms未到,转NEXT

CPL;250ms到,改变电平

MOVR0,#0FAH

NEXT:

MOVTH0,#0FCH

MOVTL0,#18H

RETI

END

2)按照题意,定时器T0需要工作在方式1计数方式,定时器T1需要工作在方式1定时方式,则TMOD控制字为15H;T0计数初值为216–1000=64536=FC18H,即TH0=0FCH,TL0=18H;已知fosc=6MHz,则机器周期为2μs。

T1定时初值=216–2ms/2μs=64536=FC18H,即TH1=0FCH,TL1=18H。

则相应的程序如下:

ORG2000H

START:

MOVTMOD,#15H;写入工作方式字

MOVTH0,#0FCH;写入计数初值

MOVTL0,#18H

MOVTH1,#0FCH

MOVTL1,#18H

SETBTR0;启动T0

LOOP:

JBCTF0,PE;TF0=1溢出转移PE,并清除TF0

AJMPLOOP;TF0为0转LOOP等待

PE:

SETBTR1;启动T1定时,关T0计数

CLRTR0

LOOP1:

JBCTF1,PE1;TF1=1溢出转移PE1,并清除TF1

AJMPLOOP1;TF1为0转LOOP1等待

PE1:

MOVTH0,#0FCH;重装初值

MOVTL0,#18H

MOVTH1,#0FCH

MOVTL1,#18H

SETBTR0;启动T0计数,关T1定时

CLRTR1

AJMPLOOP

END

6-6已知单片机系统时钟频率为6MHz,若要求定时值分别为、1ms和10ms,定时器T0工作在方式0、方式1和方式2时,定时器对应的初值各为多少

解:

已知fosc=6MHz,则机器周期为2μs。

方式0的初值分别为:

8142(1FCEH),即TH0=0FEH,TL0=0EH;7692(1E0CH),即TH0=0F0H,TL0=0CH;3192(0C78H),即TH0=63H,TL0=18H。

方式1的初值分别为:

65486(FFCEH);65036(FE0CH);60536(EC78H)。

方式2定时的初值为206(CEH),不能直接定时1ms和10ms。

第六章作业(P210)

8-2什么是半双工、全双工方式MCS-51单片机属于哪种传送方式

解:

1)半双工方式——通信双方只有一条双向传输线,允许数据双向传送,但每个时刻上只能有一方发送,另一方接收,这是一种能够切换传送方向的单工方式;

2)全双工方式——通信双方有两条传输线,允许数据同时双向传送,其通信设备应具有完全独立的收发功能。

单片机属于全双工传送方式。

8-6设串行口通信波特率为2400bps,异步帧信号由8位数据,无校验位和一个停止位组成,请问传输1024个字节数据,需要多少时间

解:

每一个字符规定包含10个位(一个起始位、8个数据位和1个停止位),则每秒钟可以传送240个字节数据,传输1024个字节数据共需要秒

8-7请用中断法编出串行口方式1下的发送程序,设单片机主频为6MHz,波特率为1200bps,发送数据缓冲区在外部RAM,始址为Tblock,数据块长度为30,采用偶校验,放在发送数据第8位(数据块长度不发送)。

解:

串行口工作在方式1,定时器T1工作在方式2,作为波特率发生器。

定时常数:

X=256―(fosc*2SMOD)/(384*波特率)

取SMOD=1,则X==230=E6H。

(若取SMOD=0,则X=F3H)

采用中断方式编程,单片机发送程序如下:

主程序:

ORG2000H

TblockDATA2000H

MOVTMOD,#20H;定时器(波特率)初始化

MOVTL1,#0E6H

MOVTH1,#0E6H

CLRET1;关定时器T1中断

SETBTR1;启动T1

MOVSCON,#40H;串行口初始化(方式1)

MOVPCON,#80H;SMOD=1

MOVDPTR,#Tblock

MOVR7,#1EH

TRS:

MOVXA,@DPTR

MOVC,

MOV,C

MOVSBUF,A;启动发送

DECR7

INCDPTR

SETBEA;允许串行口中断

WAIT:

SETBES

SJMPWAIT;等待串行口中断

中断服务程序:

ORG0023H

LJMPSBV

ORG0100H

SBV:

CLRES

CLRTI

MOVXA,@DPTR

MOVC,

MOV,C

MOVSBUF,A;启动发送

DJNZR7,NEXT

SJMP$

NEXT:

INCDPTR

RETI;中断返回

END

第七章作业(补充题)

7-1如下图所示8051的~接有4个发光二极管,~接有4个开关,最下方按键用于产生中断请求信号。

每中断一次,采集一次~的开关状态反映到~的发光二极管上。

解:

程序清单如下:

ORG0000H;主程序

SJMPMAIN

ORG0003H

AJMPINT0;转入服务程序

ORG0030H

MAIN:

SETBIT0;设INT0为边沿触发

SETBEX0;允许INT0中断

SETBEA;开放总允许

SJMP$

INT0:

ORLP1,#0FH;中断服务程序:

MOVA,P1;从P1口输入开关状态

SWAPA;交换高、低4位

XRLA,#0F0H;低4位不变,高4位取反

MOVP1,A;输出

RETI

END

7-2单片机P1端口并行连接两只共阴极数码管显示器,利用扫描方式循环显示两位数00、01、02、……98、99。

1)写出共阴极接法下数码管显示0~9的字型码;

2)编写程序实现上述功能。

解:

1)3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

2)程序清单如下:

ORG0000H

AJMPMAIN

ORG000BH

AJMPTIMER

ORG0030H

TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

MAIN:

MOVR0,#00H

MOVDPTR,#30H

MOVTMOD,#01H

MOVTH0,#0D8H

MOVTL0,#0F0H

SETBET0

SETBEA

SETBTR0

START:

INCR0

CJNER0,#100,NEXT

MOVR0,#00H

NEXT:

MOVA,R0

MOVB,10

DIVAB

MOVR1,A;十位缓存

MOVR2,B;个位缓存

MOVR4,#200

DELAY:

MOVR5,#200

DJNZR5,$

DJNZR4,DELAY

AJMPSTART

TIMER:

CLRTR0

MOVA,R1

MOVCA,@A+DPTR

MOVP1,A

SETB

MOVR6,#200

DJNZR6,$

CLR

MOVA,R2

MOVCA,@A+DPTR

MOVP1,A

SETB

MOVR6,#200

DJNZR6,$

CLR

MOVTH0,#0D8H

MOVTL0,#0F0H

SETBTR0

RETI

END

第八章作业(补充题)

8-1根据图9-3电路,请编写如下图所示梯形波,要求梯形波的下底由8031内部定时器实现。

(设fosc=12MHz)

解:

ORG0000H

AJMPSTART

ORG0100H

START:

MOVTMOD,#10H;写入工作方式控制字

MOVTH1,#3CH;写入计数初值

MOVTL1,#B0H

MOVR0,#0FEH

CLRA

DOWN:

MOVX@R0,A;线性下降段

INCA

JNZDOWN

SETBTR1;启动T1工作

WAIT:

JBCTF1,NEXT;等待50ms时间到

SJMPWAIT

NEXT:

CLRTR1;关闭T1

MOVTH1,#3CH;重装计数初值

MOVTL1,#B0H

MOVA,#0FEH

UP:

MOVX@R0,A;线性上升段

DECA

JNZUP

SJMPDOWN

END

8-2用查询和中断方式实现AD转换编程,要求对通道5连续采集3次取中值作为本次采样值,并存于内部RAM30H单元。

中断方法:

;主程序……

ORG0100H

START:

MOVR0,#0F0H

MOVR1,#30H

MOVR2,#05H;IN5通道号

MOVR3,#03H;循环次数

SETBEA

SETBEX1;开外中断0

SETBIT1;中断请求信号为下降沿触发

MOVA,R2;选通道IN5

MOVX@R0,A;启动A/D转换

LOOP:

SJMPLOOP;等待中断

;中断服务程序

……

ORG1000H

ADINT0:

MOVXA,@R0;读取A/D转换数据

MOV@R1,A;存储数据

INCR1;数据指针加1

DJNZR3,ROT

ACALLADSHUJU;调用数据处理子程序

CLREX0

JMPEXIT

ROT:

MOVA,R2

MOVX@DPTR,A;启动A/D转换

EXIT:

RETI

;数据处理子程序

ADSHUJU:

MOVA,30H

CJNEA,31H,NEXT1

NEXT1:

JCNEXT2

XCHA,31H;≥交换

NEXT2:

CJNEA,32H,NEXT3

NEXT3:

JCNEXT4

XCHA,32H;≥交换

NEXT4:

MOV30H,A;(30H)=Min

MOVA,31H

CJNEA,32H,NEXT5

NEXT5:

JCNEXT6

XCHA,32H;≥交换

NEXT6:

MOV31H,A;(31H)=Mid,(32H)=Max

MOV30H,31H;取中间数送(30H)

RET

END

查询方法:

;主程序

……

ORG0100H

SETB

START:

MOVR0,#0F0H

MOVR1,#30H

MOVR2,#05H;IN5通道号

MOVR3,#03H;循环次数

MOVA,R2;选通道IN5

MOVX@R0,A;启动A/D转换

WAIT0:

JNB,WAIT0;等待转换开始

WAIT:

JB,WAIT;查询转换是否结束

ADINT0:

MOVXA,@R0;读取A/D转换数据

MOV@R1,A;存储数据

INCR1;数据指针加1

DJNZR3,ROT

ACALLADSHUJU;调用数据处理子程序

JMPEXIT

ROT:

MOVA,R2

MOVX@DPTR,A;启动A/D转换

JMPWAIT

;数据处理子程序

ADSHUJU:

MOVA,30H

CJNEA,31H,NEXT1

NEXT1:

JCNEXT2

XCHA,31H;≥交换

NEXT2:

CJNEA,32H,NEXT3

NEXT3:

JCNEXT4

XCHA,32H;≥交换

NEXT4:

MOV30H,A;(30H)=Min

MOVA,31H

CJNEA,32H,NEXT5

NEXT5:

JCNEXT6

XCHA,32H;≥交换

NEXT6:

MOV31H,A;(31H)=Mid,(32H)=Max

MOV30H,31H;取中间数送(30H)

RET

EXIT:

END

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

当前位置:首页 > 经管营销 > 经济市场

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

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