


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MCS-51单片机8051单片机是8位单片机,有40个管脚,8根数据线,16根地址线。单片机的八大组成部分:CPU、ROM、RAM、I/O 、定时/ 计数器、串口、SFR、中断服务系统、MCS-51机的存结构(如图1所示)FFFFH60KBFFFFH64KB外部ROM1000H外部RAM程序存储器部数据存储器物理上分为:4个空间,图1 MCS-51机的存结构 片ROM、片夕卜ROM逻辑上分为;3个空间,片RAM、片外RAM程序存(片、外)统一编址 MOVC数据存储器(片)MOV数据存储器(片外)MOVX1、程序存寻址围:0000H FFFFH 容量 64KBEA = 1,寻址从部ROM ; E
2、A = 0,寻址从外部 ROM 地址长度:16位 存储器地址空间为64KB作用:存放程序及程序运行时所需的常数。外部数据存储器0FFFHViLFFH80H7FH特殊功能|寄存器4KB 内部EA = 10FFFH4KB外部EA = 0内咅B RAM0000H0000H00H部170000H8051单片机6个具有特殊含义的单元是:0000H 系统复位,PC指向此处;0003H 外部中断0入口000BHT0溢出中断入口0013H外中断1入口001BHT1溢出中断入口0023H串口中断入口2、部数据存储器物理上分为两大区:00H 7FH即128BRAM 和SFR区。如图2所示80字节数据缓冲器用161
3、2832字节可位寻址位4组R0R7工作寄存器二、殊功能寄存器SFR寻址空间离散分配在:80H FFH,注意PC不在此围。地址末尾为0或8的SFR具有位寻址功能1、CPU是运算器加控制器2、算术运算寄存器(1)累加器A( E0H)(2)B寄存器:乘、除法运算用(3)程序状态字PSW寄存器:包含程序运行状态信息CYAC FORS1RS0 |OVPCY( PSW.7) 进位/借位标志;位累加器。AC ( PSW.6辅助进/借位标志;用于十进制调整。F0 ( PSW.5) 用户定义标志位;软件置位/清零。OV ( PSW.2) 溢出标志; 硬件置位/清零。P ( PSW.0) 奇偶标志;A中1的个数为
4、奇数P = 1;否则P = 0 RS1、RS0 寄存器区选择控制位。00 :0区R0 R701 :1区R0 R710 :2区R0 R711 :3区R0 R72、指针寄存器( 1)程序计数器 PCPC的容是指明即将执行的下一条指令的地址,16位,寻址64KB围, 复位时PC = 0000H具有自动加1功能 不可寻址即不能通过指令访问。( 2)堆栈指针 SP指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H(3)数据指针 DPTRR0、R1、DPTR ;指明访问的数据存储器的单元地址,16位,寻址围64KB。DPTR=DPH + DPL,也可单独使用。没有自动加1功能 通过软件INC
5、 DPTR容加1时序单片机的各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。执令周期:即从取指到执行完,所需时间。 不同机器指令周期不一样;即使相同机器,不同的指令其指令周期也不一样。 机器周期:机器的基本操作周期。一个指令周期含若干机器周期(单、双、四周期) 状态周期:一个机器周期分 6个状态周期 Si 每个状态周期含两个振荡周期,即相位 P1、 P2。振荡周期:由振荡时钟产生。 振荡周期 Tosc = 1/fosc 一个机器周期=12个振荡周期=12 x 1/fosc。例如,若fosc = 12MHz,则一个机器周期 =1卩s。时钟的产生:通过XT
6、AL1 (19)、XTAL (18)。这两个管脚外部加石英晶体和电容组成振荡器系统复位通过给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.#0FFHMOV A,P1读端口数据方式是一种
7、对端口锁存器中数据进行读入的操作方式, CPU 读入的这个数据 并非端口引脚的数据。(对端口进行读-修改-写类指令 列如CPL P1.0是读端口锁存器而不是管脚)一、P0 口地址80H系统复位后PO=FFH(1) P0 口可作通用I / O 口使用,又可作地址/数据总线口;(2) P0既可按字节寻址,又可按位寻址;(3) P 0作为输入口使用时:是准双向口;(4) 作通用 I / O 口输出时:是开漏输出; (外部管脚必须接上拉电阻)(5) 作地址/数据总线口时,P0是一真正双向口,分时使用,提供地址线A0A7由ALE 控制信号锁存,数据线 D0D7二、P1 口地址 90H 地址 90H 系统
8、复位后 P1=FFH2、特点( 1 )无地址 /数据口功能( 2)可按字节寻址,也可按位寻址(3) 作 I / 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位
9、与数据线分时使用端口,2、P1 口:按位可编址的输入输出端口,3、P2 口:地址高8位输出口4、 P3 口:双功能口。若不用第二功能,也可作通用 I / O 口。5、按三总线划分:地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;控制线:P3 口的 8 位(RXD、TXD、INTO、INT1、TO、T1、WR*、RD*加上 PSEN*、ALE、EA组成制总线。)中断系统五个中断源,两个优先级中断请求源(五源中断)五个中断源:入口地址外部中断0 (/INTO)0003HTO溢出中断OOOBH外部中断1 (/INT1 )0013HT1溢出中断001BH串口中断0023H有了中断请
10、求,如何通知 CPU?通过中断请求标志位来通知 CPU。外部中断源、定时/计数器的中断请求标志位分布在 TCON 中; 串口中断标志位分布在 SCON中。TF1TR1TFOTR0IE1IT1IE0IT0TIRI中断请求标志位IE0( INTO) IE1( INT1) TFO(TO) TF1(T1) TI/RI (串 口)TF1T1的溢出中断标志。硬件置1,硬件清O (也可软件清O)。TFO TO的溢出中断标志。(同TF1,只是针对TO的)IE1 外部中断1(/INT1 )请求标志。外部有中断请求时,硬件使IE1置1,硬件清0。IE0 外部中断0(/INTO)请求标志。IT1 外部中断1(/IN
11、T1 )触发类型控制位。IT1 = 0,低电平触发。IT1 = 1,下降沿触发。IT0 夕卜中断0 (/INTO )触发类型控制位,用法同IT1 外部中断INTO、INT1触发方式有电平触发和跳变触发TI串口发送中断标志位。发送完数据,硬件使TI置1,软件清0 (CLR TI)RI串行口接收中断标志位。硬件置1,软件清0。二、 中断控制(两级管理)1、中断屏蔽在中断源与CPU之间有一级控制,类似开关,其中第一级为一个总开关, 第二级为五个分开关,由IE控制。EAESET1EX1ET0EX0EA总控制位ES串口控制位ET1T1中断控制位EX1/INT1控制位ET0T0中断控制位EX0 /INT0
12、控制位若为“T,允许(开关接通) 若为“ 0”,不允许(开关断开)例如,SETB EACLR IE.72、中断优先级为什么要有中断优先级?CPU按中断申请时间先后顺序响应中断,同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求 CPU响应高级别中断。为此将5个中断源分成高级、低 级两个级别,高级优先,由IP控制。同时同级的中断源申请中断 CPU按优先顺序响应中断。PSPT1PX1PT0PX0以上各位与IE的低五位相对应,为“1”时为高级。初始化编程时,由软件确定 例如,SETB PT0 或 SETB IP.1CLR PX0 等。同一级中的5个中断源的优先顺序是:/INT0中断高T0
13、中断/INT1中断T1中断串口中断卄低(注意是同级)厂家出厂时已固化好顺序< 事先约定中断嵌套 同级或低级中断不能打断正在响应的中断的服务程序, 高级中断能够打断低级中断 服务程序而形成中断嵌套定时/计数器定时/计数器 两个定时器/计数器TO、T1四种工作方式 中断方式定时器程序初始化主要部分如下MOV TMOD,#DATA ;设置定时器工作方式MOV TH0(TH1),# DATA ;给定时器计数器装入初值MOV TLO ( TL1),# DATASETB EA;开中断SETB ETO( ET1);开中断SETB TRO(TR1);启动定时器计数器、定时/计数器的结构TO、T1均为16
14、位加1计数器TH0TLO工作方式1、工作方式控制寄存器 TMODT1TOTMODGATEC/TM1MOGATE C/TM1MOGATE门控位。GATE = O软件启动,仅由软件置TRO(TR1 )为1启动定时器/计数器;置O 停止定时/计数GATE = 1硬件启动,软件置TRO(TR1)为1后.INTO管脚或/INT1管脚高 电平启动定时器/计数器。C/T外部计数器/定时器方式选择位C/T = O定时方式;C /T = 1计数方式。M1M2 工作模式选择位。M1 MO 模式说明OOO13位定时/计数器 八位TH( 7 O)+低五位TL( 4 O)O1116 位定时 /计数器 TH( 7 0)+
15、 TL( 7 0)TR028位计数初值自动重装TL (7 0) TH ( 7 0)TR1定时/计数器1运行控制位。用法与TR0类似。1 13T0工作在两个8位定时/计数。运行,而T1只能工作方式2,TR1TR0定时/计数器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计数。C/T = 0定时C/T = 1对外计数定时:fo
16、sc / 12 = 1 / (12/fosc)= 1 / Tcyrun等间隔,次数已定,时间确定 即对机器周期进行计数。左图定时时间为nx Tcy。计数:脉冲不等间隔。 外部管脚输入(T0 P3.4、T1 P3.5 )每个下降沿计数一次- LI U 确认一次负跳变需两个机器周期,(要求计数脉冲的高、低电平要大于一个机器周期)所以,计数频率最高为fosc / 24定时器初值计算计数脉冲的个数 N=t (定时时间)/Tcy(机器周期计数初值X=M(定时计数器的模)-N方式 0 X=213-N =8192-N方式 1X=216-N=65536-N方式 2X=28-N=256-N推荐工作方式1和方式2
17、 例1、设计一个P1.0能产生t=1ms的周期信号发生器,主频试编程解:选 T0;C/T=0,GATE= 0 定时时间 0.5msN = t / Tcy= t / (12x( 1/fosc) = 500所以,X = M 500,问:M取多少?模式0、模式1均可,取模式1, M=216X = 65536-500=65036 = FE0CHTH0 0FEHTL0 0CH程序:ORG 0000HLJMP MAINORG 000BHLJMP INSE1ORG 1000HMAIN : MOV SP, #60HMOV TL0, #0CHMOV TH0, #0FEHMOV TMOD , #01HSETB T
18、R0;SETB ET0;SETB EASJMP $INSE1:MOV TL0, #0CHMOV TH0, #0F0HCPL P10RETI单片机串行接口8051单片机有一个异步全双工串行通讯口 通过RXD(P3.0)接收,通过 TXD(P3.1)发送,(串行通信有单工、半双工、全双工),8051单片机串行口有4种工作方 式。异步通信一帧数据的格式如下空闲位起始位58位数据奇偶校验位停止位空闲位3、串行通信方向A单工AB4、波特率即串行通信速率。 b/s 、 bps举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为 240个字符。求波特率。解:(1 + 8+ 1)X 240 =
19、2400 b/s = 2400波特。5、串行通信接口发送:CPU通过指令MOV SBUF,A来启动发送 发送一帧数据完毕后TI置1,通发送时钟接收:必须置位寄存器SCON, REN位为1才能启动串口接收数据,当接收一帧数据后,RI置1,CPU通过查询RI=1或中断方式,通过指令 MOV A.SBUF来取走接收的数据, 并软件复位RI=0( CLR RI)接收时钟接收数据寄存器CPU接收数据/发送器 UART4种工作方式,波特率可编程设置,可中断。二、MCS-51机串行接口 单片机有:通用异步接收全双工,1、串口的组成SMOD从编程角度讲来看主要由以下寄存器组成。PCONSM0SM1 SM2RE
20、NTB8RB8TIRISCOND7D6D5D4D3D2D1D0SBUF 发I SBUF 收SM0、SM1:工作方式选择位SM2 :多机通信控制位,常与 RB8配合,决定是否激活RIREN :允许接收TB8:发送的第九位数RB8:接收的第九位数TI I:中断标志RISMOD :波特系数选择位,0 2° = 11 21 = 22、串行口的工作方式(1)SM0、SM仁00;方式0:是8位同步移位寄存器方式,波特率固定为 fosc / 12RXD 接收/发送数据TXD产生同步移位脉冲接收/发送完,置位RI / TI ,(要求SM2 = 0)D7D6 D5D4D3D2 D1D0方式0D0D1D
21、2D3D4D5 | D6D7无起始位,无停止位(2)SMO、SM1=01 方式 1: 8 位 UART,波特率为(2SMOD X T1 的溢出率)/ 32起始位D0D1D2D3D4D5D6D7停止位1帧信息:10位。送RB8位波特率可变:2smod / 32 X( T1的溢出率)发送完置位TI。接收位RXD停止位D7D6D5D4D3D2D1D0起始位发送位TXD接收完数据置位RI o置位RI是有条件的。即:REN = 1, RI = 0且SM2 = 0或SM2 = 1但是接收到的停止位为1 此时,数据装载SBUF,停止位进入RB8, RI置1。(3)方式2 ( SMO、SM仁10)、方式3 (
22、SMO、SM仁11) : 9位UART,多机通信。多机通信只能工作在方式2、方式3停止位TB8D7D6D5D4 D3D2D1D0 起始位起始位D0D1D2D3D4D5D6D7TB8停止位发送数据接收数据送SCON寄存器RB8位方式2波特率:(固定)2smod / 64 X fosc方式3波特率:2SMOD / 32 X( T1 溢出率)数据发送串口方式2、3发送第九位数据必须通过软件置事先写入寄存器SCON的TB8位,把要发送的数据发送到SBUF ( MOV SUBF,A )启动数据发送,发送完数据置位 TI。CPU通过查询 方式查询到TI=1或中断方式可以继续发送下一帧数据,并软件复位TI=
23、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可变。波特率=2SM°d / 32 X( T1的溢出率)T1溢出率=单位时间溢出次数 =1 / (T1的定时时间) 而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设 T1工作在模式2 (8位
24、自动重装初值)。N = 28 t / T, t = (28N) T =(28N)X 12 / fosc 所以, T1 溢出率 = 1/t = fosc / 12(28N), 故, 波特率 = 2SM°D / 32 X fosc / 12( 256N)。 若已知波特率,则可求出 T1 的计数初值:y = 256 2sm°d X fosc / (波特率 X 32X 12)例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多 少?并进行初始化编程。解:y = 256 2smod X fosc /(2400X 32X 12) =
25、242.98" 243 = F3H同理,fosc = 11.0592MHz,波特率为 2400,设 SMOD = 0,贝Uy = F4H初始化编程:M°VTM°D , #20HM°VPC°N, #80HM°VTH1 , #0F3HM°VTL1 , #0F3HSETBTR1M°VSC°N, #50H指令系统 指令按寻址方式分有 7种寻址方式,直接寻址(direct)、立即寻址(#20H)、寄存器寻址(Rn)、寄存器间接寻址(Ri)、相对寻址(rel)、寄存器变址寻址(A+PC)、位寻址(ACC.1) 指令按
26、功能上分有5种,传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转 移类指令、位操作类指令指令三大属性。功能属性、空间属性(指令站用的字节数)、时间属性(指令执行的机器周 期数)传送类指令有四种寻址方式对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条
27、指令MOVC A,A+PC 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 DPLPUSH DPH后,各单元中的容。(0AH)=23H(0BH)=01H(SP) =0BHPOP direct指
28、令执行中,机器也自动进行两步操作:(1) (direct) (SP)(2) (SP) (SP) 1例 2、设(SP) = 40H, (40H) = 12H, (3FH) = 34H执行 POP DPHPOP DPL后,各单元中的容。(SP) = 3EH,(DPTR) = 1234H,结论:1) PUSH与POP操作过程刚好相反;2) 进、出栈规则:先进后出,后进先出。应注意指令书写先后顺序;3) 可用于“保护现场,恢复现场”3、字节交换指令XCH A,Rn 'XCH A,direct整字节交换XCH A,RiXCHD A,Ri _SWAP A -半字节交换不影响任何标志位。算术运算类指
29、令包括:加、减、乘、除;加一、减一。一、加法指令ADDA,Rn; (A)-(A) +(Rn)以下类同ADDA,directADDA,RiADDA,#data无符号数相加时:若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条一、单字节
30、逻辑操作指令CLR A;(A) 0CPL AA中8位按位求反。循环左移、右移指令:RL ARLC ARR ARRC A二、双字节逻辑操作指令“与操作”: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),以下类同ORLA,directORLA,RiORLA,#dataORLdirect,AORLdir
31、ect,#data例2、将A中的低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
32、0 0 0 1 0 1 B = 85H这称为“指定位取反”。,还是第二操在上述ANL、ORL、XRL操作中,用于端口操作时,无论 P0 P3是第 作数,都遵循“读一修改一写”端口锁存器的操作。§ 3-5控制转移类指令作用:改变程序计数器PC的值,从而改变程序执行方向分为四大类:无条件转移指令;条件转移指令;调用指令;返回指令。、无条件转移指令LJMP addr16AJMP addrllSJMP relJMP A + DPTRLJMP addr16;长跳转转移目的地址 addr16 ( PC); OOOOH FFFFH, 64KBAJMP addrll;绝对转移转移目的地址的形成:先(
33、PC) ( PC)+ 2;addr1O 0后 PC15 11 不变,PC10 0 64KB = 216 =25X 211 = 32 X 2KB转移目的地址与(PC) + 2在同一个2KB围。SJMP rel;短转移,相对寻址。转移目的地址=(PC) + 2 + rel,所以rel =转移目的地址一(PC) 2但,实际使用中常写成SJMP addr16,汇编时会自动转换出rel转移目的地址=(A)+(DPTR)、调用指令LCALLaddr16ACALLaddrll;绝对调用LCALLaddr16;转移围64KB,不影响标志位。执行中自动完成如下过程:(PC)(PC)+ 3(SP) ( SP)+
34、1(SP) (PC7 0),保护断点地址低字节;(SP) ( SP) + 2(SP) (PC15 8),保存断点地址高字节;(PC) addr16 ,目的地址送PC,转子程序例2、设(SP) = 07H,( PC) = 2100H,子程序首地址为3456H,执行:LCALL 3456HMOV A,20H执行结果:(SP) = 09H,(09H) = 21H,(08H) = 03H,(PC) = 3456H不影响任何标志位,执ACALL addrll ;转移围与(PC) + 2 在同一个 2KB行中机器自动完成下列过程:(PC)(PC) + 2(SP)(SP) + 1(SP) 4(PC7 0)(
35、SP)'(SP) + 2(SP'(PP4 C Q(SP(PCI5 8)(PC10 0)addr10 0三、返回指令从子程序返回主程序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
36、 relJZ rel ;若( A) = 0 ,则转移,否则顺序执行。JNZ rel ;若(A)工0,贝U转移,否则顺序执行。转移目的地址 = (PC) + 2 + rel不影响任何标志位。例1、将外RAM的一个数据块(首地址为DATA1)传送到部数据RAM (首地址为DATA2), 遇到传送的数据为零时停止传送,试编程。解:MOV R0, #DATA2MOV DPTR, #DATA1LOOP1: MOVX A, DPTRJZ LOOP2INC R0INC DPTRSJMP LOOP1LOOP2:SJMP LOOP22、比较转移指令功能:比较二个字节中的值,若不等,则转移。CINE A ,#da
37、ta,relCJNE A , direct,relCJNE Ri ,#data,relCJNE Rn, #data,rel该类指令具有比较和判断双重功能,比较的本质是做减法运算,用第一操作数容减去第 二操作数容,但差值不回存。转移目的地址 = (PC)+ 3 + rel若第一操作数容小于第二操作数容,则( C)= 1,否则( C)= 0。该类指令可产生三分支程序:即,相等分支;大于分支;小于分支。例2、设P1 口的P1.0 P1.3为准备就绪信号输入端,当该四位为全 1时,说明各项工作已准备好,单片机可顺序执行,否则,循环等待。解: MOVA,P1ANLA,#0FHCJNEA , #OFH,
38、WAIT ; P1.0 P1.3不为全 1 时,返回 WAITMOVA, R23、循环转移指令DJNZ Rn, rel;(二字节指令)DINZ direct, rel;(三字节指令)本指令也为双功能指令,即减 1 操作和判断转移操作。第一操作数容减 1 后,若差值不为零,则转移;否则顺序执行。转移目的地址 = (PC)+ 2或 3 + rel例 3、将 8031 部 RAM 的 40H 4FH 单元置初值 #A0H #AFH解: MOVR0, #40HMOVR2, #10HMOVA, #0A0HINC ROINC ADJNZ R2, LOOP§ 3-6位操作指令包括:位传送指令、条件
39、转移指令、位运算指令。位操作由单片机布尔处理器来完成。位地址的四种表示:1)使用直接位地址表示:如 20H、30H、33H等;2) 使用位寄存器名来表示;如 C、OV、F0等;3)用字节寄存器名后加位数来表示:如 PSW4 P0.5 ACC.3等;4)字节地址加位数来表示:如 20.0、30.4、50.7等。一、位传送指令MOV C,bitMOV bit,C功能:(C)-(bit);二、位状态控制指令CLR bit;(bit)SETB bit;(bit)CPL bit; (bit)(/ bit)例1、编程通过P10线连续输出256个宽度为5个机器周期长的方波。解:MOV RO, #OOHCLR
40、 P10LOOP: CPL P10NOPNOPDJNZ R0,LOOP四、布尔条件转移指令有5条,分别对C和直接位地址进行测试,并根据其状态执行转移。1、判布尔累加器转移JC rel;( C)= 1,转移,否则顺序执行。JNC rel;(C)= 0,转移,否则顺序执行。不影响标志。转移地址 :(PC C + rel20H单元,小例3、比较部RAM勺30H和40H单元中的二个无符号数的大小,将大数存入数存入21H单元,若二数相等,则使 RAM勺第127位置1。SETB 7FHSJMP $LOOP1 : JC LOOP2MOV 20H, AMOV 21H, 40HSJMP $LOOP2 : MOV
41、 20H ,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。外接ROM后,P3 口、P2 口、P0 口均被占用只剩下P1 口作I / O 口用,其它功能不变。二、存储器的扩展1、三总线的连接 ABUS、 DBUS、CBUSABUS (A15A8A7A0) DBUS( D7D0)CBUSPSEN*是程序存储器读选通信
43、号RD* WR*是片外数据存储器读、写选通信号EA是片和片外程序存储器的选择信号EA=1, CPU开始从片程序存储器取指令,PC大于0FFF后转向片外程序存储器取指令。EA=0,CPU开始从片外程序存储器取指令。 ALE锁定P0 口提供的地址低8位(A7A0)的锁存信号1、数据线的连接(D7D0)P0 口的八位线承担此任,此时不用外接上拉电阻。2、地址线的连接P0 口承担地址低八位线,A0 A7 ;P2 口承担地址高八位线。A8 A15。注意:P0 口线地址/数据分时复用,需用控制信号 ALE通过地址锁存器74LS373锁存地址 低 8 位(A7A0 )3、控制线的连接对存储器来讲控制线无非是
44、:芯片的选通控制、读写控制。单片机与外部器件数据交换要遵循两个重要原则:一是,地址唯一性,一个单元一个地址。二是,同一时刻,CPU只能访问一个地址,即只能与一个单元交换数据。 不交换时,外部器件处于锁闭状态,对总线呈浮空状态。选通:CPU与器件交换数据或信息,需先发出选通信号/CE或/CS,以便选中芯片 读/写:CPU向外部设备发出的读/写控制命令。ROM :/OE /PSENRAM :/WE /WR/OE/RD2) 存储器地址编码RAM 6116: “ 16” 2K X 8b = 2KB21X 210 = 211即6116有11根地址线。地址空间:A10 A9 A8 A7 A6A5 A4A3
45、A2A 1 A0最低地址:0 0 0 0 00 000000000H6116本身最高地址:1 11111 111111111H的地址空间MCS-51单片机寻址围:64KB6X 210 = 216即16位地址线地址空间: A15A14A13A12A11A10A9A8A7A0 单片机X X X X X A10A9A8A7 A0 611625 = 322KB上式中:“X”表示0或1。即单片机地址空间中包含有 32个2KB。某片6116占据的是哪2KB不能确定一一地址浮动。 只有限定A15A11的取值才能确定6116在系统中的地址围。如,P2.6 = 0,选中 6116的/CS 线。设 P2.7 P2.5 P2.4 P2.3假定全为 1贝U:6116地址围是 B800H BFFFH。同理,P2.7 P25 P24 P23假定全为 0则:6116地址围是 0000H 07FFH;再设 P2.7选中 6116(设 P26 P25 P24 P23全为 1)则:地址围是 7800H 7FFFH可见:存储器芯片在系统中地址分布由两个因素决定:一是,芯片本身的地址线(与容量有关) 二是,芯片选通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版境外投资协议书
- 机电工程施工总承包资质标准二零二五年
- 物业委托管理协议
- 2025年日用织物制品项目建议书
- 供电外包劳务合同样本
- 青岛版小学二年级上册数学教学计划
- 平面的投影-教案
- 企业门头制作合同样本
- 中图版地理必修二第二章学教案
- 淘宝客服聘用合同
- CHT 8023-2011 机载激光雷达数据处理技术规范(正式版)
- 2024年演出经纪人考试必背1000题附答案(黄金题型)
- 《人类起源的演化过程》阅读测试题及答案
- JB-T 8532-2023 脉冲喷吹类袋式除尘器
- 第11课《送东阳马生序》(课件)九年级语文下册
- (正式版)SHT 3045-2024 石油化工管式炉热效率设计计算方法
- 2024年中储粮集团招聘笔试参考题库附带答案详解
- 基于大概念的高中历史大单元教学
- (2024年)保安培训图文课件
- 《养老护理员》-课件:协助卧床老年人使用便器排便
- 统编版语文八年级下册全册大单元整体教学设计表格式教案
评论
0/150
提交评论