《单片机原理及接口技术课件.pptx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术课件.pptx(364页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、参考资料参考资料1,单片机实用教程 -胡健 兵器工业出版社 20012,单片机应用程序设计基础 -周行慈 北京航空航天大学出版社 19913,单片机基础 -李广弟 北京航空航天大学出版社 20014,单片机原理及接口技术 -李朝青 北京航空航天大学出版社 1999第1页/共364页本课主要内容及课时安排 总讲课课时 学时第一章:计算机基础知识 (1课时)主要讲述计算机的基础知识,包括各种数制相互转换、带符号二进制的编码机器运算;单片机的概念、发展状况、应用领域及嵌入式系统的概念第二章:MCS-51单片机结构和原理 (3课时)介绍51单片机内部结构,重点介绍单片机的存储组织、并行IO接口、时钟电
2、路及典型CPU时序,最后介绍单片机的工作方式第三章:MCS-51单片机的指令系统和C51语言(4课时)51单片机的111条指令的分类、寻址方式、伪指令及使用中的注意事项第四章:汇编语言程序设计基础 (0课时)介绍汇编语言程序结构,汇编语言的编辑与汇编第2页/共364页第五章:MCS-51中断系统(2 课时)主要介绍单片机中的中断控制、中断处理过程以及外部中断的应用第六章:MCS-51单片机的定时/计数器 (2课时)介绍单片机内部的定时与计数功能、相关寄存器以及定时器的4种工作方式;最后介绍定时器的综合应用第七章:MCS-51单片机系统扩展 (2 课时)先对51单片机系统扩展进行概述,然后分别介
3、绍程序存储器的扩展、数据存储器的扩展、IO接口的扩展并举例说明第八章:人-机通道配置与接口技术 (0课时)介绍单片机的显示接口技术(LED)和键盘扫描/动态显示接口电路。第3页/共364页第九章:系统前向、后向通道配置及接口技术(0课时)主要对51单片机中的A/D、D/A转换器的原理、技术指标及应用进行设计举例第十章:串行接口技术(2课时)介绍单片机与外界进行通信的串口技术,主要说明其串行口工作方式,单片机与PC通信的方法。最后举实例进行说明第十一章:单片机应用系统设计 (8课时)主要是从应用系统的设计过程、硬件抗干扰技术、故障及自恢复程序设计等三方面来介绍单片机应用系统设计第4页/共364页
4、第1章 计算机基础知识1.1 数制与编码 1.2 单片机与嵌入式系统第5页/共364页1.2 单片机与嵌入式系统1.2.1 单片机的概念 单片机(Single Chip-Microcomputer)又称为微控制器(Microcomputer),其最基本的结构是将CPU和计算机外围功能单元,如存储器、IO口、定时器/计数器、中断系统等集成在一个芯片上构成的。虽然单片机只是一个芯片,但无论从组成还是功能上看,它都具有了微机系统的特征。第6页/共364页1.2.2 单片机的发展 1971年微处理器研制成功。1974年,美国FairChild公司研制出世界上第一台单片机微型计算机F8。该机由两块集成电
5、路芯片组成,具有与众不同的指令系统,深受民用电器及仪器仪表领域的欢迎和重视。从此,单片机开始了迅速发展,应用领域也在不断扩大。1976年INTEL公司推出了MCS-48系列的8位单片微型计算机,它以体积小、功能全、价格低等优点,赢得了广泛的应用,为单片机的发展奠定了基础。成为单片机发展过程中的一个重要阶段。代表产品有INTLEL 公司的MCS-51系列单片机,MOTOROLA公司的MC6801,MC6802系列机,zilog公司的Z-8系列机,TI公司的TMS7000系列等。此后,又在8位单片机的基础上,发展了16位单片机。目前,单片机正朝着高性能和多品种方向发展那,但以MCS-51为主的8位
6、单片机仍然占单片机的主导地位。单片机的应用从根本上改变了传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已经使用单片机通过软件的方式实现了。这种由软件取代硬件的并能提高系统性能的控制技术,称之为微控制技术。随着单片机应用的推广和普及,微控制技术必将不断发展,日益完善,更加充实。第7页/共364页1.2.3单片机的应用领域 单片机具有体积小、可靠性高、功能强、灵活方便等优点,故可以广泛用于国民经济的各个领域,对各行各业的技术改造和产品更新换代起到了推动作用。从应用规模来分,单片机应用系统常分为简单应用系统、常规应用系统和高级应用系统三类。其中,简单应用系
7、统是指它在家用电器或仪器仪表中的应用,其特点是没有人机对话功能,程序和运行参数均可以固化在ROM中。常规应用系统作用于过程控制,通常配有一个键盘和若干个IO端口,用以实现对被控对象进行监视和控制;高级应用系统是指单片机在分布式计算机系统或计算机网络中的应用;在这类应用系统中,单片机通常用作前置(下位)机,而后台(上位)机一般是一台系统机或网络 工作站。第8页/共364页(1)单片机在直接数字控制系统中的应用人工监督给定值 测量值反多路开关生产过程多路开关A/D检测元件单片机D/A 第9页/共364页(2)单片机在分布式控制系统中的应用厂级管理计算机商品信息市场信息生产信息 车间监督计算机(sc
8、c)车间监督计算机(scc)设备控制级DDC 设备控制级DDC 设备控制级DDC 设备控制级DDC 过程A 过程N 过程A 过程NMIS级SCC级DDC级第10页/共364页1.2.4 嵌入式系统 所谓嵌入式系统,就是以嵌入式应用为目的的计算机系统。由于被嵌入对象的体系结构、应用环境要求不同,因此嵌入式系统也有很多类型。主要分为两类:一类是独立使用的计算机系统;另一类是嵌入式计算机系统。第11页/共364页第2 2章 MCS-51MCS-51单片机结构和原理2.1 单片机内部组成及引脚功能 2.2 布尔处理机2.3 存储器组织 2.4 并口IO口电路结构及应用特性2.5 时钟电路与CPU时序
9、2.6 MCS-51单片机工作方式第12页/共364页2.1 单片机内部组成及引脚功能 MCS-51系列单片机有三种基本产品:8051、8751和8031,它们具有相同结构和性能,唯一差别就是内部程序存储器有所不同。其中8051是ROM型单片机,内涵4KB掩膜ROM;8751片内含有4KB的EPROM;而8031片内无程序程序存储器。MCS-51的典型产品是8051,所以本章将以8051为例对单片机的结构和原理进行介绍。第13页/共364页2.1 MCS-512.1 MCS-51单片机内部结构单片机内部结构 时钟电路4KROM程序存储器256BRAM数据存储器2X16位定时/计数器CPU处理器
10、并行接口串行接口中断系统T0T1内总线/INT0/INT1 P0 P1P2 P3TXD RXD图 2-1 MCS-51单片机结构框图第14页/共364页MCS-51MCS-51单片机的主要性能和特点单片机的主要性能和特点微处理器:一个8位的微处理器。包括以下两部分:(1)运算器ALU:进行算术或逻辑运算的部件;(2)控制器:用来控制计算机工作的部件;内部数据存储器RAM:256B(128B的RAM+21B的SFR);内部程序存储器ROM(以8051为例):4K的存储容量;定时/计数器:2个16位的定时/计数器;8位并行输入输出端口:P0、P1、P2和P3均可作输入输出口;串行口:全双工的端口(
11、RXD:接收端,TXD发送端);中断控制系统:设有5个中断源(/INT0,/INT1,T0,T1,串行口中断);时钟电路:内部有时钟电路,但需要外接石英晶体和微调电容,时钟电路为单片机时钟脉冲序列;第15页/共364页2.1.2 MCS-51的引脚功能MCS-51采用40引脚DIP封装形式VCCRSTXTAL1 XTAL2/EA/PSENALEP3口RXDTXD/INT0/INT1T0T1/WR/RDGND8051P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7P1.7 8RST/VPD 9 RXD/P3.0 10 TXD/P3.1 11 /IN
12、T0/P3.2 12 /INT1/P3.3 13 T0/P3.4 14 T1/P3.5 15 /WR/P3.6 16 /RD/P3.7 17 XTAL2 18 XTAL1 19VSS 2040 VCC 39 P0.0/A0/D0 38 P0.1/A1/D1 37 P0.2/A2/D2 36 P0.3/A3/D3 35 P0.4/A4/D4 34 P0.5/A5/D5 33 P0.6/A6/D6 32 P0.7/A7/D7 31 /EA 30 ALE 29 /PSEN 28 P2.7/A15 27 P2.6/A14 26 P2.5/A13 25 P2.4/A12 24 P2.3/A11 23 P
13、2.2/A10 22 P2.1/A9 21 P2.0/A8 30pF30pFXTAL1XTAL2P0P1P210uF8.2KRST/VPDVCCVSS图2-2 MCS-51单片机引脚图及逻辑图第16页/共364页MCS-51单片机的引脚定义1,主电源引脚:Vcc(+5V-40脚)和Vss(GND 20脚);2,外接晶体引脚:XTAL1(19脚)、XTAL2(18脚),只要在这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频率开始工作。常用的晶体频率有0-24M,频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。3,控制或与电源复用引脚:RST/Vpd(9脚):在系统上电震荡器开始工
14、作时,在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位。但为了使系统复位可靠,建议外加 一个上电复位电路,延长复位的时间。当单片机掉点时,此引脚可以接入备用电源向单片机内部的RAM供电,以防止RAM中的数据丢失。第17页/共364页ALE/PROG(30脚):低8位地址锁存器使能输出端。当CPU访问外部存储器时,ALE可向低8位地址锁存器输出所存控制信号;当不访问外部存储器时,ALE端仍以时钟振荡频率的1/6固定的输出正脉冲。对于EPROM型的单片机,此脚还是用于写程序时,输入编程脉冲。/PSEN(29脚):外部程序程序存储器的选通信号。当单片机使用外部程序存储器时,此脚在一个机器周期
15、内产生两次负脉冲。注意,访问外部数据存储器时,此信号无效。/EA/Vdd(31脚):外部程序存储器的选择端控制端:当此脚加入“1”电平是,单片机使用内部的程序存储器;当EA加入低电平时,系统只使用外部的程序存储器。但要特别注意:如果EA=1既使用单片机内部的程序存储器时,如果程序计数器PC的值超过0FFFH时,单片机将自动转向外部程序存储器1000H开始的单元。第18页/共364页4,并行输入输出端口引脚(P0-P3)P0.0-P0.7 P0端口线(39-32脚):输出能力最强的端口,可以带动8个TTL负载。驱动一个MOS负载时,应接一个10K左右的上拉电阻。如果系统使用外接存储器时,该口还作
16、为地址(低八位)总线和数据总线,注意在这种情况下,P0口就不能通用的I/O端口。P1.0-P1.7 P1端口线(1 8脚):是一个带内部上拉电阻的8位准双向IO端口。P2.0 P2.7 P2端口线(21 28脚):是一个带内部上拉电阻的8位准双向IO端口。除了做通用I/O端口外,当系统使用外接存储器时,该口还作为地址(高八位)总线,在这种情况下,P0口就不能通用的I/O端口。负载能力为4个TTL。第19页/共364页P3.0 P3.7 P3端口线(10 17脚):P3口除了做通用的I/O端口外,同时它还有第二功能,负载能力为4个TTL。P3口第二功能表端口端口端口端口定义定义定义定义说明说明说
17、明说明端口端口端口端口定义定义定义定义说明说明说明说明P3.0P3.0RXDRXD串行数据输入口串行数据输入口P3.4P3.4T0T0计数器外部输入信号计数器外部输入信号P3.1P3.1TXDTXD串行数据输出口串行数据输出口P3.5P3.5T1T1计数器外部输入信号计数器外部输入信号P3.2P3.2INT0INT0外部中断输入口外部中断输入口P3.6P3.6/WR/WR外部数据存储器写信号外部数据存储器写信号P3.3P3.3INT1INT1外部中断输入口外部中断输入口P3.7P3.7/RD/RD外部数据存储器读信号外部数据存储器读信号表2-1 P3口功能表第20页/共364页2.2 布尔处理
18、机 前面已经讲到,单片机主要用于各种控制,而开关量控制又是单片机控制的主要对象,作为不同计算机 CPU只能按字或字节进行操作,对于简单的个别开关量进行控制却显得不那么方便,而让MCS-51骄傲的正是它能够有效的解决了位的控制。MCS-51片内还有一个性能优异的位处理器,也就是说MCS-51实际上又是一个完整而独立的1位单片机,即布尔处理机。它有自己的CPU、位寄存器、位累加器、IO口和指令系统。MCS-51单片机对于位操作(布尔处理),有置位、复位、取反、测试转移、传送、逻辑与和逻辑或运算等。把8位微型机和布尔处理机结合在一起是微机技术上的一个突破。布尔处理机在开关量决策、逻辑电路仿真和实时控
19、制方面非常有效、而8位微型机在数据采集及处理、数值运算方面有明显的优势。在MCS-51单片机中,8位微型机和布尔处理机的硬件资源是复合在一起的,二者相辅相成。第21页/共364页2.3 存储器组织 MCS-51存储器组织结构与一般的微机不同。一般微机通常是程序和数据共用一个存储空间,属于“冯诺依曼”结构。而MCS-51单片机则把程序存储空间和数据存储空间严格区分开来,属于“哈佛”结构。2.3.1 MCS-51存储器特点 存储器中物理结构上分成四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从用户使用的角度看,即从逻辑上考虑,则有三个存储空间:片内外统一编址的64K
20、程序存储地址空间、256B的片内数据存储器地址空间及片外数据存储器地址空间。第22页/共364页外部ROM(4KB)/EA=0内部ROM(4KB)/EA=1特殊功能寄存器SFR内部128RAM外部RAM64KBFFFFH0000HFFH80H7FH00HFFFFH1000H外部ROM(60KB)/EA=0/10FFFH0000H0FFFH0000H/PSEN/WR/RD (a)内、外程序存储器(b)内部数据存储器(c)外部数据存储器图2-3 8051单片机存储组织 CPU在访问三个不同的逻辑空间时,通过采用不同的形式的指令(访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问
21、片外数据存储器使用MOVX指令),来产生相应的存储器选通信号。第23页/共364页2.3.2 片内数据存储器 数据存储器用于存放各种运算的中间结果,用作缓冲和数据暂存,以及设置特征标志等。8051的片内数据存储器空间较小,仅用8位地址寻址,最大寻址范围为256个单元,按使用情况不同可以分为低128B单元和高128B单元。其中低128B单元为真正的RAM存储器,高128B单元是特殊功能寄存器区。第24页/共364页位寻址区3区2区1区0区堆栈区08H07H00H7FH30H2FH20H1FH18H17H10H0FH四个工作寄存器区每个区中有R0-R7八个工作寄存器通用的RAM区地址:30H-7F
22、H位寻址区16个单元20H-2FH,共有128 可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别整个片内整个片内RAMRAM分布如下图:分布如下图:低128B单元图2-4 片内RAM低128位存储器的配置第25页/共364页高128B单元SFR高128B低128B0FFH80H7FH00H特殊功能寄存器SFR在片内RAM中的位置B BACCACCPSWPSWIPIPP3P3IEIEP2P2SBUFSBUFSCONSCONP1P1TH1TH1TH0TH0TL1TL1TL0TL0TMODTMODTCONTCONPCONPCONDPHDPHDPLDPLSPSPP0P0FFHF0HE0
23、HD0HB8HB0HA8HA0H99H98H90H8DH8CH8BH89H8AH88H87H83H82H81H80H图2-5片内RAM高128位存储器的配置第26页/共364页1.在低128B的RAM存储单元中又可划分为:通用寄存器区、可位寻址区、用户存储数据堆栈区。(1)通用寄存器区 00H-1FH共32个单元为通用寄存器区,分四组,每组有8个8位的寄存器R0-R7。CPU当前使用的工作寄存器是由程序状态字(PSW)的RS1和RS0设置决定的。表2-2 通用寄存器R0-R7的地址表0 0区区(RS1=0,RS0=0RS1=0,RS0=0)1 1区区(RS1=0,RS0=1RS1=0,RS0=
24、1)2 2区区(RS1=1,RS0=0RS1=1,RS0=0)3 3区区(RS1=1,RS0=1RS1=1,RS0=1)对应对应RAMRAM地址地址寄存器寄存器对应对应RAMRAM地址地址寄存器寄存器对应对应RAMRAM地址地址寄存器寄存器对应对应RAMRAM地址地址寄存器寄存器00H00HR0R008H08HR0R010H10HR0R018H18HR0R001H01HR1R109H09HR1R111H11HR1R119H19HR1R102H02HR2R20AH0AHR2R212H12HR2R21AH1AHR2R203H03HR3R30BH0BHR3R313H13HR3R31BH1BHR3R3
25、04H04HR4R40CH0CHR4R414H14HR4R41CH1CHR4R405H05HR5R50DH0DHR5R515H15HR5R51DH1DHR5R506H06HR6R60EH0EHR6R616H16HR6R61EH1EHR6R607H07HR7R70FH0FHR7R717H17HR7R71FH1FHR7R7第27页/共364页(2)位寻址区 内部的RAM的20H-2FH为位寻址区。这16个单元的每一位都有一个地址,称为位地址。它们占据位地址空间的00H-7FH,这每一位都可以作为一个软件触发器,用于存放各种程序标志、位控制变量。7F7F7E7E7D7D7C7C7B7B7A7A797
26、97878777776767575747473737272717170706F6F6E6E6D6D6C6C6B6B6A6A69696868676766666565646463636262616160605F5F5E5E5D5D5C5C5B5B5A5A59595858575756565555545453535252515150504F4F4E4E4D4D4C4C4B4B4A4A49494848474746464545444443434242414140403F3F3E3E3D3D3C3C3B3B3A3A39393838373726262525242423232222212120202F2F2E2
27、E2D2D2C2C2B2B2A2A29292828272726262525242423232222212120201F1F1E1E1D1D1C1C1B1B1A1A19191818171716161515141413131212111110100F0F0E0E0D0D0C0C0B0B0A0A09090808070706060505040403030202010100002FH20H字节地址表2-3 RAM区位地址分配表第28页/共364页(3)用户RAM区 30H-7FH为真正的数据缓冲区,可以用来暂存用户数据或当作堆栈使用。在微型机中,堆栈是在内存RAM中开辟一个特定的存储区,专门用来暂时存放
28、数据或断点地址,并按照“先进后出,后进先出”的原则进行操作。MCS-51单片机的堆栈,是在片内RAM低128B中开辟的一个专用区(一般选择30H-7FH作为栈区)。堆栈的一端是固定的,称为栈底;另一端是浮动的,称为栈顶。当堆栈中没有数据时,栈顶与栈底相重合。当数据进栈时,栈顶会自动地向地址递增的方向变化。一般把堆栈中的数据称为元素,最后进栈的那个元素所在地就是栈顶。由于堆栈元素的存入和取出必须遵循FILO和LIFO的原则,因此堆栈的操作总是对栈顶进行的。RAM08H07H栈顶7FH栈底图2-6 堆栈示意图第29页/共364页2.片内高片内高128B数据存储器数据存储器 单片机内部的I/O口锁存
29、器、串行口数据缓冲器、定时器/计数器以及各种控制寄存器和状态寄存器等统称为特殊功能寄存器SFR(Special Function Register)它共有21个SFR,它们离散地分布在片内RAM地址为80H-FFH的高地址区域,且每一个SFR都有一个字节地址,并定义了符号名,其地址分布见表:第30页/共364页表2-4 特殊功能寄存器SFR地址表第31页/共364页 下面简单介绍部分SFR的功能,其余的SFR将在后续章节中陆续介绍:(1)累加器ACC 累加器ACC是8位寄存器,是最重要的特殊功能寄存器,许多指令的操作数取自ACC,大部分运算结果也存放在ACC中。在指令系统中,ACC是助记符是A
30、。(2)寄存器B寄存器B是8位的寄存器。主要用于乘法和除法操作指令。对于其他指令,寄存器B可以作为一般的数据寄存器使用。(3)堆栈指针SP堆栈指针SP是一个8位的寄存器,用它存放栈顶的地址。进栈时,SP自动加1,将数据压入SP所指向的单元;出栈时,则将SP所指向单元的内容弹出,然后SP自动减1.因此,SP总是指向栈顶。(4)程序状态字PSW PSW是8位寄存器,用于寄存程序运行的状态信息。其中有些位(如CY,AC,OV等)的状态是根据程序执行结果由硬件自动设置的,而有些位(如RS1,RS0等)的状态则是由软件设置的。第32页/共364页CY(PSW.7)进位标志:在加减法运算中,累加器A的最高
31、位A7有进位,则CY=1,否则CY=0.同理,在减法运算中,如果A7有借位,则CY=1.因此CY往往作为无符号数运算是否有溢出的标志。AC(PSW.6):辅助进位位:用来判断加减法运算时,低四位是否向高四位进位或借位(既A3的进位或借位).往往用来判断压缩的BCD码的运算处理.F0(PSW.5),F1(PSW.1)用户标志位:完全由用户来定义和使用。RS1,RS0工作寄存器区选择位:确定工作寄存器R0-R7在哪个区中.单片机在上电或复位后RS1、RS0=00。当需要人为的修改RS1,RS0的值来改变工作寄存器区的位置(后表将详细介绍)。CYCYACACF0F0RS1RS1RS0RS0OVOVF
32、1F1P P 程序状态字程序状态字PSW:8PSW:8位寄存器位寄存器.表征程序执行的状态信息。具体格式如下:表征程序执行的状态信息。具体格式如下:第33页/共364页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的内容与立
33、即数0f8h相加,结果送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表明无溢出。第34页/共364页RS1RS1RS0RS0寄存器组寄存器组R0-R7R0-R7所对应的所对应的RAMRAM单元地址单元地址0 00 00 000H-07H00H-07H0 01 11 108H
34、-0FH08H-0FH1 10 02 210H-17H10H-17H1 11 13 318H-1FH18H-1FH表 2-5 RS1,RS0与寄存器组的关系(5)DPTR 数据指针DPTR是一个16位的特殊功能寄存器,编程时,DPTR既可以作为一个16位的寄存器使用,也可以作为两个独立的8位寄存器分开使用,此时用DPH表示DPTR的高字节,用DPL表示DPTR的低字节。一般编程时,常用DPTR来存放外RAM单元(或外部I/O接口)的16位地址,作间接寄存器使用,它可以指向外RAM 64KB范围内的任一存储单元。(6)程序计数器PC 程序计数器PC是16位专用寄存器,其内容就是下一条要执行的指令
35、的首地址。CPU总是把PC的内容送往地址总线,作为选择存储单元的地址,以便从指定的存储单元中取出指令,译码和执行。第35页/共364页 程序存储器用于存放程序代码和表格常数。其所支持的最大程序存储器空间为64KB64KB,地址指针就是1616位的程序计数器PCPC。在程序存储器中,有六个特殊的单元需要注意,编程者是不能随便使用的 :0000H-0002H单元:上电时,程序计数器PC所指向的单元0003H-000AH单元:外部中断/INT0的入口地址;000BH-0012H单元:定时器T0的溢出中断入口地址;0013H-001AH单元:外部中断/INT1的入口地址;001BH-0022H单元:定
36、时器T1的溢出中断入口地址;0023H-002AH单元:串行口接收、传送的中断入口地址。中断响应后,按中断种类由硬件控制PC自动转到各中断区的首地址去执行程序。但每个中断入口地址区只有8个单元,无法放置完整的中断处理子程序,因此,程序员在编程时必须在中断入口区放置一条无条件转移指令,将程序引导到真正的中断处理程序的实际入口位置。2.3.3 片内程序存储器第36页/共364页2.4 2.4 并行并行IOIO端口电路结构及应用特端口电路结构及应用特性性 在MCS-51单片机的四个端口P0,P1,P2,P3都是具有输出锁存功能的双向端口,他们都由锁存器、输出驱动器和输入缓冲器组成。这些锁存器的位置都
37、在SFR中,其地址分别为:80H、90H、A0H、B0H.出于系统的考虑,在硬件设计上对每一个端口都有不同的要求,所以每一个端口又具有不同的特点.其中,在需要扩展外部存储器的系统中,P2口作为访问外部存储器的高8位地址线,P0口分时作为低8位地址线和双向数据总线。此外,P3口具有双功能。第37页/共364页2.4.1 P02.4.1 P0口口特点:“通用数据I/O端口”和“地址、数据复用总线”端口.1,在作为通用数据I/O端口时,具有较强的驱动能力(8个TTL负载),与MOS负载连接时,需要外接一个上拉电阻。2,作为“地址、数据复用总线”使用时,P0口首先输出外部存储器的低八位地址,然后再变为
38、数据总线进行数据的输入或输出.此时,P0口不能再作为通用I/O口。第38页/共364页D Q 锁存器CL /QP0.x引脚Vcc地址/数据1/0控制(=0时)读锁存器读引脚内部总线写锁存器MUX (控制=0时)硬件组成:1,一个输出锁存器(D型触发器);2 2,二个,二个三态门(控制读引脚或读锁存器)三态门(控制读引脚或读锁存器);3 3,与门和,与门和MUXMUX等元件组成的等元件组成的输出控制电路;输出控制电路;4 4,一对场效应晶体管一对场效应晶体管FETFET构成的输出电路构成的输出电路.Vcc图2-7 P0端口的结构图第39页/共364页1 1,P0P0口的口的I/OI/O操作(通用
39、操作(通用I/OI/O端口)端口)在P0口作为通用I/O端口时,控制电路中的“控制”为“0”电平,多路开关MUX接入下方的锁存器的/Q端。由于与门的一个输入端为“0”,所以它使上端的FET截止.这就是P0口在做I/O口时输出为“漏极开路”的结构原因.输出操作:在执行以口为目标的指令时,数据送到锁存器的“D”端,经“/Q”端送场效管应输出极.如:送“1”时,/Q=“0”,使下端的FET截止.这样出现输出极的两个FET全部截止.在这种情况下必须在端口线上外加上拉电阻.这样在上拉电阻的作用下,使端口为高电平.同理,若总线向口送“0”时,锁存器的/Q=1,使下端的FET导通(上面的FET仍然截止),这
40、样端口呈现“0”电平.第40页/共364页输入操作(读引脚,读锁存,输入前写一)a,读引脚:读外部送到端口引脚的电平,即通常所说的输入操作(如:MOV A,P0).此时,单片机控制“读引脚”的三态门,使引脚处的外部电平经三态门送入内部总线.b,读锁存器:将进行读锁存器并进行处理,最后再写回锁存器的操作称之为:“读修改写”操作。在这种情况下,读入的数据不是来自引脚,而是端口内部的锁存器的内容。当前面完成一次端口的输出后,要再将前面输入的状态取回来,进行再处理,然后重新输出,在MCS-51的指令系统中这种“读修改写”的操作有:ORL、XRL、JBC、CPL、INC、DEC、DJNZ、MOV Px,
41、y、CLR Px,y和SET Px,y。如:ORL P0,A ;P0 A P0 P0.X第41页/共364页c,输入时应先写“1”:在端口电路中,可以发现一个问题:端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入.例如:原来锁存器的状态为“0”态,既输出极的下端FET是饱和状态,这样如果外电路向引脚输入高电平时,电路将不能正确读入.要解决的方法就是让下端的FET截止,既事先向端口写一个“1”.第42页/共364页2,P02,P0口的总线方式口的总线方式 控制电路的“控制”=1,此时与门打开,MUX接向“地址/数据”信号.在这种情况下,输出极的两个FET都处于正常的工作状态。访问
42、外部存储器的指令movx、movc,就是使用P0口来输出外部存储器的低八位地址和输入、输出存储器的数据。可以从:访问外部程序存储器ROM的时序;读外部数据存储器RAM的指令时序中来清楚的观察P0口作为“地址/数据复用”总线的工作特点。在进行单片机的硬件系统的设计中,如果使用了外部存储器(或使用movx指令来访问外部接口电路)时,P0口成为整个系统的地址/数据复用总线。换句话,P0口不能再作为通用的I/O端口的形式直接与外部连接。第43页/共364页1,做通用数据I/O端口时,输出级上端的FET处于截止状态,所以与MOS器件连接时,必须接“上拉电阻”,否则不能正确的输出高电平;2,在输入操作前,
43、为了保证输入正确,必须先向端口“写1”;3,“读引脚”与“读锁存器”是不同的两个数据通道。凡是“读修改写”的操作,CPU读的都是端口锁存器中的数据。4,为了提高电路的可靠性,端口引脚不要直接与三极管一类的器件直接连接,应加隔离电路或与三极管之间加一个电阻.5,在总线方式时,P0口不能再做通用的I/O端口。它分时输出地址、数据总线的信息(此时引脚不用外接上拉电阻)。P0P0口特点小结口特点小结:第44页/共364页特点:特点:单纯的通用单纯的通用I/OI/O端口端口,负载能力为负载能力为3 3个个TTLTTL输入。与输入。与P0P0口的区别在于内部具有上拉电阻,所以输出时不用外接口的区别在于内部
44、具有上拉电阻,所以输出时不用外接上拉电阻。上拉电阻。2.4.2 P1口的位结构图D Q 锁存器CL /QP1.x引脚Vcc读锁存器读引脚内部总线写锁存器内部上拉电阻图2-8 P1端口的结构图 由于P1口只能当作通用I/O口使用,所以在电路结构上与P0口不同,首先,它不需要多路转换器,其次为通用输出功能提供了上拉电阻。P1口的每一位可以分别定义为输入或输出,其功能同P0口通用功能。P1口的每一位可以驱动4个LSTTL负载。第45页/共364页2.4.3 P2口 特点:“通用数据I/O端口”和“高八位地址总线总线”端端口口D Q 锁存器CL /QP2.x引脚Vcc地址/数据1/0控制读锁存器读引脚
45、内部总线写锁存器MUX (地址/数据=0)内部上拉电阻图2-9 P2端口的结构图第46页/共364页与P0口一样,P2口在系统使用外部存储器时,做高八位的地址总线。当P2口当作通用I/O口时,多路开关使输出锁存器的Q端与驱动器的栅极相连构成一个双向口,其功能同P0口的通用功能。同样,P2口作为输入时,也必须使锁存器预先置1.应当注意的是:仅使用外部数据存储器时,P2口分两种情况:1,仅仅使用256B的外部RAM时,既使用movx a,r0指令访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口无用,所以在这种情况下,P2口仍然可以做通用I/O端口。2,如果访问外部ROM或使用大
46、于256BRAM时,P2口必须作为外存储器的高八位地址总线。如:movx a,dptr ;访问外部数据存储器 movc a,a+dptr ;访问外部程序存储器 这里使用了16位的寄存器DPTR第47页/共364页2.4.4 P3口 特点:通用I/O端口、多用途端口、多用途端口在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。D Q 锁存器CL /QP3.x引脚替代输出功能读锁存器读引脚内部总线写锁存器MUX (地址/数据
47、=0)Vcc图2-10 P3端口的结构图第48页/共364页并行端口在使用时应注意的几个问题“拉电流”还是“灌电流”-与大电流负载的连接 (我们以美国ATMEL公司生产的AT89C51为例)1,使用灌电流的方式与电流较大的负载直接连接时,端口可以吸收约20mA的电流而保证端口电平不高于0.45V(见右上图)。2,采用拉电流方式连接负载时,AT89C51所能提供“拉电流”仅仅为80A,否则输出的高电平会急剧下降.如果我们采用右下图的方式,向端口输出一个高电平去点亮LED,会发现,端口输出的电平不是“1”而是“0”!当然,不是所有的单片机都是这样,PIC单片机就可以提供30mA的拉电流和灌电流。单
48、对于大多数IC电路,最好还是使用“灌电流”去推动负载。Px.yVddPx.yVddVdd灌电流方式输出”0”点亮LED拉电流方式输出高电平点亮LED第49页/共364页单片机与继电器等大电流负载的接单片机与继电器等大电流负载的接口口我们知道:AT89C51的端口可以吸收约20mA的电流.对于继电器等大于20mA的负载,单片机可以采用右图的接法,用一个三极管来承担负载所需的大电流.若于负载电流易造成干扰单片机的环境,应采用右下图”光电隔离”的方式.其中:A、B两处没有 任何电的联系.Px.yJVccVdd负载VccPx.yAB第50页/共364页2.5.1 时钟电路 1.内部时钟方式 内部方式的
49、时钟电路如下图2-14所示。利用MCS-51内部的高增益反向放大器,在XTAL1和XTAL2引脚上外界定时元件,内部振荡器电路便产生自激振荡。定时元件一般采用石英晶体和电容组成的并联谐振回路。晶体可以在1.2-12MHZ直接任选,电容可以在5-30pF之间选择,电容C1和C2的大小可以起到频率微调的作用,电容大小要和晶体的容性负载阻抗相匹配,否则不易起振。内部时钟方式如下图:2.5 2.5 时钟电路与时钟电路与CPUCPU时序时序30pF30pFXTAL1XTAL28051图2-11 单片机内部时钟方式第51页/共364页2.外部时钟方式 外部时钟方式常用于多机系统,以便各个单片机能够同步工作
50、。对外部振荡信号无特殊要求,但需要保证脉冲宽度不小于20ns,且频率应低于单片机所支持的最高频率。对于8051单片机,外部脉冲由XTAL2引入内部电路,XTAL1接地;对于80C51单片机,外部脉冲由XTAL1引入,XTAL2悬空。外部时钟信号VSSXTAL1XTAL280511Vcc外部时钟信号VSSXTAL1XTAL280C511悬空5.1k图2-12 单片机的外部时钟方式(a)8051外部时钟方式(b)80C51外部时钟方式第52页/共364页S1S1S6S5S4S3机器周期2.5.2 时序定时单位 单片机的工作过程就是不断的执行指令的过程。CPU每执行一条指令,都要经过取指(取操作码)