MCS-51单片机复习要点_第1页
MCS-51单片机复习要点_第2页
MCS-51单片机复习要点_第3页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、MCS-51机的内存结构(如图1所示)0000H0000H00H7F程序存储器内部数据存储器外部数据存储器MCS-51单片机8051单片机是8位单片机,有40个管脚,8根数据线,16根地址线。单片机的八大组成部分:CPU、ROM RAM I/O、定时 / 计数器、串 口、SFR中断服务系统FFFFH64KB外部RAM物理上分为:4个空间,图1 MCS-51机的内存结构 片内ROM片夕卜ROM 片内RAM片外RAM逻辑上分为;3个空间,程序内存(片内、外)统一编址 MOVC 数据存储器(片内) MOV 数据存储器(片外) MOVX1、程序内存寻址范围:0000H FFFFH 容量64KBEA

2、= 1,寻址从内部 ROM EA = 0 ,寻址从外部 ROM地址长度:16位 存储器地址空间为64KB作用:存放程序及程序运行时所需的常数。8051单片机6个具有特殊含义的单元是:0000H 系统复位,PC指向此处;0003H000BH外部中断0入口T0溢出中断入口0013H001BH0023H外中断1入口T1溢出中断入口串口中断入口2、内部数据存储器7FH图2内部数据存储器字节字节可位寻址位数据缓冲器用字节 4 组R0R7工作寄存器物理上分为两大区:00H 7FH即128B内RAM和SFR区。如图2所示二、殊功能寄存器SFR寻址空间离散分配在:80H FFH,注意PC不在此范围内。地址末尾

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

4、73 区 R0 R72、指针寄存器( 1)程序计数器 PCPC的内容是指明即将执行的下一条指令的地址,16位,寻址64KB范围, 复位时PC = 0000H具有自动加1功能 不可寻址即不能通过指令访问。( 2)堆栈指针 SP指明栈顶元素的地址, 8位,可软件设置初值,复位时 SP = 07H(3)数据指针 DPTRROR、DPTR旨明访问的数据存储器的单元地址,16位,寻址范围64KB DPTR =DPH + DPL,也可单独使用。没有自动加1功能 通过软件INC DPTR内容加1时序单片机内的各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有 先后顺 序的,这种顺序就称为时序。执令周

5、期:即从取指到执行完,所需时间。不同机器指令周期不一样;即使相同机器,不同的指令其指令周期也不一样。 机器周期:机器的基本操作周期。一个指令周期含若干机器周期(单、双、四周期) 状态周期:一个机器周期分 6个状态周期 Si每个状态周期含两个振荡周期,即相位 P1、 P2。 振荡周期:由振荡时钟产生。振荡周期 Tosc = 1/fosc一个机器周期=12个振荡周期=12 x 1/fosc 。例如,若fosc = 12MHz,则一个机器周期=1卩s。时钟的产生:通过XTAL1( 19)、XTAL( 18)。这两个管脚外部加石英晶体和电容组成振荡器系统复位通过给RSTT脚加高电平理论上大于两个机器周

6、期,实际大于 10ms系统复后除了 SP=07H ,P0 P1、P2、P3为FFH外,所有的寄存器均为00H,PC=0000H,PSW=00工作寄存 器组R0R7L作在0组。并行I/O端口并行 I / O 端口四个 8 位 I/O 口 P0、 P1、 P2、 P3作为通用 I / O 使用, 是一个准双向口:“读管脚在输入数据时应先把口置 1,使两个FET都截止,引脚处于悬浮状态,可作高阻 抗输入” MOV P1.#0FFHMOV A,P1读端口数据方式是一种对端口锁存器中数据进行读入的操作方式,CPU卖入的这个数据并非端口引脚的数据。(对端口进行读-修改-写类指令 列如CPL P1.0是读端

