




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8051单片机结构,1 概述 2 8051并行输入输出端口结构 3 I/O端口的简单应用 4 I/O口用于显示器键盘,I/O接口的作用 1. 速度协调。大多数的外设速度很慢,无法和s或ns数量级的单片机速度相比。单片机只有在确认外设已为数据传送做好准备的前提下, 才能进行I/O操作。 2. 输出时数据锁存。由于单片机工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据锁存器,以保证接收设备接收。 3. 输入三态缓冲。输入设备向单片机输入数据时,但数据总线上面可能“挂”有多个数据源,为不发生冲突,只允许当前正在进行数据传送的数据源使用数据总线,其余的应
2、处 于隔离状态。 4. 数据转换 。一般情况下,CPU与接口进行并行数据传送。许多情况也需要传送模拟信号、串行信号,这需要数字模拟转换、并行串行转换等。,1 概述,接口的概念: I/O接口(Interface):是指单片机与外设间的I/O接口电路。I/O端口(Port) :简称I/O口,指具有端口地址的寄存器或缓冲器。,一个I/O接口芯片可以有多个I/O端口: (1)数据口(2)命令口(3)状态口 I/O端口编址是给所有I/O接口中的寄存器编址。,P0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7,P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P
3、1.7,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0,P3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7,标准8051单片机有4个8位并行I/O口:P0,P1,P2,P3。,均可作为双向I/O端口使用。,P0:访问片外扩展存储器时, 复用为低8位地址线和数据线,P2:高8位地址线,P1:双向I/O端口,P3:还具有第二功能,1. P0口,当系统不进行片外的ROM扩展,也不进行片外RAM扩展时,P0用作通用I/O口。,在这种情况下,单片机硬件自动使多路开关MUX接向锁存器的反相输出端。,5.2 8051并行输入输出端口结构,作输出口时
4、,CPU执行口的输出指令,内部数据总线上的数据在“写锁存器”信号的作用下由D端进入锁存器,经锁存器的反向端送至场效应管T2,再经T2反向,在P0.X引脚出现的数据正好是内部总线的数据。,作输入口时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。,与门输出的“0”使输出驱动器的上拉场效应管T1处于截止状态。输出驱动级工作在需外接上拉电阻的漏极开路方式。,1、I/O输出工作过程:当写锁存器信号CP有效,数据总线的信号锁存器的输入端D锁存器的反向输出Q非端多路开关V2管的栅极V2的漏极到输出端P0.X。这时多路开关的控制 信号为低电平0
5、,V1管是截止的,所以作为输出口时,P0是漏极开路输出,当驱动上接电流负载时,需要外接上拉阻。下图就是由内部数据总线向P0口输出数据的流程图,2、地址输出过程,控制信号为1,地址信号为“0”时,与门输出低电平,V1管截止;反相器输出高电平,V2管导通,输出引脚的地址信号为低电平;,反之,控制信号为“1”、地址信号为“1”,“与门”输出为高电平,V1管导通;反相器输出低电平,V2管截止,输出引脚的地址信号为高电平。,3、作为数据总线的输出过程,如果该指令是输出数据,如MOVXDPTR,A(将累加器的内容通过P0口数据总线传送到外部RAM中),则多路开关“控制”信号为1,“与门”解锁,与输出地址信
6、号的工作流程类似,数据据由“地址/数据”线反相器V2场效应管栅极V2漏极输出。,在执行“MOV”类输入指令时(如:MOV A,P0),内部产生的操作信号是“读引脚”。注意,在执行该类输入指令前要先把锁存器写入“1”,使场效应管T2截止,使引脚处于悬浮状态,可以作为高阻抗输入。,1、I/O读引脚工作过程:读芯片引脚上的数据时,读引脚缓冲器打开,通过内部数据总线输入,在读入端口引脚数据时由于输出驱动FET(T2)并接在引脚上,如果FET(T2)导通就会将输入的高电平拉成低电平,以致于产生误读。在端口进行输入操作前,应先向端口锁存器写入“l”,也就是使锁存器0,因为控制线C0,因此T1和T2全截止,
7、引脚处于悬浮状态,可作高阻抗输入。这就是所谓的准双向口的含义。,2、I/O读锁存器工作过程: 通过打开读锁存器三态缓冲器读取锁存器输出端Q的状态,执行“读修改写”类输入指令时(如:ANL P0,A),内部产生的“读锁存器”操作信号,使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P0的口锁存器并出现在引脚。(注意,此操作包含了输出操作,数据被输出到P0口),读口锁存器可以避免因外部电路原因使原口引脚的状态发生变化造成的误读。,3、地址/数据时读指令码和数据过程,作为数据总线使用。在访问外部程序存储器时,P0口输出低8位地址信息后,将变为数据总线,以便读(输入)指令码。
8、在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH(11111111,即向D锁存器写入一个高电平1)写入P0口锁存器,使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线,这个过程和I/O读引脚过程是一样的。,在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q0,Q非1,场效应管T2开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存
9、器Q1,Q非0,场效应管T2截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。 为此,8051单片机在对端口P0一P3的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。 读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错。 当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏
10、了P0口原来的状态。因此,不能再作为通用的I/O端口。在系统设计时务必注意,即程序中不能再含有以P0口作为操作数(包含源操作数和目的操作数)的指令。,P0既可作般IO端口用使用,又可作地址数据总线使用。 I/O输出时,输出级属开漏电路,必须外接上拉电阻,才有高电平输出; 作IO输入时,必须先向对应的锁存器写入“1”,使FET(T2)截止,不影响输入电平。 当P0口被地址数据总线占用时,就无法再作IO口使用了。,2. P1口,P1口由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成。内部有上拉电阻。,P1口是通用的准双向I/O口。输出高电平时,能向外提供拉电流负载,不必再接上拉电阻。当口用作
11、输入时,须向口锁存器写入1。,3. P2口,(1) P2用作通用I/O口,当不扩展外部程序存储器,或只扩展256B的片外RAM时,仅用到了地址线的低8位,P2口仍可以作为通用I/O口使用。,执行输出指令时,内部数据总线的数据在“写锁存器”信号的作用下由D端进入锁存器,经反相器后送至场效应管T2,再经T2反相,在P2.X引脚出现的数据正好是内部总线的数据。,P2口一位的结构图,P2口用作输入时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。,执行“读修改写”类输入指令时内部产生的“读锁存器”操作信号使锁存器Q端数据进入内部数据总线,
12、在与累加器A逻辑运算之后,结果送回P2的口锁存器并出现在引脚。,执行“MOV”类输入指令时,内部产生的操作信号是“读引脚”。应在执行输入指令前要把锁存器写入“1”,从而使引脚处高阻抗输入状态。,P2口在作为通用I/O口时,属于准双向口。,(2) P2用作地址总线,当需要在单片机芯片外部扩展程序存储器或扩展的RAM容量超过256字节时,单片机内硬件自动使MUX开关接向地址线,这时P2.X引脚的状态正好与地址线的信息相同。,4. P3口结构,(1) P3用作通用I/O口,对P3口进行字节或位寻址时,单片机内部的硬件自动将第二功能输出线置1。这时,对应的口线为通用I/O口方式。,P3口一位的结构图,
13、P3口与P1口的差别在于多了一个与非门和缓冲器,正是这两个部分,使得P3口除了具有P1口的准双向IO功能之外,还可以使用各引脚所具有的第二功能。 与非门的作用实际上是一个开关,决定是输出锁 存器上的数据还是输出第二功能(W)的信号。 当W1时输出Q端信号; 当Q1,可输出W线信号。,输出时,锁存器的状态(Q端)与输出引脚的状态相同; 输入时,要先向口锁存器写入1,使引脚处于高阻输入状态。输入的数据在“读引脚”信号的作用下,进入内部数据总线。 P3口作为通用I/O口时,属于准双向口。,(2) P3用作第二功能使用,当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1。这时,P3
14、口作为第二功能使用。,编程时,不必事先由软件设置P3门为第一功能(通用IO口)还是第二功能。 当CPU对P3口进行SFR寻址(位或字节)访问时,由内部硬件自动将第二功能输出线W置1,这时P3口为通用IO口; 当CPU不把P3口作为SFR寻址(位或字节)访问时,即用作第二功能输出/输入时,由内部硬件使锁存器Q1。,P0口的输出级与P1P3口的输出级在结构上是不同的! 因此,其负载能力与接口要求也各不相同。 P0口与其它口不同,它的输出级无上拉电阻。 当把它用作通用IO口使用时,输出级是开漏电路,输入时需外接上拉电阻; 用作输入时,应先向口锁存器(80H)写1; 把它当作地址数据总线时则无需外接上
15、拉电 阻。 P0口的每一位输出可驱动8个LS型TTL负载。,5. 并行端口负载能力和接口要求,P1P3口的输出级接有内部上拉负载电阻,它们的每一位输出可驱动3个LS型TT负载。 作为输入口时,任何TTL电路都能以正常的方式驱动805l单片机(HMOS)的P1P3口。由于它们的输出级具有上拉电阻,也可以被集电极开路(oc门)或漏极开路所驱动,而无需外接上拉电阻, 对于80c51单片机(CHMOS),端口能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的基极(或TTL电路输入端)时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。 Pl P3口也都是准双向I/O口,作输入时,
16、必须先在相应端口锁存器先写1。,3 I/O端口的简单应用,例1 8051单片机P1.2接LED指示灯,编程让LED闪烁。,汇编语言程序 ORG 0000H; 单片机复位从0000H地址开始执行程序 START: CLRP1.2; 将P1.2引脚设置为低电平,LED发光二极管亮 ACALLDELAY; 调用子程序,延时200 ms SETBP1.2; 将P1.2引脚设置为高电平, ; LED发光二极管灭 ACALLDELAY; 调用子程序,延时200 ms SJMPSTART; 跳转循环执行 DELAY:MOVR6,#200 ; 200 ms 延时子程序 DL1:MOVR5, #250 DL2:
17、 NOP ; 1s NOP ; 1s DJNZ R5, DL2 ; 2s 内循环延时大约4*250*1s=1 ms DJNZ R6, DL1 ; 双重循环共延时大约200*1 ms=200 ms RET END,例2,如图所示,P1口输出接8个发光二极管(LED)L0L7,限流电阻510。低电平时发光二极管被点亮,高电平时LED熄灭。编程控制LED闪烁。,程序一:要求单灯左移,循环往复。 START:MOVA, #0FEH ; 将P1.0引脚设置为低电平,LED亮 LOOP:MOVP1, A RLA; 循环左移 ACALL DELAY; 调用子程序,延时200 ms SJMPLOOP; 跳转循
18、环执行,程序二:要求单灯左移,然后单灯右移,循环往复。 START:MOVA,#0FEH ; 将P1.0引脚设置为低电平,LED发光二极管亮 LOOP:MOVR2,#07 LOOPL:MOVP1, A RLA ACALL DELAY; 调用子程序延时200 ms DJNZR2, LOOPL MOVR2, #07 LOOPR:MOVP1, A RRA ACALL DELAY; 调用子程序延时200 ms DJNZR2, LOOPR SJMPLOOP; 跳转循环执行,程序三:每次其中一个灯闪烁点亮10次后,转移到下一个灯闪烁10次,循环不止。 MOVA, #0FEH; 初值 SHIFT: LCAL
19、L FLASH; 调闪亮10次子程序 RRA; 右移 SJMPSHIFT; 循环 FLASH:MOV R2, #0AH; 闪烁10次 FLASH1: MOV P1, A; 点亮 LCALL DELAY ; 延时 MOVP1, #00; 熄灭 LCALL DELAY; 延时 DJNZR2, FLASH1; 循环 RET,例3,如图所示,P1.0接一个蜂鸣器,用软件延时方法,使P1.0端口输出1kHz和2kHz的变调音频,每隔1s交替变换一次。,DLV: MOVR2, #08H; 1kHz持续时间 DLVl: MOV R3, #0FAH DLV2: CPL P1.0 LCALL D05MS; 延时
20、0.5ms子程序 DJNZR3, DLV2; 持续1s DJNZ R2, DLVl MOV R2, #10H DLV3:MOVR3, #0FAH DLV4:CPL P1.0; 输出2kHz方波 LCALL D025MS; 延时0.25ms子程序 DJNZ R3, DLV4; 持续1s DJNZR2, DLV3 SJMP DLV ; 反复循环,例4 在图中, P1口接8个开关S0S7,编程将开关的状态读入内部RAM 40H单元。,程序如下: START: MOV P1, #0FFH ; P1口置1,以正确读到引脚的电平 LOOP: MOV A, P1; 读P1口引脚开关状态 MOV40H, A
21、; 开关状态存入内部RAM 40H单元 SJMPLOOP; 循环,图中的8个开关可以改为8个按键,但一般需要消抖程序。这些开关还可以是BCD拨码开关,4个开关表示一个十进制数,即通过拨动码盘接通或断开不同的开关,从而设置对应的十进制数。,例5,在下图中P1.4P1.7接四个发光二极管LED,P1.0P1.3接四个开关,编程将开关的状态反映到发光二极管上。,1,1,1,1,89C51,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,+5V,+5V,1K4,3304,EA,上述程序中每次读开关之前,输入位都先置“1”,保证开关状态的正确读入。 编程如下: ORG 0000H ABC: MOV P1, #0FFH ;高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康素食课件图片大全集
- 杭州14中高一数学试卷
- 湖南协作体联考数学试卷
- 健康管理发展历史
- 辐射安全隐患排查及风险评估报告
- 2025年中国风暖浴霸行业发展监测及投资战略研究报告
- 镜子调研报告
- 中国手机浏览器行业市场全景监测及投资战略咨询报告
- 健康知识讲座内容课件
- 2025年电商零售行业投资策略分析报告:内需消费情绪曲线
- 16J914-1 公用建筑卫生间
- 室外健身器材运输配送方案
- 20CS03-1一体化预制泵站选用与安装一
- 学前教育研究方法课题研究报告
- 小学生防性侵安全知识讲座
- 文化旅游有限责任公司员工手册
- 小学语文部编版二年级上册 第三单元 口语交际:做手工(练习)
- 浅谈舞龙舞狮游戏在幼儿园中的传承 论文
- 广西华盾报废车船回收有限公司年回收拆解10000辆汽车项目环评报告
- 2023电力建设工程监理月报范本
- 芯烨xp q200驱动及使用说明机功能设置
评论
0/150
提交评论