AT89C51单片机学习课件.ppt

上传人:牧羊曲112 文档编号:5415947 上传时间:2023-07-05 格式:PPT 页数:139 大小:1.11MB
返回 下载 相关 举报
AT89C51单片机学习课件.ppt_第1页
第1页 / 共139页
AT89C51单片机学习课件.ppt_第2页
第2页 / 共139页
AT89C51单片机学习课件.ppt_第3页
第3页 / 共139页
AT89C51单片机学习课件.ppt_第4页
第4页 / 共139页
AT89C51单片机学习课件.ppt_第5页
第5页 / 共139页
点击查看更多>>
资源描述

《AT89C51单片机学习课件.ppt》由会员分享,可在线阅读,更多相关《AT89C51单片机学习课件.ppt(139页珍藏版)》请在三一办公上搜索。

1、单片机原理与接口技术,嵌入式微控制器的开发入门,参考资料,1,单片机原理及其接口技术-胡汉才 清华大学出版社(32元)2,MCS-51/96系列单片机原理及应用-孙涵芳 徐爱卿 北京航空航天大学出版社(35元)3,MCS-51系列单片机实用接口技术-李华北京航空航天大学出版社(40元)4,电子世界-中国电子学会主办(期刊 6.00元/期),本课主要内容及课时安排,总讲课课时24学时第一章:MCS-51系列单片机的基本硬件结构(8课时)介绍51单片机内部硬件结构(数据寄存器、程序存储器、输入输出端口、定时计数器、串行口及中断等)第二章:MCS-51单片机的指令系统(4课时)51单片机的111条指

2、令的分类、寻址方式、伪指令及使用中的注意事项第三章:MCS-51单片机的系统扩展及应用(12课时)程序与数据存储器的扩展、定时/计数器的应用、串行口的应用及A/D、D/A转换器与单片机的接口和键盘扫描/动态显示接口电路。,如何学习本门课程,第一章是基础,只有熟知单片机的硬件结构和特点才能正确的使用单片机进行各种编程、应用和开发。第二章的关键是要正确的理解和掌握指令的寻址方式。MCS-51单片机的111条指令,要正确理解和运用。第三章要求要运用许多基础知识,将各种外围电路与单片机之间实现接口,因此要掌握外围电路的原理、特性和使用方法。这是进行系统设计的基础。参加实验前认真做好预习。实验中独立地进

3、行编程、调试。完整的掌握单片机的编程、调试过程是每一个从事单片机开发的工程师所必须跨出的第一步。好的参考书。无论是初学入门,还是将来开发,它都是很好的“工具”和“钥匙”。,硬件基本概念:,微型计算机,单片机,嵌入式微控制器,嵌入式计算机系统,继续,微型计算机:,由CPU、存储器、定时/计数器、并行输入/输出接口电路、中断控制器等大规模IC芯片安置在一个电路板上,加上键盘、显示器等构成了微型计算机的硬体部分。,返回,单片机,将微型计算机系统所用的大多数IC芯片集成到一个芯片中。可以认为,单片机就是将微型计算机的CPU、存储器、I/O端口、中断控制器等全部做在一个芯片中去。美国INTEL公司生产的

4、MCS-51单片机就是一种典型的、按照微型计算机的框架,采用大规模IC工艺制造的单片机,也是目前世界上使用量最大的一种较典型的产品。,返回,嵌入式微控制器,是单片机发展的一个高级形式,也是单片机发展的必然趋势。它的设计理念不再停留在模仿微型计算机的结构,而是面向应用、加大功能、减少功耗、精简指令系统提高运行速度为出发点来设计单片机的框架。这种处理器的最大特征是不仅包含了一般单片机的所有硬件电路,还集成了放大器、比较器、A/D转换器和PWM电路等等。用它来设计一个智能化的产品,可以进一步简化外围电路,降低开发成本,甚至完成一般的单片机所不能完成的任务。美国Microchip公司生产的PIC单片机

5、等产品就是这类产品的代表,实际上PIC单片机也称为“嵌入式微控制器”,如PIC16F877等。,返回,嵌入式计算机系统,人们在工业控制、家电产品、智能仪表、汽车电子等领域进行智能化设计时,将嵌入到被控制对象(如:家电、汽车、机床等)中的、已经失去了原有的计算机形态及功能的专用计算机称之为“嵌入式计算机系统”。在这些被控制对象中,往往要求嵌入式计算机系统要有极小的体积和极低的成本,要有极小的功耗和较高的可靠性。而这些又恰恰是通用计算机无法作到的。因此以单片机为代表的嵌入式计算机系统(也称嵌入式微控制器)极大的满足了这种市场的需求。反过来,市场的需要也迫使单片机去不断完善、发展,使其分类越来越细,