7、口锁存器而不是 管脚)一、P0 口地址80H系统复位后PO=FFH(1) P0口可作通用I / O 口使用,又可作地址/数据总线口;(2)P0既可按字节寻址,又可按位寻址;(3)P0作为输入口使用时:是准双向口;(4)作通用 I / O 口输出时:是开漏输出; (外部管脚必须接上拉电阻)(5)作地址/数据总线口时,P0是一真正双向口,分时使用,提供地址线 A0A7由ALE 控制信号锁存,数据线 D0D7二、P1 口地址90H地址90H系统复位后 P仁FFH2、特点( 1 )无地址 / 数据口功能( 2)可按字节寻址,也可按位寻址(3)作 I / O 输入口时:是一准双向口,不是开漏输出(无需外

8、接上拉电阻) 。三、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、按三总线

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

10、0R0 IE IT1IE0 IT)TIRI中断请求标志位IE0 (INT0) IE1 (INT1) TF0 (T0) TF1 (T1) TI/RI (串口)TF1 T1的溢出中断标志。硬件置1,硬件清0 (也可软件清0) oTF0T0的溢出中断标志。(同TF1,只是针对T0的)IE1 外部中断1 (/INT1 )请求标志。外部有中断请求时,硬件使IE1置1,硬件清0IE0 外部中断0 (/INT0 )请求标志。IT1 外部中断1 (/INT1 )触发类型控制位。IT1 = 0,低电平触发。IT1 = 1,下降沿触发。ITO 夕卜中断0 (/INTO )触发类型控制位,用法同IT1 外部中断IN

11、TO、INT1触发方式有电平触发和跳变触发TI串口发送中断标志位。发送完数据,硬件使TI置1,软件清0 (CLR TI)RI串行口接收中断标志位。硬件置1,软件清0。中断控制(两级管理)1、中断屏蔽在中断源与CPU之间有一级控制,类似开关,其中第一级为一个总开关,IEES E:T1 EX1 ET)EX0第二级为五个分开关,由IE控制ES串口控制位ET1T1中断控制位EX/INT1控制位ETOT0中断控制位EXO/INT0 控制位以上各位与IE的低五位相对应,为例如,SETB PTO 或 SETB IP.1CLR PX0 等。同一级中的5个中断源的优先顺序是:/INTO中断高TO中断/INT1中

12、断T1中断串口中断,低1”时为高级。初始化编程时,由软件确定(注意是同级)厂家出厂时已固化好顺序< 事先约定EA总控制位若为“1”,允许(开关接通) 若为“ 0”,不允许(开关断开) 例如,SETB EACLR IE.72、中断优先级 为什么要有中断优先级? CPU按中断申请时间先后顺序响应中断,同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求 CPJ向应高级别中断。为此将5个中断源分成高级、低 级两个级别,高级优先,由IP控制。同时同级的中断源申请中断 CPU按优先顺序响应中断。IPPS_pT1 PX1| PTO PXO中断嵌套 同级或低级中断不能打断正在响应的中断的服务

13、程序, 高级中断能够打断低级中断 服务程序而形成中断嵌套定时/计数器定时/计数器 两个定时器/计数器TO、T1四种工作方式 中断方式定时器程序初始化主要部分如下MOV TMOD,#DATA ;设置定时器工作方式MOV TH0(TH1), # DATA;给定时器计数器装入初值MOV TLO (TL1),# DATASETB EA;开中断SETB ETO (ET1);开中断SETB TRO (TR1);启动定时器计数器 一、定时/计数器的结构 TO、T1均为16位加1计数器TH0TLO工作方式1、工作方式控制寄存器TMODT1TOfTMOD GATE C/TM1 Mo gaE C/f M1 MOG

