最新MCS-51单片机复习要点.doc

上传人:1595****071 文档编号:35273190 上传时间:2022-08-21 格式:DOC 页数:113 大小:406.50KB
返回 下载 相关 举报
最新MCS-51单片机复习要点.doc_第1页
第1页 / 共113页
最新MCS-51单片机复习要点.doc_第2页
第2页 / 共113页
点击查看更多>>
资源描述

《最新MCS-51单片机复习要点.doc》由会员分享,可在线阅读,更多相关《最新MCS-51单片机复习要点.doc(113页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateMCS-51单片机复习要点MCS-51单片机复习要点MCS-51单片机8051单片机是8位单片机,有40个管脚,8根数据线,16根地址线。单片机的八大组成部分:CPU 、ROM、RAM、I/O 、定时/计数器、串口、SFR、中断服务系统一、MCS-51机的内存结构 (如图1所示)60KB外部ROM64KB外部RAM4KB内部EA = 14KB外部EA = 0特殊功能寄

2、存器内部RAM FFFFH FFFFH 1000H 0FFFH 0FFFH FFH80H7FH 0000H 0000H 00H 0000H7F 程序存储器 内部数据存储器 外部数据存储器 图1 MCS-51机的内存结构物理上分为:4个空间, 片内ROM、片外ROM片内RAM、片外RAM逻辑上分为;3个空间, 程序内存(片内、外)统一编址 MOVC 数据存储器(片内) MOV 数据存储器(片外) MOVX1、程序内存寻址范围:0000H FFFFH 容量64KB EA = 1,寻址从内部ROM;EA = 0,寻址从外部ROM地址长度:16位 存储器地址空间为64KB 作用: 存放程序及程序运行时

3、所需的常数。8051 单片机6个具有特殊含义的单元是:0000H 系统复位,PC指向此处; 0003H 外部中断0入口 000BH T0溢出中断入口 0013H 外中断1入口 001BH T1溢出中断入口 0023H 串口中断入口 2、内部数据存储器物理上分为两大区:00H 7FH即128B内RAM 和 SFR区。如图2所示。 7FH资料缓冲区堆栈区 80字节 数据缓冲器用工作单元30H2FH 位地址: 16字节00H7FH 128 可位寻址位20H1FH 3区 2区 1区 32字节 4组R0R7工作寄存器 0区00H 图2 内部数据存储器 二、 殊功能寄存器SFR寻址空间离散分配在:80H

4、FFH , 注意PC不在此范围内。地址末尾为0或8的SFR具有位寻址功能1、 CPU是运算器加控制器2、 算术运算寄存器(1)累加器A(E0H)(2)B寄存器:乘、除法运算用(3)程序状态字PSW寄存器:包含程序运行状态信息。PSW CY AC FO RS1 RS0 OV PCY(PSW.7) 进位/借位标志;位累加器。AC (PSW.6) 辅助进/借位标志;用于十进制调整。F0 (PSW.5) 用户定义标志位;软件置位/清零。OV (PSW.2) 溢出标志; 硬件置位/清零。P (PSW.0) 奇偶标志;A中1的个数为奇数 P = 1;否则 P = 0。RS1、RS0 寄存器区选择控制位。

5、0 0 : 0区 R0 R7 0 1 : 1区 R0 R7 1 0 : 2区 R0 R7 1 1 : 3区 R0 R72、指针寄存器(1)程序计数器PC PC的内容是指明即将执行的下一条指令的地址,16位,寻址64KB范围,复位时PC = 0000H 具有自动加1功能 不可寻址即不能通过指令访问。(2)堆栈指针SP指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H(3)数据指针DPTRR0、R1、DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。 DPTR = DPH + DPL,也可单独使用。没有自动加1功能 通过软件 INC DPTR 内容加1时序单片机内的

6、各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。执令周期:即从取指到执行完,所需时间。 不同机器指令周期不一样;即使相同机器,不同的指令其指令周期也不一样。机器周期:机器的基本操作周期。 一个指令周期含若干机器周期(单、双、四周期)状态周期:一个机器周期分6个状态周期Si 每个状态周期含两个振荡周期,即相位P1、P2。振荡周期:由振荡时钟产生。 振荡周期Tosc = 1/fosc 一个机器周期 = 12个振荡周期 = 121/fosc 。例如,若fosc = 12MHz,则一个机器周期 = 1s。时钟的产生:通过XTAL1(19)、XTAL(18)。这

7、两个管脚外部加石英晶体和电容组成振荡器系统复位 通过给RST管脚加高电平理论上大于两个机器周期,实际大于10ms,系统复后除了SP=07H ,P0、P1、P2、P3为FFH外,所有的寄存器均为00H,PC=0000H,PSW=00H 工作寄存器组R0R7工作在0组。并行I/O端口 并行I / O端口四个8位I/O口P0、P1、P2、P3 作为通用I / O使用, 是一个准双向口:“读管脚在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态,可作高阻抗输入” MOV P1.#0FFH MOV A,P1 读端口数据方式是一种对端口锁存器中数据进行读入的操作方式,CPU读入的这个数据并非端

8、口引脚的数据。(对端口进行读-修改-写类指令 列如 CPL P1.0是读端口锁存器而不是管脚) 一、P0口地址80H系统复位后P0=FFH(1) P0口可作通用I / O口使用,又可作地址/数据总线口;(2)P0既可按字节寻址,又可按位寻址;(3)P0作为输入口使用时:是准双向口;(4)作通用I / O 口输出时:是开漏输出;(外部管脚必须接上拉电阻)(5)作地址/数据总线口时,P0是一真正双向口,分时使用,提供地址线 A0A7由ALE控制信号锁存,数据线D0D7二、P1口地址90H地址90H系统复位后P1=FFH2、特点(1)无地址/数据口功能(2)可按字节寻址,也可按位寻址(3)作I /

9、O输入口时:是一准双向口,不是开漏输出(无需外接上拉电阻)。三、P2口地址A0H系统复位后P2=FFH2、特点(1)当P2口作为通用I / O时,是一准双向口。(2)从P2口输入数据时,先向锁存器写“1”。(3)可位寻址,也可按字节寻址(4)可输出地址高8位A8A15。四、P3口地址B0H系统复位后P3=FFH2、特点(1)作通用I / O时,是一准双向口,不是开漏输出(无需外接上拉电阻)。(2)P3口具有第二功能 1、P0口:地址低8位与数据线分时使用端口,2、P1口:按位可编址的输入输出端口,3、P2口:地址高8位输出口4、P3口:双功能口。若不用第二功能,也可作通用I / O 口。5、按

10、三总线划分:地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;控制线:P3口的8位(RXD、TXD、INT0、INT1、T0、T1、WR*、RD*加上PSEN*、ALE、EA组成制总线。)中断系统五个中断源,两个优先级一、 中断请求源(“五源中断”)五个中断源: 入口地址 外部中断0(/INT0) 0003H T0溢出中断 000BH 外部中断1(/INT1) 0013H T1溢出中断 001BH 串口中断 0023H有了中断请求,如何通知CPU?通过中断请求标志位来通知CPU。外部中断源、定时/计数器的中断请求标志位分布在 TCON中;串口中断标志位分布在 SCON中。TC

11、ON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SCON TI RI 中断请求标志位 IE0(INT0) IE1(INT1) TF0(T0) TF1(T1) TI/RI(串口)TF1 T1的溢出中断标志。 硬件置1,硬件清0(也可软件清0)。TF0 T0的溢出中断标志。(同TF1,只是针对T0的)IE1 外部中断1(/INT1)请求标志。 外部有中断请求时,硬件使IE1置1,硬件清0。IE0 外部中断0(/INT0)请求标志。IT1 外部中断1(/INT1)触发类型控制位。 IT1 = 0 ,低电平触发。 IT1 = 1 , 下降沿触发。IT0 外中断0(/INT0)触发

12、类型控制位,用法同IT1。外部中断INT0、INT1 触发方式有电平触发和跳变触发TI 串口发送中断标志位。 发送完数据,硬件使TI置1,软件清0(CLR TI)RI 串行口接收中断标志位。 硬件置1,软件清0。二、 中断控制(两级管理)1、中断屏蔽在中断源与CPU之间有一级控制,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。IE EA ES ET1 EX1 ET0 EX0 EA 总控制位ES 串口控制位 若为“1”,允许(开关接通)ET1 T1中断控制位 若为“0”,不允许(开关断开)EX1 /INT1控制位 例如,SETB EAET0 T0中断控制位 CLR IE.7E

13、X0 /INT0控制位2、中断优先级为什么要有中断优先级?CPU按中断申请时间先后顺序响应中断,同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求CPU响应高级别中断。为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。同时同级的中断源申请中断CPU按优先顺序响应中断。IP PS PT1 PX1 PT0 PX0 以上各位与IE的低五位相对应,为“1”时为高级。初始化编程时,由软件确定。例如,SETB PT0 或SETB IP.1 CLR PX0等。同一级中的5个中断源的优先顺序是:(注意是同级) /INT0中断 高 T0中断 厂家出厂时已固化好顺序 /INT1中断 事先约

14、定 T1中断 串口中断 低中断嵌套 同级或低级中断不能打断正在响应的中断的服务程序,高级中断能够打断低级中断服务程序而形成中断嵌套定时/计数器定时 / 计数器 两个定时器/计数器T0 、T1 四种工作方式中断方式定时器程序初始化主要部分如下MOV TMOD,#DATA ;设置定时器工作方式MOV TH0(TH1),# DATA;给定时器计数器装入初值MOV TL0(TL1),# DATASETB EA ;开中断SETB ET0(ET1) ;开中断SETB TR0(TR1) ;启动定时器计数器一、定时 / 计数器的结构T0、T1均为16位加1计数器。计数值高八位计数值低八位计数值高八位计数值低八

15、位TH0 TH1 TL0 TL1 工作方式控制字 TMOD 工作方式 TCON 1、工作方式控制寄存器 TMOD T1 T0TMOD GATE C/T M1 M0 GATE C/T M1 M0GATE 门控位。 GATE = 0 软件启动,仅由软件置TR0(TR1)为1启动定时器/计数器;置0停止定时/计数 GATE = 1 硬件启动,软件置TR0(TR1)为1后 .INT0 管脚或 /INT1管脚高电平启动定时器/计数器。C/T 外部计数器 / 定时器方式选择位 C/T = 0 定时方式; C /T = 1 计数方式。M1M2 工作模式选择位。 M1 M0 模式 说明 0 0 0 13位定时

16、/计数器 八位TH(7 0)+ 低五位TL(4 0) 0 1 1 16位定时/计数器 TH(7 0)+ TL(7 0) 1 0 2 8位计数初值自动重装 TL(7 0) TH(7 0) 1 1 3 T0工作在两个8位定时/计数。运行,而T1只能工作方式2, TCON TR1 TR0 TR0 定时 / 计数器0运行控制位。 软件置位,软件复位。 与GATE有关,分两种情况: GATE = 0 时,若TR0 = 1,开启T0计数工作; 若TR0 = 0,停止T0计数。 GATE = 1 时,若TR0 = 1 且/INT0 = 1时,开启T0计数; 若TR0 = 1 但 /INT0 = 0,则不能开

17、启T0计数。 若TR0 = 0, 停止T0计数。TR1 定时 / 计数器1运行控制位。 用法与TR0类似。 C/T = 0 定时C/T = 1 对外计数。定时:fosc / 12 = 1 /(12/fosc) = 1 / Tcy 等间隔,次数已定,时间确定 Tcy 即对机器周期进行计数。 左图定时时间为nTcy。 n 计数:脉冲不等间隔。 外部管脚输入(T0 P3.4、T1 P3.5 )每个下降沿计数一次 确认一次负跳变需两个机器周期,(要求计数脉冲的高、低电平要大于一个机器周期)所以,计数频率最高为fosc / 24。定时器初值计算计数脉冲的个数 N=t(定时时间)/Tcy(机器周期计数初值

18、X=M(定时计数器的模)-N 方式0 X=213-N =8192-N 方式1 X=216-N=65536-N 方式2 X=28-N=256-N推荐工作方式1 和方式2例1、设计一个P1.0能产生t=1ms的周期信号发生器,主频试编程。解:选T0; C/T=0,GATE= 0定时时间0.5ms N = t / Tcy= t /(12(1/fosc)= 500 所以, X = M 500 ,问:M取多少? 模式0、模式1均可,取模式1,M=216X = 65536-500=65036 = FE0CH TH0 0FEH TL0 0CH程序: ORG 0000H LJMP MAIN ORG 000BH

19、 LJMP INSE1 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0FEH MOV TMOD,#01H SETB TR0; SETB ET0; SETB EA SJMP INSE1: MOV TL0,#0CH MOV TH0,#0F0H CPL P10 RETI 单片机串行接口 8051单片机有一个异步全双工串行通讯口 通过RXD(P3.0)接收 ,通过TXD(P3.1)发送,(串行通信有单工、半双工、全双工) ,8051单片机串行口有4种工作方式。异步通信一帧数据的格式如下空闲位 起始位 5 8位数据 奇偶校验位 停止位 空闲位 3、

20、串行通信方向 A B 发 单工 收 A B 发 半双工 发 收 收 A 全双工 B 发 收 收 发 4、波特率 即串行通信速率。 b/s 、 bps 举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为240个字符。求波特率。解: (181)240 = 2400 b/s = 2400波特。5、串行通信接口发送: CPU 通过指令MOV SBUF,A 来启动发送 发送一帧数据完毕后TI置1,通过查询方式查询到TI=1或中断方式可以继续发送下一帧数据,并软件复位TI=0 (CLR TI)D7 D6 D5 D4 D3 D2 D1 D0 发送数据寄存器 SBUF(99H)1 D7 D6

21、D5 D4 D3 D2 D1 D0 0 发送数据发送时钟接收: 必须置位寄存器 SCON, REN位为1才能启动串口接收数据,当接收一帧数据后,RI置1 ,CPU通过查询RI=1或中断方式,通过指令 MOV A.SBUF 来取走接收的数据,并软件复位RI=0(CLR RI)接收时钟0 D0 D1 D2 D3 D4 D5 D6 D7 1 接收数据 D0 D1 D2 D3 D4 D5 D6 D7 接收数据寄存器 SBUF(99H)CPU二、MCS-51机串行接口单片机内有:通用异步接收/发送器 UART全双工,4种工作方式,波特率可编程设置,可中断。1、串口的组成 从编程角度讲来看主要由以下寄存器

22、组成。 PCON SMOD SCON SM0 SM1 SM2 REN TB8 RB8 TI RI SBUF D7 D6 D5 D4 D3 D2 D1 D0 SBUF发 SBUF收SM0、SM1:工作方式选择位SM2:多机通信控制位,常与RB8配合,决定是否激活RIREN:允许接收TB8:发送的第九位数RB8:接收的第九位数TI :中断标志RI SMOD:波特系数选择位,0 20 = 1 1 21 = 22、串行口的工作方式(1)SM0、SM1=00;方式0:是8位同步移位寄存器方式,波特率固定为fosc / 12 RXD 接收/发送数据 TXD 产生同步移位脉冲接收/发送完,置位RI / TI

23、 ,(要求SM2 = 0)方式0 D7 D6 D5 D4 D3 D2 D1 D0 发送 D0 D1 D2 D3 D4 D5 D6 D7 接收无起始位,无停止位(2)SM0、SM1=01方式1:8位UART,波特率为(2SMODT1的溢出率)/ 32停止位 D7 D6 D5 D4 D3 D2 D1 D0 起始位 发送位 TXD起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位 接收位 RXD1帧信息,10位。 送RB8位波特率可变: 2SMOD / 32 (T1的溢出率)发送完置位TI。接收完数据置位RI。置位RI是有条件的。即:REN = 1,RI = 0 且SM2 = 0或SM2

24、 = 1但是接收到的停止位为1。此时,数据装载SBUF,停止位进入RB8,RI置1。(3)方式2( SM0、SM1=10)、方式3 (SM0、SM1=11) :9位UART,多机通信。多机通信只能工作在方式2、方式3停止位 TB8 D7 D6 D5 D4 D3 D2 D1 D0 起始位 发送数据起始位 D0 D1 D2 D3 D4 D5 D6 D7 TB8 停止位 接收数据 送SCON寄存器RB8位方式2波特率:(固定)2SMOD / 64 fosc方式3波特率: 2SMOD / 32 (T1溢出率)数据发送串口方式2、3发送第九位数据必须通过软件置事先写入寄存器SCON的TB8位,把要发送的

25、数据发送到SBUF(MOV SUBF,A) 启动数据发送,发送完数据置位TI。CPU通过查询方式查询到TI=1或中断方式可以继续发送下一帧数据,并软件复位TI=0 (CLR TI)数据接收接收: 必须置位寄存器 SCON REN位为1才能启动串口接收数据,当接收一帧数据后此时,数据装载SBUF,接收到的第9位数据(TB8)送SCON寄存器RB8位 ,RI置1。,CPU通过查询RI=1或中断方式,通过指令 MOV A.SBUF 来取走接收的数据,并软件复位RI=0(CLR RI)3、波特率的设置方式0、方式2固定。方式1,方式3可变。波特率 = 2SMOD / 32 (T1的溢出率) T1溢出率

26、 = 单位时间内溢出次数 = 1 /(T1的定时时间)而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。 N = 28 t / T, t = (28N)T =(28N)12 / fosc所以,T1溢出率 = 1/t = fosc / 12(28N),故, 波特率 = 2SMOD / 32 fosc / 12(256N)。若已知波特率,则可求出T1的计数初值: y = 2562SMODfosc / (波特率3212)例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多少?并进行初始化编程。解:y

27、 = 2562SMODfosc / (24003212)= 242.98243 = F3H 同理,fosc = 11.0592MHz,波特率为2400,设SMOD = 0,则 y = F4H 初始化编程:MOV TMOD,#20HMOV PCON,#80HMOV TH1,#0F3HMOV TL1,#0F3HSETB TR1MOV SCON,#50H 指令系统指令按寻址方式分有 7种寻址方式,直接寻址(direct)、立即寻址(#20H) 、寄存器寻址(Rn)、寄存器间接寻址(Ri)、相对寻址(rel)、寄存器变址寻址(A+PC)、位寻址 ( ACC.1)指令按功能上分有5种 ,传送类指令 、算

28、术运算类指令、逻辑运算及移位类指令、控制转移类指令、位操作类指令 指令三大属性。功能属性、空间属性(指令站用的字节数)、时间属性(指令执行的机器周期数)传送类指令 有四种寻址方式 对A的数据传送只影响状态标志位P访问片内RAM和SFR 指令格式 MOV 唯一的一条16位传送指令 MOV DPTR,#DATA16访问 片外 RAM 4条指令MOVX A,Ri MOVX A,DPTR( 这两条指令是读片外RAM的数据伴随着控制信号RD*有效)MOVX Ri,A MOVX DPTR,A ( 这两条指令是写片外RAM的数据伴随着控制信号WR*有效)访问 程序存储器ROM 2条指令MOVC A,A+PC

29、 MOVC A,A+DPTR ( 这两条指令是读程序ROM的数据伴随着控制信号PSEN*有效)2、栈操作指令PUSH directPOP direct不影响任何标志位。Direct 可以是内存RAM 128个单元任意一个单元 也可以特殊功能寄存器 这里注意 PUSH ACC ( ACC是直接地址,不能写A)PUSH direct 指令执行中,机器自动进行两步操作:(1)(SP) (SP)+ 1(2)(SP) (direct)例1、设分析: 执行 PUSH DPL PUSH DPH 后,各单元中的内容。(0AH)=23H (0BH)=01H (SP)=0BHPOP direct 指令执行中,机器

30、也自动进行两步操作:(1)(direct) (SP)(2)(SP) (SP) 1例2、设(SP)= 40H,(40H)= 12H,(3FH)= 34H 执行 POP DPH POP DPL 后,各单元中的内容。(SP) = 3EH,(DPTR)= 1234H,结论:1)PUSH 与 POP 操作过程刚好相反; 2)进、出栈规则: 先进后出,后进先出。应注意指令书写先后顺序; 3)可用于“保护现场,恢复现场”3、字节交换指令XCH A,RnXCH A,direct 整字节交换XCH A,RiXCHD A,RiSWAP A 半字节交换不影响任何标志位。 算术运算类指令包括:加、 减、乘、除;加一、