6、品种越来越多。,微型计算机与单片机在硬件结构上的比较,微型计算机 单片机,数据RAM,CPU,并行I/O,程序ROM,定时/计数器,串型端口,中断控制器,扩展I/O端口,系统总线(DB、AB、CB),微型计算机的组成框图(由多个IC芯片组装在一个主电路板上),MCS-51单片机,所有单元都组装在一个IC芯片上,返回,第一章:MCS-51系列单片机的基本硬件结构,1.1 MCS-51单片机的主要性能和特点,1.2 MCS-51单片机内部方框图,1.3 MCS-51单片机的引脚定义,1.4 MCS-51单片机的存储器的配置,1.6 输入输出端口,1.5 震荡器、时钟电路和CPU的时序,1.7 MC

7、S-51单片机的定时/计数器,1.8 MCS-51单片机的串行接口,1.9 MCS-51的中断系统,1.1 MCS-51单片机的主要性能和特点,内部程序存储器ROM(以89C51为例):4K的存储容量;内部数据存储器RAM:256B(128B的RAM+21B的SFR);寄存器区:设有4个寄存器区,每一个区有R0-R7八个工作寄存器;8位并行输入输出端口:P0、P1、P2和P3;定时/计数器:2个16位的定时/计数器;串型口:全双工的端口(RXD:接收端,TXD发送端);中断系统:设有5个中断源;系统扩展能力:可外接64K的 ROM 和64K的 RAM;堆栈:设在RAM单元中,可以浮动既通过堆栈

8、指针SP来确定堆栈的位置布尔处理机:配合布尔运算的指令进行各种逻辑运算;指令系统:111条指令。按功能可分为数据传送、算术运算、逻辑运算、控制转移和布尔操作5大类。,返回,1.2:MCS-51单片机内部方框图,时钟电路,4KROM程序存储器,256BRAM数据存储器,2X16位定时/计数器,CPU处理器,64KB总线扩展控制器,可编程I/O端口P0-3,可编程串行口,MCS-51系列芯片及制造工艺,返回,1.3:MCS-51单片机的引脚定义,MCS-51单片机有两种封装形式:a.40脚的双列直插DIP封装;b.44脚的PLCC。1,主电源引脚:Vcc(+5V-40脚)和Vss(GND 20脚)

9、;2,外接晶体引脚:XTAL1(19脚)、XTAL2(18脚),只要在这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频率开始工作。常用的晶体频率有0-24M,频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。3,控制或与电源复用引脚:RST/Vpd、ALE/PROG、/PSEN和Vdd RST/Vpd(9脚):在系统上电震荡器开始工作时,在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位。但为了使系统复位可靠,建议外加 一个上电复位电路,延长复位的时间。当单片机掉点时,此引脚可以接入备用电源向单片机内部的RAM供电,以防止RAM中的数据丢失。,引脚图,在复位状态下:所有SF

10、R的内容全变为“0”,端口输出“1”。RAM内容不变。,MCS-51RST,Vcc,MCS-51RST,Vcc,1K,10,t,V,T,延长上电复位时间的电路和RST端上电电压曲线,具有手动复位功能 的复位电路,R,C,8 46 3 52 1,Vo,Vcc,触发,触发信号VoVc,8 46 3 52 1,VoRST,Vcc,P1.0,VccP1.0Vo,V备用,使用555电路构成的掉电保护电路,由555构成的单稳态电路、波形 单稳态单路构成的掉电保护电路、波形,掉电保护原理及过程,电源监控电路对电源VCC进行监控,当VCC的电源开始下降时向单片机的/INT0或/INT1发一个中断申请信号。单片

11、机收到中断信号,立即进入中断程序。在电源消失前:1,迅速将一些重要的信息送RAM保存;2,从P1.0引脚输出负脉冲,触发单稳进行电源切换。外部单稳电路进入但稳态后,由于VCC的消失,使电路无法对单稳电容充电,所以单稳电路一直处于“休眠状态”。当VCC电源恢复后,VCC对电容充电,经后脱离单稳态。,电源监测电路,/INT0 RSTMCS-51 P1.0,Vo Vdd 555触发输入,Vcc,备用电源,ALE/PROG(30脚):以一个不变的频率(系统时钟 fosc/6)周期性输出正脉。当单片机使用外部存储器时,此信号可作为低八位地址的锁存信。对于EPROM型的单片机,此脚还是用于写程序时,输入编

