CH3输出端口应用_第1页
CH3输出端口应用_第2页
CH3输出端口应用_第3页
CH3输出端口应用_第4页
CH3输出端口应用_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、课题名称 第三章第一节输出端口的应用计划学时2课时内容分析知识点:MCS-51的输入/输出端口(P0、P1、P2、P3口)的基本结构和工作原理,输出电路设计(霹雳灯案例、继电器和七段码LED)教学目标及要求理解并掌握51系列单片机的输入/输出端口的基本结构和工作原理,掌握输出电路的设计方法,会设计简单的LED驱动电路。重点及措施教学重点:P0、P1、P2、P3口的基本结构和工作原理、输出电路设计难点及措施教学难点:P0、P1、P2、P3口的工作原理的区别、输出电路设计教学方式教学采用教师课堂讲授为主,使用多媒体教学方式,学生讨论、交流与提问。教学过程一、 引入MCS-51单片机输入/输出接口引

2、脚,4个8位并行 I/O 接口引脚 :P0.0P0.7 、P1.0P1.7 、P2.0P2.7、P3.0P3.7。对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机4个I/O端口线路设计的非常巧妙,学习I/O端口逻辑电路,不但有利于正确合理地使用端口,而且会给设计单片机外围逻辑电路有所启发。下面介绍一下输入/输出端口结构和基本工作原理。二、 新授主要内容:1、硬件部分:认识8051的输入/输出口;输出电路设计2、实践部分:驱动LED实验3.1 认识MCS-51的输入/输出口 51系列单片机有4个I/O端口,每个端口都

3、是8位并行的I/O口,共有32条I/O线,每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。Ø 在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。Ø 在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。1、P0口包含:一个输出锁存器、两个三态缓冲器、输出驱动和控制电路组成。特点:(1) P0端口是多功能的,双向的、可以位寻址操作的8位I/O端口;(2)没有外扩芯片时,P0口可以直接作为输出口或输入口使用。(3)有外扩芯片时,P0口不再做

4、I/O口使用,而是先传送地址,后传送数据。图1 P0口理解:Ø P0口直接做输出口时,将0送到P0.0的过程 Ø 注意: P0口做输出口时,如果端口输出为1,Q1、Q2两管都处于截止状态,P0.0P0.7就处于不确定状态,没有标准的高电平,所以P0口作输出口使用时,必须外接上拉电阻。 Ø P0口直接做输入口时,将P0.0处的1送入DB0.0的过程Ø 注意: P0口作输入口时,P0.0P0.7上的信号经过三态缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0Ø P0引脚:输出地址/输入数据信息1的过程2、P1口特点:(1)

5、P1为8位、可位寻址的输入/输出端口(2) P1口通常只作为输出口或输入口使用。(3) 52系列中P1.0的第二功能是作为定时器/计数器2的外部输入端(即T2),P1.1作为外部控制输入(即T2EX)。图2 P1口理解:P1口直接做输出口时,将1送到P1.0的过程P1口直接做输入口时,将P1.0处的0送入DB0.0的过程注意: P1口作输入口时,P1.0-P1.7上的信号经过缓冲器送到内部数据总线上。同样需要在读引脚之前,要先将锁存器置1,否则总是读到0。3、P2口特点:(1)P2为8位、可位寻址的输入/输出端口。 (2)在扩展外部存储器时,P2口还可作为地址总线的高8位,和P0口一起组合成1

6、6位的地址总线。图3 P2口理解:Ø P2口直接做输出口时,将0送到P2.0的过程注意:P2口做输出口时,内部数据经过锁存器送到P2.0-P2.7上。由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻Ø P2口直接做输入口时,将P2.0处的0送入DB0.0的过程注意: P2口作输入口时,P2.0P2.7上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。 Ø P2作为地址总线时,CPU发出控制电平“1”,使多路开关倒向内部地址线。此时,P2输出高8位地址。4、P3口特点: (1)P3为8位、可位寻址的输入/输出端口。

7、(2)P3口是双功能端口,第一功能是通用的I/O端口,第二功能是用作其他功能模块的输入输出及控制引脚。图4 P3口理解:Ø P3口直接做输出口时,将1送到P3.0的过程注意:P3口做输出口时,内部数据经过锁存器送到P3.0-P3.7上。由于内部有上拉电阻,所以P3口作输出口使用时,不用外接上拉电阻。Ø P3口直接做输入口时,将P3.0处的0送入DB0.0的过程注意: P3口作输入口时,P3.0P3.7上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。Ø P3作为第二功能输出功能,P3端口对应位的数据锁存器置1,使与非门开锁,此时

8、,“第二输出功能”输出的信号可以控制P3.X引脚上输出电平P3口的其他功能:5、 P0、P1、P2、P3口总结Ø 均是8位,可以字节操作,也可以位操作;Ø 不用扩展系统总线时,P0、P2和P3都可以作为通用I/O口使用,但P1口总是做通用I/O端口使用Ø 系统需要扩展外部总线时,P0口分时复用为外部数据总线和低8位地址总线,P2口作为高8位地址总线使用,此时的P3口P3.6和P3.7作为第二种功能使用,提供外部存储器的写选通(WR*)和读选通(RD*)信号。Ø P1、P2和P3端口的输出驱动部分的结构相似,内部有上拉电阻,作为输出口使用时,不用外接上拉电

