搜索
您的当前位置:首页正文

扬州大学广陵学院 单片机及其原理复习资料

来源:小奈知识网


单片机原理及其应用 一、选择、填空、简答题:

(1)串行口中断请求,中断请求标志为发送中断TI或接受中断RI。

串行口中断标志位是否自动清除?否,串行口中断请求的撤销只能使用软件的方法,在中断服务程序中进行,即用如下指令在中断服务程序中对串行口中断标志位进行清除: CLR TI; CLR RI;

(2)单片机外部扩展存储器为什么要加地址锁存器?常用的地址锁存器?(举一个)

AT89S51单片机受引脚数的限制,P0口兼用数据线和低8位地址线,为了将它们分离出来,需要在单片机外部增加地址锁存器。常用的地址锁存器芯片有74LS373、74LS573等。 (3)基址加变址寻址方式的特点、适用场合?和别的寻址方式有什么不同? 这种寻址方式是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为目的地址进行寻址的方式。 适用于读程序存储器中的固定数据。

寻址范围不同。(基址加变址寻址方式的寻址空间是读程序存储器固定数据和程序散转) (4)存储器扩展,片选端采用的是?地址空间分配是用的哪两种方法?特点?

片选使用高位地址线。常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法)。

1、线选法:线选法是直接利用系统的某一高位地址线作为存储器芯片(或I/O接口芯片)的片选控制信号。为此,只需要把用到的高位地址线与存储器芯片的片选端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。缺点是可寻址的芯片数目受到限制。另外,地址空间不连续,每个存储单元的地址不唯一,这会给程序设计带来一些不便,只适用于外扩芯片数目不多的单片机系统的存储器扩展。

2、译码法:译码法就是使用译码器对AT89S51单片机的高位地址进行译码,将译码器的译码输出作为存储器芯片的片选信号。这种方法能够有效地利用存储器空间,适用于多芯片的存储器扩展。若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称为部分译码。部分译码存在着部分存储器地址空间相重叠的情况。 (5)用什么来确定定时器/计数器的工作方式? P102

AT89S51单片机的定时器/计数器工作方式寄存器TMOD用于选择定时器/计数器的工作模式和工作方式,字节地址为89H,不能位寻址。 (6)MOV MOVC MOVX的区别?

1、MOV:MOV是内部数据传送指令(内部RAM)。 2、MOVC:MOVC是累加器与程序存储区之间的数据传送指令。它可以用于内部程序存储区(内部ROM)与A之间的数据传送,也可以用于外部程序存储区(外部ROM)与A之间的数据传送。(程序存储器读 /PSEN有效)

3、MOVX:MOVX是外部数据存储器(外部RAM)与累加器A之间的数据传送指令。因为内部与外部的RAM地址有重叠现象,所以需要用不同的指令予以区分。

(7)转移指令:SJMP AJMP LJMP和调用指令:ACALL LCALL 哪个要用到堆栈?为什么? 调用指令要用到堆栈,因为调用以后需要返回,堆栈用来保存地址。 (8)转移指令、调用指令、中断指令,三类指令的共同特点? PC值发生变化,即程序的流向发生改变。

(9)晶振频率fosc、时钟周期Tosc、机器周期Tcy、状态指令、指令周期之间的关系? P36 时钟周期Tosc =1/fosc 机器周期Tcy =12/fosc 机器周期Tcy =12*时钟周期Tosc 一个机器周期包括12个时钟周期,分为6个状态:S1~S6。

指令周期=1,2,4个机器周期

(10)128字节的RAM内部的分区,每一块的地址、特点、结构?

AT89S51的片内数据存储器(RAM)共有128个单元,字节地址为00H~7FH。 地址为00H 1FH的32个单元是4组通用工作寄存器区,每个区包含8B的工作寄存器,编号为R7~R0。用户可以通过指令改变特殊功能寄存器PSW中的RS1、RS0这二位来切换当前选择的工作寄存器区。

地址为20H~2FH的16个单元的128位可进行位寻址,也可以进行字节寻址。

地址为30H~7FH的单元为用户RAM区,只能进行字节寻址,用于存放数据以及作为堆栈区使用。

(11)实现中断允许控制和中断优先级控制的是?5个中断源,按照它们优先级的从高往低,写出它们的名称,所占用的入口地址?

实现中断允许控制和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现。 中断源 外部中断0 定时器/计数器T0 外部中断1 定时器/计数器T1 串行口中断 (12)定时器/计数器

最低 中断级别 最高 中断入口地址 0003H 000BH 0013H 001BH 0023H

定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。

两个定时器/计数器都具有定时器和计数器两种工作模式,4种工作方式(方式0、方式1、方式2和方式3)。定时器/计数器属于增1计数器。

