AT89S51单片机输入输出外设接口.ppt

上传人:max****ui 文档编号:10959742 上传时间:2020-04-16 格式:PPT 页数:58 大小:3.96MB
返回 下载 相关 举报
AT89S51单片机输入输出外设接口.ppt_第1页
第1页 / 共58页
AT89S51单片机输入输出外设接口.ppt_第2页
第2页 / 共58页
AT89S51单片机输入输出外设接口.ppt_第3页
第3页 / 共58页
点击查看更多>>
资源描述
8 AT89S51单片机与输入 输出外设的接口 2 本章主要内容 本章学时6学时 1 LED数码管动态显示接口设计2 矩阵式键盘接口设计3 液晶显示器使用初步 3 单片机典型应用系统组成 单片机 4 单片机典型应用系统组成 单片机系统组成A D接口 实现模拟信号的采集并行A D串行A DD A接口 输出模拟量的控制信号并行D A串行D A开关量输入输出 实现开关信号的检测和控制步进电机 PWM控制的直流电机开关量输出的传感器 如光电 霍尔传感器等 5 通信接口 实现系统和外界 单片机或PC 的数据交换RS 232CRS 485人机界面 沟通用户和系统的渠道键盘 显示打印机 6 单片机应用系统实例 7 8 1 LED数码显示器的接口设计 数码管是如何显示出字符的数码管静态显示数码管动态显示原理数码管显示电路与程序设计 8 单片机系统中常用的显示器有 发光二极管LED LightEmittingDiode 显示器 液晶LCD LiquidCrystalDisplay 显示器 CRT显示器等 LED LCD显示器有两种显示结构 段显示 7段 米字型等 和点阵显示 5 8 8 8点阵等 9 数码管 由发光二极管阵列构成 用于显示数字和简单英文字符 常用的有7段 8段LED数码管 米字型数码管 点阵型数码管及专用数码管 10 数码管的工作原理 数码管的结构共阳极数码管共阴极数码管 共阳 共阴 11 数码管是如何显示出字符的 数码管的结构共阳极数码管共阴极数码管数码管的显示段码 数码管显示的内容位码 即com端 数码管是否点亮 g 12 数码管的段码 以共阴数码管为例 MSB LSB 13 LED数码显示方式及电路 LED显示器工作方式有两种 静态显示方式和动态显示方式 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码 当送入一次字形码后 显示字形可一直保持 直到送入新字形码为止 这种方法的优点是占用CPU时间少 显示便于监测和控制 缺点是硬件电路比较复杂 成本较高 14 动态显示的特点是将所有位数码管的段选线并联在一起 由位选线控制是哪一位数码管有效 选亮数码管采用动态扫描显示 所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选 利用发光管的余辉和人眼视觉暂留作用 使人的感觉好像各位数码管同时都在显示 动态显示的亮度比静态显示要差一些 所以在选择限流电阻时应略小于静态显示电路中的 8 1 1动态显示方式 15 多个数码管的控制静态显示 每个数码管单独控制 所有数码管同时点亮动态显示 段码共用 位码分别控制 每个数码管循环点亮 段码输入 位码扫描 16 例8 18位数码管的软件扫描显示 17 程序设计 延时扫描段选码 位选码 每送入一次后延时1ms 因人眼的视觉暂留时间为0 1s 所以每位显示的间隔不必超过20ms 并保持延时一段时间 造成视觉暂留效果 定时器中断刷新显示 18 8 1 2用SPI接口显示驱动芯片控制数码管多位显示 MAX7219 MAX7221是一种集成化的串行输入 输出共阴级显示驱动器件 它可以驱动8位7段数码管显示 也可以连接条形LED或8 8LED点阵屏 采用MAX7219仅占用单片机的3只引脚 大大节省了动态刷新数码管程序对单片机资源的占用 是驱动数码管显示的最常用的IC器件 MAX7219采用SPI接口和单片机相连接 19 20 SPI总线串行扩展简介 SPI SerialPeripheralInterface 串行外设接口 总线系统是一种同步串行外设接口 它可以使MCU与各种外围设备以串行方式进行通信以交换信息 SPI有三个寄存器分别为 控制寄存器SPCR 状态寄存器SPSR 数据寄存器SPDR 外围设备包括FLASHRAM 网络控制器 LCD显示驱动器 A D转换器和MCU等 SPI接口是在CPU和外围低速器件之间进行同步串行数据传输 在主器件的移位脉冲下 数据按位传输 高位在前 低位在后 为全双工通信 数据传输速度总体来说比I2C总线要快 速度可达到几Mbps 21 目前许多单片机都带有SPI接口 对于AT89S51单片机 由于不带SPI接口 SPI接口的实现 采用软件与I O口结合来模拟SPI时序 对器件进行操作 22 例8 2用MAX7219控制数码管显示 23 按键的作用 按键是单片机系统与操作人员之间交互重要组件 用于完成操作人员对单片机系统的输入控制 8 2键盘的接口设计 24 单片机多路键盘的扩展方法 并口键盘 每个IO口接一个按键 优点是编程简单可靠 可以中断方式使用 缺点是IO口占用过多 矩阵键盘 将多个键盘接成行列交叉的形式 采用IO口分别控制行和列 键盘扩展专用芯片 例如HD7279 单片机通过串口直接与该芯片通讯获取键值 串转并扩展芯片扩展IO口 25 1 判断是否有键按下 2 识别是哪一个键按下 3 按下的按键对应的功能 键值处理程序 8 2 1键盘接口应解决的问题 键盘的任务 26 1 0 未按键 按下 按键松开 1 键按下时P2 0口的逻辑电平变化 人为按键通常按下时间为几百毫秒 键盘设计中需要考虑的问题 键的连击 27 键盘设计中需要考虑的问题 解决办法 等待按键弹起连击 会在一次按键中多次产生击键的效果 对于这类问题 在键盘编程中常采用等待按键释放的处理方法来消除连击 使得每次按键仅产生一次键的处理效果 这样就可以避免当某个按键还未松开时 键扫描程序和处理程序已执行多遍 28 当用手按下一个按键时 往往所按按键在闭合位置和断开位置之间弹跳几下才会稳定到闭合状态 在释放一个按键时 也会出现类似的情况 这就是按键抖动 这是由机械结构的固有特性决定的 不可避免 按键抖动的持续时间大小不一 一般在10ms左右 键盘设计中需要考虑的问题 消除按键抖动 29 键盘设计中需要考虑的问题 断开 按下 理想按键过程 抖动约10ms 断开 按下 实际按键过程 消除按键抖动解决办法延时10ms后等待按键稳定再次判断是否有键按下 采用按键消抖电路 专用键盘接口芯片含有按键自动去抖电路 30 键盘设计中需要考虑的问题 多键同时闭合当有两个或多个键同时闭合时 可以采用条件判断的方式来确认哪个按键有效 例如以下方式 以先按下的键为有效键 以按下时间最长的键为有效键 将最后释放的键视为有效键 有复合按键的设计按照复合按键的功能进行编程 无复合按键的设计中通常采用单键按下有效 多键按下无效的原则进行处理 31 8 2 2键盘接口设计举例 键盘分编码键盘和非编码键盘 键盘上闭合键的识别由专用的硬件编码器实现 并产生键编码号 如BCD ASCII 或键值的称为编码键盘 如计算机键盘 而靠软件编程来识别的称为非编码键盘 在单片机组成的各种系统中 用的最多的是非编码键盘 也有用到编码键盘的 非编码键盘又分为 独立键盘和行列式 又称为矩阵式 键盘 键盘的分类 32 独立式键盘 查询方式独立式键盘各按键与I O口相互的接通一条输入数据线 优点 电路简单 编程方便 缺点 严重占用系统资源 当键数较多时 占用较多I O口 33 独立式键盘 中断扫描方式独立式键盘各按键通过门器件与单片机外部中断输入口相连 优点 实时性强 占用系统资源少 缺点 当键数较多时 占用I O口仍较多 34 矩阵 行列 式键盘 为减少键盘与单片机接口时所占用I O口线数目 在键数较多时候 通常将键盘排列成行列式键盘 利用矩阵结构只需要N条行线和M条列线 即可组成N M个按键的键盘 在这种行列矩阵式非编码键盘的单片机系统中 键盘处理程序首先执行有无按键按下的程序段 当确认有按键按下后 下一步识别哪个按键被按下 对键的识别通常采用逐行 或逐列 扫描法 35 36 37 行描法识别键值的工作原理 STEP1 判断键盘中有无键按下 向行线输出全扫描字00H 读取列线的值 STEP2 进行行扫描判断键值 依次给行线送低电平 读取列线状态 如读取的值全为1 则按下的键不在此行 否则所按下的键必在此行 而且是与零电平相交的交点上的键 编程思路 1 判断是否有键按下全扫描 2 确定按下的是哪一个键 确定按键代码 逐行扫描 38 4X4键盘扫描流程图 39 键的位置码及键值的译码过程 键值 号 的获得 译码 通常采用计数译码法 这种方法根据矩阵键盘的结构特点 每个按键的值 行号 每行的按键个数 列号 即键号 值 行首键号 列号第0行的键值为 0行 4 列号 0 3 为0 1 2 3 第1行的键值为 1行 4 列号 0 3 为4 5 6 7 第2行的键值为 2行 4 列号 0 3 为8 9 A B 第3行的键值为 3行 4 列号 0 3 为C D E F 4 4键盘行首键号为0 4 8 C 列号为0 1 2 3 40 例题 设计一个4X4行列式键盘 按键按下后在数码管上显示对应按键所代表的数值 41 编程思路讲解 42 程序设计分析 模块化程序设计方案 分解成四个子程序1 键盘子程序 实现系统要求的功能 2 判断是否有键按下子程序 有键按下返回1 无键盘按下返回0 供键盘子程序调用 3 扫描键盘子程序 返回键值 供键盘子程序调用 4 延时子程序 实现约n 10ms的延时 供判断是否有键按下子程序调用 实现延时消抖 43 按要求编程 全扫描四行一起扫描 以判断是否有键按下 同时采用了延迟再扫描的方法进行消抖 逐行扫描四行依次扫描 判断按键的行列位置 生成按键代码使用不同的编程语句可以生成不同的按键代码 44 8 2 3键盘扫描方式的选取 查询扫描占用系统资源较多 查询频率过低可能出现漏判键输入情况 定时扫描在定时器中断服务程序内进行处理 为不漏判有效的按键 定时中断的周期一般小于100ms 中断扫描方式实时性强 工作效率高 45 8 3液晶使用初步 液晶LCD分为两类 一类是字符模式LCD 另一类是图形模式LCD 其中 字符模式LCD是点阵式液晶显示器 专门用来显示字母 数字 符号 由于LCD控制需专用的驱动电路 一般不会单独使用 而是将LCD面板 驱动与控制电路组合成模块一起使用 46 47 1602液晶模块简介 1602字符型液晶是一种用5 7点阵图形来显示字符的液晶显示器 显示的内容为2行16个字 48 引脚介绍 第1脚 VSS为电源地 接GND 第2脚 VDD接5V正电源 第3脚 液晶显示偏压信号第4脚 数据 命令选择端 H L 第5脚 读 写选择端 H L 第6脚 E为使能信号 当E端由高电平跳变为低电平时 液晶模块执行命令 第7 14脚 D0 D7为8位双向数据线第15脚 BLA背光电源正极 接 5V 第16脚 BLK背光电源负极 接GND 49 操作时序 读操作时序 50 写操作时序 51 液晶指令集 液晶的指令集1602液晶模块的内部控制器共有11条指令 它的读写操作 屏幕和光标的操作都是通过指令编程来实现的 说明1为高电平 0为低电平 52 液晶初始化设置 1 显示模式设置 53 液晶初始化设置 2 显示开 关及光标设置 54 数据控制 控制器内部设有一个数据地址指针 用户可以通过它们来访问内部的全部80字节RAM 1 数据指针设置 55 数据控制 2 读数据输入 RS H RW H E H 输出 D0 D7 数据3 写数据输入 RS H RW L D0 D7 数据 E 高脉冲 输出 无 56 数据控制 4 其他设置 57 例 编程实现LCD1602显示字符 1602液晶在PROTEUS中的元件名称LM016L 58 本章结束 本章回顾数码管动态显示SPI接口的使用与编程 使用显示驱动芯片驱动数码管显示矩阵式键盘的编程与使用1602液晶的编程与使用
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!