单片机与接口技术 知识点
.组成32M*8位的存储器,需要2M*4位的存储芯片 32 片。
. 二进制数0110 0101所对应的的十六进制数是65H 。
.二进制数1100 1111所对应的的十六进制数是CFH。
.MCS-51中凡字节地址能被 8 整除的特殊功能寄存器均能位寻址。
.已知某十进制数的8421BCD为0011 0110 1001,则该十进制数是369。
.MCS-51系统中,当 信号有效时,表示CPU从程序存储器读取信息。
. 已知某十进制数的8421BCD为0011 1001 0110,则该十进制数是396。
.用8位二进制数表示-14的补码,最高位为符号位,则结果为1111 0010。
.80C51在物理上有 4 个独立的存储器空
. 8051单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时,SP的值是3AH 。
.在CPU内部,反应程序运行状态或者运算结果特征的寄存器是PSW。
.MCS-51片内20H~2FH范围内的数据存储器,既可以 字节 寻址又可以 位 寻址。
.在CPU内部,关于PSW的描述不正确的是用于完成加法运算。
.8051CPU是 8位单片机。
.若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为 MOVC 。
. 单片机中的程序计数器 PC用来存放上一条指令地址。
.MCS-51单片机复位后,从0000H单元开始取指令。
.MCS-51可扩展片外RAM 64 KB,但当外扩I/O口后,外部RAM寻址空间将变 小 。
. AT89C51单片机 5 个中断源的优先权从高到低的是INT0 、T0、INT1、T1、串行口。
.对片外数据RAM单元进行读写操作,需要用MOVX指令。
.单片机由CPU、存储器和I/O口三部分组成。
. ADC0809 的模拟通道选择地址线 ADDC、ADDB、ADDA的状态为 011,则选择模拟
的通道为.IN3。
.当晶振频率是12MHz,MCS-51单片机的机器周期是1μs。
.MCS-51若不使用片内存储器引脚必须 接地 。
. 8255A 的 A 组控制电路是用来控制A 口及 C口的高 4 位。
.单片机的堆栈指针sp始终指向指示栈顶单元。
.外部扩展存储器时,分时复用做数据总线和低 8 位地址线的是P0。
.当MCS-51引脚ALE信号有效时,表示从PO口送出了 低8位 地址。
. MOV A, 30H的寻址方式是 直接寻址。
. PSW 中的 RS1和 RS0两位用来选择工作寄存器组。
.MCS-51有 4 个并行I/O口,其中PO是准双向口,由输出转输人时必须先写入“1” 。
.MOV 50H, #1234H这条指令是错误的。
.MOV 50H, #1234H指令是错误的。
.PC复位后为 0000H 。
. 为程序存储允许输出端。
. 为程序存储器地址允许输入端。
.MCS-51串行接口有 4 种工作方式,可在初始化程序中编程特殊功能寄存器 SCON 加以选择。
.INC A不影响标志位CY指令。
. AT89C51 单片机的 CPU是8。
.当使用慢速外设时, 中断 是最佳的传输方式。
. MCS-51单片机的堆栈区建立在片内数据存储区高128字节单元。
. AT89C51 单片机的程序计数器 PC为 16 位计数器,其寻址范围为64KB 。
.MCS-51外扩ROM、RAM或I/O时,地址总线是 P0 口和 P2 口,数据总线是 P0 口。
.用串口扩并口时,串行接口工作方式应选为方式 0 。
.中断返回时需要执行的指令是RETI 。
. 中断返回时需要执行的指令是IRET。
. MCS-51单片机的中断系统有5个中断源。在出现同级中断请求时,CPU按照INT0、T0、INT1、T1、串口顺序进行响应优先级由高到低。
. 单片机应用系统是由硬件系统和软件系统组成的。
.中断服务程序中,至少应有一条中断返回指令。
. 已知单片机系统晶振频率为6MHz,若要求定时值为10ms时,定时器T0工作在方式1时,定时器. 除了单片机芯片和电源外, AT89C51单片机最小系统包括时钟电路和复位电路。
T0对应的初值是1388H,TMOD的值是0000 0001B。
.访问MCS-51片外RAM,它的指令操作码的助记符是MOVX。
.6264芯片是RAM。
ORG 000H
AJMP 0040H
ORG 0040H
MOV SP, #00H
当执行完上面程序后,PC=0043H。
. 当振脉冲荡频率为 12MHz 时,一个机器周期为 1us;当振脉冲荡频率为 6MHz 时,一个机器周期为2us_。
.MCS-51响应中断时,下列哪种操作不会发生保护PSW。
.已知(33H)= 12H,(34H) = 56H,执行下面指令后,33H的内容是56H。
PUSH 33H
PUSH 34H
POP 33H
POP 34H
. 访问内部 RAM使用MOV指令,访问外部 RAM使用 MOVX _指令,访问内部 ROM使用 MOVC 指令 , 访问外部 ROM使用MOVC 指令。
.MOVX @DPTR,A指令可产生WR信号 。
.假设系统晶振频率为6MHz,子程序DELAY的延时时间约为1006μs。
DELAY: MOV R2, #0FAH
L2: DJNZ R2, L2
RET
.存储器的主要性能指标有哪些?
.答:存储器的主要性能指标有: (1)存储容量;(2)存取时间;(3)可靠性;(4)功耗;(5)集成度;(6)性能价格比。
.控制串行接口工作方式的寄存器是SCON。
. ORG 2000H
TAB1: DB 10H, 100, ‘C’
TAB2: DW 10H, 1234H
ORG 3000H
MOV DPTR, #TAB2
MOV A, #2
MOVC A, @A+DPTR
(1)02000H单元中的内容是10H。
(2)第二行代码中‘C’所在单元的地址是2002H。
(3)执行程序后,DPTR的内容是2003H。
. 74LS138 是具有 3 个输入的译码器, 其输出作为选片信号时, 最多可以选中8 块芯片。
.PC中存放的是下一条指令的地址。
.编程实现:片外RAM从0000H-007FH有一个数据块,请将它们传送到3000H-307FH区域。
ORG 1000H
MOV R0, #00H
MOV DPTR, #3000H
MOV R2, # 80H
LP1: MOVX A, @R0
MOVX @DPTR, A
INC R0
INC DPTR
DJNZ R2, LP1
END
.关于MCS – 51的堆栈操作,正确的说法是先修改栈指针,再入栈。
. 异步串行数据通信有单工、全双工和半双工 共 3 种数据通路形式。
.执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是。
.编程实现:R0低位有一个十六进制数,请把它转换为ASCII码送入R0。
ORG 0100H
MOV A,RO :取转换值
ANL A,#OFH :屏蔽高4位
ADD A,#03H :计算偏移量
MOVC A,@A+PC :查表
MOV RO,A :存结果
SIMP $
ASCTAB: DB ‘0’,'1', ‘2','3'
DB ‘4',‘5',‘6','7'
DB ‘8'’, ‘9',‘A’,‘B'
DB ‘C', ‘D’, 'E', ‘F'
END
.MOVX A , @DPTR指令中的源操作数的寻址方式是寄存器间接寻址。
.AT8952单片机有 6 个中断源, 2 级中断优先级别。
. 计算机的数据传送有两种方式, 即并行数据传送方式和串行数据传送方式,其中具有成本低特点的是串行方式。
.单片机用于外界过程控制中,为何要进行A/D、D/A转换?答:单片机只能处理数字形式的信息,而在实际工程中大量遇到的是连续变化的物理量,如温度、压力、流量以及连续变化的电压、电流等。对于非电信号的物理量,须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为0V~5V电平的模拟量。所以必须加接模拟通道接口,以实现模拟量和数字量之之间的转换。A/D转换就是把输入的模拟量变为数字量,供单片机处理;而D/A转换是将单片机处理后的数字量转换为模拟量。
. 在串行通信中,收发双方对波特率的设定应该是相同 的。
.什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系?答:某条指令的执行周期由若干个机器周期构成,一个机器周期包含6个状态周期,而一个状态周期又包含两个振荡周期。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周期。
. 12 根地址线可选 4K个存储单元, 32KB存储单元需要15 根地址线。
.要求按下按键K后,发光二极管亮起来,请编写主程序和中断处理子程序实现该功能。已知外部中断0的入口地址为0003H。
主程序::
MOV P3, #0FFH ;
SETB EA
SETB EX0
SJMP $
子程序:
ORG 0003H
SETB P1.0
NOP
NOP
RETI
.若80C51的片内ROM内容已不符合要求,那么片内硬件如何继续使用?答:把80C51的引脚接地,片外扩接EPROM芯片,就等于宣布片内ROM作废,完全执行片外EPROM中的程序。这样,片内硬件资源不受影响,可继续使用。
.中断响应需要哪些条件?
.答:条件:( 1)已经开总中断( EA=1 )和相应中断源的中断; (2)未执行同级或更高级的中断;(3)当前执行指令的指令周期已经结束; (4)正在执行的不是 RET1 指令和访问 IE、
.MCS – 51单片机的程序存储器和数据存储器共处同一地址空间为什么不会发生总线冲突?答:访问不同存储器,使用不同的指令。如访问ROM用MOVC,访问片内RAM则用MOV,片外RAM用MOVX。不同的指令控制信号有所不同,故可避免总线冲突。
.编程实现:将外部数据存储器中的 5000H~50FFH单元全部清零。
解:
ORG 0000H
MAIN :MOV A ,#0FFH ; 送预置数给 A
MOV R0,#0FFH ; 设置循环次数
MOV DPTR,#4000H ;设置数据指针的初值
LOOP: MOVX @DPTR ,A ; 当前单元清零
INC DPTR ; 指向下一个单元
DJNZ R0,LOOP ; 是否结束2
END
.80C51单片机定时器/计数器的门控信号GATE设置为1时,定时器的启动受外部INT0 (INT1)引脚的输入电平控制:当INT0 (INT1)引脚为为高电平时,置TR0(TR1)为1时启动定时器/计数器0(1)工作。
.(R0)= 4BH, (A)=84H,片内RAM (4BH) =7FH, (40H) =20H
MOV A, @R0
MOV @R0, 40H
MOV 40H, A
MOV R0, # 35H
问执行程序后,R0、A和4BH、40H单元内容的变化如何?答:程序执行后(R0) =35H,(A) =7FH,(4BH) =20H,(40H) =7FH。
.现有一蜂鸣器,用89C51设计一系统,使蜂鸣器周而复始地响20ms,停20ms,给出电路,并编程实现。设fosc=12MHz,电路原理图如下。
定时时间t=(216 - X)×振荡周期×12 (X为定时初值)
20×10-3= (216 - X)×12/(12×106)
X=216-2×104 = 65536-20000 = 45536 = B1E0H
ORG 0000H
LJMP START
ORG 0040H
START: MOV TMOD,# 01H
MOV TH0, #0B1H
MOV TL0, #0E0H
SETB TR0
LOOP: JNB TF0, LOOP
CLR TF0
MOV TH0, # 0BIH
MOV TL0, # 0E0H
CPL Pl.0
SJMP LOOP
.编程实现:已知 FOSC=6MHZ,试编写程序,利用 T0 工作在方式 2,使 P1.0 和 P1.1 分别输出周期为 1ms和 400us 的方波。
答:利用 T0 分别定时器 40us和 360 us 来控制 P1.7
初值计算过程:根据晶振得机器周期为 2us,
初值 (T0) =28 -40/2=ECH(40us) 初值 (T0) =28 -360/2=4CH(360us)
程序如下
ORG 0000H
SJMP MAIN
ORG 0BH
SJMP T0S
ORG 30H
MAIN:CLR P1.7
MOV TMOD,#22H
MOV TH0,#0ECH
MOV TL0,#0ECH
SETB EA
SETB ET0
SETB TR0
HERE: SJMP $
T0S: CPL P1.7
MOV C,P1.7
JC L1
MOV TH0,#0ECH
MOV TL0,#0ECH
SJMP L2
L1: MOV TH0,#04CH
MOV TL0,#04CH
L2: RETI