12、程脉冲。/PSEN(29脚):外部程序程序存储器的选通信号。当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲。注意,访问外部数据存储器时,此信号无效。/EA/Vdd(31脚):外部程序存储器的选择端控制端:当此脚加入“1”电平是,单片机使用内部的程序存储器;当EA加入低电平时,系统只使用外部的程序存储器。但要特别注意:如果EA=1既使用单片机内部的程序存储器时,如果程序计数器PC的值超过0FFFH时,单片机将自动转向外部程序存储器1000H开始的单元。对于EPROM型的单片机,此脚还是用于写程序时,加入21伏的编程电压。,时序图,引脚图,4,并行输入输出端口引脚(P0-P3)P

13、0.0-P0.7 P0端口线(39-32脚):输出能力最强的端口,可以带动8个TTL负载。驱动一个MOS负载时,应接一个10K左右的上拉电阻。如果系统使用外接存储器时,该口还作为地址(低八位)总线和数据总线,注意在这种情况下,P0口就不能通用的I/O端口。P1.0-P1.7 P1端口线(1 8脚):负载能力为4个TTL负载。P2.0 P2.7 P2端口线(21 28脚):通用I/O端口。除了做通用I/O端口外,当系统使用外接存储器时,该口还作为地址(高八位)总线,在这种情况下,P0口就不能通用的I/O端口。负载能力为4个TTL。,引脚图,P3.0 P3.7 P3端口线(10 17脚):P3口除

14、了做通用的I/O端口外,同时它还有第二功能),负载能力为4个TTL。,P3口第二功能表,引脚图,MCS-51单片机外型图(DIP封装)MCS-51单片机的逻辑符号图,VCCRSTXTAL1 P0口XTAL2/EA/PSENALE P1口P3口RXDTXD/INT0/INT1 P2口T0T1/WR/RDGND,87C51EPROM型,AT89C51ATMELFLASH型,返回,返回上一次,1.4 MCS-51单片机的存储器的配置,MCS-51单片机的存储器的配置特点,MCS-51单片机片内、外程序存储器的使用示意图,1.4.1 程序存储器(片内与片外),1.4.2 内部数据存储器RAM,MCS-

15、51 片内、片外 数据存储器示意图,MCS-51单片机片内存储器低 128B 字节功能分配图,片内 RAM(20H-2FH)中的位寻址区结构图,特殊功能寄存器 SFR,1.4.3 外部数据存储器,第一章第四节内容小结,程序存储器六个特殊的单元,返回第1章主菜单,1.4.0 MCS-51单片机的存储器的配置特点(89C51),在MCS-51单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。从逻辑上讲(既用户编程的角度讲)

16、51单片机的存储系统又可分为三个存储空间。既片内RAM,片外RAM和片内、外的程序存储器ROM。,从物理结构上单片机系统的存储器结构图(四个部分),MCS-51单片机,片内ROM4K,片内RAM256B,片外RAM64K,片外ROM64K,返回,返回上一次,1.4.1 程序存储器(片内与片外),程序存储器是用来存放编好的程序、常数和表格的。在MCS-51单片机中,当引脚EA=1时,系统使用片内的4KROM来存储程序。EA=0时,系统使用片外的ROM。无论是使用片内还是使用片外的ROM(既 EA=1或EA=0),其起始地址都是从0000H单元开始。,如果EA=1(使用片内的程序存储器时):程序从

17、0000H开始执行。注意:在这种情况下,如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器(尽管EA=1),且从片外ROM的1000H单元开始执行程序。但单片机是无法使用片外ROM的0000H-0FFFH这4K单元。,返回,MCS-51单片机片内、外程序存储器的使用示意图,0FFFH0000H,0FFFH0000H,FFFFH1000H,EA=1时,ROM的使用,EA=0时ROM的使用,片外程序存储器(最大64K),单片机内部程序存储器(4K),返回,程序存储器六个特殊的单元,在程序存储器中,有六个单元是具有特定功能。编程者是不能随便使用的。0000H单

18、元:上电时,程序计数器PC所指向的单元0003H单元:外部中断/INT0的入口地址;000BH单元:定时器T0的溢出中断入口地址;0013H单元:外部中断/INT1的入口地址;001BH单元:定时器T1的溢出中断入口地址;0023H单元:串行口接收、传送的中断入口地址。,返回,1.4.2 内部数据存储器RAM,数据存储器无论在物理上还是逻辑上都分为两个地址空间,既一个内部和一个外部的数据存储空间。访问内部数据存储单元时,使用 MOV 指令;而访问外部数据存储器时,使用 MOVX 指令。内部数据存储器从功能上又将256B空间分为二个不同的块:1,低128B的RAM块;2,高128B的SFR(Sp

19、ecial Function Register)块。在低128B的RAM存储单元中又可划分为:工作寄存器区、可位寻址区、通用存储数据的便签区。高128B的专用寄存器区中仅仅使用了21寄存器(51系列),其它单元未定义不能使用。,存储结构图,MCS-51 片内、片外 数据存储器示意图,特殊功能寄存器SFR,通用数据存储器,80H7FH,00H,FFH,片内数据存储器 片外数据存储器256B个字节 64KB个字节,片外数据存储器64KB,0000H,FFFFH,注意:1,访问片内RAM20H存储单元;MOV A,20H2,访问片外RAM存储单元;MOV R0,#20hMOVX A,R03,尽管片内

