资源描述
第五章51单片机的外围模块及应用v5.1并行口及其应用v5.2定时器及应用v5.3串行口UARTv5.482C552D的AD转换器v5.5其他外围模块简介1标题添加点击此处输入相关文本内容点击此处输入相关文本内容总体概述点击此处输入相关文本内容标题添加点击此处输入相关文本内容2v并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。v定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。v串行口MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。35.1并行口及其应用v51单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。4vI/O口引脚(1)P0口(P0.0P0.7):作为普通I/O口使用,须外接上拉电阻;作为与外部传送数据的8位数据总线(D0D7);作为扩展外部存储器时的低8位地址总线(A0A7)。(2)P1口(P1.0P1.7):作为普通I/O口使用,无须外接上拉电阻(80C52的P1.0和P1.1还具有特殊功能见表2-1)。5(3)P2口(P2.0P2.7):作为普通I/O口使用,无须外接上拉电阻。作为扩展外部存储器时的高8位地址总线(A8A15)。(4)P3口(P3.0P3.7):作为普通I/O口使用,无须外接上拉电阻;每个引脚都具有第二功能。6v51系列单片机的并行口,按其特性可分为以下类型:单一的准双向口;多种功能复用的准双向口;可作为地址总线输出口的准双向口;可作为地址/数据总线口的三态双向口。7锁存器QQD读锁存器写锁存器内部总线读引脚内部上拉电阻TVCC(a)单一功能准双向口8.锁存器QQD读锁存器写锁存器内部总线读引脚TVCC第二输入功能第二输出功能内部上拉电阻(b)多功能准双向口9锁存器QQD读锁存器写锁存器内部总线读引脚TVCC地址控制内部上拉电阻MUX(c)可作为地址总线口的准双向口P210锁存器QQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制(d)可作为地址/数据总线口的三态双向口P011v读锁存器和读引脚指令当把P0P3口作为输入引脚使用时,以I/O口作为源操作数的数据传送指令、算术/逻辑运算指令及位测试转移指令等均属读引脚指令。所有的“读改写”指令均读I/O口锁存器。125.1.1P1口v结构组成:它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。v功能:作为通用I/O使用。13图 25a P1口的口线逻辑电路图结构组成:它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。14图 25a P1口的口线逻辑电路图P1口作输出口时,内部数据经过锁存器送到P1.0-P1.7上。由于内部有上拉电阻,所以P1口作输出口使用时,不用外接上拉电阻。15图 25a P1口的口线逻辑电路图P1口作输入口时,P1.0P1.7上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。CPU对I/O口的读操作有2种:读引脚和读锁存器。165.1.2P3口v功能:它除了可作为通用I/O端口外,还具有第二功能。17图 25d P3口的口线逻辑电路图 1.作为通用I/O口作为通用I/O口使用时,与P2口类似。此时第二输出功能控制信号为1。18图 25d P3口的口线逻辑电路图 2.P3口第二功能此时CPU自动向锁存器写1,引脚部分输入(第二输出功能控制信号为1),部分输出(从第二输出功能输出信号)。19P3P3P3P3第二功能各引脚功能定义:P3.0:RXD串行口输入P3.1:TXD串行口输出P3.2:INT0外部中断0输入P3.3:INT1外部中断1输入P3.4:T0定时器0外部输入P3.5:T1定时器1外部输入P3.6:WR外部写控制P3.7:RD外部读控制205.1.3P2口v功能:作为通用I/O使用和高8位地址线。21图 25c P2口的口线逻辑电路图CPU发出控制电平“0”,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。1.P2口作为普通I/O口22图 25c P2口的口线逻辑电路图CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。2.P2口作为地址总线235.1.4P0口v结构组成:它由一个输出锁存器,两个三态输入缓冲器,一个多路转换开关MUX,和输出驱动电路组成。v功能:既可以作为通用I/O用,也可以作为地址/数据线用。24图 25b P0口的口线逻辑电路图结构组成:它由一个输出锁存器,两个三态输入缓冲器,一个多路转换开关MUX,和输出驱动电路组成。25图 25b P0口的口线逻辑电路图P0口作为通用I/O使用时,CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,多路开关MUX接通锁存器Q反端的输出通路。1.P0口作普通I/O使用26图 25b P0口的口线逻辑电路图P0口作为输出口使用时,来自CPU的写脉冲加在D触发器的CP端,数据写入锁存器,并向端口引脚输出。P0口作输出口使用时,必须外接上拉电阻。1.P0口作普通I/O使用27图 25b P0口的口线逻辑电路图P0口作输入口时,P0.0P0.7上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。CPU对I/O口的读操作有2种:读引脚和读锁存器。1.P0口作普通I/O使用28图 25b P0口的口线逻辑电路图在系统扩展时,P0端口作为地址/数据总线使用时,分为:输出地址/输出数据、输出地址/输入数据2.P0作为地址/数据总线29图 25b P0口的口线逻辑电路图P0引脚输出地址/输出数据:CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。2.P0作为地址/数据总线30图 25b P0口的口线逻辑电路图P0引脚输出地址/输入数据:输入信号是从引脚通过输入缓冲器进入内部总线。此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。2.P0作为地址/数据总线315.1.5并行口的应用晶闸管的接口和编程v晶闸管接口硬件电路有过零检测电路和加热控制电路组成;通过控制导通角来控制加热功率。32晶闸管接口电路图(a)晶闸管加热电路(b)输出波形(c)过零电路33程序设计v查询P3.2上负跳变的方法确定交流电进入正半周;v通过延时决定导通角的方法实现对电热丝功率的控制;v延时时间到,P1.0输出一正脉冲,可控硅导通,电阻丝开始加热。34例5:查讯方式控制晶闸管导通角程序#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitP1_0=P10;sbitP3_2=P32;voidpoiiu(uintx,uinty)uinta;P1_0=0;while(1)for(;P3_2=1;);35for(a=x;a0;a-);P1_0=1;for(a=y;a0;a-);P1_0=0;for(;P3_2=0;);36voidmain()for(;)uinta,b;a=200;b=10;poiiu(a,b);375.1.6并行口的应用拨码盘的接口和编程一、BCD拨码盘的构造拨码盘的结构和型号有多种,常用的为BCD拨码盘。BCD拨码盘具有00十个位置,可以通过齿轮型圆盘拨到所需的位置,每个位置都有相应的数字指示,一个拨码盘可以输入1位十进制,如果要输入4位十进制数据,需4个BCD拨码盘。38表示插入控制线A与数据线不通;*表示输入控制线A与数据线接通。39二、BCD码拨码盘的接口方法图5-6 二位BCD码的接口图5-7 4位BCD码的接口40例5.6扫描法读4个BCD码拨码盘程序#includereg52.h#defineucharunsignedchar#defineuintunsignedintuintinbcd()uintx=0;uchar a,b,i;for(i=0,b=0 x7f;i=1;b|=0 x80;returnx;voidmain()for(;)uinty;y=inbcd();425.1.7并行口的应用4X4键盘的接口和编程一、键盘工作原理用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。按键数目较多的场合,矩阵键盘与直接编码输入键盘相比,要节省很多的I/O口线。43行线X0X3接P1.4平P1.7;列线Y0Y3接P1.0P1.3。图5-9 4X4键盘结构和接口方法44二、键盘状态的判断无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。45三、闭合键建号的识别1.逐行扫描法识别键盘有无键被按下的方法,分两步进行:第1步:识别键盘有无键按下;把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。第2步:如有键被按下,识别出具体的按键。上述方法称为扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。46v2.行翻转法第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。结合上述两步,可确定按键所在行和列。47把上两步得到的输入数据拼成一个字节数据作为键值,则键值和键号的对应关系如下表所示:表5-3 键值表48四、键抖动及处理在理想状态下,按键引脚电压变化如图5-9(a)所示。实际上,在按键被按下或释放的瞬间,由于机械触点存在弹跳现象,实际按键电压波形如图5-9(b)所示,即机械按键在按下和释放瞬间存在抖动现象。抖动时间的长短与按键的机械特性有关,一般在510ms之间,而按键稳定闭合期的长短与按键时间有关,从数百毫秒到数秒不等。49图5-9键按下和释放时行线电压波形(a)理想状态下按键电压波形;(b)实际按键电压波形50v如何消除按键的抖动常用软件来消除按键抖动。基本思想:检测到有键按下,延迟1020ms(因为机械按键由按下到稳定闭合的时间为510ms)再去判别按键是否处于按下状态,并确定是哪一个按键被按下。51例5.7行翻转法键输入程序设计#includereg52.h#include“stdio.h”#defineucharunsignedchar#defineuintunsignedintucharcodek_tab=0 xee,0 xed,0 xeb,0 xe7,0 xde,0 xdd,0 xdb,0 xd7,0 xbe,0 xbd,0 xbb,0 xb7,0 x7e,0 x7d,0 x7b,0 x77;ucharidataD_BUF16;ucharnkey_s0(uchary)uchari,b;52for(i=0;i0;x-);if(keys()=0)a=nkey();for(;keys()=0;);55returna;main()uchari;for(i=0;i16;i+)D_BUFi=keyi();for(;)565.1.8并行口的应用串行接口器件的接口和编程v用并行口的口线,由软件模拟串行接口时序,外接串行接口的期件和设备。57Q&A问答环节敏而好学,不耻下问。学问学问,边学边问。Heisquickandeagertolearn.Learningislearningandasking.58结束语感谢参与本课程,也感激大家对我们工作的支持与积极的参与。课程后会发放课程满意度评估表,如果对我们课程或者工作有什么建议和意见,也请写在上边点击进入59谢谢您的观看与聆听Thankyouforwatchingandlistening60
展开阅读全文