基于STC15单片机资料.docx
《基于STC15单片机资料.docx》由会员分享,可在线阅读,更多相关《基于STC15单片机资料.docx(19页珍藏版)》请在冰豆网上搜索。
基于STC15单片机资料
单片机原理复习要点
考试题型:
填空题、选择题、判断题(共计45分左右)
程序分析题、简答题(主第二章)、编程题(共计55分左右)
前言:
经过大家的奋战,单片机的复习资料出炉了!
!
!
感谢所有为本资料无私奉献的小伙伴们!
!
!
如果资料有错误,请自行修改。
第一章
1>.微型计算机:
微处理器,存储器(ROMRAM)与输入输出接口(I/O接口)及连接他们的总线组成。
2>.存储器的两个重要的指标是容量与速度。
3>.已知一个存储器有12根数据总线,则该存储器的容量为4KB。
(算法:
212=22*210=4K)
4>.已知某单片机有16根地址总线,则该单片机的寻址范围为:
0-64KB。
5>.微机的总线结构是:
三总线结构,而单片机的总线结构是:
单总线结构。
6>.总线分为地址总线、数据总线、控制总线、其中地址总线的I/O口是P0口和P2口,数据总线的I/O口是P0口。
第二章(看完要有印象)
1>.关于STC15F2K60S2系列单片机的功能叙述:
①.有8通道10位ADC转换。
②.两个全双工异步串行口。
③.三个定时器T0T1T2。
(其中T0有4种工作方式,T1有3种工作方式,T2有1种工作方式。
但是T1和T2可以作为波特率发生器)
④.增强型8051CPU,每个机器周期只有一个系统时钟,时钟频率分为12分频或不分频。
2>.关于STC15F2K60S2的引脚(有印象就行)
Ø数据总线:
P0口
Ø访问外部存储器时地址总线:
P0口(低8位);P2口(高8位)
Ø外部中断入口:
P3.2(外部中断0);P3.3(外部中断1)P3.6(外部中断2);P3.7(外部中断3);P3.0(外部中断4)
Ø定时器脉冲输入:
P3.4(T0脉冲输入);P3.5(T1脉冲输入);P3.1(T2脉冲输入)
Ø控制引脚:
1 地址锁存信号线(ALE):
P4.5
2 外部存储器读操作(__R__D):
P4.4
3 外部存储器写操作(__W__R):
P4.2
3>.单片机的中央处理器是由运算器和控制器组成。
4>.STC15单片机的储存结构。
(要有印象)
v0000H—EFFFH:
程序Flash
0000H—3FFFH:
数据Flash
00H—7FH:
低128字节基本RAM
80H—FFH:
高128字节基本RAM
v片内基本RAM分为低128字节RAM、高128字节的RAM的特殊功能寄存器(SFR)
v其中低128字节又分为工作寄存器区,位寻址区。
与通用RAM区。
工作寄存器区的功能由RS0与RS1决定。
v位寻址区:
片内的基本RAM的20H----2FH共16个字节是位寻址区,每个字节8个位,共128位,其对应的地址分别为00H-----7EH.位地址还可以用字节地址加位号表示,如20H的单位的B5位,其地址可用05H表示,也可用20.5H表示。
v通用RAM区;30H-----7FH共80个字节。
其中高128字节的RAM的地址为80H----FFH.高128字节的RAM只能采用寄存器间接寻址方式访问;特殊功能寄存器只能采用直接寻址方式。
第四章
1>.指令寻址方式:
(要了解)
a.直接寻址:
直接累加器或寄存器访问目标。
比如:
MOVA,20H
b.寄存器间接寻址:
将地址赋给一个寄存器,然后利用该寄存器的内容作为地址,让累加器或寄存器访问。
比如:
MOVR0,#30H
MOVA,@RO
c.立即寻址:
将立即数赋给累加器或寄存器。
d.寄存器寻址:
寄存器间的数据传送,或者自加自减。
e.变址寻址:
一个地址加另一个地址中的数据送到累加器或者寄存器。
比如:
MOVA,@A+DPTR
2>.指令表(必须记住,提供英文全称辅助记忆)
MOVA,B赋值(传送)(Move)
MOVXA,B(片外)赋值
MOVCA,B(存储器)赋值(MoveCode)
XCHA,B(寄存器间)交换(Exchange)
XCHDA,B(寄存器间低4位)交换
SWAPA(自己的低4位与高4位)交换
PUSHA入栈操作
POPA出栈操作
ADD/ADDCA,B加法/带进位的加法(Addition)
SUBBA,B减法(Subtraction)
MULAB乘法(Multiplication)
DIVAB除法(Division)
INCA自加(Increment)
DECA自减(Decrement)
ANLA,B逻辑与(AndLogic)
ORLA,B逻辑或(OrLogic)
XRLA,B逻辑异或(ExclusiveOrLogic)
CLRA清零(Clear)
CPLA取反(ConversePositionLogical)
RLA循环左移(RotateLeft)
RLCA循环左移加CY(RotateLeftwithCY)
RRA循环右移(RotateRight)
RRCA循环右移加CY(RotateRightwithCY)
AJMPaddr短转移(绝对转移)(AbsoluteJump)
LJMPaddr长转移(LongJump)
SJMPaddr相对转移(ShortJump)
NOP空操作(NotOperation)
JZaddr为0转移(JumpifZero)
JNZaddr非0转移(JumpifNotZero)
CJNEA,B,addr比较不等转移(CompareJumpifNotEqual)
DJNZA,addr减1非0转移(DecrementJumpifNotZero)
LCALLaddr子程序长调用(LongCall)
ACALLaddr子程序绝对调用(AbsoluteCall)
RET子程序返回(Return)
RETI中断返回(ReturnfromInterruption)
还有其他剩余指令,自己稍微了解一下就行。
(备注:
A,B为源操作数和目的操作数,addr为地址或程序标志)。
第五章(要学会应用)
v伪指令:
ORG
v作用:
设定程序起始地址指令
第六章(整合到大题中考)
第七章(建议记住)
1>.引起中断的根源或者原因称为中断源,STC15中,中断源共有14个。
2>.CPU在处理较低优先级的中断服务子程序时,有更高优先级程序申请中断,使CPU转而执行更高优先级的中断服务子程序称为中断嵌套。
3>.中断标志清零的方式有软件清零和硬件清零。
4>.响应中断的条件:
中断总开关EA以及相应中断的控制位都开放中断,并且中断源的信号满足中断要求。
5>.中断方式跳转与调用方式跳转的区别?
答:
中断方式跳转需要事先设置中断服务程序的入口地址,并且需要设置相应的中断控制位,开放相应的中断。
在设置好相关的程序后还需要需要等待中断。
中断产生后,需要在中断服务子程序中设置入栈操作,用来保护断点。
中断服务执行后,程序会自动返回断点处。
调用方式跳转则不需要设置中断服务入口地址,只需要查询相关中断申请标志位,若有申请就发生跳转。
在执行调用子程序中,系统会自动对断点进行保护,不需要设置入栈操作。
返回时,需要在调用子程序中设置跳转指令,跳转回断点。
(本题较长,建议结合自己的观点精简答案。
)
6>.中断服务程序入口地址:
(如果擅长用中断方式编程的童鞋必须记住,擅长调用方式编程就不重要了。
)
外部中断00003H
定时器/计数器T0中断000BH
外部中断10013H
定时器/计数器T1中断001BH
串行口中断0023H
A/D转换中断002BH
LVD中断0033H
PCA中断003BH
串行口2中断0043H
SPI中断004BH
外部中断20053H
外部中断3005BH
定时器T2中断0063H
预留中断006BH、0073H、007BH
外部中断40083H
第八章
◆定时器初始化工作:
(要了解如何操作)
1)对TMOD赋值,以确定T0和T1的工作方式。
2)对AUXR赋值,确定定时脉冲的分频系数,默认为12分频,与传统8051单片机兼容。
3)计算初值,并将其写入TH0、TL0或TH1、TL1。
4)为中断方式时,则对IE赋值,开放中断,必要时,还需要对IP操作,确定各个中断源的优先级。
5)置位TR0或TR1,启动T0和T1开始计时或者计数。
◆T0、T1工作方式:
(建议记住)
M1M0工作方式功能
00方式016位自动重装初值
01方式116位不自动重载初值
10方式28位自动重载初值
11方式3两个8位(仅限T0)
第九章
1>.并行通信和串行通信的区别是什么?
有哪些优缺点?
答:
并行通信是将数据字节的各位用多条数据同时进行传送。
优点是控制简单,传送速度快。
缺点是由于传输线较多,长距离传送成本较高,因此仅适用于短距离传送。
串行通信是将数据字节分为一位一位的形式在一条传输线上逐个地传送。
优点是传输线少,长距离传送成本很低。
缺点是传输速度慢,因此适用于长距离传输。
2>.同步通信和异步通信的区别是什么?
有哪些优缺点?
答:
异步通信的数据通常是以字符(或字节)为单位组成字符帧传送的。
优点是不需要传送同步时钟,字符帧长度不受限制,故而设备简单。
缺点是字符帧中因为包含起始位和停止位而降低了有效数据的传输速率。
同步通信是一种连续串行传送数据的通信方式,一次通信传输一组数据(包含若干个字符数据)。
优点是数据传输速率较高,通常可达56000bit/s或更高。
缺点是要求发送时钟和接收时钟必须保持严格同步,硬件电路也很复杂。
3>.多机通信选择
第十章(要记住会运用啊!
)
1>.选择A/D模块的重要的指标是:
转换精度和转换速度。
2>.A/D模块编程过程:
1 打开ADC电源(设置ADC_CONTR中的ADC_POWER)。
2 适当延时,等ADC内部模拟电源稳定。
一般延时1ms即可。
3 设置P1口中的相应口线作为AD转换模拟量输入通道(设置P1ASF寄存器)。
4 选择ADC通道(设置ADC_CONTR中的CHS2-CHS0)。
5 根据需要设置转换结果存储格式(设置CLK_DIV中的ADRJ)。
6 查询A/D转换结果标志ADC_FLAG,判断A/D转换是否完成,若完成,则读出A/D转换结果(保存在ADC_RES和ADC_RESL寄存器中),并进行数据处理。
如果是多通道模拟量进行转换,则更换A/D转换通道后要适当延时,使输入电压稳定,延时量取20-200
μs即可(与输入电压源的内阻有关),如果输入电压源的内阻在10KΩ以下,可不加延时。
7 若采用中断方式,还需要进行中断设置(中断允许和中断优先级)。
8 在中断服务程序中读取A/D转换结果,并将ADC中断请求标志ADC_FLAG清零。
3>.A/D转换速度:
SPEED1
SPEED0
A/D转换所需时间
1
1
90个时钟周期转换一次 ,CPU工作频率21MHz时, A/D转换速度约300KHz,9位精度
1
0
180个时钟周期转换一次,可达到10位精度
0
1
360个时钟周期转换一次,可达到10位精度
0
0
540个时钟周期转换一次,可达到10位精度
4>.A/D模拟通道选择:
CHS2
CHS1
CHS0
模拟输入通道选择
0
0
0
选择P1.0作为A/D输入信号
0
0
1
选择P1.1作为A/D输入信号
0
1
0
选择P1.2作为A/D输入信号
0
1
1
选择P1.3作为A/D输入信号
1
0
0
选择P1.4作为A/D输入信号
1
0
1
选择P1.5作为A/D输入信号
1
1
0
选择P1.6作为A/D输入信号
1
1
1
选择P1.7作为A/D输入信号
v附加重点:
Ø特殊功能寄存器(从上到下依次对应寄存器的高位到低位)
1、程序状态标志寄存器PSW
CY:
进位标志。
执行加减指令时,如果操作结果的最高位D7进/借位,则CY位置1。
否则置0,执行乘法指令时,CY清0。
AC:
辅助进位标志。
当执行加减指令时,如果低四位数向高四位数产生进/借位。
则AC置1,否则置0。
F0:
用户自定义。
RS1RS0:
工作寄存器组选择控制位。
OV:
溢出标志位,指示运算过程中是否发生了溢出,有溢出时,OV为1。
否则为0。
F1:
用户标志位1
P:
奇偶标志位,如果累加器ACC中的1的个数为偶数,P=0,否则P=1。
2、辅助寄存器AUXR
T0x12:
决定定时器T0是否12分频。
0:
12分频,定时周期为1μs。
1:
不分频,定时周期为1T。
T1x12:
决定定时器T1是否12分频。
0:
12分频,定时周期为1μs。
1:
不分频,定时周期为1T。
UART_M0x6:
串行口模式0状态下的速度设置。
TR2:
定时/计数器T2运行控制位。
T2_C/__T:
定时/计数器T2功能选择位。
T2x12:
T2是否12分频。
EXTRAM:
内部扩展RAM访问控制位。
S1ST2:
串行口1波特率发生器选择位。
0:
选择T1为波特率发生器。
1:
选择T2为波特率发生器。
3、中断允许控制器IE(0:
关闭中断;1:
开放中断)
EA:
中断总开关。
ELVD:
低电压中断允许控制位。
EADC:
A/D转换中断允许位。
ES:
串行口中断允许标志。
ET1:
定时器T1中断允许控制位。
EX1:
外部中断1允许控制位。
ET0:
定时器T0中断允许控制位。
EX0:
外部中断0允许控制位。
4、中断优先级控制寄存器IP(0:
低优先级;1:
高优先级)
PPCA:
PCA中断优先级。
PLVD:
低电压中断优先级。
PADC:
A/D转换中断优先级。
PS:
串行口中断优先级。
PT1:
定时/计数器T1中断优先级。
PX1:
外部中断1优先级。
PT0:
定时/计数器T0中断优先级。
PX0:
外部中断0优先级。
5、定时/计数器控制寄存器TCON
TF1:
T1溢出中断请求标志。
TR1:
T1的运行控制位。
0:
T1停止运行。
1:
T1启动运行。
TF0:
T0溢出中断请求标志。
TR0:
T0的运行控制位。
0:
T0停止运行。
1:
T0启动运行。
IE1:
外部中断1的中断请求标志。
IT1:
外部中断1的中断触发方式控制位。
IE0:
外部中断0的中断请求标志。
IT0:
外部中断0的中断触发控制位。
6、工作方式寄存器TMOD
GATE:
门控位。
C/__T:
功能选择位。
0:
设定为定时器工作模式。
1:
设定为计数器工作模式。
M1MO:
选择定时器/计数器工作模式。
7、串口1控制寄存器SCON
SM0/FE:
为1时,该位用于帧错误检测,它必须由软件清零。
为0时,SM0/FE位和SM1一起指定串行通信的工作方式。
SM1:
多机通信控制位。
SM2:
多机通信控制位。
REN:
允许接收控制位。
1:
允许串行口接收数据;
0:
禁止串行口接收数据。
TB8:
在方式2和3时,它是要发送的第9个数据位,按需要由软件进行置位或清零。
该位可用作数据的奇偶校验位,或在多机通信中用作地址帧/数据帧的标志位。
RB8:
在方式2和3时,它是接收到的第9位数据,为奇偶检验位或地址帧/数据帧标志位。
在方式1时,若SM2=0,则RB8是接收到的停止位。
在方式0时,不使用RB8。
TI:
发送中断标志位,必须用软件清零。
RI:
接收中断标志位。
8、掉电控制寄存器PCON
SMOD:
串行口波特率系数控制位。
1:
使方式1、方式2和方式3的波特率加倍。
0:
各工作方式的波特率不加倍。
SMOD0:
帧错误检测有效控制位。
1:
SCON寄存器中的SM0/FE位用于FE(帧错误检测)功能。
0:
SCON寄存器中的SM0/FE位用于SM0功能,和SM1一起指定串行通信的工作方式。
LVDF:
片内低电压检测中断请求标志位。
9、ADC控制寄存器ADC_CONTR
ADC_POWER:
ADC电源控制位。
SPEED1:
ADC转换速度控制位。
SPEED0:
ADC转换速度控制位。
ADC_FLAG:
A/D转换结束标志位。
ADC_START:
A/D转换起动控制位。
CHS2:
模拟输入通道选择。
CHS1:
模拟输入通道选择。
CHS0:
模拟输入通道选择。
10、模拟功能控制寄存器P1ASF
P17ASF
P16ASF
P15ASF
P14ASF
P13ASF
P12ASF
P11ASF
P10ASF
功能:
如果要使用相应口的模拟功能,需将P1ASF特殊功能寄存器中的相应位置为1。
v附加试卷
一.填空题
1.MCS-51的程序存储器空间为程序Flash,其地址指针为0000H-EFFFH;MCS-51的外部数据存储器空间为扩展ROM,其地址指针为0000H-06FFH。
(P20)
2.指出以下指令中源操作数的寻址方式:
MOVCA,@A+DPTR属于变址寻址;MOVC,01H属于直接寻址;MOVA,P
1属于寄存器
寻址。
3.中断过程一般应包括将相应的优先级状态触发器置1、硬件自动产生一个长调用指令、把断点地址压入栈保护和把中断程序服务入口地址送到程序计数器PC4个步骤。
(P152)
4.在单片机的控制应用系统中,可供选择的定时方式有软件定时、硬件定时和可编程定时器定时3种。
(P159)
5.计算机的数据传送方式有串行通信和并行通信两种方式。
(这个题目有点看不懂,答案我不敢肯定是正确的)
6.8155是Intel公司生产的可编程RAM和I/O扩展芯片,其片内资源有:
256字节的静态RAM,最快存取时间为400ns;两个可编程的8位并行I/O口PA口、PB口,一个可编程的6位并行I/O口PC口;一个可编程的14位减一计数器。
(这个我们没有学过)
7.STC15系列单片机中是一种8通道10位高速电压输入型A/D转换器。
8.STC15系列单片机的5个中断源
、
、T0、T1和串行口中断所对应的中断服务程序入口地址分别是0003H、0013H、000BH、OO1BH和0023H。
二.简答题
1.简述单片机的特点。
答:
微型计算机的基本组成成分(CPU.储存器,I/O接口以及连接他们的总线)集成在一块芯片中而构成的计算机,简称为微型计算机。
简称为计算机。
由于单片机具有较高的性能价格比,良好的控制性能和灵活的嵌入特性,单片机的应用极其广泛。
2.简述机器周期、状态周期及指令周期之间的区别。
答:
指令周期是CPU的关键指标,指取出一条并执行一条指令的时间。
一般由机器时间为周期,在计算机中,为了管理方便,常常把一条指令分为若干个阶段,每一个阶段完成一项工作。
完成一个基本操作的时间称之为机器周期。
一般情况下一个机器周期是由若干个状态周期组成的。
3.简述程序状态字(PSW)的几个标志的意义及置位和复位的条件。
答:
程序状态字的各个标志位意义如下:
CY:
进位标志位。
执行加减指令时,如果操作结果的最高位D7进/借位,则CY位置1。
否则置0,执行乘法指令时,CY清0。
AC:
辅助进位标志位,当执行加减指令时,如果低四位数向高四位数产生进/借位。
则AC置1,否则置0。
FO:
用户标志0
RS1RS0:
工作寄存器组选择控制位。
OV:
溢出标志位,指示运算过程中是否发生了溢出,有溢出时,OV为1。
否则为0。
F1:
用户标志位1
P:
奇偶标志位,如果累加器ACC中的1的个数为偶数,P=0,否则P=1。
4.在STC15中,哪些中断可以随着中断响应而自动撤除?
哪些中断需要用户来撤除?
撤除的方法是什么?
答:
对于定时器/计数器T0或T1溢出中断,CPU在响应中断后,由硬件自动清除其中断标志位TF0或TF1,无需采取其他方式。
当相应中断服务执行后,这些中断请求标志位也会自动清零。
对于串行口中断,CPU在响应中断后,硬件不会自动清除标志位TI或RI,必须在中断服务程序中,在判别TI还是RI引起的中断后,在用软解将其清零。
外部中断0和外部中断1的触发方式可以由ITx(x=0,1)设置为0还是1,都属于边沿触发,CPU在响应中断后由硬件自动清除其中的标志位IE0或IE1,无需再用其他的方式。
电源低电压检测中断的中断标志位需要用软件清零。
三.程序分析题
1.指出下列指令中哪些是非法的?
如果非法请改正。
DECDPTR
RLB
JNZA,NEXT
MOVA,@R2
答:
非法指令是DECDPTR,改正:
INCDPTR。
四.综合应用题
在STC15单片机中,请用定时器1,由p1.0输出400ms的方波。
要求:
(1)写出定时器1的方式控制字,计算定时器1的初值;
(2)试编写完成此功能的程序段。
附录:
TMOD格式说明:
位序
D7
D6
D5
D4
D3
D2
D1
D0
位符
GATE
C/T1
M1
M0
GATE
C/T0
M1
M0
GATE——门控位
GATE=0由运行控制位TR启动定时器;
GATE=1由外中断请求信号(INT0或INT1)启动定时器;
C/T——定时方式或计数方式选择位
C/T=0定时工作方式;
C/T=1计数工作方式;
M1M0——工作方式选择位
00方式0——为13位定时器/计数器;
01方式1——为16位定时器/计数器;
10方式2——为常数自动装入的8位定时器/计数器;
11方式3——(仅适用于T0)为两个8位定时器/计数器,在方式3时T1停止计数。
答:
设定定时器T1工作在方式0,定时时间为50ms,计数次数为4次。
计数初值:
65536-50000=15536=3CBOH
查询方式编程:
ORG0100H
MAIN:
MOVTMOD,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
MOVR0,#04
SETBTR1
Check_TF1:
JBCTF1,Timer1_Overflow
SJMPCheck_TF1
Timer1_Overflow:
DJNZRO,Check_TF1
MOVRO,#04
CPLP1.0
AJMPCheck_TF1
END
中断方式编程:
ORG0000H
LJMPMAIN
ORG001BH
LJMPTimer1_ISR
ORG0100H
MAIN:
MOVTMOD,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET1
SETBTR1
SJMP$
Timer1_ISR:
DJNZR0,Timer1_Exit
MOVR0,#04
CPLP1.0
Timer1_Exit:
RETI
END
如有侵权请联系告知删除,感谢你们的配合!
如有侵权请联系告知删除,感谢你们的配合!