20、与片外的RAM单元 的00H-FFH地址相重叠但由于指令的不同不会发生地址混乱。,片内RAM低 128B 字节功能分配图,位寻址区,3区,2区,1区,0区,便笺区,08H07H00H,7FH,30H2FH,20H1FH,18H17H,10H0FH,四个工作寄存器区每个区中有R0-R7八个工作寄存器,位寻址区16个单元20H-2FH,共有128 可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别,通用的RAM区地址:30H-7FH,继续,返回上一次,片内 RAM(20H-2FH)中的位寻址区结构图,2FH,20H,字节地址,位寻址区内的地址是位地址。共有00-7FH(共128个位)

21、;要区分字节地址和位地址这两个不同的地址概念:从物理的角度,每一个字节地址内包含了8个位,既:D7,D6,D5,D4,D3,D2,D1,D0 在一般情况,我们提到的RAM地址都是字节地址。从逻辑的角度讲,字节地址和位地址是靠不同类型的指令来区分的。如:MOV A,20h;将RAM的20单元内容送累加器A;MOV C,20h;将RAM位寻址区中20H位送CY中。在这二个例子中,第一条指令为字节传送指令,所以20H为字节地址;第二个例子中的指令为位操作指令,所以20H为位地址。有关详细内容将在第二章中描述。,返回,0区工作寄存器区结构图,RAM地址07H06H05H04H03H02H01H00H,

22、返回上一次,特殊功能寄存器SFR,特殊功能寄存器SFR(Special Function Register)特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值寄存器,并行端口的锁存器等等。尽管特殊功能寄存器与RAM在同一个单元中,但不能作为普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等等。,特殊功能寄存器 SFR(表一),SFR(表二),SFR高128B,低128B,0FFH,80H7FH,00H,特殊功能

23、寄存器SFR在片内RAM中的位置,注:表中黄色的单元为可按位寻址的字节,特殊功能寄存器SFR说明,程序计数器PC:用来存放下一条要执行的指令地址,长度为16位,所以寻址范围为0-65535(64K).在物理上是独立于SFR.累加器A:最常用的专用寄存器,大多数的指令操作数都来自累加器A.所有的算术运算指令的运算结果都存放在A中.B寄存器:乘除法指令使用的寄存器.数据指针DPTR:一个16位的寄存器.由高八位DPH和低八位DPL构成.DPTR主要用来存放片内ROM的地址和片外RAM,ROM的地址.这样单片机可以通过间址的方式来访问片内ROM或片外的RAM,ROM。例如:片外RAM的2000H单元

24、中有一个数x,试将其送到累加器A中.MOV DPTR,#2000h;DPTR 2000H MOVX A,DPTR;A x,程序状态字PSW:8位寄存器.表征程序执行的状态信息。CY(PSW.7)进位标志:在加减法运算中,累加器A的最高位A7有进位,则CY=1,否则CY=0.同理,在减法运算中,如果A7有借位,则CY=1.因此CY往往作为无符号数运算是否有溢出的标志。AC(PSW.6):辅助进位位:用来判断加减法运算时,低四位是否向高四位进位或借位(既A3的进位或借位).往往用来判断压缩的BCD码的运算处理.F0(PSW.5)用户标志位:完全由用户来定义和使用。RS1,RS0工作寄存器区选择位:

25、确定工作寄存器R0-R7在哪个区中.单片机在上电或复位后RS1、RS0=00。当需要人为的修改RS1,RS0的值来改变工作寄存器区的位置。,RAM分配图,OV(PSW.2)溢出标志位:判断符号数加减法运算时是否有溢出.OV的结果可以用一个算法来表示:OV=CP异或CS 其中:CP为A7的进位,CS为A6的进位OV=1表明有溢出。P(PSW.0)奇偶标志位:用来标志累加器A中运算后1的个数。当P=1时,表明A中1的个数为奇数个,反之为偶数个。【举例】:有两个数0FH和F8H,试将两数相加 MOV A,#0FH;将立即数0f h 送累加器A ADD A,#0F 8H;A的内容与立即数0f8h相加,

