单片机重点知识归纳11页word文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、程序状态字(PSW)寄存器
F0(PSW.5)用户标志位 F1(PSW.1) 用户标志位(8052中含有)
RS1,RS0(PSW.4,PSW.3)当前寄存器区选择位 OV(PSW.2)溢出标志位
P(PSW.0)奇偶校验标志位
3、寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、
SCON(用2位)、中断允许寄存器IE和中断优先级寄存器IP。
TCON与SCON只有一部分用于中断控制。
IE1(IE0):外部中断1(0)的中断请求标志位
IT1(IT0):外部中断1(0)的中断触发方式控制位
4.3 IE1:当检测到外部中断1的引脚上存在有效的中断请求信号时,由硬件使IE1置1.
当CPU响应该中断请求时①若外部触发方式为边沿触发,则由硬件使IE1清0.②若外部
触发方式为电平触发,只要中断请求一直为低电平,就一直使IE1置1标志直到中断请求
变为高电平为止。
这时由软件对IE1清0的操作才真正生效。
4.4 中断允许控制8051对中断源的开放或屏蔽是由中断寄存器IE控制的,IE字节地址是
)
和各中断源自己的中断允许控制位。
当EA=0时屏蔽所有的中断申请当EA=1时 CPU开
放中断,但各个中断源是否开放还要由IE低5位分别控制
中断的前提:EA=1 开放中断
EA:中断允许总控制位, ES串行口中断允许位 ET1(ET0):定时器/计数器 T1(T0)的溢出中
断允许位
EX1(EX0):外部中断 1(0)中断允许位(1为允许中断 0为禁止中断)
PX1(PX0):外部中断1 中断优先级控制位
单片机复位后,IP被清0,用户应根据需要对IP中的相应位进行置1或清0(1为高优先级,0为低优先级)
4.6 CPU响应中断的基本条件有:1.中断源发出中断请求 2.中断总允许位EA=1 3. 发出中断请求的中断源所对应的中断允许位为“1“
满足基本要求,可能发生中断{{正在执行同级或更高级中断服务程序, 当前的指令周期末结束,现行指令为RETI或是访问IE或IP的指令,该指令以及紧接着的下一条指令还未执行完}}
4.7执行中断返回指令RETI的结果是消除优先级生效触发器,以使其他同级或低级中断能
被响应
RETI指令执行前应进行相应的出栈操作,目的:一.恢复保护数据二.使栈顶指针SP与
保护断点后的值相同
5、MCS-51单片机的中断优先级有四条原则
1)、不同级的中断源同时申请中断时,先高后低;2)、处理低级中断又收到高级中断请
求时,停低转高;3)、处理高级中断却收到低级中断请求时,高不踩低;4)、同级中断
源同时申请中断时,按照外部中断0、定时器T0、外部中断1、定时器T1、串行口中断的
自然先后顺序响应。
6、中断请求的撤除
CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。
定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TF0或TF1,即
中断请求是自动撤除的。
边沿激活的外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0
或IE1。
串行口中断:CPU响应中断后,没有用硬件清除TI、RI,故这些中断不能自动撤除,而要
靠软件来清除相应的标志,如CLR TI。
这是与其它4种中断源的不同之处。
7、电平激活的外部中断源中断标志的撤除
电平触发外部中断撤除方法较复杂。
1)、因为在电平触发方式中,CPU响应中断时不会
自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。
2)、在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要通过硬件,
再配合软件来解决。
7.1 单片机系统实现定时有三种方法:软件定时硬件定时可编程定时器定时
软件定时:不需要外加硬件电路,定时精确,占CPU的时间。
、
硬件定时:不占CPU时间,全由硬件电路完成,操作不方便不准确、。
可编程定时器定时::不占CPU的时间使用灵活方便。
7.2 加1计数器的输入脉冲有两个来源:外部脉冲源TX(T0和T1)端和系统的时钟振荡器定时器\计数器的基本功能是对输入脉冲进行计数。
对输入脉冲的选择是有特殊功能寄存器的一位(C\T)的内容决定的。
TMOD和TCON是两个专门用于定时器/计数器的控制寄存器,用户可用指令对其相应位进行
清“0“或置”1“操作同时利用外部引脚信号电平控制
定时器/计数器是可编程的
7.3 T0和T1是两个16位加1可编程定时器/计数器{简称定时器T0、T1}
定时器T0的计数器由8位特殊功能寄存器THO和TLO组成
定时器T1的计数器由8位特殊功能寄存器TH1和TL1组成
定时器方式寄存器TMOD用于控制和确定各定时器/计数器的功能和工作方式
定时器控制寄存器TCON用于控制定时器T0、T1的启动和停止,并包含它们的溢出标志位
系统复位时TCON和TMOD的所有位清“0“。
7.8 定时器的控制寄存器TCON(内部RAM字节地址:88H)
TF1(TCON.7)/ TF0(TCON.5)定时器T1(T0)的溢出中断标志位
TR1(TCON.6)/TRO(TCON.4) 定时器T1/(T0) 运行控制位(TR1=0 停止运行 TR1=1,启动运行)
7.9 定时器的方式寄存器TMOD(内部RAM字节地址:89H)
GATE:门控制位(TMOD;7对应定时器T1,TMOD、3对应定时器T0)
C/T: 定时或计数功能选择控制位(TMOD、6对应定时器T1,TMOD,2对应定时器T0)
8
初值机器周期:12/f
例1:编写一段程序,让51MCU的P1.7输出1ms的方波(用定时器T1完成),
fosc=12MHz。
定时器初值计算(TCY=1us)此时定时时间采用0.5ms
1、采用方式0:N=8192-500/1=7692=1E0CH
数据格式为:1111000000001100B=0F00CH
所以(TH1)=0F0H,(TL1)=0CH
2、采用方式1:N=65536-500/1=65036=0FE0C
所以(TH1)=0FEH,(TL1)=0CH
ORG 0000H ;主程序
AJMP MAIN
ORG 001BH ;定时中断1入口
AJMP SERT1
ORG 0030H
MAIN:SETB P1.7
MOV TMOD,#10H ;设T1为方式1
MOV TH1,#0FEH ;给T1赋初值
MOV TL1,#0CH
SETB ET1 ;开定时器T1中断
SETB EA
SETB TR1 ;启动定时器T1
SJMP $
SERT1:MOV TH1,#0FEH ;定时器回赋初值
MOV TL1,#0CH
CPL P1.7
RETI
END
例2:编写一段程序,让51MCU的P1.7输出占空比为70%,频率为100HZ的矩形波(用
定时器完成),fosc=6MHz。
思路:此题中,高电平时间为10ms×70%=7ms,低电平为3ms。
对于这种高、低电平时间不一致的波形,通常取出两个时间的相同单位时间作为定时器的定时时间,对于不同的电平采用不同的定时次数。
此例中,可用1ms作为定时器的定时时间。
高电平段定时7次,低电平段定时3次,即可实现矩形波输出。
定时器初值=65536-1000/2=65036=FE0CH
程序清单: ORG 0000H ;主程序
AJMP MAIN
ORG 000BH ;定时中断T0入口
AJMP SERT0
ORG 0030H
MAIN:SETB P1.7
MOV TMOD,#01H ;设T0为方式1
MOV TH0,#0FEH ;给T0赋初值
MOV TL0,#0CH
MOV R0,#7
SETB ET0 ;开定时器T0中断
SETB EA
SETB TR0 ;启动定时器T0
SJMP $
9
并行通信;是在传递数据过程中每个字节的各位、同时进行传送的通信方式
串行通信:是指每个字节的各位分别进行传送的通信方式
并行通信的传输速度比串行通信要快并行通信用于短距离高速通信场合
串行通信的两种数据传递方式:异步串行通信和同步串行通信
串行通信按数据传送方向可分为单工、半双工、全双工通信方式
9.2 波特率是表征串行口数据传送速率的量,其定义为每秒传送二进制数的位数单位为
bit/s常见1200bit/s 2400 bit/s 4800 bit/s 9600 bit/s
9.3.与串行口有关的特殊功能寄存器有串行口缓冲器SBUF、串行口控制寄存器SCON和波
特率控制寄存器PCON
9.4串行口缓冲器SBUF的地址为99H,有两个物理单元串行口接收缓冲器和串行口发送缓冲器(可同时发送和接收数据)
PCON的其它位主要用于掉电控制
10、串行口控制器SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发
RB8来控制是否激活RI。
当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据
进入SBUF,并激活RI。
TB8,在方式2或方式3中,是发送数据的第九位(位8)
RB8,在方式2或方式3中,是接收到数据的第九位(位8),
TI,串行口发送中断标志位。
RI,串行口接收中断标志位。
REN串行口允许接受位
2-3. 简述8051片内RAM的空间分配。
答:低128B位数据存储器区分为:工作寄存器区(00H~1FH);位寻址区(20H~2FH);一般数据存储区(30H~7FH)
高128B数据存储器区离散地分布着21个特殊功能寄存器
2-8. 内RAM低128B单元划分为哪三个主要区域?各区域主要功能是什么?
答:地址范围为00H~7FH的128字节单元,按功能特点划分为不同的几个区,分述如下。
(1)工作寄存器区地址范围为00H~1FH的32字节存储器单元,分为四个组,每组有8
个工作寄存器字节单元,定名为R0、R1、R2、R3、R4、R5、R6和R7。
通过改变程序状
态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可选作CPU的当
前工作寄存器组。
(2)位寻址区地址为20H~2FH的16个字节单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。
(3)一般数据存储区地址范围为30H~7FH的区域,可用于原始数据及运算结果的存储。
值得注意的是,30H~7FH中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”
规则的特殊数据区──堆栈。
2-11. CPU如何确定和改变当前工作寄存器组?
答:通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器
解:(1)使Acc.0置1: SETB Acc.0
(2)清除累加器的高四位: ANL A,#0FH
或 CLR Acc.733
CLR Acc.6
CLR Acc.5
CLR Acc.4
(3)清除Acc.3,Acc.4,Acc.5,Acc.6:
ANL A,#87H
或 CLR Acc.3
CLR Acc.4
CLR Acc.5
CLR Acc.6
4-2 试编写程序,查找在内部RAM 20H-50H单元中出现00H的次数,并将查找的结果存入51H 单元。
解:程序如下:
MOV R0,#20H
MOV R7,#31H
MOV 51H,#00H
LOOP1: CJNE @R0, #00H, LOOP
INC 51H
LOOP: INC R0
DJNZ R7, LOOP1
HERE: SJMP HERE
4-11 已知片内RAM以ADDR为起始地址的区域中存放着24个无符号数,试编写程序找出最小值,并存入MIN单元。
解:根据题意,编写程序如下:
MOV R0, #ADDR ;数据区首地址39
MOV R7, #18H ;数据区长度
MOV A, @R0 ;读第一个数
DEC R7
LOOP: INC R0
MOV 2AH, @R0 ;读下一个数
CJNE A,2AH,CHK ;数值比较
CHK: JC LOOP1 ;A值小转移
MOV A,@R0
LOOP1: DJNZ R7,LOOP ;继续
MOV 2BH,A ;极值送2BH单元
HERE: AJMP HERE ;停止
6-4· MCS-51的外部中断有哪两种触发方式?它们对触发脉冲或电平有什么要求?应如何
选择和设定?
答:MCS-51的外部中断有两种触发方式:边沿触发方式和电平触发方式。
对于边沿触发方式,CPU在每一个机器周期S5P2期间采样外部中断l请求引脚的输入电平。
如果在相继的两
个机器周期采样过程中,一个机器周期采样到外部中断1请求信号为高电平,接着的下一个机器周期采样到外部中断1请求信号为低电平,出现了下跳沿,则使IEl置1。
直到CPU响应
该中断时,才由硬件使IEl清0。
对于电平触发方式,CPU在每一个机器周期S5P2期间采样外部中断1请求引脚的输入电平。
若外部中断l请求信号为低电平,则使IE1置1,若外部中断1请求信号为高电平,则使IEl清0。
可由TCON中对应的IT0(或IT1)位程控为低电平或下降
沿有效。
IT0(或IT1)=1时,外部中断0(或1)程控为边沿触发方式。
IT0(或IT1)=0时,外部中断0(或1)程控为电平触发方式。
6-6·某MCS-51系统用于定时测试压力、温度,定时用T0来实现,压力超限和温度超限的
报警信号分别由和输入,中断优先权排列顺序依次为压力超限→温度超限→定时检测,试
确定专用寄存器IE和IP的内容,并编写初始化程序。
IE=87H IP=05H
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP W1
ORG 000BH
AJMP W2
ORG 0013H
AJMP W3
ORG 0050H
MAIN: MOV IP,#05H
MOV IE,#87H
HERE: SJMP HERE
8051不可位寻址的特殊寄存器名称:
SP,DPH,DPL(或DPTR),TMOD,TH0,TL0,TH1,TL1,SBUF,PCON
请写出MCS-51可位寻址的特殊寄存器名称及其初始值(10分)。
ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON初始值:除P0、P1、P2、P3为FFH外其余都为0。
请给出特殊寄存器TCON、PSW的各位名称及作用
TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TFX 定时器/计数器中断标志位 TRX 定时器/计数器打开位
IEX 外部中断标志位 ITX 外部中断触发方式标志位
PSW: Cy、Ac、F0、RS1、RS0、OV – P
Cy-进位/借位标志位; Ac-半字节进位/借位标志位;
F0-用户标志位; RS1、RS0-通用工作寄存器定义位;
OV-溢出标志位; P-奇偶标志位
IE: EA - - ES ET1 EX1 ET0 EX0
EA-中断总允许位;
ES-串口中断允许位;
ET1、ET0-定时器/计数器中断允许位;
EX1、EX0-外部中断允许位
请写出特殊寄存器TMOD,SCON各位的名称及意义
TMOD GATE C/T M1 M0 GATE C/T M1 M0
GATE 改位控制定时器计数器的运行是否受
INT1、INT0管脚是否为高电平的控制;
C/T 改位为1是计数器功能,为0是定时器功能;
M1 M0 工作方式设置位;
SCON: SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0 SM1 为串行口工作方式设置位 SM2 多机通讯允许位
REN 接收允许位 TB8 发送的第8位 RB8 接收到的第8位
TI 发送完成标志位 RI 接收完成标志位
请写出8051中断子程序入口地址,并说明其检测位,中断优先级的高低,以及如何设置答案:03H—外部中断0子程序入口,检测位IE0,中断优先级最高;
0BH—定时器/计数器中断子程序入口,检测位TF0;
13H—外部中断1子程序入口,检测位IE1;
1BH—定时器/计数器中断子程序入口,检测位TF1;
23H—串行口中断子程序入口,检测位TI,RI,中断优先级最低;
中断优先级高低的设置需设置IP中的相应位。
PS,PT1,PX1,PT0, PX0。
一、试简述如下器件的功能(5分):
8051-内部只有4KROM的8位单片机 74LS373-地址锁存器
27C64- 64K位的程序只读存储器 ADC0809-8路A/D转换器
DAC0832-8位D/A转换器 74138 3-8译码器
62256 256K位的数据存储器扩展芯片 DAC0832 8位D/A转换器
74LS373 8位锁存器 8255A 8并行接口
74LS138:3-8译码器 ADC0809:A/D转换器 2764:8K的EPROM
8031:8031单片机,内无程序存储器
说明MCS-51内部RAM的功能区并表明SP的初始地址(8分)。
通用工作寄存器区;位寻址区;一般数据存储区;SP的初始值为07H
要求编写主程序段:将外部中断1设置为最高优先级中断、信号下降沿检测方式并打开该中断(5分)。
答案:SETB PX1
SETB IT1
SETB EX1
SETB EA
画原理图并编程(20分)。
应用一只STC89S52芯片,应用4只74LS164,驱动4只共阴极数码管,应用延时子程序,使4只数码管显示从0-9999的累加。
注:显示码为3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH (0-9)
答案:图可参照下图。
图:
AJMP MAIN
ORG 30H
MAIN: MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
LOOP: ACALL DISPLAY
ACALL DELAY
INC 30H
MOV A,30H
CJNE A,#10,LOOP
MOV 30H,#0
INC 31H
MOV A,31H
CJNE A,#10,LOOP
MOV 31H,#0
INC 32H
MOV A,32H
CJNE A,#10,LOOP
MOV 32H,#0
INC 33H
MOV A,33H
CJNE A,#10,LOOP
MOV 33H,#0
AJMP LOOP
DISPLAY: MOV DPTR,#TAB
MOV R0,#30H
DISLOP: MOV A,@R0
MOVC A,@A+DPTR
MOV R4,#8
DISLOP2: RRC A
CLR P1.7
MOV C,P1.6
SETB P1.7
DJNZ R4,DISLOP2
INC R0
CJNE R0,#34H,DISLOP
RET
DELAY: MOV R7,#02
DEL1: MOV R6,#0FH
DEL2: MOV R5,#0FH
DJNZ R5,$
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
试画出原理图并编写程序(20分)。
应用单片机的8条I/O线,构建4×4的行列式键盘,并编写键盘的识别程序。
答案:图:
AJMP MAIN
ORG 30H
MAIN: CLR P1.4
JNB P1.0,KEY0
JNB P1.1,KEY4
JNB P1.2,KEY8
JNB P1.3,KEYC
SETB P1.4
CLR P1.5
JNB P1.0,KEY1
JNB P1.1,KEY5
JNB P1.2,KEY9
JNB P1.3,KEYD
SETB P1.5
CLR P1.6
JNB P1.0,KEY2
JNB P1.1,KEY6
JNB P1.2,KEYA
JNB P1.3,KEYE
SETB P1.6
CLR P1.7
JNB P1.0,KEY3
JNB P1.1,KEY6
JNB P1.2,KEYA
JNB P1.3,KEYF
AJMP MAIN
KEY0: AJMP KEY0DEAL
KEY1: AJMP KEY1DEAL
KEY2: AJMP KEY2DEAL 评分标准:................. 图10分,未画上拉电阻的扣4分;KEY9: AJMP KEY9DEAL 未用行列式的扣4分KEYA: AJMP KEYADEAL 程序10分,有语法错误的最多扣4分KEYB: AJMP KEYBDEAL 有逻辑错误的最多扣4分。
试设计红绿灯控制电路原理图及汇编语言程序(16分)。
设上下方向依次为红、绿、黄灯,水平方向依次为红、绿、黄灯。
程序:ORG 00H
AJMP MAIN
ORG 0030H
MAIN:MOV P1,#00010001B
MOV R4,#50
LOP1:ACALL DELAY1S
DJNZ R4,LOP1
MOV P1,#00100001B
MOV R4,#5
LOP2:ACALL DELAY1S
DJNZ R4,LOP2
MOV P1,#00001010B
MOV R4,#50
LOP3:ACALL DELAY1S
DJNZ R4,LOP3
MOV P1,#00010100B
MOV R4,#5
LOP4:ACALL DELAY1S
DJNZ R4,LOP4
AJMP MAIN
END
试编写程序使P1.0口输出频率为2KHz的方波信号(18分)。
计算过程:设计定时器以及其初始值。
程序:ORG 0H
AJMP MAIN
ORG 30H
MAIN: MOV TMOD,#00
MOV TH1,#0FCH
MOV TL1,#03H
MOV IE,#00
SETB TR1
LOOP: JBC TF1,LOOP1
AJMP LOOP
LOOP1: MOV TH1,#0FCH
MOV TL1,#03H
CPL P1.0
AJMP LOOP
请画出MCS-51的最小系统原理图(6分)
第 11 页。