14、ATE门控位。GATE = O软件启动,仅由软件置TRO(TR1)为1启动定时器/计数器;置O停止定时/计数GATE = 1硬件启动,软件置TRO(TR1)为1后.INTO管脚或/INT1管脚高电 平启动定时器/计数器。C/T外部计数器/定时器方式选择位C/T = O定时方式;C /T = 1计数方式。M1M2 工作模式选择位。M1 M0模式说明0 00130 11161 0281 13TO位定时/计数器 八位TH (7 0 ) +低五位TL (4 0 )位定时/计数器TH (7 0 ) + TL ( 7 0 )位计数初值自动重装 TL (7 0 1TH (7 0 )工作在两个8位定时/计数。

15、运行,而T1只能工作方式2,TR1TR0TR0 定时/计数器0运行控制位。软件置位,软件复位。与GATE有关,分两种情况:GATE = 0 时,若TR0 = 1,开启T0计数工作;若TR0 = 0 ,停止T0计数。GATE = 1时,若TR0 = 1且/INT0 = 1 时,开启T0计数;若TR0 = 1但/INT0 = 0 ,贝U不能开启T0计数。若TR0 = 0, 停止T0计数。TR1 定时/计数器1运行控制位。用法与TR0类似。C/T = 0定时C/T = 1对外计数。定时:fosc / 12 = 1 /(12/fosc ) = 1 / Tcy| 等间隔,次数已定,时间确定Tcy |即对

16、机器周期进行计数。左图定时时间为nx Tcy。J Jn计数:脉冲不等间隔。 外部管脚输入(T0 P3.4、T1 P3.5 )每个下降沿计数一次 LI U 确认一次负跳变需两个机器周期,(要求计数脉冲的高、低电平要大于一个机器周期)所以,计数频率最高为fosc / 24 定时器初值计算计数脉冲的个数N=t (定时时间)/Tcy(机器周期计数初值X=M定时计数器的模)-N13方式 0 X=2 -N =8192-N方式 1 X=2 16-N=65536-N方式 2 X=2 8-N=256-N推荐工作方式1和方式2 例1、设计一个P1.0能产生t=1ms的周期信号发生器,主频试编程解:选 T0;C/T

17、=0 ,GATE= 0定时时间 0.5msN = t / Tcy= t /(12X( 1/fosc ) = 500所以,X = M 500,问:M取多少? 模式0、模式1均可,取模式1, m=26X = 65536-500=65036 = FE0CHTH00FEHTL00 程序:ORG 0000HLJMP MAINORG 000BHLJMP INSE1ORG 1000HMAIN : MOV SP, #60HMOV TL0,#0CHMOV TH0,#0FEHMOV TMOD,#01HSETB TR0SETB ET0SETB EASJMP$INSE1 : MOV TL0 , #0CHMOV TH0

18、 , #0F0HCPL P10RETI单片机串行接口8051单片机有一个异步 全双工串行通讯口 通过 RXD(P3.0)接收,通过 TXD(P3.1)发送,(串行通信有单工、半双工、全双工),8051单片机串行口有4种工作 方式。异步通信一帧数据的格式如下空闲位起始位58 位数据奇偶校验位L 停止位空闲位3、串行通信方向A| B发 单工收_4、波特率即串行通信速率。 b/s 、 bps举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为 240个字符。求波特率。解:(1 + 8+ 1)X 240 = 2400 b/s = 2400 波特。5、串行通信接口发送: CPU通过指令MO

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

20、D6D5 D4 D:3 D2D1D0汨UFSBUFSM0 SM1工作方式选择位SM2多机通信控制位,常与 RB8配合,决定是否激活RIREN允许接收TB8:发送的第九位数RB8接收的第九位数TI 1 :中断标志A20 = 121 = 2RISMOD波特系数选择位,012、串行口的工作方式(1) SM0 SM仁00方式0:是8位同步移位寄存器方式,波特率固定为 fosc / 12 RXD接收/发送数据TXD产生同步移位脉冲D7 D6 D5 D4D3 D2:D1ID0方式0接收/发送完,置位RI / TI ,(要求SM2 = 0)D0 D1 D2 D3 D4 D5 D6 D7 无起始位,无停止位停

21、止位)7 D6i D5D4 D)3 D2D1D0起始令位(2) SM0 SM1= 01方式1: 8位UART波特率为(2SMO女T1的溢出率)/ 32起始位D)0 D1D2D3 )4 D5 D6D7停止位1帧信息,10位。送RB8位波特率可变: 2 SMOD/ 32 X( T1的溢出率)发送完置位TI。接收完数据置位RI o浚送位TXD搁攵位RXD置位RI是有条件的。即:REN = 1, RI = 0 且SM2 = 0或SM2 = 1但是接收到的停止位为1此时,数据装载SBUF停止位进入RB8 RI置1o停止位TB8 D)7匸)6 1D5 D4D3D2D' D0起始位起始位D0 D1