26、结果送A 0000 1111 运算结果:A=07H,CY=1(既CP=1),+1111 1000 CS=1,OV=0(因为CP=1,CS=1)Cy1 0000 0111 AC=1,P=1如何根据PSW来分析运算结果是否正确?是否有溢出?1,若数据为无符号数。既15+248=263=107H 既CY=1,A=07H。2,若数据为有符号数。既+15加-8=+7=07H,OV=0表明无溢出。,SP 堆栈指针:8位寄存器,用来指示堆栈的位置,可由软件修改。在MCS-51单片机的设计中,片内RAM区为堆栈的可用空间。上电或复位时,SP被初始化为07H,既堆栈底部被确定在RAM的07H单元。堆栈操作过程:

27、进栈:PUSH ACC指令(设 SP=07H),1,SP+1送SP,此时SP=08H;2,ACC送RAM的08H单元;出栈:POP ACC(设SP=08H);1,将RAM 中08H单元内容送A;2,SP-1送SP,此时SP=07H。,07H,SP,08H07H,RAM,x,累加器A,堆栈操作示意图,并行端口P0-P3:SFR中的P0-P3实际上就是I/O端口的数据锁存器。与RAM中的任意一个单元一样,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51单片机中的输入、输出操作实际上就是个普通的RAM单元操作一样:如输出指令 MOV 80H,A;将累加器中的数据送到P0口

28、输出输入指令 MOV A,90H;将P1口的数据输入到累加器A中 既MCS-51的指令系统中没有专用的输入、输出(IN、OUT)指令,而是把P0-P3作为普通的内存单元来使用。上面的第一个例子实际上就是MCS-51的输出指令;同理后者是MCS-51的输入指令。,串行数据缓冲器SBUF:它是专门用来存放发送或接收的数据,实际上它是两个独立的寄存器。尽管在SFR中的RAM地址只是99H,但根据指令“发送”或“接收”两种不同的操作,硬件会自动的区分,将数据送如对应的缓冲单元。定时/计数器T0、T1:无论是定时还是计数,对于MCS-51单片机的定时/计数器来说,都是一个“计数器”在计数。这个“计数器”

29、是由两个8位寄存器(高位和低位)构成的16位计数器,分别是TH0、TL0(T0);TH1、TL1(T1)。TH和TL中的数据直接与“定时操作”或“计数操作”有关,因此在使用定时/计数器之前,要对它进行初始化,其中就要对TH、TL赋初值。如:MOV 8CH,#01H MOV 8AH,#20H 大家试分析上面两条指令的作用。有关SFR中其它寄存器的说明将相关的章节中作介绍。,TH0,TL0,返回,1.4.3 外部数据存储器,在片内RAM不能满足需要时,就要外接RAM。P0、P1作为外部RAM的地址和数据总线。MCS-51对外部数据存储器的扩展能力为64KB。除了硬件电路外,系统主要是靠专门的指令来

30、访问外部数据存储器。如:MOV R0,#20H;将外部RAM单元地址20H送R0寄存器 MOVX A,R0;从外部RAM20H单元取数据到累加器A 这里使用了R0做间址寄存器,所以寻址范围为256KB。同理:MOV DPTR,#2000H;将外部 RAM 单元的地址的2000送DPTR MOVX A,DPTR;从外部 RAM 2000H单元中取数据到 A 这里使用了16位的寄存器DPTR,所以寻址范围为64KB。,返回,第一章第四节内容小结,1.4 MCS-51单片机的存储器的配置 片内4K的程序存储器ROM和256B的数据存储器RAM;片外可以扩展64K的ROM和RAM.从用户编程的角度可以

31、将它们分为3个存储空间:1,片内RAM;2,片外RAM;3,片内+片外的ROM.1.4.1 程序存储器(片内与片外)当引脚EA=1时,单片机上电复位后从片内ROM的0000H单元运行程序;若引脚EA=0时,单片机上电复位后从片外ROM的0000H单元运行程序.当引脚EA=1,且PC值大于1FFFH时,单片机就自动转到片外ROM的2000H单元继续运行程序.无论是使用片内还是片外的ROM,有六个单元是有特定意义的:1,0000H单元:上电,复位后的启动地址;2,0003H单元:外部中断INT0的入口地址;3,000BH单元:定时器T0的中断入口地址;4,0013H单元:外部中断INT1的入口地址

