单片机3Word文件下载.docx

上传人:b****3 文档编号:18318668 上传时间:2022-12-15 格式:DOCX 页数:16 大小:89.40KB
下载 相关 举报
单片机3Word文件下载.docx_第1页
第1页 / 共16页
单片机3Word文件下载.docx_第2页
第2页 / 共16页
单片机3Word文件下载.docx_第3页
第3页 / 共16页
单片机3Word文件下载.docx_第4页
第4页 / 共16页
单片机3Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机3Word文件下载.docx

《单片机3Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机3Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

单片机3Word文件下载.docx

9.指出8051可进行位寻址的存储空间。

答:

00~7FH(即20H.0~2FH.7)及SFR地址能被8整除的寄存器中的各位。

12.什么是时钟周期?

什么是机器周期?

什么是指令周期?

当振荡频率为12MHz时,一个机器周期为多少微秒?

时钟周期:

也称振荡周期,即振荡器的振荡频率fosc的倒数,是时序中最小的时间单位。

机器周期:

执行一条指令的过程可分若干个阶段,每一阶段完成一规定的操作,完成一个规定操作所需要的时间称为一个机器周期,一个机器周期包含12个时钟周期。

当振荡频率为12MHz时,一个机器周期为12/(12×

1000000)秒=1微秒

指令周期:

定义为执行一条指令所用的时间。

当振荡频率为12MHz时,一个指令周期为1、2、4

us。

说说近年来出现的单片机片内存储器包含哪些种类。

近年来出现的单片机片内存储器包含ROM和RAM,一般ROM都是FLASH,有些单片机片内还包含EEPROM。

单片机片内RAM都是SRAM.

第三章

8.查找20H~4FH单元中出现00H的次数,并将查找结果存入50H单元。

MOVR3,#30H

MOVR0,#20H

MOV50H,#00H

LOP:

MOVA,@R0

JZLOP1

LOP3:

INCR0

DJNZR3,LOP

AJMPLOP2

LOP1:

INC50H

AJMPLOP3

LOP2:

AJMPLOP2

9.已知A=83H,R0=17H,(17H)=34H,写出下列程序段执行完后的A中的内容。

ANLA,#17H

ORL17H,A

XRLA,@R0

CPLA

(A)=11001011B=0CBH

21.内部RAM的DATA1和DATA2单元开始存放着两个等长的数据块,数据块的长度在LEN单元中。

请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。

MOVR0,#DATA1

MOVR3,LEN

LOP:

MOVA,@R0

CJNZA,DATA2,LOP1

INCDATA2

MOVA,#0FFH

MOVRESULT,A

LOP1:

MOVA,#0

MOVRESULT,A

LOP2:

END

第4章习题答案

7.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,问在什么情况下可响应新的中断请求?

在什么情况下不能响应新的中断请求?

当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,当新中断源中断级别比正在执行中断源的中断级别高时可响应新的中断请求,否则不能响应新的中断请求。

9.8051单片机有5个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。

问以下几种中断优先级顺序的安排(级别由高到低)是否可能?

如可能,则应如何设置中断源的中断级别?

否则,请叙述不可能的理由。

(1)定时器0,定时器1,外中断0,外中断1,串行口中断。

可能。

其中:

定时器0,定时器1为高优先级。

(2)串行口中断,外中断0,定时器0,外中断1,定时器1。

串行口中断为高优先级。

(3)外中断0,定时器1,外中断1,定时器0,串行口中断。

不可能。

外中断0,定时器1为高优先级,剩下的没有按自然优先级顺序。

(4)外中断0,外中断1,串行口中断,定时器0,定时器1。

外中断0,外中断1,串行口中断为高优先级。

(5)串行口中断,定时器0,外中断0,外中断1,定时器1。

串行口中断为高优先级,剩下的没有按自然优先级顺序。

(6)外中断0,外中断1,定时器0,串行口中断,定时器1。

外中断0,外中断1为高优先级,剩下的没有按自然优先级顺序。

(7)外中断0,定时器1,定时器0,外中断1,串行口中断。

外中断0,定时器1为高优先级。

第5章习题答案

4.定时器/计数器0已预置为156,且选定用于模式2的计数方式,现在T0引脚上输入周期为1ms的脉冲,问:

(1)此时定时器/计数器0的实际用途是什么?

(2)在什么情况下,定时器/计数器0溢出?

(1)此时定时器/计数器0的实际用途是0.1S脉冲信号发生器。

