第5章 51单片机的外围模块及其应用_并行口及其应用_第1页
第5章 51单片机的外围模块及其应用_并行口及其应用_第2页
第5章 51单片机的外围模块及其应用_并行口及其应用_第3页
第5章 51单片机的外围模块及其应用_并行口及其应用_第4页
第5章 51单片机的外围模块及其应用_并行口及其应用_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章第五章 51单片机的外围模块及单片机的外围模块及应用应用v5.1 并行口及其应用并行口及其应用v5.2 定时器及应用定时器及应用v5.3 串行口串行口UARTv5.4 82C552D的的AD转换器转换器v5.5 其他外围模块简介其他外围模块简介v并行并行I/O口口MCS-51共有共有4个个8位的位的I/O口(口(P0、P1、P2、P3),以实现数据的并行输入),以实现数据的并行输入/输出。输出。v定时定时/计数器计数器8051共有两个共有两个16位的定时位的定时/计数器,以实现计数器,以实现定时或计数功能,并以其定时或计数结果对计定时或计数功能,并以其定时或计数结果对计算机进行控制。算机

2、进行控制。v串行口串行口MCS-51单片机有一个全双工的串行口,以单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。收发器使用,也可作为同步移位器使用。5.1 并行口及其应用并行口及其应用v51单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。v I/O口引脚口引脚(1) P0口(口(P0.0

3、P0.7):):作为普通I/O口使用,须外接上拉电阻;作为与外部传送数据的8位数据总线(D0D7);作为扩展外部存储器时的低8位地址总线(A0A7)。 (2) P1口(口(P1.0P1.7):):作为普通I/O口使用,无须外接上拉电阻(80C52的P1.0和P1.1还具有特殊功能见表2-1)。(3) P2口(口(P2.0P2.7):):作为普通I/O口使用,无须外接上拉电阻。作为扩展外部存储器时的高8位地址总线(A8A15)。(4)P3口(口(P3.0P3.7):):作为普通I/O口使用,无须外接上拉电阻; 每个引脚都具有第二功能。v51系列单片机的并行口,按其特性可分为以系列单片机的并行口,

4、按其特性可分为以下类型:下类型:单一的准双向口;单一的准双向口;多种功能复用的准双向口;多种功能复用的准双向口;可作为地址总线输出口的准双向口;可作为地址总线输出口的准双向口;可作为地址可作为地址/数据总线口的三态双向口。数据总线口的三态双向口。锁存器QQD读锁存器写锁存器内部总线读引脚内部上拉电阻TVCC(a)单一功能准双向口.锁存器QQD读锁存器写锁存器内部总线读引脚TVCC第二输入功能第二输出功能内部上拉电阻(b)多功能准双向口锁存器QQD读锁存器写锁存器内部总线读引脚TVCC地址控制内部上拉电阻MUX(c)可作为地址总线口的准双向口P2锁存器QQD读锁存器写锁存器内部总线读引脚T1T2

5、VCCMUX地址/数据控制(d)可作为地址/数据总线口的三态双向口P0v读锁存器和读引脚指令读锁存器和读引脚指令当把当把P0P3口作为输入引脚使用时,以口作为输入引脚使用时,以I/O口作口作为源操作数的数据传送指令、算术为源操作数的数据传送指令、算术/逻辑运算指令逻辑运算指令及位测试转移指令等均属读引脚指令。及位测试转移指令等均属读引脚指令。所有的所有的“读读改改写写”指令均读指令均读I/O口锁存器。口锁存器。5.1.1 P1口口v结构组成:结构组成:它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。v功能:功能:作为通用I/O使用。P1.n锁存器P1.nQQD读锁存器写锁存

6、器内部总线读引脚内部上拉电阻TVCC图 2 5a P1口的口线逻辑电路图结构组成:它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。P1.n锁存器P1.nQQD读锁存器写锁存器内部总线读引脚内部上拉电阻TVCC图 2 5a P1口的口线逻辑电路图P1口作输出口时,内部数据经过锁存器送到口作输出口时,内部数据经过锁存器送到P1.0-P1.7上。由于上。由于内部有上拉电阻,所以内部有上拉电阻,所以P1口作输出口使用时,不用外接上拉电阻口作输出口使用时,不用外接上拉电阻。P1.n锁存器P1.nQQD读锁存器写锁存器内部总线读引脚内部上拉电阻TVCC图 2 5a P1口的口线逻辑电路

7、图P1口作输入口时,口作输入口时,P1.0P1.7上的信号经过缓冲器送到内部数据上的信号经过缓冲器送到内部数据总线上。总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。CPU对对I/O口的读操作有口的读操作有2种:种:读引脚读引脚和和读锁存器读锁存器。5.1.2 P3口口v功能:它除了可作为通用功能:它除了可作为通用I/O端口外,还具有端口外,还具有第二功能。第二功能。P3.n锁存器P3.nQQD读锁存器写锁存器内部总线读引脚TVCC第二输入功能第二输出功能内部上拉电阻图 2 5d P3口的口线逻辑电路图 1.作为通用I/O口作为通用I/O口使用