32、;5,001BH单元:定时器T1的中断入口地址;6,0023H单元:串行口中断的入口地址.,1.4.2 内部数据存储器RAM 内部RAM的256B分为低128B和高128B.其中低128B中有 1,工作寄存器区;2,位寻址区;3,便笺区.高128B中仅仅使用了小部分做特殊功能寄存器SFR用.注意:1,SFR不同于一般的数据RAM,它不是用于存储数据,而是用来存储和表 征单片机内部几个逻辑部件的特征,状态等重要信息.2,在使用RAM时,要注意字节地址和位地址的概念.3,访问内部RAM的指令为 MOV 指令.1.4.3 外部数据存储器 在硬件具备的条件下,MCS-51单片机可以使用64KB的外部数

33、据存储器.如果要访问外部数据存储器RAM时,只能使用间址的寻址方式.间址寄存器有R0,R1或DPTR.前者寻址范围为256KB(00H-FFH);后者为64KB(0000H-FFFFH).使用的指令是 MOVX.,返回第1章主菜单,1.5 震荡器、时钟电路和CPU的时序,1.5.1 震荡器、与时钟电路,MCS-51单片机的时序,1.5.3 访问外部程序存储器ROM的时序,1.5.4 访问外部数据存储器RAM的指令时序,单字节单周期指令的时序,双字节单周期指令时序,单字节双周期指令的时序,继续,MCS-51内部有一个用于构成震荡器的高增益反相放大器.在单片机引脚的XTAL1和XTAL2分别是此放

34、大器的输入和输出端.与作为反馈元件的晶体或陶瓷谐振器一起构成了一个自激震荡器(见右上图).如果使用外部震荡器信号,其外来的信号加在XTAL1的引脚上(见右下图).,XTAL1,XTAL2,XTAL2XTAL1,NC,外时钟,使用外时钟时的电路连接,1.5.1 震荡器、与时钟电路:,返回,20P,20P,1.5.2 MCS-51单片机的时序,时钟周期,T:时序中最小的时间单位.其值由外接晶体或外输入时钟来决定,其值为石英振荡器频率的倒数。例如:在单片机外接1MH的晶体,则单片机的系统时钟的频率为1M,时钟周期为1us.机器周期:完成特定功能所需要的时间,在MCS-51单片机中机器周期由12个时钟

35、周期构成,并分为6个状态(S1-S6),每个状态又分为P1和P2两拍.这样一个机器周期的12个震荡周期可以表示为:S1P1,S1P2,S2P1,S2P2,S3P1,S3P2 S6P1,S6P2 将12个震荡周期用6个状态和2拍来替代。,T,S1,S1,S6,S5,S4,S3,机器周期,指令周期:这是时序图中最大的时间单位,既执行一条指令所需要的时间.在MCS-51系统中,不同的指令它所包含的机器周期数不同.它们分别是:1,单机器周期指令;2,双机器周期指令;3,四机器周期指令 我们知道:一个机器周期包含了12个震荡周期.如果我们使用一个12M的晶体震荡器,那么:一个机器周期为1us,两个机器周

36、期为2us,四个机器周期为4us.可见一条指令的运算速度与它所包含的机器周期数有关.机器周期数越少,执行的速度就越快.在MCS-51单片机的指令系统中,除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令.,返回,指令的字节数与指令周期之间的关系:在MCS-51单片机的指令系统中有:单字节;双字节;三字节指令。在MCS-51的111条指令中,可以分为六种基本的时序:1,单字节单周期指令;4,双字节单周期指令;2,单字节双周期指令;5,双字节双周期指令;3,单字节四周期指令;6,三字节双周期指令.,指令特点:在程序存储器ROM中仅占一个存储单元。在ALE第一次有效(S2P1)时,从ROM

37、中读取指令的操作码,送入指令寄存器IR中.并译码执行,在ALE第二次有效时,封锁PC加一,使第二次读数无效.可见:1,ALE信号对应这从ROM中读指令,所以在一个机器周期中CPU可以读两次指令;2,对于单字节单周期的指令,CPU通过译码后封死PC,实际上指令的后半部不做任何工作.,单字节单周期指令的时序:,机器周期,读操作码一,读操作无效,ALE,返回,S1,S2,S6,S5,S4,S3,指令特点:一条指令长度为两个字节,并存储在ROM相邻的两个单元中。要想完整的将这样的指令执行完,必须从ROM中读两次操作码.在ALE第一次有效时,CPU 从ROM的n单元中取出指令的第一个字节OP1-1,并送

38、入IR译码,通过译码CPU知道这是一条双字节指令,所以使PC加一,并在ALE第二次有效时,从ROM的n+1单元取出指令的第二个字节OP1-2送入IR进行译码,并产生对应的操作.最后在S6P2时完成本条指令的运行.,S1,S2,S6,S5,S4,S3,机器周期,读操作码一,读操作码二,OP1-2,OP1-1,n+1n,程序ROM,PC,双字节单周期指令时序,ALE,返回,指令特点:单字节,需要两个机器周期运行.如:INC DPTR DPTR为两个8位的寄存器,加一时,必须分两步完成.既第一步DPL加一,如果DPL加一有进位则还要进行第二步对DPH加一.在指令周期的第一个ALE时,将ROM中的操作

