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

下载本文档

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

文档简介

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

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

3、为0或8的SFR具有位寻址功能1、CPU是运算器加控制器2、算术运算存放器1累加器AE0H2B存放器:乘、除法运算用3程序状态字PSW存放器:包含程序运行状态信息CYACFORS1RS0OV一PPSWCYPSW.7进位/借位标志;位累加器。ACPSW.6辅助进/借位标志;用于十进制调整。F0PSW.5用户定义标志位;软件置位/清零。OVPSW.2溢出标志;硬件置位/清零。PPSWO奇偶标志;A中1的个数为奇数P=1;否那么P=0RS1、RS0存放器区选择控制位。00:0区R0R701:1区R0R710:2区R0R711:3区R0R72、指针存放器1程序计数器PCPC的内容是指明即将执行的下一条

4、指令的地址,1附,寻址64KB范围,复位时PC=0000H具有自动加1功能不可寻址即不能通过指令访问。2堆栈指针SP指明栈顶元素的地址,8位,可软件设置初值,复位时SP=07H3数据指针DPTRR0、R1、DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。DPTR=DPH+DPL,也可单独使用。没有自动加1功能通过软件INCDPTR内容加1时序单片机内的各种操作都是在一系列脉冲控制下进展的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。执令周期:即从取指到执行完,所需时间。不同机器指令周期不一样;即使一样机器,不同的指令其指令周期也不一样。机器周期:机器的根本操作周期。

5、一个指令周期含假设干机器周期单、双、四周期状态周期:一个机器周期分6个状态周期Si每个状态周期含两个振荡周期,即相位P1、P2。振荡周期:由振荡时钟产生。振荡周期Tosc=1/fosc一个机器周期=12个振荡周期=12x1/fosco例如,假设fosc=12MHz,那么一个机器周期=1时钟的产生:通过XTAL119、XTAL18。这两个管脚外部加石英晶体和电容组成振荡器系统复位通过给RST管脚加高电平理论上大于两个机器周期,实际大于10ms,系统复后除了SP=07H,P0P1、P2、P刻FFH外,所有的存放器均为00H,PC=0000H,PSW=00H工作存放器组R0R7工作在0组。并行I/O

6、端口并行I/O端口四个8位I/O口P0、P1、P2、P3作为通用I/O使用,是一个准双向口:“读管脚在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态,可作高阻抗输入MOVP1.#0FFHMOVA,P1读端口数据方式是一种对端口锁存器中数据进展读入的操作方式,CPU读入的这个数据并非端口引脚的数据。a寸端口进展读-修改-写类指令列如CPLP1.0是读端口锁存器而不是管脚)1、 P0口地址80H系统复位后P0=FFH(1)P0口可作通用I/O口使用,又可作地址/数据总线口;2P0既可按字节寻址,又可按位寻址;3P0作为输入口使用时:是准双向口;4作通用I/O口输出时:是开漏输出;外部

7、管脚必须接上拉电阻5作地址/数据总线口时,P0是一真正双向口,分时使用,提供地址线A0A7由ALE控制信号锁存,数据线D0D72、 P1口地址90H地址90H系统复位后P1=FFH2、特点 1无地址/数据口功能 2可按字节寻址,也可按位寻址 3作I/O输入口时:是一准双向口,不是开漏输出无需外接上拉电阻3、 P2口地址A0H系统复位后P2=FFH2、特点 1当P2口作为通用I/O时,是一准双向口。 2从P2口输入数据时,先向锁存器写“1。 3可位寻址,也可按字节寻址 4可输出地址高8位A8A15。4、 P3口地址B0H系统复位后P3=FFH2、特点1、 1作通用I/O时,是一准双向口,不是开漏