8、时,与P2口类似。此时第二输出功能控制信号为1。P3.n锁存器P3.nQQD读锁存器写锁存器内部总线读引脚TVCC第二输入功能第二输出功能内部上拉电阻图 2 5d P3口的口线逻辑电路图 2.P3口第二功能此时CPU自动向锁存器写1,引脚部分输入(第二输出功能控制信号为1) ,部分输出(从第二输出功能输出信号) 。第二功能各引脚功能定义: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外部读控制5.1.3 P2口口v功能:作为通用

9、功能:作为通用I/O使用和高使用和高8位地址线。位地址线。P2.n锁存器P2.nQQD读锁存器写锁存器内部总线读引脚TVCC地址控制内部上拉电阻MUX图 2 5c P2口的口线逻辑电路图CPU发出控制电平发出控制电平“0” ,使多路开关,使多路开关MUX倒向锁存器输出倒向锁存器输出Q端,端,构成一个准双向口。其功能与构成一个准双向口。其功能与P1相同。相同。 1.P2口作为普通口作为普通I/O口口P2.n锁存器P2.nQQD读锁存器写锁存器内部总线读引脚TVCC地址控制内部上拉电阻MUX图 2 5c P2口的口线逻辑电路图CPU发出控制电平发出控制电平“1”,使多路开关,使多路开关MUX倒倒内

10、部地址线内部地址线。此时,。此时,P2输出高输出高8位地址。位地址。 2.P2口作为地址总线口作为地址总线5.1.4 P0口口v结构组成:结构组成:它由一个输出锁存器,两个三态输入缓冲器,一个多路转换开关MUX,和输出驱动电路组成。v功能:功能:既可以作为通用I/O用,也可以作为地址/数据线用。P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5b P0口的口线逻辑电路图结构组成:结构组成:它由一个输出锁存器,两个三态输入缓冲器,一个多路转换开关MUX,和输出驱动电路组成。P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCC

11、MUX地址/数据控制图 2 5b P0口的口线逻辑电路图P0口作为通用口作为通用I/O使用时使用时,CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,多路开关MUX接通锁存器Q反端的输出通路。1.P0口作普通I/O使用P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5b P0口的口线逻辑电路图P0口作为输出口使用时口作为输出口使用时, 来自CPU的写脉冲加在D触发器的CP端,数据写入锁存器,并向端口引脚输出。P0口作输出口使用时,必须外接上拉电阻。口作输出口使用时,必须外接上拉电阻。 1.P0口作普通I/O使用P0.n锁存器P

12、0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5b P0口的口线逻辑电路图P0口作输入口时,口作输入口时,P0.0P0.7上的信号经过缓冲器送到内部数据上的信号经过缓冲器送到内部数据总线上。总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。CPU对对I/O口的读操作有口的读操作有2种:种:读引脚读引脚和和读锁存器读锁存器。1.P0口作普通口作普通I/O使用使用P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5b P0口的口线逻辑电路图在系统扩展时,在系统扩展

13、时,P0端口作为端口作为地址地址/数据总线数据总线使用时,分为:使用时,分为:输出地址输出地址/输出数据、输出地址输出数据、输出地址/输入数据输入数据2.P0作为地址作为地址/数据总线数据总线P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5b P0口的口线逻辑电路图P0引脚引脚输出地址输出地址/输出数据输出数据:CPU发出控制电平发出控制电平“1”,打开,打开“与与”门,又使多路开关门,又使多路开关MUX把把CPU的的地址地址/数据总线数据总线与与T2栅极反相接栅极反相接通,输出地址或数据。通,输出地址或数据。2.P0作为地址作为地址/数据

14、总线数据总线P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5b P0口的口线逻辑电路图P0引脚引脚输出地址输出地址/输入数据输入数据:输入信号是从引脚通过输入缓冲器进:输入信号是从引脚通过输入缓冲器进入入内部总线内部总线。此时,。此时,CPU自动使自动使MUX向下,并向向下,并向P0口写口写“1”,“读引脚读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部控制信号有效,下面的缓冲器打开,外部数据读入内部总线。总线。2.P0作为地址作为地址/数据总线数据总线5.1.5 并行口的应用并行口的应用晶闸管的晶闸管的接口和编程接口和编程v晶闸管

15、接口晶闸管接口硬件电路有过零检测电路和加热控制电路组成;硬件电路有过零检测电路和加热控制电路组成;通过控制导通角来控制加热功率。通过控制导通角来控制加热功率。晶闸管接口电路图晶闸管接口电路图+12V+5VP3.2+5V+12VP1.0(a)晶闸管加热电路(b)输出波形(c)过零电路程序设计程序设计v查询查询P3.2上负跳变的方法确定交流电进入正上负跳变的方法确定交流电进入正半周;半周;v通过延时决定导通角的方法实现对电热丝功通过延时决定导通角的方法实现对电热丝功率的控制;率的控制;v延时时间到,延时时间到,P1.0输出一正脉冲,可控硅导输出一正脉冲,可控硅导通,电阻丝开始加热。通,电阻丝开始加