39、码OP取出,经IR译码后得知为单字节双周期指令,所以一面执行该指令,同时封锁后面三次ALE有效时的PC+1,在第二个机器周期的S6P2时,完成操作.,S1,S2,S6,S5,S4,S3,机器周期1,读操作码,读无效,S1,S2,S6,S5,S4,S3,读无效,读无效,机器周期2,单字节双周期指令的时序,ALE,返回,设:单片机使用片外ROM,且要执行的是一条:movc a,a+dptr指令.(设a+dptr=2000H),/PSEN P2口MCS-51 P0口 ALE,D7D0CP,/CSA15A8 64K ROMA7A0 D0D7,A15-A8(PC),A7-A0,OP,A7-A0,常数,/

40、Psen,P2口,P0 口,1.5.3 访问外部程序存储器ROM的时序:,S1,S2,S6,S5,S4,S3,ALE,A15-A8(DPTR+A),返回前一次,74LS373,1,在S2P1时刻,P2口输出外部ROM的高八位地址A15-A8,P0口输出低八位地址A7-A0,这时地址是由程序计数器PC提供的ROM中的指令地址;2,在ALE的下降沿,P0口的数据(低八位地址)被锁存到74LS373中.3,在S3P2到S4P1期间,/psen变低电平时,外部程序ROM被选中,数据输出端的三态门被打开,被选中单元中的指令movc送到P0口上,且在S4P2时指令经P0口送至CPU的IR中.4,CPU对指

41、令译码后,在S4P2时进行常数地址计算并由P0、P2口输出.5,在S5P2时,ALE将常数地址的低八位锁存6,在S6P1时,外部ROM被再次选种打开,按照单片机所提供的16位常数地址,将外部ROM中的常数经P0口在S6P2时刻送入累加器A.,返回上一页,返回,设外部RAM2000H单元中有一个数x,且DPTR中已存有该数地址2000H.则CPU 执行外部ROM中的指令:MOVX A,DPTR;将外RAM的x送A,/WR/RD P2口MCS-51 P1口 ALE,D7D0/CP,/WR/RDA15A8 A7A064KRAMD0D7,S1,S2,S6,S5,S4,S3,S1,S2,S6,S5,S4

42、,S3,ALE,Psen,A15-A8(PC),A15-A8(DPH),A7-A0,指令,A7-A0,数据,RD,P2口,P0口,选中外部RAM,1.5.4 读外部数据存储器RAM的指令时序,返回前一次,1,在S2P2时,ALE的第一个下降沿将P0口输出的外程序ROM的低八位地址锁存到74LS373锁存器中;2,在S3P2的Psen为低电平时,选中外ROM,并根据单片机P0、P2口输出的16位地址选中movx指令(单字节),通过P0口送至单片机内部IR中译码.经译码后产生下列的一系列操作;3,CPU将DPTR中的高8位(20H)送P2口输出,低八位(00H)经P0口输出,节在S5P1时ALE第

43、二次下降沿时,将P0口的低八位地址锁存;4,在第二个机器周期的S1-S3中单片机输出/RD信号(低电平),选中外部RAM,并根据单片机提供的2000H 这16位地址中取出数据x.5,CPU在S2-S3期间,将外部RAM2000H单元送到P0口上的数据送入累加器A中.,上一页,上述过程可以分成两个指行的阶段:1,根据PC所指定的程序存储器的地址,将movx指令从片 外ROM中取出;2,经译码后将DPTR提供的外数据存储器RAM中的数据 地址取出数据,经P0口送累加器A.在第一阶段CPU产生/Psen信号用来选通外部程序存储器ROM;在第二阶段CPU输出/RD信号(低电平),用来选通并读取外部数据

44、存储器RAM的数据.,返回,1.6 输入输出端口,在MCS-51单片机的四个端口都是具有输出锁存功能的双向端口,这些锁存器的位置都在SFR中,其地址分别为:80H、90H、A0H、B0H.出于系统的考虑,在硬件设计上对每一个端口都有不同的要求,所以每一个端口又具有不同的特点.,1.6.1 P0口,P0口的位结构图,P0口的工作原理,1.6.2 P1口,1.6.3 P2口,1.6.4 P3口,1.6.5 并行端口在使用时应 注意的几个问题,单片机与继电器等大电流负载的接口,继续,MCS-51逻辑图,1.6.1 P0口:,特点:“通用数据I/O端口”和“地址、数据复用总线”端口.1,在作为通用数据

