单片机提取数组最大值优秀word范文 10页Word格式.docx
《单片机提取数组最大值优秀word范文 10页Word格式.docx》由会员分享,可在线阅读,更多相关《单片机提取数组最大值优秀word范文 10页Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
解:
控制线一共有6条:
(1)ALE/PROG:
地址锁存允许/编程线,配合P0口引脚的第二功能使用。
在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。
在不访问片外存储器时,8051自动在ALE/PROG上输出频率为fosc/6的脉冲序列。
该脉冲序列可用作外部时钟源或作为定时脉冲源使用。
(2)EA/Vpp:
允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。
若EA=0,则允许使用片内ROM;
若EA=1则允许使用片外ROM。
(3)片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSENPSEN:
上产生一个负脉冲,用于为片外ROM芯片的选通。
其他情况下PSEN线均为高电平封锁状态。
(4)RST/VPD:
复位/备用电源线,可以使8051处于复位工作状态。
习题2
2.在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。
5.8051执行完MOVA,#08H后,PSW的(D)位被置位。
CB:
F0C:
OVD:
P
11.片内RAM20H~2FH单元中的128个位地
址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?
解:
位寻址是直接寻址方式的一种。
虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过以下的方法区分:
1.通过指令操作码(指令的类型)区分:
位操作只有17条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这
些指令是无效的。
MOVC,bitCPLbit(C)JBbit,rel
MOVbit,CORLC,bit(/bit)JNBbit,rel
CLRbit(C)ANLC,bit(/bit)JCrel
SETBbit(C)JBCbit,relJNCrel
位操作只有MOV、CLR、SETB、CPL、ORL、ANL、JB、JNB、JBC、JC、JNC几种操作码,其中:
JB、JNB、JBC、JC、JNC是位寻址特有的。
2.当指令操作码一样时,可通过操作数的表现形式来区分。
直接位地址的表示方法有:
(1)直接使用位地址形式。
如:
MOV00H,C
(2)字节地址加位序号的形式。
MOV20H.0,C
(3)位的符号地址(位名称)的形式。
ANLC,P
(4)字节符号地址(字节名称)加位序号的形式。
CPLPSW.6
3.可通过指令中的累加器区分:
位操作中的累加器为C,单元操作中的累加器为A。
13.在“MOVCA,@A+DPTR”和“MOVCA,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?
使用中有何不同?
使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到
被访问字节地址的偏移量。
使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。
15.设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。
执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?
PUSH30H
PUSH31H
POPDPL
POPDPH
MOV30H,#00H
MOV31H,#0FFH
结果为:
61H、62H单元为堆栈单元,其内容已被弹出栈。
(30H)=00H
(31H)=0FFH(DPTR)=2410H(SP)=60H
19.编程将片内RAM的40H~60H单元中内容送到片外RAM以3000H开始的单元中。
并将原片内RAM数据块区域全部清0。
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#60H
MOVR7,#21H
MOVR0,#40H
MOVDPTR,#3000H
LOOP:
MOVA,@R0
MOVX@DPTR,A
MOV@R0,#00H
INCR0
INCDPTR
DJNZR7,LOOP
SJMP$
END
20.编程计算片内RAM区30H~37H的8个单元中数的算术平均值,结果存放在3AH单元中。
MOVR0,#30H
MOVR1,#00H
MOVR2,#00H
MOVR3,#08H
LP2:
ADDA,R2
MOVR2,A
JNCLP1
INCR1
LP1:
INCR0
DJNZR3,LP2
MOVR3,#03H
CLRC
LP3:
MOVA,R1
RRCA
MOVR1,A
MOVA,R2
DJNZR3,LP3
MOV3AH,R2
22.设有两个长度均为15的数组,分别存放在片外RAM以201XH和2100H开始的存储区中,试编程求其对应项之和,结果存放在以2200H为首地址的存储区中。
ORG0000H
LJMPMAIN
ORG0030h
MAIN:
MOVDPTR,#201XH
MOVA,#OFFH
MOVX@DPTR,A
MOVDPTR,#2100H
LOOP:
LOOP1:
MOVMOVXMOVMOVMOVXMOVMOVMOVXMOVMOVMOVXMOVMOVMOVXMOVMOVMOVMOVXMOVINCINCDJNZMOVMOVMOVMOVA,#34H@DPTR,ADPTR,#201XHA,#33H@DPTR,ADPTR,#2108HA,#44H@DPTR,ADPTR,#200EHA,#0EEH@DPTR,ADPTR,#210EHA,#32H@DPTR,ADPTR,#201XHR1,#30HR2,#15A,@DPTR@R1,ADPTRR1R2,LOOPR1,#30HDPTR,#2100HR2,#15R0,#40HMOVXA,@DPTRCLRCADDCA,@R1MOV@R0,AINCDPTRINCR1INCR0DJNZR2,LOOP1
MOVDPTR,#2200H
MOVR2,#15
MOVR0,#40H
LOOP2:
MOVA,@R0
MOVX@DPTR,A
DJNZR2,LOOP2
习题3
8.在数据通信中,有数据传送方式有(单工)、(半双工)、(全双工)、(多工)四种方式。
9.设置串行口为10位UART,则其工作方式应选用为(工作方式1)。
19.控制串行接口工作方式的寄存器是(C)。
TCONB:
PCONC:
SCOND:
TMOD
24.简述MCS-51单片机的中断响应过程。
单片机一旦响应中断请求,就由硬件完成以下功能:
(1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;
(2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈,保护
断点,寻找中断源;
(3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);
(4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。
(5)中断返回,程序返回断点处继续执行。
31.MCS-51的中断服务程序能否存放在64KB程序存储器的任意区域?
如何实现?
解:
可以。
在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMPAdd16),转到相应64K程序存储器的任意地址(Add16)处,执行相应的中断程序。
习题4
9.扩展外部存储器时要加锁存器74LS373,其作用是(A)。
锁存寻址单元的低八位地址B:
锁存寻址单元的数据
C:
锁存寻址单元的高八位地址D:
锁存相关的控制和选择信号
16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?
程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,并且,访问二者的指令也不同。
因此,两者虽然共处于同一地址空间,但由于控制信号和访问指令不同,所以不会发生总线冲突。
17.某一单片机应用系统,需扩展4KB的EPROM和2KB的RAM,还需外扩一片8255并行接口芯片,采用线选法,画出硬件连接图,并指出各芯片的地址范围。
硬件连接图如下图所示。
图4.17题硬件连接电路图
注:
8255的复位线RESET应与MCS-51的RESET线连上。
复位、晶振电路应画上。
各芯片的地址范围为:
2732:
E000H~EFFFH6116:
D800H~DFFFH8255:
BFFCH~BFFFH
20.8255A有几种工作方式?
如何选择工作方式?
A口和B口的工作方式是否完全相同?
8255A有3种工作方式:
方式0、方式1和方式2。
①方式0(基本输入/输出方式)。
这种方式不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。
②方式1(选通输入/输出方式)。
这种工作方式下,A组包括A口和C口的高四位(PC7~
篇三:
单片机实验报告
单片机实验报告
【实验一】
一、实验名称:
分支循环程序设计
二、实验内容:
30H~3FH单元中存放了16个无符号数,编写程序找出最大值,存放到40H单元中。
三、实验代码:
org0000hljmpmainorg0030h
movsp,#60h
mov40h,30h
movr2,#16
movr0,#30h
clrc
mova,40h
subba,@r0
jnclp1
mov40h,@r0
incr0
djnzr2,lp2
sjmp$
endmain:
lp2:
lp1:
四、实验结果:
结果分析:
将片内地址30H~3FH的内存分别改为如上值,运行之后0x40的值为30H~3FH中的最大值8C。
【实验二】
外部中断实验
单片机的P1.0引脚连接LED指引灯D0;
单片机的P3.2引脚(INT0)连接按键开关K,作为按键都会触发INT0中断;
在INT0中断服务程序中将P1.0端口的信号取反,使LED指示灯D0在点亮和熄灭两种状态间切换,产生LED指示灯由按键开关K控制的效果。
org0000hljmpmainorg0003hljmpe_intorg0100hmovsp,#60hsetbit0setbeasetbex0sjmp$org0200hcplP1.0retiendmain:
e_int:
如图所示,按K键,LED实现切换。