8、输出无需外接上拉电阻2、 P3口具有第二功能3、 P0口:地址低8位与数据线分时使用端口,4、 P1口:按位可编址的输入输出端口,5、 P2口:地址高8位输出口4、P3口:双功能口。假设不用第二功能,也可作通用I/O口5、按三总线划分:地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;ALE、控制线:P3口的8位(RXD、TXD、INTOINT1、T0、T1、WR*、RD*力口上PSEN*EA组成制总线。)中断系统五个中断源,两个优先级一、中断请求源“五源中断五个中断源:入口地址外部中断0/INTO0003HT0溢出中断000BH外部中断1/INT10013HT1溢出中断00

9、1BH用口中断0023H有了中断请求,如何通知CPU?通过中断请求标志位来通知CPU。外部中断源、定时/计数器的中断请求标志位分布在TCON中;用口中断标志位分布在SCON中。TCONTF1triTF0TR0IE1IT1IE0IT0SCONTIRI中断请求标志位IE0INT0IE1INT1TF0T0TF1T1TI/RI用口TF1T1的溢出中断标志。硬件置1,硬件清0也可软件清0。TF0T0的溢出中断标志。同TF1,只是针对T0的IE1外部中断1/INT1请求标志。外部有中断请求时,硬件使IE1置1,硬件清00IE0外部中断0/INT0请求标志。IT1外部中断1/INT1触发类型控制位。IT1=

10、0,低电平触发。IT1=1,下降沿触发。IT0外中断0/INT0触发类型控制位,用法同IT1外部中断INTO、INT1触发方式有电平触发和跳变触发TI串口发送中断标志位。发送完数据,硬件使TI置1,软件清0CLRTIRI用行口接收中断标志位。硬件置1,软件清002、 中断控制两级管理1、中断屏蔽在中断源与CPU之间有一级控制,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。EA 总控制位ES用口控制位ET1T1中断控制位EX1/INT1控制位 厂ET0 T0中断控制位EX0 /INT0 控制位假设为“1”,允许开关接通假设为“0”,不允许开关断开例如,SETB EACLR I

11、E.7EAESET1EX1ET0EX02、中断优先级为什么要有中断优先级?CPU按中断申请时间先后顺序响应中断,同一时间只能响应一个中断请求。假设同时来了两个或两个以上中断请求CPU响应高级别中断。为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。同时同级的中断源申请中断CPU按优先顺序响应中断。PSPT1PX1PT0PX0以上各位与IE的低五位相对应,为“1时为高级。初始化编程时,由软件确定例如,SETBPT0或SETBIP.1CLRPX0等。同一级中的5个中断源的优先顺序是:注意是同级/INT0中断T0中断/INT1中断T1中断用口中断厂家出厂时已固化好顺序事先约定中断嵌套同级

12、或低级中断不能打断正在响应的中断的效劳程序,高级中断能够打断低级中断效劳程序而形成中断嵌套定时/计数器定时/计数器两个定时器/计数器T0、T1四种工作方式中断方式定时器程序初始化主要局部如下MOVTMOD,#DATA;设置定时器工作方式MOVTH0TH1,#DATA;给定时器计数器装入初值MOVTL0TL1,#DATASETBEA;开中断SETBET0ET1;开中断SETBTR0TR1;启动定时器计数器一、定时/计数器的构造T0、T1均为16位加1计数器工作方式TH0TL01、工作方式控制存放器TMODT1T0TMODIGATEC/TM1M0GATE|C/TM1M0GATE门控位。GATE=0

13、软件启动,仅由软件置TR0TR1为1启动定时器/计数器;置0停顿定时/计数GATE=1硬件启动,软件置TR0TR1为1后.INTO管脚或/INT1管脚高电平启动定时器/计数器C/T外部计数器/定时器方式选择位C/T=0定时方式;C/T=1计数方式。M1M2工作模式选择位。TCONTR1TR0M1M000011011模式说明013位定时/计数器八位TH70+低五位TL40116位定时/计数器TH70+TL7028位计数初值自动重装TL70一TH703T0工作在两个8位定时/计数。运行,而T1只能工作方式2,TR0定时/计数器0运行控制位。软件置位,软件复位。与GATE有关,分两种情况:GATE=