9、阻,可以同时驱动4个LS TTL负载,P0口内部无上拉电阻,P0口作输出口使用时,必须外接上拉电阻,但由于P0口上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强,所以可以驱动8个LS TTL负载。3.2输出电路设计1、驱动LEDLED为发光二极管(Light-Emitting Diode),体积小、耗电低,常被用于微型计算机与数字电路的输出装置,以提示信号状态。例如:红色LED正向偏压1.7V时点亮,正向电流10mA20mA适宜 限流电阻R=(5-1.7)/10mA=330需要LED更亮点:R=(5-1.7)/15mA=220限流电阻选择200470输出 LED 的连接 :注

10、意:P1、P2和P3内部虽然有上拉电阻,但是需要产生10mA20mA的电流是不可能的,所以在电路连接的时候应注意。案例:霹雳灯实验霹雳灯,在一排LED里,本题使用8个LED,任何一个时间只有一个LED灯亮,而亮灯的顺序为从左到右再从右至左。KEIL C 程序:/* 霹雳灯实验程序 */=声明区=#include<reg51.h> / 定义8051暂存器之标头档,P2-1719 #defineLED P1/ 定义LED接至Port 1void delay(int);/ 声明延迟函数 /=主程序=main()/ 主程序开始 unsigned char i; / 声明无号数字元变数i(占

11、1Bytes) LED=0xfe;/ 初值=1111 1110,只有最右1灯亮while(1)/ 无穷循环,程序一直跑 for(i=0;i<7;i+)/ 左移7次 delay(100);/ 延迟100 5m=0.5s LED=(LED<<1)|0x01;/ 左移1位,并设定最低位元为1 / 左移结束,只有最左1灯亮 for(i=0;i<7;i+)/ 右移7次 delay(100);/ 延迟100 5m=0.5s LED=(LED>>1)|0x80;/ 右移1位,并设定最高位元为1/ 结束右移,只有最右1灯亮 / while循环结束 / 主程序结束 /=子程序

12、=/* 延迟函数,延迟约x 5ms */void delay(int x)/ 延迟函数开始 int i,j;/ 声明整数变数i,j for (i=0;i<x;i+)/ 计数x次,延迟x 5ms for (j=0;j<600;j+);/ 计数600次,延迟5ms / 延迟函数结束322 驱动蜂鸣器蜂鸣器(Buzzer),类似于小型喇叭,分为电压型和脉冲型,电压型的蜂鸣器送电就会叫,其频率固定;脉冲型蜂鸣器必须加入脉冲才会发出声响,其声音的频率就是加入脉冲的频率,后面使用是脉冲型蜂鸣器。1)高电平驱动蜂鸣器,左图适用于 P1P3,右图适用于 P0P3 达林顿增益大,能快速饱和,端口输出

13、脉冲信号注意:P0口与其它口接法是不同的三极管作用:电流放大和开关作用蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,一般采取一个三极管来放大驱动蜂鸣器2)低电平驱动蜂鸣器 3-3-1 蜂鸣器实验 /* 蜂鸣器实验程序 */=声明区=#include<reg51.h>/ 定义8051暂存器sbit buzzer = P37 ;/ 声明蜂鸣器的位置为Port 3之bit 7void delay(int);/声明延迟函数 voi

14、d pulse_BZ(int,int,int);/声明蜂鸣器发声函数 /=主程序=main()/主程序开始 while(1)/无穷循环,程序一直跑 pulse_BZ(100,1,1);/ 蜂鸣器发声100 (0.5m+0.5m)=0.1sdelay(1000);/延迟1000 0.5m=0.5秒 /while循环结束 /主程序结束 /=子程序=/* 延迟函数开始,延迟x 0.5ms */ void delay(int x)/延迟函数开始 int i,j;/声明整数变量i,jfor (i=0;i<x;i+)/计数x次,延迟约x 0.5ms for (j=0;j<60;j+);/计数6

15、0次,延迟约0.5ms /延迟函数结束 /* 蜂鸣器发声函数,count=计数次数,TH=高态时间,TL=低态时间 */void pulse_BZ(int count,int TH,int TL)/蜂鸣器发声函数开始 int i;/声明整数变数ifor(i=0;i<count;i+)/计数count次 buzzer=1;/输出高态delay(TH);/延迟TH 0.5ms buzzer=0;/输出低态 delay(TL);/延迟TL 0.5ms /for循环结束 /蜂鸣器发声函数结束思考:1)若希望产生1kHz声音0.2秒、暂停0.05秒、600Hz声音0.1秒、 暂停 0.2秒,应如何