31、减一。一、加法指令ADD A,Rn ;(A) (A)+ (Rn)以下类同。ADD A,directADD A,RiADD A,#data无符号数相加时:若C = 1,说明有溢出(其值 255)。带符号数相加时:若OV = D7cD6c = 1,说明有溢出。影响 C OV AC这三个标志位 奇偶标志P由累加器A的值决定INC A ;(A) (A)+1 ,以下类同。INC RnINC directINC RiINC DPTR不影响 C OV AC这三个标志位 奇偶标志P由累加器A的值决定逻辑操作类指令共分两大类:单字节逻辑操作,双字节逻辑操作,共24条。一、单字节逻辑操作指令CLR A ;(A)

32、0CPL A A中8位按位求反。循环左移、右移指令:RL ARLC ARR ARRC A二、双字节逻辑操作指令“与操作”:ANL A,Rn ; (A) (A)(Rn),以下类同。ANL A,directANL A,RiANL A,#dataANL direct,AANL direct,#data例1、(P1)= 35H,使其高4位输出0,低4位不变。解; ANL P1,#0FH 此做法称为“屏蔽”位。“或操作”:ORL A,Rn ; (A) (A)(Rn),以下类同。ORL A,directORL A,RiORL A,#dataORL direct,AORL direct,#data例2、将A

33、中的低3位送入P1中,并且保持P1中高5位不变。ANL A,#07HANL P1,#0F8HORL P1,A ;(P1)= P17P16P15P14P13A2A1A0这称为“数位组合”。“异或操作”:XRL A,Rn ; (A) (A)(Rn),以下类同。XRL A,directXRL A,RiXRL A,#dataXRL direct,AXRL direct,#data例3、设(P1)= 0B4H = 10110100B,执行: XRL P1,#00110001B 结果按# 0 0 1 1 0 0 0 1 取反,即:(P1)= 1 0 0 0 0 1 0 1 B = 85H 这称为“指定位取反”。在上述ANL、ORL、XRL操作中,用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