第7章 显示与开关/键盘输入及微型 打印机接口设计 1
第7章 显示与开关/键盘输入及微型 打印机接口设计 1
第7章显示、开关键盘及微型打印机接口设计 7.1单片机控制发光二极管的显示 7.1.1单片机与发光二极管的连接 7.1.2单片机VO端口控制发光二极管的编程 7.2开关状态检测 7.3单片机控制LED数码管的显示 7.3.1LED数码管显示原理 7.3.2LED数码管的显示方式 7.3.3LED数码管静态显示设计 7.3.4LED数码管动态显示设计 2
第7章 显示、开关/键盘及微型打印机接口设计 7.1 单片机控制发光二极管的显示 7.1.1 单片机与发光二极管的连接 7.1.2 单片机I/O端口控制发光二极管的编程 7.2 开关状态检测 7.3 单片机控制LED数码管的显示 7.3.1 LED数码管显示原理 7.3.2 LED数码管的显示方式 7.3.3 LED数码管静态显示设计 7.3.4 LED数码管动态显示设计 2
7.4单片机控制LED点阵显示器显示 7.4.1LED点阵显示器结构与显示原理 7.4.2控制16×16LED点阵显示屏的设计 7.5单片机控制LCD1602液晶显示器的显示 7.5.1LCD1602液晶显示模块简介 7.5.2单片机控制字符型LCD1602的显示案例 7.6键盘接口设计 76.1键盘接口设计应解决的问题 7.6.2独立式键盘的设计 7.6.3矩阵式键盘的设计 7.6.4单片机与专用键盘/显示器芯片HD7279的接口设计 3
7.4 单片机控制LED点阵显示器显示 7.4.1 LED点阵显示器结构与显示原理 7.4.2 控制16×16 LED点阵显示屏的设计 7.5 单片机控制LCD 1602液晶显示器的显示 7.5.1 LCD 1602液晶显示模块简介 7.5.2 单片机控制字符型LCD 1602的显示案例 7.6 键盘接口设计 7.6.1 键盘接口设计应解决的问题 7.6.2 独立式键盘的设计 7.6.3 矩阵式键盘的设计 7.6.4 单片机与专用键盘/显示器芯片HD7279的接口设计 3
7.7AT89S52单片机与微型打印机TPuP-40A/16A的接口 7.7.1TPuP-40A/16A微型打印机简介 7.7.2AT89S52单片机与TPuP-40A/16A的接口设计 7.8单片机与BCD码拨盘的接口设计 4
7.7 AT89S52单片机与微型打印机TPµP-40A/16A的接口 7.7.1 TPµP-40A/16A微型打印机简介 7.7.2 AT89S52单片机与TPµP-40A/16A的接口设计 7.8 单片机与BCD码拨盘的接口设计 4
内容概要 作为片内O口的基本应用,本章介绍单片机片内O口与常 见的输入器件(开关、键盘以及拨盘开关等)以及常见的显示 输出器件(发光二极管、LED数码管、LCD液晶显示器和微型 打印机)的接口设计与编程。 5
内容概要 作为片内I/O口的基本应用,本章介绍单片机片内I/O口与常 见的输入器件(开关、键盘以及拨盘开关等)以及常见的显示 输出器件(发光二极管、LED数码管、LCD液晶显示器和微型 打印机)的接口设计与编程。 5
7.1单片机控制发光二极管显示 第2章介绍了单片机片内4个VO端口P0口~P3口的内部电路 以及外部引脚特性。如果P0口作为通用VO使用,由于漏极开 路,需要外接上拉电阻。而P1~P3口内部已有30kΩ左右的上 拉电阻。下面讨论P1~P3口如何与LED发光二极管连接。 发光二极管常用来指示系统工作状态,制作节日彩灯、广告 牌匾等。 大部分发光二极管工作电流1~5mA,其内阻为20~100Ω。 电流越大,亮度也越高 。 为保证发光二极管正常工作,同时减少功耗,限流电阻选择 十分重要,若供电电压为+5V,则限流电阻可选1~3kΩ。 6
7.1 单片机控制发光二极管显示 第2章介绍了单片机片内4个I/O端口P0口~P3口的内部电路 以及外部引脚特性。如果P0口作为通用I/O使用,由于漏极开 路,需要外接上拉电阻。而P1~P3口内部已有30kΩ左右的上 拉电阻。下面讨论P1~P3口如何与LED发光二极管连接。 发光二极管常用来指示系统工作状态,制作节日彩灯、广告 牌匾等。 大部分发光二极管工作电流1~5mA,其内阻为20~100Ω。 电流越大,亮度也越高。 为保证发光二极管正常工作,同时减少功耗,限流电阻选择 十分重要,若供电电压为+5V,则限流电阻可选1~3kΩ。 6
7.1.1单片机与发光二极管的连接 单片机通过并行端口P1~P3驱动发光二极管,电路如图7-1所 示。 P0口与P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入, 而P1~P3口每一位的驱动能力,只有P0口的一半。当P0口的某位 为高电平时,可提供400A的拉电流,见图7-1(a);当P0口某位 为低电平(0.45V)时,可提供3.2mA的灌电流,见图7-1(b),而 P1~P3口内部有30k2左右的上拉电阻,如果高电平输出,则从 P1、P2和P3口输出的拉电流Id仅为几百A,驱动能力较弱,亮度 较差,如图7-1(a)所示。 7
7.1.1 单片机与发光二极管的连接 单片机通过并行端口P1~P3驱动发光二极管,电路如图7-1所 示。 P0口与 P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入, 而P1~P3口每一位的驱动能力,只有P0口的一半。当P0口的某位 为高电平时,可提供400µA的拉电流,见图7-1(a);当P0口某位 为低电平(0.45V)时,可提供3.2mA的灌电流,见图7-1(b),而 P1~P3口内部有30kΩ左右的上拉电阻,如果高电平输出,则从 P1、P2和P3口输出的拉电流Id仅为几百µA,驱动能力较弱,亮度 较差,如图7-1(a)所示。 7
+5V +5V +5V R 引脚 LED 引脚 LED AT89S52 AT89S52 (a)不恰当的连接:高电平驱动 (b)恰当的连接:低电平驱动 图7-1发光二极管与单片机并行口的连接 8
8 图7-1 发光二极管与单片机并行口的连接 (a)不恰当的连接:高电平驱动 (b)恰当的连接:低电平驱动
如果端口引脚为低电平,能使灌电流d从单片机的外部流入 内部,则将大大增加流过的灌电流值,如图7-1(b)所示。所 以,AT89S52单片机任何一个端口要想获得较大的驱动能力, 要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱 动电路,如74LS04、74LS244等。 7.1.2单片机O端口控制发光二极管的编程 发光二极管与单片机VO端口的连接,见图7-1(b)。如要点 亮某发光二极管,只需该O端口位写入“0”即可。下面介绍如 何对O端口编程实现对发光二极管亮灭的控制。 9
如果端口引脚为低电平,能使灌电流Id从单片机的外部流入 内部,则将大大增加流过的灌电流值,如图7-1(b)所示。所 以,AT89S52单片机任何一个端口要想获得较大的驱动能力, 要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱 动电路,如74LS04、74LS244等。 7.1.2 单片机I/O端口控制发光二极管的编程 发光二极管与单片机I/O端口的连接,见图7-1(b)。如要点 亮某发光二极管,只需该I/O端口位写入“0”即可。下面介绍如 何对I/O端口编程实现对发光二极管亮灭的控制。 9
【例7.1】制作一个单片机控制的流水灯,原理电路见图7-2, 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0 ~P1.7引脚上,阳极共同接高电平。编写程序,每次点亮一个 发光二极管,控制发光二极管由上至下的反复循环流水点亮。 说明:本例采用了Proteus环境下的虚拟仿真,7.5版本元件 库中没有AT89S52单片机,采用AT89C51来代替AT89S52, 以下同。 参考程序如下: 10
【例7-1】制作一个单片机控制的流水灯,原理电路见图7-2, 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0 ~P1.7引脚上,阳极共同接高电平。编写程序,每次点亮一个 发光二极管,控制发光二极管由上至下的反复循环流水点亮。 说明:本例采用了Proteus环境下的虚拟仿真,7.5版本元件 库中没有AT89S52单片机,采用AT89C51来代替AT89S52, 以下同。 参考程序如下: 10