16、修改(含delay函数)? 2)请调整输出频率与间隔,以产生电话铃声? 323 驱动继电器1、电磁继电器的构造:A是电磁铁,B是衔铁,C是弹簧,D是动触点,E是静触点。闭合开关S,衔铁被电磁铁吸下来,动触点同时与两个静触点接触,使D、E间连通。这时弹簧被拉长,工作电路被接通,小灯泡L发光。断开开关S,电磁铁失去磁性,对衔铁无吸引力。衔铁在弹簧的拉力作用下回到原来的位置,动触点与静触点分开,工作电路被切断,小灯泡L不发光。 结论:电磁继电器就是利用电磁铁控制工作电路通断的开关2、电磁继电器(electromagnetic relay)的工作原理在线圈两端加上一定的电压,线圈中就会流过一定的电流,

17、从而产生电磁效应,内部开关在电磁力吸引的作用下与常开接点吸合。当线圈断电后,电磁的吸力也随之消失,内部开关回到常闭接点处。这样吸合、释放,从而达到了在电路中的导通、切断的目的。继电器线圈未通电时处于断开状态的静触点,ca称为“常开接点”;cb处于接通状态的静触点称为“常闭接点”。 结论:用小电流来控制大电流负载,内部是个开关电路面包板上所使用的继电器(2P) 面包板是专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。 使用晶体管驱动继电器 小电流的端口可直接驱动,如DC

18、5V;大电流需增加三极管驱动,三极管工作在开关状态,饱和时有电场,二极管起到三极管截止时续流作用,保护三极管。使用 7405/7406 驱动继电器 3-2-4 驱动固态继电器1、固态继电器(SSR)的工作原理和特性固体继电器(Solid State Relay SSR)是利用现代微电子技术与电力电子技术相结合而发展起来的一种新型无触点电子开关器件。类似于一般的继电器,它可以实现用微弱的控制信导(几毫安到几十毫安)控制0.1A直至几百A电流负载,但因为其没有实际接点,所以不会有切换接点时的火花与机械式操作。固态继电器是一种两个接线端为输入端,另两个接线端为输出端的四端器件,中间采用隔离器件实现输

19、入输出的电隔离输入端接控制信号,输出端与负载、电源串联,SSR 实际是一个受控的电力电子开关,其等效电路如下图:由于固体继电器具有高稳定、高可靠、无触点及寿命长等优点,广泛应用在电动机调速、正反转控制、调光、家用电器、烘箱烘道加温控温、送变电电网的建设与改造、电力拖动、印染、塑科加工、煤矿、钢铁、化工和军用等方面。 SSR驱动电路实例演练3-3-2继电器实验 /* JDQ.c - 继电器实验程序 */=声明区=#include<reg51.h> / 定义8051暂存器 sbitbuzzer = P37;/声明蜂鸣器的位置 sbitrelay = P36;/声明继电器的位置 void

20、 delay(int);/声明延迟函数 void pulse_BZ(int,int,int);/声明蜂鸣器发声函数 void pulse_RL(int,int,int);/声明继电器控制函数 /=主程序=main()/主程序开始 while(1)/无穷循环,程序一直跑 */pulse_RL(2,2000,2000);/ 继电器使灯亮灭各10次,各2000 0.5m=1spulse_BZ(100,1,1);/ 蜂鸣器第1声哔,约100*(0.5m+0.5m)=0.1sdelay(200);/延迟200 0.5ms=0.1s pulse_BZ(100,1,1);/ 蜂鸣器第2声哔,约100*(0.

21、5m+0.5m)=0.1sdelay(200);buzzer=1;/延迟200 0.5ms=0.1s /while循环结束 /主程序结束 /=副程序=/ 延迟函数开始,延迟约x*0.5ms/void delay(int x)/延迟函数开始 int i,j;/声明整数变量i,jfor (i=0;i<x;i+)/计数x次,延迟约x 0.5ms for (j=0;j<60;j+);/计数60次,延迟约0.5ms /延迟函数结束 /* 蜂鸣器发声函数,count=计数次数,TH=高态时间,TL=低态时间 */void pulse_BZ(int count,int TH,int TL)/蜂鸣

22、器发声函数开始 int i;/声明整数变量i/for(i=0;i<count;i+)/计数count次 buzzer=1;/输出高态 delay(TH);/延迟TH 0.5ms buzzer=0;/输出低态 delay(TL);/延迟TL 0.5ms /for循环结束 /蜂鸣器发声函数结束 /* 继电器控制函数,count=计数次数,TH=激磁时间,TL=消磁时间 */void pulse_RL(int count,int TH,int TL)/继电器控制函数开始 int i;/声明整数变量i for(i=0;i<count;i+)/计数count次 relay=1;/输出高态,继电器激磁(灯亮) delay(TH);/延迟TH 0.5ms relay=0;/输出低态,继电器消磁(灯灭) delay(TL);/延迟TL 0.5ms /for循环结束 /继电器控制函数结束思考题:若要让继电器激磁10秒钟、消磁5秒钟,周而复始,应如何修改? 3-2-5 驱动LED数码管1)共阳极七段LED数码管的应用 2)共阴

温馨提示

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

评论

0/150

提交评论