单片机应用技术实例教程第4章 51单片机的并行I O端口及其应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前一页
首页
前一页
4.6 应用案例4.2-按键指示灯的实现
4.6.1 51单片机通过并行端口读入电平 4.6.2 独立按键基础 4.6.3 按键指示灯的硬件电路 4.6.4 按键指示灯的应用代码

前一页
首页
4.6.1 51单片机通过并行端口读入电平
51单片机通过并行端口读入电平的方法很简单,首先向对应的端口写入一个高电平, 然后读取该端口寄存器的值即可,如例4.8,分别是读取P0~P1端口的C51语言代码。 【例4.8】51单片机的并行端口数据读取。 (代码请详见教材) 和控制51单片机某位输出电平电压类似,51单片机的I/O端口同样可以读取某一位的值, 如例4.9所示。 【例4.9】51单片机的并行端口位数据读取。 (代码请详见教材)
前一页
4.6.3 按键指示灯的硬件电引脚上,另一端连 接在GND上,当按键没有被按下时,P1端口通过上拉电阻连接到VCC,为高电平;当按 键被按下时,P1被连接到GND,为低电平。
前一页
4.6.4 按键指示灯的应用代码
按键指示灯的C51语言应用代码如例4.10所示,P1上读入的数据则为对应的按键编码, 如果对应位为“0”,则表明有键被按下,延时10ms后再次读取,以消除抖动,如果 两次读取的状态相同,则证明不是抖动,将P1状态从P0口输出,否则清除。 【例4.10】按键指示灯的应用代码。 (代码请详见教材)
前一页
首页
4.2 普通I/O端口P1
51单片机的P1口仅能作为普通通用I/O口使用,在其输出端接有内部上拉电阻,故可以直 接输出而无需外接上拉电阻,同P0口一样,当作为输入口时,必须先向锁存器写“1”, 使场效应管T截止。和P0口的内部结构比起来,P1中仅仅是少了多路开关,并且有一个场 效应管被改为了上拉电阻,其位结构如下图所示。
前一页
4.5.4 流水灯的应用代码
流水灯应用系统的C51语言应用代码,其使用了两个嵌套的for循环语句来进行软件延时, 当延时完成之后使用“<<”移位语句将当前输出高电平的P1端口引脚向高位移动一位,由 于“<<”语句不带进位功能(即到达最高位之后不会自动循环到最低位),所以需要使用 一个判断语句来将点亮端口位移动到最低位。 【例4.6】流水灯的C51语言代码。 (代码请详见教材) 【例4.7】用内部函数实现的流水灯 (代码请详见教材) 例4.7是使用_crol_函数实现流水效果的C51语言代码,其使用 _crol_函数对0x01进行依次 移位,然后将这个值从P1端口输出,此时可以看到P1的8个LED发光二极管循环点亮,形 成流水灯效果。
图中的电阻均为限流电阻,当电阻值较小时候,电流较大,发光二极管亮度较高;当该电阻值 较大时,电流较小,发光二极管亮度较低,一般来说该电阻值选择1~10kΩ,具体电阻的选择 和该型号单片机的I/O口驱动能力、LED的型号以及系统的功耗有关。
前一页
4.5.3 流水灯的硬件电路
下图所示是流水灯应用系统的电路图,8个LED使用灌电流的驱动方式连接在51单片机的P1端 口上,表4.3所示是应用系统使用的典型器件说明。
前一页
4.7 本章总结
本章介绍了 51单片机的并行I/O端口的使用方法,读者应该熟练掌握如下内容。 ●51单片机的并行I/O端口的组成。 ●如何使用51单片机的并行I/O端口输出一个固定电平以及如何从51单片机的 并行I/O端口读取一个外部电平状态。 ●如何在51单片机应用系统中使用发光二极管和独立按键。

前一页
4.1数据地址端口P0和P2
51单片机的P0和P2是数据地址端口,可以组合起来构成16位地址总线和8位数据总线。 P0端口支持位寻址操作,下左图所示是P0的位内部结构图,包括了一个输出锁存器、两 个三态输入缓冲器、以及输出的驱动和控制电路。输出驱动电路由两个场效应管构成,它 的工作状态受到由一个与门、一个反向器以及一个模拟开关构成的输出控制电路控制。 51单片机的P2口可以用作通用I/O口或者是地址总线,其一位的内部结构如下右图所示。
前一页
4.6.2 独立按键基础
在51单片机的实际应用中,常常需要用户输入一些参数,例如,启动设备、选择设备的运行速度 等,此时可以使用独立按键。 独立按键的工作基本原理是被按下时候按键接通两个点,放开时则断开这两个点。按照结构可以把 按键分为两类:触点式开关按键,如机械式开关、导电橡胶式开关等;无触点开关按键,如电气式 按键、磁感应按键等。前者造价低手感好,后者寿命长,在51单片机应用系统中最常用的是触点 式开关按键。 独立按键在51单片机系统中的典型应用结构是将按键的一个点连接到高电平(逻辑“1”)上,另 外一个点连接到低电平(逻辑“0”)上,然后把其中一个点连接到51单片机的I/O引脚上,此时当 按键释放和被按下的时候单片机引脚上的电平将发生变化。 电平变化有一个抖动过程,这是由按键的机械特性所决定的,抖动时间一般为10ms左右,可能有 多次抖动。如果51单片机不对按键抖动做任何处理而直接读取,由于单片机在抖动时间内可能进 行了多次读取,则会把每一次抖动都看做一次按键事件而产生错误,所以在对按键事件进行处理的 时候必须在硬件上使用消抖电路或者软件上使用消抖函数。消抖电路一般使用一个电容或者低通滤 波器,依靠其积分原理来消除这个抖动信号,消抖函数则采用读取后延时后再次读取的方法两次做 比较看读取的值是否相同的方法,虽然浪费了一段时间,但是由于相对整体来说非常短,所以不会 对整体系统造成大的影响。 51单片机使用I/O口扩展按键的典型应用电路图,请见下图。
典型应用电路,请详见教材。
前一页 首页
4.5 应用案例4.1-流水灯的实现
4.5.1 51单片机通过并行端口输出电平 4.5.2 发光二极管(LED)基础 4.5.3 流水灯的硬件电路 4.5.4 流水灯的应用代码