定时器/计数器工作在定时/计数状态下时,脉冲信号分别由什么提供?

计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数,而定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。

(13)D/A转换器(DAC0832)有哪两种工作方式?适用场合?

1、 单缓冲方式 单缓冲方式是指DAC0832内部的两个数据缓冲器有一个处于直通方式,另

一个处于受AT89S51单片机控制的锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下,就可采用单缓冲方式。(一路模拟量输出、多路模拟量输出但不要求同步)

2、 双缓冲方式 多路的D/A转换要求同步输出时,必须采用双缓冲同步方式。(多路模拟

量输出且要求同步)

(14)单片机有没有停机指令?如果没有,用什么指令代替? 没有,用SJMP $代替。

(15)单片机复位时片内各寄存器对的状态

计算:PSW=00H

那么R0=00H R7=07H R4=04H

二、程序填空题:

(1)数据交换(考MOV MOVX,注意指令操作的对象)

把内部RAM地址30H~39H中的内容与外部RAM地址5000H~5009H的内容交换。 MOV RO,#30H MOV DPTR,#5000H LOOP:MOVX A,@DPTR XCHG A,@R0 MOVX @DPTR,A INC R0 INC DPTR

CJNE R0,#3AH,LOOP SJMP $

(2)将R4中的压缩BCD码转换为ASCII码,并把高四位跟第四位分别保存到R4、R3中。 MOV A,R4 ANL A,#OFH

ADD A,30H或者ORL A,30H MOV R3,A MOV A,R4 ANL A,#0F0H SWAP A

ADD A,30H MOV R4,A SJMP $

三、综合题:

(1)A/D转换 ADC0809与MCS-51单片机的接口电路 时序图

锁存通 道地址 复位 SAR 启动 转换

实际应用中,ALE与START接在一起。启动A/D转换,用MOVX @DPTR, A。转换结束可查询EOC状态读取结果,也可EOC产生中断,CPU响应中断后读入结果。

6MHz

启动转换地址:0111 1111 1111 1xxx=7FFXH 读结果地址: 0111 1111 1111 1xxx=7FFXH

编程:软件延时对8路模拟信号采集一次并存入数据存储区。 MAIN: MOV R1, #30H

MOV DPTR, #7FF8H; P2.7=0,选0通道 MOV R7, #08H; 置通道个数

LOOP: MOVX @DPTR,A;启动A/D转换 MOV R6, #0AH DELAY:NOP NOP NOP

DJNZ R6,DELZY

MOVX A,@DPTR;读结果 MOV @R1,A;存结果 INC DPTR;下一通道

INC R1

DJNZ R7,LOOP 问题:

1、 EOC为什么要接非门?

2、 74LS373的延时中断(不知道怎么考,P254) 3、 循环采集8路模拟信号的计算: 0~100℃转换为0~5V通过0809输出 求60℃怎么转换? 60℃/100℃=X/255

4、 会画流程图(A/D和定时器结合考) 5、 每秒采集通道口进行一次A/D转换

画主程序、外部中断、INTO流程图(没想好答案o(╯□╰)o) (2)D/A转换 译码器地址已知

+5V

MOV A, #80H MOV R0, #0FEH MOVX @R0,A

DAC产生波形 重点看输出锯齿波 锯齿波

ORG 0000H

START: MOV R0,#0FEH CLR A

LOOP: MOVX @R0, A INC A SJMP LOOP END

(3)用定时器T1(老师记不清是T0还是T1了,主要看试卷上的)采用方式1在P1.1输出周期为2s的方波,晶振为12MHz,写程序。 转换为就是在I/O口输出T=2s的信号 定时器初值

机器周期 T计数=12/fosc=12/(6×106 )=2µs 设初值为X 则:(2-X)×2×10s =100×10s

X=15536D=3CB0H

ORG 0000H LJMP START

ORG 000BH ; 中断入口(要求记住) LJMP T NT ORG 0100H START:

MOV TMOD, #10H ;T1方式1 MOV R0, #20 ;软计数器初值 MOV TMOD, #01H ; MOV TL1, #0B0H MOV TH1, #3CH

SETB ET0;T0 允中断(IE) SETB EA;CPU开中断(IE) SETB TR0;启动T0(TCON)

16

-6

-3

SJMP $ 定时器中断: T NT:

MOV TL1, #0B0H MOV TH1, #3CH DJNZ R0, T NTEND MOV R0,#20

CPL P1.X ; 1秒时间到,翻转P1.X T NTEND:RETI

因篇幅问题不能全部显示,请点此查看更多更全内容

Top