22、D2 D3 D,4 D5D6D7TB8停止位发送数据接收数据送SCO寄存器RB8位(3)方式2 ( SM0 SM仁10、方式3 (SM0 SM1=11 : 9位UART多机通信。多机通信 只能工作在方式2、方式3方式2波特率:(固定)2smod/ 64 X fosc方式3波特率:2SMOD / 32X( T1 溢出率)数据发送串口方式2、3发送第九位数据必须通过软件置事先写入寄存器SCON勺TB8位,把要发送的数据发送到SBUF( MOV SUBF)启动数据发送,发送完数据置位 TI。CPU!过查询方式查 询到TI=1或中断方式可以继续发送下一帧数据,并软件复位TI=0 (CLR TI)数据接

23、收 接收:必须置位寄存器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可变。波特率=2 SMOD/ 32X( T1的溢出率)T1 溢出率 = 单位时间内溢出次数 = 1 /(T1 的定时时间)而 T1 的定时时间 t 就是 T1 溢出一次所用的时间。此情况下,一般设 T1 工作在模式 2(8 位 自动重装初值)。N =

24、 28 t / T , t =(28N) T =(28N)X 12 / fosc所以, T1 溢出率 = 1/t = fosc / 12(28N),故, 波特率 = 2SMOD / 32 X fosc / 12( 256N) 。若已知波特率,则可求出 T1 的计数初值:y = 256 2smoXfosc /(波特率X 32 X 12)例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1则定时/计数器T1的计数初值为多 少?并进行初始化编程。解:y = 256 2smoXfosc /(2400X 32X 12) = 242.98 243 = F3H同理,fosc = 11.05

25、92MHz,波特率为 2400,设 SMOD = 0 贝Uy = F4H初始化编程:MOV TMOD#20HMOV PCON#80HMOV TH1,#0F3HMOV TL1,#0F3H SETB TR1 MOV SCON#50H指令系统指令按寻址方式分有7种寻址方式,直接寻址(direct )、立即寻址(#20H 、寄存器寻址(Rn)、寄存器间接寻址(R)、相对寻址(rel )、寄存器变址寻址(A+PC位寻址(ACC.1) 指令按功能上分有5种,传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转 移类指令、位操作类指令指令三大属性。功能属性、空间属性(指令站用的字节数)、时间属性(指令执

26、行的机器周 期数)传送类指令有四种寻址方式对A的数据传送只影响状态标志位P访问片内RAM和SFR指令格式MOV唯一的一条16位传送指令 MOV DPTR,#DATA16访问片外RAM 4条指令MOVX A,Ri MOVX A,DPT这两条指令是读片外RAM的数据伴随着控制信号 RD有效) MOVX RiA MOVX DPTRA (这两条指令是写片外RAM的数据伴随着控制信号 WR有效)访问程序存储器ROM 2条指令MOVC A,A+PC MOVC A,A+DPT这两条指令是读程序 ROM勺数据伴随着控制信号 PSEN有 效)2、栈操作指令PUSH directPOP direct不影响任何标志

27、位。Direct可以是内存RAM 128个单元任意一个单元 也可 以特殊功能寄存器 这里注意PUSH ACC ( ACC是直接地址,不能写 A)PUSH direct指令执行中,机器自动进行两步操作:(1) (SR (SP) + 1(2) (SF)(direct )例1、设分析:执行 PUSH DPLPUSH DPH后,各单元中的内容。(0AH)=23H (0BH)=01H( SP =0BHPOP direct指令执行中,机器也自动进行两步操作:(1) (direct )(SP)(2) (SP (SP - 1例 2、设(SP = 40H, (40H) = 12H, (3FH = 34H执行PO

28、P DPHPOP DPL后,各单元中的内容。(SP = 3EH , (DPTR = 1234H,结论:1) PUSH与 POP操作过程刚好相反;2 )进、出栈规则:先进后出,后进先出。应注意指令书写先后顺序;3 )可用于“保护现场,恢复现场”3、字节交换指令XCH A,RnXCH A,direct '整字节交换XCH A,RiXCHD A Ri 、>SWAP AJ半字节交换不影响任何标志位。算术运算类指令包括:加、减、乘、除;加一、减一。一、加法指令ADD A,Rn ; (A)(A) + (Rn)以下类同。ADD A,directADD A,RiADD A,#data无符号数相加

29、时:若C = 1,说明有溢出(其值> 255 )。 带符号数相加时:若 OV = D7c® D6c = 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)0-CPL A A 中8位按位求反。循环左移、右移指令:RL ARLC ARR ARRC A二、双字节逻辑操作指令“与操

30、作”:ANL A, Rn ;(A)(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)V( Rn),以下类同ORL A, directORL A, RiORL A, #dataORL direct , AORL direct , #data例2、将A中的低3位送入P1中,并且保持P1中高5位不变。ANL A,#07HANL P1,#0F

31、8HORL P1,A ;( P1) = P17P16R5P14P13A2AA这称为“数位组合”。“异或操作”: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这称为“指定位取反”。P0 P3是第,还是第二操作在上述ANL ORL XRL操作中,用于

32、端口操作时,无论 数,都遵循“读一修改一写”端口锁存器的操作。§ 3-5控制转移类指令作用:改变程序计数器PC的值,从而改变程序执行方向。分为四大类:无条件转移指令;条件转移指令;调用指令;返回指令。一、无条件转移指令LJMP addr16AJMP addrllSJMP relJMP A + DPTRLJMP addr16;长跳转转移目的地址 addr16 (PC; OOOOH FFFFH, 64KBAJMP addrll;绝对转移转移目的地址的形成:先(P。( PC + 2 ;后 PC15 11 不变,PC10 0 四 addr1O 064KB = 216 =25X 211 = 3

33、2 X 2KB转移目的地址与(PC + 2在同一个2KB范围内。SJMP rel;短转移,相对寻址。转移目的地址=(PC + 2 + rel ,所以rel = 转移目的地址一(PQ - 2但,实际使用中常写成 SJMP addr16,汇编时会自动转换出relJMP A + DPTR;间接转移,散转移指令。转移目的地址=(A) +(DPTR二、调用指令LCALL addr16;长调用ACALL addrll;绝对调用LCALL addr16;转移范围64KB不影响标志位。执行中自动完成如下过程:(PC (PC + 3(SP (SR + 1(SF) (PC7 0),保护断点地址低字节;(SF) (

34、SF)+ 2(SP) (PC15 8),保存断点地址高字节;(PC _16,目的地址送PC转子程序例2、设(SR = 07H, ( PC = 2100H,子程序首地址为3456H,执行:LCALL 3456HMOV A ,20H执行结果:(SP = 09H, (09H) = 21H, (08H = 03H, (PC = 3456HACALL addrll ;转移范围与(PC + 2在同一个2KB内。不影响任何标志位,执行中机器自动完成下列过程:(PC ( PC+ 2(SP :(SP+1(SP) ( PC7 0)(SP(SP+2(SP) ( PC15 8)(PC10 0 dr10 0三、返回指令

35、从子程序返回主程序。RET;调用子程序返回;(子程序不能缺少的指令)RETI;中断子程序返回。(中断程序不能缺少的指令)(PC15 8)(SP)(sp (SP 1(PC7 0) (SP)(SP (SP 2例 3、设(SP = 0BH, (0AH = 23H, (0BH = 01H执行: RET结果;(SP = 09H, ( PC = 0123H (返回主程序)二、条件转移指令 实现按照一定条件决定转移的方向。分三类。1 、判零转移JZ relJNZ relJZ rel ;若( A)= 0 ,则转移,否则顺序执行JNZ rel ;若(A)工0 ,贝U转移,否则顺序执行 转移目的地址 =( PC)

36、 + 2 + rel不影响任何标志位。例1、将外RAM的一个数据块(首地址为DATA1传送到内部数据RA(首地址为DATA2, 遇到传送的数据为零时停止传送,试编程。解: MOV R0 , #DATA2MOV DPTR, #DATA1LOOP1: MOVX A, DPTRJZ LOOP2MOV R0 , AINC R0INC DPTRSJMP LOOP1LOOP:2 SJMP LOOP22、比较转移指令功能:比较二个字节中的值,若不等,则转移。CINE A ,#data ,relCJNE A,direct ,relCJNE R,i #data ,relCJNE Rn,#data ,rel该类指

37、令具有比较和判断双重功能,比较的本质是做减法运算,用第一操作数内容减去 第二操作数内容,但差值不回存。转移目的地址 = (PC)+ 3 + rel 若第一操作数内容小于第二操作数内容,则( C)= 1,否则( C)= 0。 该类指令可产生三分支程序:即,相等分支;大于分支;小于分支。例2、设P1 口的P1.0P1.3为准备就绪信号输入端,当该四位为全 1时,说明各项工作已准备好,单片机可顺序执行,否则,循环等待。解: MOV A , P1ANL A , #0FHCJNE A, #0FH, WAIT ;P1.0 P1.3 不为全 1时,返回 WAITMOV A, R23、循环转移指令DJNZ R

38、n, rel ;(二字节指令)DINZ direct , rel ;(三字节指令)本指令也为双功能指令,即减 1 操作和判断转移操作。第一操作数内容减 1 后,若差值不为零,则转移;否则顺序执行。 转移目的地址 = (PC)+ 2 或3 + rel例3、将8031内部RAM的40H4FH单元置初值#A0H#AFH解: MOV R0 , #40HMOV R2 , #10HMOV A, #0A0HLOOP : MOV R0 AINC R0INC ADJNZ R2, LOOP§ 3-6位操作指令包括:位传送指令、条件转移指令、位运算指令。位操作由单片机内布尔处理器来完成。位地址的四种表示:

39、1)使用直接位地址表示:如 20H 30H 33H等;2)使用位寄存器名来表示;如 C、OV F0等;3)用字节寄存器名后加位数来表示:如 PSW.4 P0.5、ACC.3等;4)字节地址加位数来表示:如 20.0、30.4、50.7等。一、位传送指令MOV C,bitMOV bit,C功能:(C)廿*(bit);、位状态控制指令CLRbit;(bit0SETB bit;(bit )1CPLbit;(bit )(/ bit )例1、编程通过P10线连续输出256个宽度为5个机器周期长的方波。解:MOVR0 , #00HCLR P10LOOP : CPL P10NOPNOPDJNZ R0 , L

40、OOP四、布尔条件转移指令有5条,分别对C和直接位地址进行测试,并根据其状态执行转移。1、判布尔累加器转移JC rel;( C)= 1,转移,否则顺序执行。JNC rel;(C)= 0,转移,否则顺序执行。不影响标志。转移地址 :(PC C + rel20H单元,例3、比较内部RAM勺30H和40H单元中的二个无符号数的大小,将大数存入小数存入21H单元,若二数相等,则使内 RAM勺第127位置1解:MOV A,30HCJNE A, 40H,LOOPSETB 7FHSJMP $LOOP1 : JC LOOP2MOV 20H, AMOV 21H, 40HSJMP $LOOP2 : MOV 20H

41、 ,40HMOV 21H , ASJMP $2、判位变量转移JB bit ,rel;(bit )= 1 ,则转移,否则顺序执行JBC bit ,rel;(bit )= 1 ,则转移,否则顺序执行,且无论bit )是否等于 1,均使该位清零JNB bit ,rel;(bit )= 0 ,则转移,否则顺序执行不影响标志。例4、试判断A中的正负,若为正数,存入20H单元;若为负数则存入21H单元解:JB ACC7,LOOPMOV 20H, ASJMP $LOOP : MOV 21H ASJMP $单片机小系统及外扩展单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要。为此

42、,应扩展其功能。一、5-1 MCS-51单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机电路可以工作运行 指令的系统1、8051/8751硬件最小系统对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路2、8031硬件最小系统8031单片机片内无ROM若要正常工作,必需外配 ROM外接ROM5, P3口、P2 口、P0 口均 被占用只剩下P1 口作I / O 口用,其它功能不变。二、存储器的扩展1、三总线的连接ABUS DBUS CBUSABUS (A15A8A7A0) DBU( D7D0CBUS PSEN是程序存储器读选通信号RD* WR*是

43、片外数据存储器读、写选通信号EA是片内和片外程序存储器的选择信号EA=1, CPU开始从片内程序存储器取指令,PC大于0FFF后转向片外程序存储器取指令。EA=Q CPU开始从片外程序存储器取指令。ALE 锁定P0 口提供的地址低8位(A7A0的锁存信号1、数据线的连接(D7D0P0 口的八位线承担此任,此时不用外接上拉电阻。2、地址线的连接P0 口承担地址低八位线,A0 A7 ;P2 口承担地址高八位线。A8 A15。注意:P0 口线地址/数据分时复用,需用控制信号 ALE通过地址锁存器74LS373锁存地址 低 8 位(A7A0。3、控制线的连接对存储器来讲控制线无非是:芯片的选通控制、读

44、写控制 单片机与外部器件数据交换要遵循两个重要原则:一是,地址唯一性,一个单元一个地址。二是,同一时刻,CPU只能访问一个地址,即只能与一个单元交换数据。 不交换时,外部器件处于锁闭状态,对总线呈浮空状态。选通:CPU与器件交换数据或信息,需先发出选通信号/CE或/CS,以便选中芯片 读/写:CPU向外部设备发出的读/写控制命令。ROM : /OE 峙 /PSENRAM : /WE/OE2)存储器地址编码RAM 6116:“16”1 10 112K X 8b = 2KBX 2 = 2即6116有11根地址线。地址空间:A10 A9 A8 A7 A6 A5 A4 A3 A2 A 1 A0最低地址

45、:00 0000H6116最高地址:1 1 111 1 1 1111H的地址空间MCS-51单片机寻址范围:64KB6 X 210 = 216即16位地址线地址空间:A15A14A13A12A11A10A9A8A7A0单片机X X X X X A10A9A8A7A06116'v丿25 = 322KB上式中:“X”表示0或1。即单片机地址空间中包含有 32个2KB某片6116占据的是哪2KB不能确定一一地址浮动。 只有限定A15A11的取值才能确定6116在系统中的地址范围。如,P2.6 = 0 ,选中 6116 的/CS 线。设 P2.7 P2.5 P2.4 P2.3 假定全为 1则:6116 地址范围是B800H BFFFH同理,P2.7 P25 P24 P23 假定全为0则:6116 地址范围是0000H 07FFH ;再设 P2.7 选中 6116 (设 P26 P25 P24 P23 全为 1)则:地址范围是 7800H 7FFFH可见:存储器芯片在系统中地址分布由两个因素决定:一是,芯片本身的地址线(与容量有关)二是,芯片选通信号的获得方式。扩展存储器时,总是让单片机低位地址与存储器芯片地址线相接;而让单片机剩余的高位地 址线(在P2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论