(2)当T0每记数100次后定时器/计数器0溢出。

8.已知8051单片机的fosc=6MHz,试利用T0和P1.0输出矩形波。

矩形波高电平宽100μs,低电平宽300μs。

解:

先确定T0作为定时器工作于模式2时初值为:

高电平为50,低电平为150。

采用中断方式编程。

ORG0000H

AJMPMAIN

ORG001BH

AJMPTIM0

ORG0030H

MAIN:

MOVSP,#30H;

设置栈底

MOVTMOD,#02H

MOVTL0,#206

MOVIE,#82H

SETBP1.0

SETBTR0

SJMP$

TIM0:

JNBP1.0,AA

CLRP1.0

MOVTL0,#106

RETI

AA:

MOVTL0,#206

第6章习题答案

补充1:

某异步串行接口其格式由一个起始位,七个数据位,一个奇校验位和一个停止位组成,设该接口每分钟传送1800个字符。

a)请计算传送的波特率;

b)画出传输一个字节32H的帧格式。

a)1800×

10=18000bits

18000bits÷

60s=300bps

b)

补充2:

甲乙单片机均工作在方式1下,采用奇校验,波特率为1200bps(晶振为11.0592MHz),甲机发送两个字节51H和37H给乙机,试编写双机通信子程序。

甲机发:

ORG2000H

START:

MOVTMOD,#20H;

定时器1设为模式2

MOVTL1,#0E8H

MOVTH1,#0E8H;

置定时器初值

SETBTR1;

启动T1

MOVSCON,#50H;

将串行口设置为方式1,REN=1

MOVPCON,#00H;

SMOD=0

MOVA,#51H

MOVC,P

CPLC

MOVACC.7,C

MOVSBUF,A

JNBTI,$

CLRTI

MOVA,#37H

RET

乙机收:

MOVR1,#20H;

接收数据区首地址→R1

MOVR2,#2;

置发送数据个数→R2

WAIT:

JBCRI,PRI;

等待接收到数据

SJMPWAIT

PRI:

MOVA,SBUF;

读接收数据

MOVC,ACC.7

ANLA,#7FH

JNBC,PZEO;

C=0则跳转

JBP,ERR;

C=1,P=1转至出错

SJMPRIGHT;

转至正确

PZEO:

JNBP,ERR;

P=0,C=0转至出错

RIGHT:

MOV@R1,A;

存放数据

INCR1;

指向下一个存储单元

DJNZR2,WAIT;

未接收完则继续接收

ERR:

CLRREN

SETBF0;

置F0=1

END

第7章习题答案

9.设某一8051单片机系统,拟扩展2片2764EPROM芯片和2片6264SRAM芯片,试画出电路图,并说明存储器地址分配情况。

答案:

电路图如下:

存储器地址分配:

2764

(1):

C000H~DFFFH;

2764

(2):

A000H~BFFFH;

6264

(1):

6264

(2):

A000H~BFFFH。

14.试设计一个8051应用系统,使该系统扩展1片27256、1片6264和1片8155。

请画出系统电路图,并分别写出各芯片的地址。

各芯片的地址如下:

27256:

0000H~7FFFH;

6264:

8155:

RAM地址:

7E00H~7EFFH

命令/状态口:

7F00H

PA口:

7F01H

PB口:

7F02H

PC口:

7F03H

定时器低8位:

7F04H

定时器高8位:

7F05H

第8章习题答案

6.矩阵式键盘如何实现中断方式?

请在图8-4的基础上设计中断式键盘,并编写相应中断处理子程序。

中断处理子程序:

KINT:

ACALLDELAY10;

延时消抖

ACALLKS1;

再次判断有无键按下

JNZLK2;

确实有键按下,转列扫描

AJMPKEY_1;

是键抖动,重新扫描

LK2:

MOVR2,#0FEH;

首列扫描字

MOVR4,#00H;

首列号

LK4:

MOVDPTR,#7F01H

MOVA,R2

MOVX@DPTR,A;

列扫描字送PA口

INCDPTR

INCDPTR;

指向PC口

MOVXA,@DPTR;

读入行状态

JBACC.0,LONE;

第0行有键按下?

MOVA,#00H;

有键按下,行号送A

AJMPLKP;

转键值处理

LONE:

JBACC.1,LTWO;

第1行有键按下?

MOVA,#08H;

LTWO:

JBACC.2,LTHR;

第2行有键按下?

MOVA,#10H;

LTHR:

JBACC.3,NEXT;

第3行有键按下?