45、I/O端口时,具有较强的驱动能力(8个TTL负载),与MOS负载连接时,需要外接一个上拉电阻。2,作为“地址、数据复用总线”使用时,P0口首先输出外部存储器的低八位地址,然后再变为数据总线进行数据的输入或输出.此时,P0口不能再作为通用I/O口。,返回,P0口的位结构图,D Q 锁存器CL/Q,P0.x引脚,Vcc,地址/数据1/0,控制(=0时),读锁存器,读引脚,内部总线,写锁存器,MUX(控制=0时),硬件组成:1,一个输出锁存器(D型触发器);2,二个三态门(控制读引脚或读锁存器);3,与门和MUX等元件组成的输出控制电路;4,一对场效应晶体管FET构成的输出电路.,Vcc,返回,返回

46、前一次,1,P0口的I/O操作;,2,P0口的总线方式,1,P0口的I/O操作(通用I/O端口),在P0口作为通用I/O端口时,控制电路中的“控制”为“0”电平,多路开关MUX接入下方的锁存器的/Q端。由于与门的一个输入端为“0”,所以它使上端的FET截止.这就是P0口在做I/O口时输出为“漏极开路”的结构原因.输出操作:在执行以口为目标的指令时,数据送到锁存器的“D”端,经“/Q”端送场效管应输出极.如:送“1”时,/Q=“0”,使下端的FET截止.这样出现输出极的两个FET全部截止.在这种情况下必须在端口线上外加上拉电阻.这样在上拉电阻的作用下,使端口为高电平.同理,若总线向口送“0”时,

47、锁存器的/Q=1,使下端的FET导通(上面的FET仍然截止),这样端口呈现“0”电平.,返回结构图,输入操作(读引脚,读锁存,输入前写一)a,读引脚:读外部送到端口引脚的电平,即通常所说的输入操作(如:MOV A,P0).此时,单片机控制“读引脚”的三态门,使引脚处的外部电平经三态门送入内部总线.b,读锁存器:将进行读锁存器并进行处理,最后再写回锁存器的操作称之为:“读修改写”操作。在这种情况下,读入的数据不是来自引脚,而是端口内部的锁存器的内容。当前面完成一次端口的输出后,要再将前面输入的状态取回来,进行再处理,然后重新输出,在MCS-51的指令系统中这种“读修改写”的操作有:ORL、XRL

48、、JBC、CPL、INC、DEC、DJNZ、MOV Px,y、CLR Px,y和SET Px,y。如:ORL P0,A;P0 A P0,返回结构图,P0.X,c,输入时应先写“1”:在端口电路中,可以发现一个问题:端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入.例如:原来锁存器的状态为“0”态,既输出极的下端FET是饱和状态,这样如果外电路向引脚输入高电平时,电路将不能正确读入.要解决的方法就是让下端的FET截止,既事先向端口写一个“1”.请注意下面的一段程序:MOV A,#0FFH;0FFH送累加器A MOV P0,A;向P0口“写1”MOV A,P0;从P0口输入数据到A

49、你能正确的分析出指令的操作吗?,返回结构图,2,P0口的总线方式(系统使用外存储器时),控制电路的“控制”=1,此时与门打开,MUX接向“地址/数据”信号.在这种情况下,输出极的两个FET都处于正常的工作状态。访问外部存储器的指令movx、movc,就是使用P0口来输出外部存储器的低八位地址和输入、输出存储器的数据。可以从:访问外部程序存储器ROM的时序;读外部数据存储器RAM的指令时序中来清楚的观察P0口作为“地址/数据复用”总线的工作特点。在进行单片机的硬件系统的设计中,如果使用了外部存储器(或使用movx指令来访问外部接口电路)时,P0口成为整个系统的地址/数据复用总线。换句话,P0口不

50、能再作为通用的I/O端口的形式直接与外部连接。,返回结构图,1,做通用数据I/O端口时,输出级上端的FET处于截止状态,所以与MOS器件连接时,必须接“上拉电阻”,否则不能正确的输出高电平;2,在输入操作前,为了保证输入正确,必须先向端口“写1”;3,“读引脚”与“读锁存器”是不同的两个数据通道。凡是“读修改写”的操作,CPU读的都是端口锁存器中的数据。4,为了提高电路的可靠性,端口引脚不要直接与三极管一类的器件直接连接,应加隔离电路或与三极管之间加一个电阻.5,在总线方式时,P0口不能再做通用的I/O端口。它分时输出地址、数据总线的信息(此时引脚不用外接上拉电阻)。,返回,返回结构图,P0口

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号