14、0时,彳贸设TR0=1,开启T0计数工作;假设TR0=0,停顿T0计数。GATE=1时,彳贸设TR0=1且/INT0=1时,开启T0计数;假设TR0=1但/INT0=0,那么不能开启T0计数假设TR0=0,停顿T0计数。TR1定时/计数器1运行控制位。用法与TR0类似。C/T = 0 定时C/T = 1 对外计数。定时:fosc / 12 = 1 /12/fosciTcy=1 / Tcy等间隔,次数已定,时间确定 即对机器周期进展计数。左图定时时间为nXTcy。计数:脉冲不等间隔。|-|外部管脚输入T0P3.4T1P3.5每个下降沿计数一次LIU一确认一次负跳变需两个机器周期,要求计数脉冲的高

15、、低电平要大于一个机器周期所以,计数频率最高为fosc/24定时器初值计算计数脉冲的个数N=t定时时间/Tcy(机器周期计数初值X=M(定时计数器的模)-N方式0X=213-N=8192-N方式1X=216-N=65536-N方式2X=28-N=256-N推荐工作方式1和方式2例1、设计一个P1.0能产生t=1ms的周期信号发生器,主频试编程解:选T0;C/T=0,GATE=0定时时间0.5msN=t/Tcy=t/12X1/fosc=500所以,X=M500,问:M取多少?模式0、模式1均可,取模式1,M=216X=65536-500=65036=FE0CHTH00FEHTL0程序:ORGLJ

16、MPORGLJMPORGMAIN:MOVMOVMOVMOVSETBSETBSETBSJMP一 0CH0000H MAIN 000BH INSE1 1000H SP, #60H TL0, #0CH TH0, #0FEH TMOD , #01H TR0;ET0; EA $INSE1:MOVTL0,#0CHMOVTH0,#0F0HCPLP10RETIAB单片机串行接口8051单片机有一个异步全双工串行通讯口通过RXD(P3.0)接收,通过TXD(P3.1)发送,修行通信有单工、半双工、全双工),8051单片机用行口有4种工作方式。异步通信一帧数据的格式如下空闲位起始位58位数据奇偶校验位停顿位空闲位

17、3、串行通信方向Adnix4、波特率即串行通信速率。b/s、bps举例、设有一帧信息,1个起始位、8个数据位、1个停顿位,传输速率为240个字符。求波特率。解:1+8+1X240=2400b/s=2400波特。5、串行通信接口发送:CPU通过指令MOV SBUF,A来启动发送 发送一帧数据完毕后TI置1,通过发送时钟TI=0 CLR TI发送数据存放器发送数据0D0D1D2D3D4D5D6D71接收:必须置位存放器SCON, REN位为1才能启动串口接收数据,当接收一帧数据后,RI置1 , CPU通过查询RI=1或中断方式,通过指令 MOV A.SBUF来取走接收的数据,并 软件复位RI=0C

18、LR RI接收时钟D0D1D2D3D4D5D6D7VCPU接收数据接收数据存放器SBUF 99H二、MCS-51机串行接口单片机内有:通用异步接收/发送器UART全双工,4种工作方式,波特率可编程设置,可中断。SM0SM1SM2REN-TB8RB8TIRISMOD从编程角度讲来看主要由以下存放器组成PCON1、串口的组成SBUFD7D6D5D4D3D2D1D0SSBUF发TSCONLSBUF收SM0、SM1:工作方式选择位SM2:多机通信控制位,常与RB8配合,决定是否激活RIREN:允许接收TB8:发送的第九位数RB8:接收的第九位数TI:中断标志RI:SMOD:波特系数选择位,020=11

19、21=2D7D6D5D4D3D2D1D0D0D1| D2D3D4D5| D6D72、用行口的工作方式1SM0 SM1=00方式0:是8位同步移位存放器方式,波特率固定为 fosc / 12RXD接收/发送数据TXD产生同步移位脉冲方式0接收/发送完,置位RI / TI ,要求SM2 = 0发送接收包始位D0D1D2D3D4D5D6D7停顿位1帧信息,10位。送RB8位波特率可变:2smod / 32 XT1的溢出率发送完置位TI。接收完数据置位RI。停顿位TB8D7D6D5D4D3D2D1D0起始位起始位D0D1D2D3D4D5D6D7TB8停顿位通信只能工作在方式2、方式3发送数据接收数据无

20、起始位,无停顿位2SMRSM1=01方式1:8位UART,波特率为2SMODXT1的溢出率/32停顿位D7D6D5D4D3D2D1D0起始位一发送位TXD起始位D0D1D2D3D4D5D6D7停顿位接收位RXD置位RI是有条件的。即:REN=1,RI=0且SM2=0或SM2=1但是接收到的停顿位为1此时,数据装载SBUF,停顿位进入RB8,RI置1。3方式2SM0、SM1=10、方式3SM0、SM1=11:9位UART,多机通信。多机送SCON存放器RB8位方式2波特率:固定2smod/64Xfosc方式3波特率:2SMOD/32XT1溢出率数据发送串口方式2、3发送第九位数据必须通过软件置事

21、先写入存放器SCON的TB8位,把要发送的数据发送到SBUFMOVSUBF,A启动数据发送,发送完数据置位TI。CPU通过查询方式查询到TI=1或中断方式可以继续发送下一帧数据,并软件复位TI=0CLRTI数据接收接收:必须置位存放器SCONREN位为1才能启动串口接收数据,当接收一帧数据后此时,数据装载SBUF,接收到的第9位数据TB8送SCON存放器RB8位,RI置1。,CPU通过查询RI=1或中断方式,通过指令MOVA.SBUF来取走接收的数据,并软件复位RI=0CLRRI3、波特率的设置方式0、方式2固定。方式1,方式3可变。波特率=2sMOD/32XT1的溢出率T1溢出率=单位时间内

22、溢出次数=1/T1的定时时间而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式28位自动重装初值。N=28t/T,t=28NT=28NX12/fosc所以,T1溢出率=1/t=fosc/1228N,故,波特率=2SMOD/32Xfosc/12256-N。假设波特率,那么可求出T1的计数初值:y=2562sMODXfosc/波特率X32X12例、假设fosc=6MHz,波特率为2400波特,设SMOD=1,那么定时/计数器T1的计数初值为多少?并进展初始化编程。解:y=2562sMODXfosc/2400K32X12=242.9g243=F3H同理,fosc=11.05

23、92MHz,波特率为2400,设SMOD=0,那么y=F4H初始化编程:MOVTMOD,#20HMOVPCON,#80HMOVTH1,#0F3HMOVTL1,#0F3HSETBTR1MOVSCON,#50H指令系统指令按寻址方式分有7种寻址方式,直接寻址direct、立即寻址#20H、存放器寻址Rn、存放器间接寻址Ri、相对寻址rel、存放器变址寻址A+PC、位寻址ACC.1指令按功能上分有5种,传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转移类指令、位操作类指令指令三大属性。功能属性、空间属性指令站用的字节数、时间属性指令执行的机器周期数传送类指令有四种寻址方式对A的数据传送只影响

24、状态标志位P访问片内RAM和SFR指令格式MOV唯一的一条16位传送指令MOVDPTR,#DATA16访问片外RAM4条指令MOVXA,RiMOVXA,DPTR(这两条指令是读片外RAM的数据伴随着控制信号RD*有效)MOVXRi,AMOVXDPTR,A(这两条指令是写片外RAM的数据伴随着控制信号WR*有效)访问程序存储器ROM2条指令MOVCA,A+PCMOVCA,A+DPTR(这两条指令是读程序ROM的数据伴随着控制信号PSEN*有效)2、栈操作指令PUSHdirectPOPdirect不影响任何标志位。Direct可以是内存RAM128个单元任意一个单元也可以特殊功能存放器这里注意PU

25、SHACC(ACC是直接地址,不能写A)PUSHdirect指令执行中,机器自动进展两步操作:1SP一SP+12SP一direct例1、设分析:执行PUSHDPLPUSHDPH后,各单元中的内容。(0AH)=23H(0BH)=01HSP=0BHPOPdirect指令执行中,机器也自动进展两步操作:1directSP2SP*SP一1例2、设SP=40H,40H=12H,3FH=34H执行POPDPHPOPDPL后,各单元中的内容。SP=3EH,DPTR=1234H,结论:1PUSH与POP操作过程刚好相反;2进、出栈规那么:先进后出,后进先出。应注意指令书写先后顺序;3可用于“保护现场,恢复现场

26、3、字节交换指令XCHA,RnXCHA,direct整字节交换XCHA,RiXCHDA,Rix二SWAPA半字节交换不影响任何标志位。算术运算类指令包括:力口、减、乘、除;加一、减一。一、加法指令ADDA,Rn;AA+Rn以下类同。ADDA,directADDA,RiADDA,#data无符号数相加时:假设C=1,说明有溢出其俏255带符号数相加时:假设OV=D7cD6c=1,说明有溢出。影响COVAC这三个标志位奇偶标志P由累加器A的值决定INCA;:A一A+1,以下类同。INCRnINCdirectINCRiINCDPTR不影响COVAC这三个标志位奇偶标志P由累加器A的值决定逻辑操作类指

27、令共分两大类:单字节逻辑操作,双字节逻辑操作,共24条一、单字节逻辑操作指令CLRA;A0CPLAA中8位按位求反。循环左移、右移指令:RLARLCARRARRCA二、双字节逻辑操作指令“与操作:ANLA,Rn;TaAARn,以下类同ANLA,directANLA,RiANLA,#dataANLdirect,AANLdirect,#data例1、P1=35H,使其高4位输出0,低4位不变。解;ANLP1,#0FH此做法称为“屏蔽位。“或操作:ORLA,Rn;灯AV:Rn,以下类同。ORLA,directORLA,RiORLA,#dataORLdirect,AORLdirect,#data例2、

28、将A中的低3位送入P1中,并且保持P1中高5位不变。ANLA,#07HANLP1,#0F8HORLP1,A;P1=Pi7P16P15P14P13A2A1A0这称为“数位组合。“异或操作:XRLA,Rn;EARn,以下类同。XRLA,directXRLA,RiXRLA,#dataXRLdirect,AXRLdirect,#data例3、设P1=0B4H=10110100B,执行:XRLP1,#00110001B结果按#00110001取反,即:P1=10000101B=85H这称为“指定位取反。在上述ANL、ORL、XRL操作中,用于端口操作时,无论P0P3是第一,还是第二操作数,都遵循“读一修

29、改一写端口锁存器的操作。3-5控制转移类指令作用:改变程序计数器PC的值,从而改变程序执行方向。分为四大类:无条件转移指令;条件转移指令;调用指令;返回指令。一、无条件转移指令LJMPaddr16AJMPaddr11SJMPrelJMPA+DPTRLJMPaddr16;长跳转转移目的地址addr16一PC;0000HFFFFH,64KBAJMPaddr11;绝对转移转移目的地址的形成:先PCPC+2;后PC1511不变,PC100_addr10064KB=216=25X211=32X2KB转移目的地址与PC+2在同一个2KB范围内。SJMPrel;短转移,相对寻址。转移目的地址=PC+2+re

30、l,所以rel=转移目的地址一PC一2但,实际使用中常写成SJMPaddr16,汇编时会自动转换出rel。JMPA+DPTR;间接转移,散转移指令。转移目的地址=A+DPTR二、调用指令LCALLaddr16;长调用ACALLaddr11;绝对调用LCALLaddr16;转移范围64KB,不影响标志位。执行中自动完成如下过程:PCPC+3SPSPJ+1SP.PC7 0,保护断点地址低字节;SPSP5+2SPPC158,保存断点地址高字节;PCaddr16,目的地址送PC,转子程序。例2、设SP=07H,PC=2100H,子程序首地址为3456H,执行:LCALL3456HMOVA,20H执行结

31、果:SP=09H,09H=21H,08H=03H,PC=3456HACALLaddrll;转移范围与PC+2在同一个2KB内。不影响任何标志位,执行中机器自动完成以下过程:PCPC+2SPSPJ+1SPPC704SPSPJ+2SPPC158PC100addr100、返回指令从子程序返回主程序。RET;调用子程序返回;子程序不能缺少的指令RETI;中断子程序返回。中断程序不能缺少的指令PC158SPSPSPJ-1PC70SPSPSPJ2例3、设SP=0BH,0AH=23H,0BH=01H执行:RET结果;SP=09H,PC=0123H返回主程序二、条件转移指令实现按照一定条件决定转移的方向。分三

32、类。1、判零转移JZrelJNZrelJZrel;假设A=0,那么转移,否那么顺序执行。JNZrel;假设Aw0,那么转移,否那么顺序执行转移目的地址PC+ 2 + rel不影响任何标志位。例1、将外RAM的一个数据块首地址为DATA1传送到内部数据RAM首地址为DATA2,遇到传送的数据为零时停顿传送,试编程。解:MOVR0,#DATA2MOVDPTR,#DATA1LOOP1:MOVXA,DPTRJZLOOP2MOVR0,AINCR0INCDPTRSJMPLOOP1LOOP2:SJMPLOOP22、比拟转移指令功能:比拟二个字节中的值,假设不等,那么转移。CINEA,#data,relCJN

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

34、23、循环转移指令DJNZRn,rel;二字节指令DINZdirect,rel三字节指令本指令也为双功能指令,即减1操作和判断转移操作。第一操作数内容减1后,假设差值不为零,那么转移;否那么顺序执行。转移目的地址=PC+2或3+rel例3、将8031内部RAM的40H4FH单元置初值#A0H#AFH。解:MOVR0,#40HMOVR2,#10HMOVA,#0A0HLOOP:MOVR0,AINCR0INCADJNZR2,LOOP3-6位操作指令包括:位传送指令、条件转移指令、位运算指令。位操作由单片机内布尔处理器来完成。位地址的四种表示:1使用直接位地址表示:如20H、30H、33H等;2使用位

35、存放器名来表示;如C、OV、F0等;3用字节存放器名后加位数来表示:如PSW.4P0.5ACC.3等;4字节地址加位数来表示:如20.030.4、50.7等。一、位传送指令MOVC,bitMOVbit,C功能:Cabit;、位状态控制指令CLRbit;IbitJ0SETBbit;IbitJ1CPLbit;bit/bit例1、编程通过P10线连续输出256个宽度为5个机器周期长的方波。解:MOVR0,#00HCLRP10LOOP:CPLP10NOPNOPDJNZR0,LOOP四、布尔条件转移指令有5条,分别对C和直接位地址进展测试,并根据其状态执行转移1、判布尔累加器转移JCrel;C=1,转移

36、,否那么顺序执行。JNCrel;C=0,转移,否那么顺序执行。不影响标志。转移地址:PCEPC+rel20H单例3、比拟内部RAM的30H和40H单元中的二个无符号数的大小,将大数存入元,小数存入21H单元,假设二数相等,那么使内RAM的第127位置1。解:MOVA,30HCJNEA,40H,LOOPSETB7FHSJMP$LOOP1:JCLOOP2MOV20H,AMOV21H,40HSJMP$LOOP2:MOV20H,40HMOV21H,ASJMP$2、判位变量转移JBbit,rel;bit=1,那么转移,否那么顺序执行。JBCbit,rel;bit=1,那么转移,否那么顺序执行,且无论bi

37、t是否等于1,均使该位清零。JNBbit,rel;bit=0,那么转移,否那么顺序执行。不影响标志。例4、试判断A中的正负,假设为正数,存入20H单元;假设为负数那么存入21H单元解:JBACC7,LOOPMOV20H,ASJMP$LOOP:MOV21H,ASJMP$单片机小系统及外扩展单片机内资源少,容量小,在进展较复杂过程的控制时,它自身的功能远远不能满足需要。为此,应扩展其功能。一、5-1MCS-51单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机电路可以工作运行指令的系统.1、8051/8751硬件最小系统对51系列单片机来说,最小系统一般应该包括:单片

38、机、晶振电路、复位电路2、8031硬件最小系统8031单片机片内无ROM,假设要正常工作,必需外配ROM。外接ROM后,P3口、P2口、P0口均被占用只剩下P1口作I/O口用,其它功能不变二、存储器的扩展1、三总线的连接ABUS、DBUS、CBUSABUS(A15A8A7A0)DBUSD7D0CBUSPSEN*是程序存储器读选通信号RD*WR*是片外数据存储器读、写选通信号EA是片内和片外程序存储器的选择信号EA=1,CPU开场从片内程序存储器取指令,PC大于0FFF后转向片外程序存储器取指令。EA=0,CPU开场从片外程序存储器取指令。ALE锁定P0口提供的地址低8位A7A0的锁存信号1、数

39、据线的连接D7D0P0口的八位线承当此任,此时不用外接上拉电阻。2、地址线的连接P0口承当地址低八位线,A0A7;P2口承当地址高八位线。A8A15。注意:P0口线地址/数据分时复用,需用控制信号ALE通过地址锁存器74LS373锁存地址低8位A7A0。3、控制线的连接对存储器来讲控制线无非是:芯片的选通控制、读写控制。单片机与外部器件数据交换要遵循两个重要原那么:一是,地址唯一性,一个单元一个地址。二是,同一时刻,CPU只能访问一个地址,即只能与一个单元交换数据。不交换时,外部器件处于锁闭状态,对总线呈浮空状态。选通:CPU与器件交换数据或信息,需先发出选通信号/CE或/CS,以便选中芯片。

40、读/写:CPU向外部设备发出的读/写控制命令。ROM:/OE/PSENRAM:/WE/WR/OE/RD2)存储器地址编码RAM6116:“16”2Kx8b=2KB221X210=211即6116有11根地址线。地址空间:A10A9A8A7A6A5A4A3A2A1A0最低地址:000000000000000H6116本以1111111111111H 的地址空间MCS-51单片机寻址范围:64KB-26X210=216即16位地址线地址空间:A15A14A13A12A11A10A9A8A7A0单片机XXXXXA10A9A8A7A0611625=322KB上式中:“x表示0或1。即单片机地址空间中包

41、含有32个2KB。某片6116占据的是哪2KB不能确定一一地址浮动。只有限定A15A11的取值才能确定6116在系统中的地址范围。如,P2.6=0,选中6116的/CS线。设P2.7P2.5P2.4P2.假定全为1那么:6116地址范围是B800HBFFFH。同理,P2.7P25P24P2暇定全为0那么:6116地址范围是0000H07FFH;再设P2.7选中6116设P26P25P24P2第为1那么:地址范围是7800H7FFFH可见:存储器芯片在系统中地址分布由两个因素决定:一是,芯片本身的地址线与容量有关二是,芯片选通信号的获得方式。扩展存储器时,总是让单片机低位地址与存储器芯片地址线相接;而让单片机剩余

温馨提示

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

评论

0/150

提交评论