前一页
首页
4.5.1 51单片机通过并行端口输出电平
51单片机通过并行端口输出电平的方法非常简单,将需要输出的数据直接写到对应的端口寄存 器即可,如例4.1所示是分别在P0~P4端口输出0x01、0x02、0xFF和0x00的C51语言代码。 【例4.1】并行端口输出电平。 51单片机的并行I/O端口都支持位寻址,所以此时也可以按位对其中的某一位进行操作,在 “AT89X52.h”头文件中对这些位进行了定义,当引用了该文件之后则可以直接对这些位进行 写操作,这些位的引用方式均为“端口寄存器名_位编码”,如P0端口的第0位(最低位)对 应“P0_0”,P3端口的第7位(最高位)对应“P3_7”,需要注意的是,此时输出的是一个位数 据“0”或者“1”,如例4.2所示。 【例4.2】并行端口按位输出电平。 由于51单片机的I/O引脚支持位操作,其自然也支持第3章的3.1.5小节中介绍的位操作指令,其 中最常用的是位取反操作“~”和移位操作“>>”和“<<”,前者常常用于将对应引脚上的电 平翻转,其使用方法如例4.3所示;后者通常用于将端口上的电平移位。 【例4.3】并行端口的按位操作。 在实际应用中常常会对51单片机的某些引脚按位进行命名以方便引用,此时通常会使用“^” 和“sbit”关键字(参考第3章的3.1.3小节),例4.4是一个将P1.0引脚预定义为“LED”然后 对其进行操作的实例。 【例4.4】并行端口的位定义操作。 除了使用“sbit”和“^”对51单片机的I/O引脚的某位进行定义之外,还可以使用“define”关 键字进行预定义操作,例4.5是例4.4的另外一种实现方法。 【例4.5】并行端口的位定义操作。
前一页
4.5.2 发光二极管(LED)基础
LED(发光二极管)是51单片机系统中最常见的一种指示型外部设备,是半导体二极管的一种, 可以把电能转化成光能。其主要结构是一个PN结,具有单向导电性,常常用于指示某个开关 量的状态,图4.8所示是最常用的双脚直插型的发光二极管实物示意,除了这种类型之外其还 有不同大小和不用引脚的封装(如贴片类型)。 发光二极管LED和普通二极管一样,具有单向导电性,当加在发光二极管两端的电压超过了它 的导通电压(一般为1.7~1.9V)时就会导通,当流过它的电流超过一定电流时(一般2~3ms) 则会发光,51单片机系统中发光二极管的典型应用电路如下图所示。
第第4章章51单片机的并行io端端口及其应用单片机应用技术实例教程c51版高等院校嵌入式人才培养规划教材本章主要内容?41数据地址端口p0和p2?42普通io端口p1?43复用端口p3?44数据地址总线扩展方法?45应用案例41流水灯的实现?46应用案例42按键指示灯的实现?47本章总结前一页前一页41数据地址端口p0和p2首页51单片机的p0和p2是数据地址端口可以组合起来构成16位地址总线和8位数据总线
《单片机应用技术实例教程(C51版)》
--高等院校嵌入式人才培养规划教材
第4章 51单片机的并行I/O端 口及其应用
本章主要内容
4.1 数据地址端口P0和P2 4.2 普通I/O端口P1 4.3 复用端口P3 4.4 数据-地址总线扩展方法 4.5 应用案例4.1-流水灯的实现 4.6 应用案例4.2-按键指示灯的实现 4.7 本章总结
前一页
首页
4.3 复用端口P3
51单片机的P3引脚可以用作普通的I/O引脚,但是在实际应用系统中更多是用于第二功能 引脚,其位结构如下图所示,工作原理与P1相同。
P3端口引脚的第二功能表,请详见教材。
前一页
首页
4.4 数据-地址总线扩展方法
数据—地址总线扩展方法是使用51单片机的数据—地址总线来扩展外围器件,使用这种方 法扩展的外围器件作为51的外部存储器存在,参与51单片机的外部存储器编址。 51单片机的总线由地址总线(Address Bus.AB)、数据总线(Data Bus.DB)和控制总线 (Control Bus.CB)组成,其结构如下图所示。
相关文档
最新文档