16、热。例例5:查讯方式控制晶闸管导通角程序:查讯方式控制晶闸管导通角程序#include reg52.h#define uchar unsigned char#define uint unsigned intsbit P1_0=P10;sbitP3_2=P32;voidpoiiu(uint x,uint y) uint a;P1_0=0;while (1) for(;P3_2=1;); for ( a=x;a0;a-); P1_0=1;for (a=y;a0;a-);P1_0=0;for(;P3_2=0;);void main()for(;)uint a,b;a=200;b=10; poiiu(

17、a,b);5.1.6 并行口的应用并行口的应用拨码盘的拨码盘的接口和编程接口和编程一、一、BCD拨码盘的构造拨码盘的构造 拨码盘的结构和型号有多种,常用的为拨码盘的结构和型号有多种,常用的为BCD拨码盘。拨码盘。BCD拨码盘具有拨码盘具有00十个位置,可以通过齿轮型圆十个位置,可以通过齿轮型圆盘拨到所需的位置,每个位置都有相应的数字指示,盘拨到所需的位置,每个位置都有相应的数字指示,一个拨码盘可以输入一个拨码盘可以输入1位十进制,如果要输入位十进制,如果要输入4位十位十进制数据,需进制数据,需4个个BCD拨码盘拨码盘。表示插入控制线A与数据线不通;* 表示输入控制线A与数据线接通。二、二、BC

18、D码拨码盘的接口方法码拨码盘的接口方法图5-6 二位BCD码的接口图5-7 4位BCD码的接口例例5.6 扫描法读扫描法读4个个BCD码拨码盘程序码拨码盘程序#include reg52.h#define uchar unsigned char#define uint unsigned intuint inbcd()uint x=0;uchar a,b,i;for(i=0,b=0 x7f;i=1;b |=0 x80;return x;void main()for(;)uint y;y=inbcd();5.1.7 并行口的应用并行口的应用4X4键盘键盘的接口和编程的接口和编程 一、键盘工作原理一

19、、键盘工作原理用于按键数目较多的场合,用于按键数目较多的场合,由由行线和列线行线和列线组成组成,按键位于行、列的交叉点上。,按键位于行、列的交叉点上。按键数目较多的场合按键数目较多的场合,矩阵键盘与直接编,矩阵键盘与直接编码输入键盘相比,要码输入键盘相比,要节省很多的节省很多的I/O口线口线。行线行线X0X3接接P1.4平平P1.7;列线列线Y0Y3接接P1.0P1.3。图5-9 4X4键盘结构和接口方法二、键盘状态的判断二、键盘状态的判断无键按下,该行线为高电平,无键按下,该行线为高电平,当有键按下时,当有键按下时,行线电平由列线的电平来决定行线电平由列线的电平来决定。由于行、列线为多键共用

20、,各按键彼此将相互由于行、列线为多键共用,各按键彼此将相互发生影响,必须发生影响,必须将行、列线信号配合起来并作适当将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。的处理,才能确定闭合键的位置。三、闭合键建号的识别三、闭合键建号的识别1.逐行扫描法逐行扫描法识别键盘有无键被按下的方法,分两步进行:识别键盘有无键被按下的方法,分两步进行:第第1步:步:识别键盘有无键按下;识别键盘有无键按下;把所有列线置把所有列线置0,检查各行线电平是否有变化,如有变,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。化,说明有键按下,如无变化,则无键按下。第第2步:步:如有键被

21、按下,识别出具体的按键。如有键被按下,识别出具体的按键。上述方法称为上述方法称为扫描法扫描法,即,即先把某一列置低电平,其余各先把某一列置低电平,其余各列为高电平,检查各行线电平的变化列为高电平,检查各行线电平的变化,如果某行线电平为低,如果某行线电平为低,可确定可确定此行列交叉点此行列交叉点处的按键被按下。处的按键被按下。v 2.行翻转法行翻转法 第第1步:步:列线输出为全低电平,则行线中电平由列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。高变低的所在行为按键所在行。第第2步:步:行线输出为全低电平,则列线中电平由行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。高

22、变低所在列为按键所在列。结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。把上两步得到的输入数据拼成一个字节数据作为键值,则键值和键号的对应关系如下表所示:表5-3 键值表四、键抖动及处理四、键抖动及处理在理想状态下,按键引脚电压变化如图在理想状态下,按键引脚电压变化如图5-9(a)所示。所示。实际上,在按键被按下或释放的瞬间,由于机械触点存实际上,在按键被按下或释放的瞬间,由于机械触点存在弹跳现象,实际按键电压波形如图在弹跳现象,实际按键电压波形如图5-9(b)所示,即机械按所示,即机械按键在按下和释放瞬间存在抖动现象。键在按下和释放瞬间存在抖动现象。抖动时间的长短与按键的机械特性有关,一般在抖动时间的长短与按键的机械特性有关,一般在510ms之间,而按键稳定闭合期的长短与按键时间有关,从之间,而按键稳定闭合期的长短与按键

温馨提示

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

评论

0/150

提交评论