MOVA,#18H;

LKP:

ADDA,R4;

键值处理

PUSHACC

LK3:

ACALLKS1;

判断按键是否释放

JNZLK3

POPACC

RET

NEXT:

INCR4;

列号加1

MOVA,R2;

判断是否8列扫描完毕

JNBACC.7,KND;

扫描完,返回

RLA;

转下列扫描

MOVR2,A

AJMPLK4

KND:

AJMPKEY_1

KS1:

MOVDPTR,#7F01H;

判断有无键按下子程序

MOVA,#00H

MOVX@DPTR,A

MOVXA,@DPTR

CPLA

ANLA,#0FH

RET

DELAY12:

MOVR7,#18H;

延时12ms子程序

TM:

MOVR6,#0FFH

TM6:

DJNZR6,TM6

DJNZR7,TM

RETI

7.状态或数码显示时,对LED的驱动可采用低电平驱动,也可以采用高电平驱动,二者各有什么特点?

高电平驱动要采用共阴极数码管,必须外接上拉电阻;

低电平驱动要采用共阳极数码管,电源效率相对较高。

实验部分答案

题1:

已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,写出下列各条指令执行后A和PSW的内容。

(1)XCHA,R030H,80H

(2)XCHA,30H0A5H,80H

(3)XCHA,@R00A5H,80H

(4)XCHDA,@R075H,81H

(5)SWAPA0A7H,81H

(6)ADDA,R00AAH,04H

(7)ADDA,30H1FH,81H

(8)ADDA,#30H0AAH,04H

(9)ADDCA,30H20H,0C1H

(10)SUBBA,#30H49H,01H

题2:

已知单片机使用6MHz晶体,试编写一个延时1ms和1s的程序。

晶振频率为6MHz,一个机器周期为2µ

s,

延时1ms的子程序:

执行时间(机器周期)

DELAY1MS:

MOVR7,#0F9H1

LOOP:

DJNZR7,LOOP2

RET2

该程序段的总的执行时间为:

(1+2×

249+2)*2s=1002µ

s≈1ms

延时时间为1s的子程序:

DELAY1S:

MOVR6,#04H;

对延时100ms的子程序循环1000次

DE1S2:

MOVR5,#0FAH。

DE1S3:

LCALLDELAY1MS

DJNZR5,DE1S3

DJNZR6,DE1S2

RET

题3:

编写程序完成将片外数据存储器地址为1000H~1030H的数据块,全部传送到片内RAM30H~60H中,并将原数据块区域全部清零。

MOVDPTR,#1000H

MOVR0,#30H

MOVR7,#31H

RYCL:

MOVXA,@DPTR

MOV@R0,A

CLRA

MOVX@DPTR,A

DJNZR7,RYCL

题4:

请写出能实现下列功能的程序段。

(1)16位二进制数放在20H和21H单元中(高8位在20H),

请将该数除2。

(2)16位二进制数放在30H和31H单元中(高8位在30H),

将其内容加1。

(3)将DPTR内容减5。

(4)有三个位变量X、Y、Z,请编写程序实现Y=X+YZ的逻辑关系式。

(1)MOVA,20H

CLRC

RRCA

MOV20H,A

MOVA,21H

MOV21H,A

(2)MOVA,31H

ADDA,#01H

MOV31H,A

MOVA,30H

ADDCA,#00H

MOV30H,A

(3)MOVA,DPL

SUBBA,#05H

MOVDPL,A

MOVA,DPH

SUBBA,#00H

MOVDPH,A

(4)Xbit00H

Ybit01H

Zbit02H

MOVC,Y

ANLC,Z

ORLC,X

MOVY,C

题5:

将内部RAM30H为起始地址的数据块传送到外部RAM1000H开始的连续区域,直到发现”$”字符(24H)为止。

ORG2000H

NEXT:

MOVA,@R0

CJNEA,#24H,LOOP

SJMPDONE

LOOP:

MOVX@DPTR,A

INCDPTR

SJMPNEXT

DONE:

SJMP$

题6:

设有a、b、c三个数(0~9),存于内部RAM的BUF1、BUF2、BUF3三个单元。

编程实现c=a*a+b*b。

STAR:

MOVA,BUF1

ACALLSQR

MOVR1,A

MOVA,BUF2

ADDA,R1

MOVBUF3,A

HEAR:

SJMPHEAR

SQR:

MOVB,A

MULAB

RET

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

当前位置:首页 > 自然科学 > 物理

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

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