第6章 MCS-51单片机的交互通道配置与接口 主要内容:

Slides:



Advertisements
Similar presentations
第五章 键盘及其接口技术 本章要点: 1 .按键的抖动干扰及其解决方法。 2 .独立式键盘的结构原理及其接口电路。 3 .矩阵式键盘的结构原理及其行扫描法。 4 .编码器及其编码键盘接口电路。 返回总目录.
Advertisements

第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
实验四 利用中规模芯片设计时序电路(二).
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第 十 章 单 片 机 应用系统 Single Chip Microcomputer 本章内容 人机接口 键盘接口 显示器接口.
8051 指令.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
前言 AZWJ—2型智能瓦斯检测记录仪是一种采用单片机控制的煤矿便携式瓦斯浓度测量记录仪表。它用于煤矿井下采掘工作面、巷道、等有爆炸性气体环境对甲烷浓度进行间断或连续监测;检测记录仪通过键盘设置测量、打印、暂停等工作方式,设定日期、时间、报警值等参数。
单片机原理与应用.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
6.2 MCS-51单片机与显示器的接口技术 LED显示器及其接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第三章 指令系统.
第6章 键盘、显示接口技术 6.1 键盘及其与计算机接口 6.2 独立式按键接口设计 6.3 矩阵式键盘接口设计
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
第七章 显示器与键盘接口 第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
K60入门课程 02 首都师范大学物理系 王甜.
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
(Random Access Memory)
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
Haohaodada-Nano编程 数码管中数的闪烁 舟山市定海区教师进修学校 张秋明.
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
人机界面接口技术(人机交互) 4.1 显示人机界面接口技术 4.2 常用显示设备应用介绍:LED、七段数码管、LCM、LCD等;
第1章 微型计算机基础.
Presentation transcript:

第6章 MCS-51单片机的交互通道配置与接口 主要内容:

6.1 MCS-51单片机与键盘的接口技术 6.1.1 概述 人机界面:是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。 键盘:单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。 键盘的分类:按编码方式可分为编码键盘与非编码键盘。按键组连接方式可分为独立连接式键盘与矩阵连接式键盘。 6.1.1 概述 键盘输入的主要对象:各种按键或开关。 1.独立连接式键盘 每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。 适用场合:多用于设置控制键、功能键。适用于键数少的场合。

独立连接式键盘连接图如右图所示。当没有键被按下时,所有的数据输入线都为高电平;当有任意一个键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键按下。 2. 矩阵连接式键盘 键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。 适用场合:多用于设置数字键,适用于键数多的场合。

4行4列矩阵式键盘连接图如右图所示。这种键盘适合采取动态扫描的方式进行识别。 扫描方式:低电平扫描(回送线必须被上拉为高电平)、高电平扫描(回送线需被下拉为低电平)。右图中给出了低电平扫描的电路。 3. 薄膜开关 特点:不需要进行导线与开关间的焊接,结构简单、体积小、防尘、防水、防有害气体侵蚀、寿命长、可靠性高。 应用:与按键式键盘类似,多个薄膜开关也可按照独立式或矩阵式设计内部电路,其原理与普通键盘相同。

按键开关去抖动问题 * 键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。

消除抖动不良后果的方法: ⑴ 硬件去抖动 其中RC滤波电路去抖动电路简单实用,效果较好。 ⑵ 软件去抖动 检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。

6.1.2 使用键盘时必须解决的问题 (1)开关状态的可靠输入。必须消除键抖动。可以采用硬件和软件两种方法,硬件方法就是在按键输入通道上添加去抖动电路;软件方法则采用延迟10~20ms   (2)键盘状态的监测方法——中断方式还是查询方式。    (3)键盘编码方法。   (4)键盘控制程序的编制。。 6.1.3 键盘接口 功能:对键盘上所按下的键进行识别。 分类: (1)编码键盘:采用专用的编码/译码器件,被按下的键由该器件译码输出相应的键码/键值。其特点是增加了硬件开销,编码固定,但编程简单。适用于规模大的键盘。

(2)非编码键盘:采用软件编/译码的方式,通过扫描,对每个被按下的键判别输出相应的键码/键值。其特点是不增加硬件开销,编码灵活,但编程较复杂,占CPU时间。适用于小规模的键盘,特别是单片机系统。键盘。 1.键盘接口的工作原理 对于矩阵式键盘,如上页图所示,键盘的行线X0~X3通过电阻接+5V,当键盘上没有键闭合时,所有的扫描线和回送线都断开,无论扫描线处于何种状态,回送线都呈高电平。当键盘上某一键闭合时,则该键所对应的扫描线和回送线被短路,可以确定,变为低电平的回送线与扫描线相交处的键闭合。 CPU对键盘扫描的方式:程序控制的随机方式( CPU空闲时扫描键盘)、定时控制方式(定时扫描键盘)、中断方式。 CPU对键盘上闭合键的键号确定方法:根据扫描线和回送线的状态计算求得,或根据行线和列线的状态查表求得。

特点:结构简单,每个按键接单片机的一条I/O线,通过对输入线的查询,可以识别每个按键的状态。 2.键输入程序的设计方法 (1)判断键盘上是否有键闭合; (2)消除键的机械抖动; (3)确定闭合键的物理位置; (4)得到闭合键的编号; (5)确保CPU对键的一次闭合只做一次处理 3.键盘接口方式 (1)独立式键盘接口(静态方式) 特点:结构简单,每个按键接单片机的一条I/O线,通过对输入线的查询,可以识别每个按键的状态。 [例题] 在MCS-51 单片机系统中,设计一个含8个按键的独立式键盘。 解:在MCS-51中,含8个按键的独立式键盘的线路连接如下页图所示,8个按键经上拉电阻拉高后分别接到MCS-51单片机P1口的8条I/O线上(P1.0~P1.7)。

在无键按下的情况下,P1.0~P1.7线上输入均为高电平。当有键按下时,与被按键相连的I/O线将得到低电平输入,其他位按键的输入线上仍维持高电平输入。 P1口8条I/O线经与非门74LS30实现逻辑与非后,再经过1个非门74LS04进行信号变换,然后接至MCS-51的 引脚上,可通过中断的方式处理键盘。在中断服务程序中,先延时20 ms消除键抖动,再对各键进行查询,找到所按键,并转到相应的处理程序中去。

CLOSE: JNB ACC.7, KEY 7 ; 查询7号键 INT0: RETI KEY 7: …… ; 7号键处理程序 KEY 71: MOV A, P1 ; 再读P1口各引脚 JNB ACC.7, FUNC71 ; 确认键是否释放 RETI KEY 6: …… ; 其他键处理程序 …… D20: …… ; 20ms延时子程序 END

主程序如下: 中断服务程序清单如下: ORG 0000H LJMP MAIN ORG 0003H ; 外部中断0中断服务入口地址 LJMP INT ; 转中断服务 ORG 0100H MAIN: SETB EA ; 开总中断允许 SETB EX0 ; 开INT0中断 SETB IT0 ; 下降沿有效 …… 中断服务程序清单如下: INTI CALL D20 ; 延时去抖动 MOV P1, #0FFH ; P1口送全1值(准双向口原因) MOV A, P1 ; 读P1口各引脚 CJNE A, #0FFH,CLOSE ; 验证是否确实有键闭合 AJMP INT0 ; 无键按下(按键时间过短)则退 ;出中断

(2)矩阵式键盘接口——行反转法 矩阵式键盘按键识别方法有行反转法和扫描法等。行反转法需要两个双向I/O口分别接行、列线。步骤如下: (1)由行线输出全“0”,读入列线,判有无键按下。 (2)若有键按下,再将读入的列列线输出,读进行线的值。 (3)第一步读进的列线值与第二步读进的行线值运算,从而得到代表此键的唯一的特征值。 行反转法因输入与输出线反过来用而得名。优点是判键速度快,两次即可。 [例题]请为8051微处理器设计一个由4行4列键阵构成的键盘。 解:4×4矩阵键盘的线路连接如下页图所示。其中P2口的低4位作为输出线。P1口的低4位作为输入线,输入线通过74LS21进行逻辑相与后作为8051的一个外部中断源输入。当有键按下时就将引起中断。中断服务程序要对所按的键进行判别。

(1)查询闭合键的位置子程序KEYR KEYR子程序用以确定每组线中哪一位为0,是否有多个0。在调用前,应将读某组线的数据存入累加器A中。 KEYR子程序返回时,某组线中0的位置(0~3)保存在R3中。按键闭合引起中断后,执行中断服务程序。

KEYR子程序如下: KEYR: CJNE A, #0FEH, TESTP11 ; 测试P1.0 MOV R3, #0 ; P1.0=0,说明被按键的输入线为P1.0 LJMP FINISH ; 返回 TESTP11: CJNE A, #0FDH, TESTP12 ; 测试P1.1 MOV R3, #1 LJMP FINISH TESTP12: CJNE A, #0FBH, TESTP13 ; 测试P1.2 MOV R3, #2 TESTP13: CJNE A, #0F7H, FINISH ; 测试P1.3 MOV R3, #3 FINISH: RET 表2-5 工作寄存器组选择控制表

中断服务程序开始部分应利用软件延时消除键抖动,然后再对所按的键做出处理。 (2)中断服务程序 中断服务程序开始部分应利用软件延时消除键抖动,然后再对所按的键做出处理。 中断服务程序如下: ORG 1000H INT11:LCALL DELAY ; 延时去抖动 MOV A, P1 ; 读输入线 ANL A, #0FH ; 判断是否有键闭合 CJNE A, #0FH, TEST ; 有键闭合,转判断按键程序 RETI ; 无键闭合,返回 TEST: MOV B, A ; 暂存 LCALL KEYR ; 调用读取子程序 MOV 40H, R3 ; 暂存在40H单元 MOV P2, #0FFH ; 输出线写1 MOV P1, B ; 输入线写入数据 MOV A, P2 ; 读输出线 LCALL KEYR ; 调用读取子程序 XCH A, R3 SWAP A ORL 40H, A ; 得按键特征值 RETI

利用CPU的空闲方式,通过定时器T1实现延时, T1必须预先置初值,以得到需要的延迟时间。设晶振频率为6MHz,欲延时20ms,定时时间为: 中断程序结束后,键的特征值存放在40H单元中。此键的输出线号位于40H单元的高4位,其输入线号位于低4位。此后,根据40H单元的内容去查表,得到相应键的代码,可进行显示或其他处理。 (3)去抖动的延时子程序DELAY 利用CPU的空闲方式,通过定时器T1实现延时, T1必须预先置初值,以得到需要的延迟时间。设晶振频率为6MHz,欲延时20ms,定时时间为: (216-TC)×6/12=20×103μs,初值:TC=25536=63C0H。 程序如下: DELAY: MOV TOMD, #11H ; 方式1定时 MOV TL1, #0C0H ; 定时器1定时初值 MOV TH1, #63H SETB EA ; 开中断 SETB ET1 ; 开定时器1中断 SETB PT1 ; 定时器1为高级中断(因被键盘中断调用) SETB TR1 ; 启动定时器 ORL PCON,#1 ; 启动空闲方式,实际CPU在此处等待 CLR TR1 ; 以下四条指令只有在延时后,定时器被唤醒,才能执行 CLR PT1 CLR ET1 RET END

(4)通过串行口扩展键盘接口 MCS-51系列单片机的串行口与串/并转换芯片配合(如串入并出芯片74LS164 )可以扩展键盘。 [例题] 利用MCS-51的串行口与串/并转换芯片配合,扩展2行8列的键盘接口,键号为0~15。要求给出其硬件连接和键盘查询子程序。 解:串口与串/并转换芯片配合扩展键盘的线路连接如下图所示。

程序采取查询方式读取键号,并且考虑了键的抖动问题。 DLY1是延时子程序。 程序如下: 其中,P1.0和P1.1作为行线。键盘的编码为: P1.0线上的8个键分别为00H+(00H~07H),P1.1线上的8个键分别为08H+(00H~07H)。扫描线(00H~07H)的具体值存放在R4中。 程序采取查询方式读取键号,并且考虑了键的抖动问题。 DLY1是延时子程序。 程序如下: ORG 1000H SERKEY:MOV SCON, #00H ; 设置串行口 MOV A, #00H ; 键盘初始化,送00H到列线上 LCALL VARTO ; 发送数据 CHK:JNB P1.0, CHK0 ; 检查是否有键按下 JNB P1.1, CHK0 ; 检查是否有键按下 AJMP CHK ; 无键按下,继续查找 CHK0:LCALL DLY1 ; 调用10ms延时子程序,去抖 JNB P1.0, CHEN ; 确实有键按下,转CHEN JNB P1.1, CHEN AJMP CHK ; 无键按下,继续查找 CHEN:MOV R2, #0FEH ; 首列扫描字送R2,查键号,最低位为0 MOV R4, #00H ; 首列偏移值送R4

CHKN:MOV A, R2 ; 发送列扫描字 LCALL VARTO JB P1.0, CH1 ; 检查P1.0有无键按下;若无,转CH1 MOV A, #0 ; 第一行首列值送A,00H+(R4) AJMP CKEY ; 转求键号 CH1:JB P1.1, NEXT ; 检查P1.1有无键按下;若无,转NEXT MOV A, #8H ; 第二行首列值送A CKEY:ADD A, R4 ; 求键号,并入栈保护 RET NEXT:INC R4 ; 指向下一列 MOV A, R2 ; 取出原扫描字 JNB ACC.7,KEND ; 是否已检查完8列? RL A ; 8列未完,指向下一列 MOV R2, A ; 列扫描字送R2 AJMP CHKN ; 8列未完,检查下一列 KEND:AJMP SERKEY ; 8列查完,未查到有键按下,等待 VARTO:MOV SBUF, A ; 发送A中数据 JNB TI, $ ; 发送等待 CLR TI ; 清除 DLY1: …… ; 延时10ms子程序(略) END ; 结束

6.2 MCS-51单片机与显示器的接口技术 6.2.1 LED显示器及其接口 显示器用于实现单片机应用系统中的数据输出和状态的反馈。单片机系统中常用的显示器有发光二极管、七段数码显示器、液晶显示器等。 6.2.1 LED显示器及其接口 发光二极管简称LED(Light Emitting Diode)。LED显示器从外观可分为 “8”字形的七段数码管、米字形数码管、点阵块、矩形平面显示器、数字笔划显示器等。 1.七段LED数码显示器 七段LED数码管显示器能够显示十进制或十六进制数字及某些简单字符。但控制简单,使用方便,在单片机系统中应用较多。其结构如下页图所示。

上图中的a~g七个笔划(段)及小数点dp均为发光二极管。数码管显示器根据公共端的连接方式,可以分为共阴极数码管(将所有发光二极管的阴极连在一起)和共阳极数码管(将所有发光二极管的阳极连在一起)。 单片机系统扩展LED数码管时多用共阳LED。共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻。

七段LED字形码如下表所示。 2.LED点阵模块显示器 LED点阵模块显示器是指由发光二极管排成一个m×n的点阵,每个发光二极管构成点阵中的一个点。这种显示器显示的字形逼真,能显示的字符比较多,但控制比较复杂。适用于显示汉字、图形和表格,广泛应用于公共场合的信息发布。

3. LED的驱动接口 LED工作时需要一定的工作电流,才能正常发光。单个LED实际上是一个压降为1.2~1.5V的发光二极管,流过LED的电流大小决定了它的发光强度,R为限流电阻。适当减小限流电阻可以增加LED的工作电流,使LED的显示效果更好。但工作电流过大,会对驱动器件、LED造成损害。通常每个段笔画要串一个数百欧姆的降压电阻。下图为单个LED的驱动接口电路。

4.LED数码管的显示与驱动 LED数码管显示器的工作方式:静态和动态两种显示方式。 (1)静态显示方式 静态显示方式的各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。其特点是显示稳定,无闪烁,用元器件多,占I/O线多,无须扫描。系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,节省CPU时间,提高CPU的工作效率,编程简单。 [例题] 利用在8051串行口扩展多片串行输入并行输出的移位寄存器74LS164作为静态显示器接口的方法,设计3位静态显示器接口,并写出显示更新子程序,实现将7FH~7DH 3个单元的数值分别显示在3位LED2~LED0上。

解:接口电路如图下图所示。3个共阳极数码管的公共端均接Vcc,段码通过串行口,采用串—并转换原理,分别送出3个数码管的段码(先送出的段码字节在LED2数码管上显示),图中的电阻值取100~500。

程序如下: ORG 1000H DISPSER: MOV R5, #03H ; 显示3个字符 MOV R1, #7FH ; 7FH~7DH存放要显示的数据 DL0: MOV A, @R1 ; 取出要显示的数据 MOV DPTR, #STAB ; 指向段数据表 MOVC A, @A+DPTR ; 查表取字形数据 MOV SBUF, A ; 送出数据,进行显示 JNB T1, $ ; 输出完否? CLR T1 ; 输出完,清中断标志 DEC R1 ; 再取下一个数据 DJNZ R5, DL0 ; 循环3次 RET ; 返回 STAB: DB 0C0H, 0F9H, 0A4H, 0B0H; 段数据表(共阳极) DB · …… …… END

(2)动态显示方式 动态显示方式是指一位一位地轮流点亮每位显示器,与各数码管接口的I/O口线是共用的。其特点是有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂。 [例题]设计89S51通过74LS273扩展6位七段共阳极LED显示器。 解:接口电路如下页图所示。在程序中通过P0口将相应的字形码写入74LS273,P2.0~P2.5作为段码输出口, P0口的端口地址为00FFH。进行扫描时,P2的低6位依次置1,依次选中了从左至右的显示器。使用74LS04作为段码输出驱动(反相驱动),所以共阴极数码管在段数据表中的字形码应与共阳极数码管的字形码相同。显示器就可以显示出6位字符。

说明:1、单片机WR引脚要与273的CLK连接 2、273的CLR引脚要与VCC连接 3、DPTR值不一定是7FFFh,用FFH可消除闪烁

6.2.2 LCD显示器及其接口 液晶显示器简称LCD(Liquid Crystal Diodes)是利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。其特点是体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有着日益广泛的应用。 1.LCD的分类及特点 分类:笔段式和点阵式(可分为字符型和图像型)。 笔段式LCD显示器:类似于LED数码管显示器。每个显示器的段电极包括a, b, c, d, e, f, g七个笔划(段)和一个背电极BP(或COM)。可以显示数字和简单的字符。 点阵式LCD显示器:段电极与背电极呈正交带状分布,液晶位于正交的带状电极间。点阵式LCD的控制一般采用行扫描方式,如图右所示为显示字符“A”的情况。

3.LCD显示模块LCM (Liquid Crystal Display Module) 在LCD的公共极(一路为背电极)加上恒定的交变方波信号,通过控制段极的电压变化,在LCD两极间产生所需的零电压或二倍幅值的交变电压,以达到LCD亮、灭的控制。在笔段式LCD的段电极与背电极间施加周期地改变极性的电压(通常为4 V或5 V),可使该段呈黑色。 3.LCD显示模块LCM (Liquid Crystal Display Module) 在实际应用中,用户很少直接设计LCD显示器驱动接口,一般是直接使用专用的LCD显示驱动器和LCD显示模块LCM 。 LCM是把LCD显示屏、背景光源、线路板和驱动集成电路等部件构造成一个整体,作为一个独立部件使用。其特点是功能较强、易于控制、接口简单,在单片机系统中应用较多。其内部结构如下页图所示。 LCM一般带有内部显示RAM和字符发生器,只要输入ASCII码就可以进行显示。

LCD显示器接口原理 1.LCD的基本结构及工作原理 图 液晶显示器基本结构

液晶字符显示屏 液晶图形点阵显示屏

LCD显示模块LCM按显示功能可分为:LCD段式显示模块、LCD字符型显示模块、LCD图形显示模块三类。 HD44780字符显示模块是较常用的LCD显示模块,共有14个引脚,其中,8个数据引脚,3个控制引脚,3个电源引脚。每个HD44780可控制的字符可达每行80个,具有驱动16×40点阵的能力。具有其自身的11条指令构成的指令系统,用户对模块写入适当的控制命令,即可完成清屏、显示、地址设置等操作。

各引脚功能定义如下表所示。

[例题] 设计8051单片机驱动HD44780显示模块的接口电路。 解:8051单片机与HD44780显示模块的线路连接如下图所示,8051的P1口与HD44780的数据线相连,HD44780的 端信号由8051的P3.5提供,HD44780的通信允许信号E由8051的P3.3提供,HD44780的寄存器选择信号RS由8051的P3.4提供。 HD44780初始化的方法主要有以下两种: (1)利用模块内部的复位电路进行初始化,完成清除显示、功能设置、开/关显示、设置光标状态及闪烁功能、方式设置。 (2)利用软件编程实现初始化。

1602液晶显示模块接线图(16字符×2行)

6.3 利用MCS-51的串行口实现键盘和显示器接口 1.接口电路 应用MCS-51单片机的串行口方式0的输出方式,在串行口外接移位寄存器74LS164,构成键盘和显示器接口,其硬件接口如下页图所示(图中只画出三位LED静态显示和16个按键,用户根据需要可以扩展)。采用静态显示,软件设计比较简单,节约CPU的资源。

2.软件设计 显示子程序如下: ORG 1000H DSPSER: SETB P3.3 ; 开放显示输出 MOV R7, #03H ; 送出的显示段码个数 MOV R0, #7FH ; 7FH~7DH为显示缓冲区 DSPS1: MOV A, @R0 ; 取出要显示的数据 ADD A, #0DH ; 加上偏移量 MOVC A, @A+PC ; 查段码表TAB1 MOV SBUF, A ; 经过串行口将段码送出 DSPS2: JNB TI, DSPS2 ; 数据发送完? CLR TI DEC R0 ; 指向下一个数据单元 DJNZ R7, DSPS1 ; 三个显示器是否全部显示? CLR P3.3 ; 三个数据显示完,关闭送显示数据通道 RET TAB1: DB …… ; 段码表

键盘扫描子程序如下: KEYS1: MOV A,#00H MOV SBUF, A ; 扫描键盘全部输出0 KSY0: JNB TI, KSY0 ; 数据发送完? CLR TI KSY1: JNB P3.4, PKS1 ; 有键闭合吗?有则转PKS1处理 JB P3.5, KSY1 ; 第二行有键闭合吗? PKS1: ACALL DELAY10 ; 调用延时10ms子程序,键盘去抖 JNB P3.4, PKS2 ; 有键闭合吗? JB P3.5, KSY1 ; 无键闭合,是抖动 PKS2: MOV R7, #08H ; 不是抖动引起的 MOV R6, #0FEH ; 判断是哪个键按下? MOV R3, #00H MOV A, R6 KSY2: MOV SBUF, A KSY3: JNB TI, KSY3 ; 等待串行口发送完 CLR TI JNB P3.4, PKONE ; 是第一行的某键按下? JB P3.5, NEXT ; 是第二行的某键按下? MOV R4, #08H ; 第二行有键按下 AJMP PKS3 PKONE: MOV R4, #00H ; 第一行有键按下

6.3.3 利用专用芯片实现键盘和显示器接口 PKS3: MOV SBUF, #00H ; 等待键的释放 KSY4: JNB TI, KSY4 ; CLR TI KSY5: JNB P3.4, KSY5 ; 是第一行的某键按下? JNB P3.5, KSY5 MOV A, R4 ADD A, R3 RET NEXT: MOV A, R6 ; 判断下一列是否有键按下 RL A MOV R6, A INC R3 DJNZ R7, KSY2 ; 8列是否全部扫描完? AJMP KEYS1 ; 扫描完成 DELAY10: ; 延时10ms子程序 …… END 6.3.3 利用专用芯片实现键盘和显示器接口 键盘的处理和显示的处理可由专用芯片完成,键盘和显示器管理专用芯片种类较多,常用的键盘和显示器管理专用芯片有Intel公司的8279芯片,可实现64个按键、 16位LED显示器的管理。

6.4 MCS-51单片机功率驱动接口技术 6.4.1 扩大驱动电流的方法 在由单片机组成的控制系统中,大多数外围电路是处于各种各样的复杂环境中,如控制对象可能处于大电流、高电压的情况。控制的执行机构可能是电动机、继电器或电磁铁等大功率机构。因此,单片机不可能和这些外部机构直接连接。通常必须采取两个基本措施:一是采用隔离的方法把单片机的工作环境与外电路隔离开来;另一种是采用电流接续的办法扩大输出电流的能力,以驱动各种外电路。 6.4.1 扩大驱动电流的方法 1、采用晶体三极管扩大输出电流 2、采用带驱动电路的逻辑门扩大驱动电流 3、采用达林顿管作驱动器扩大驱动电流 下面分别给出具体电路图

1、三极管

三极管的概述 半导体三极管也称为晶体三极管,可以说它是电子电路中最重要的器件。它最主要的功能是电流 放大和开关作用。 三极管顾名思义具有三个电极。二极管是由一个PN结构成的,而三极管由两个PN结构成,共用的一个电极成为三极管的基极(用字母b表示)。其他的两个电极成为集电极(用字母c表示)和发射极(用字母e表示)。由于不同的组合方式,形成了一种是NPN型的三极管,另一种是PNP型的三极管。 三极管 的种类很多,并且不同型号各有不同的用途。三极管大都是塑料封装或金属封装,常见三极管的外观如图,大的很大,小的很小。三极管的电路符号有两种:有一个箭头的电极是发射极,箭头朝外的是NPN型三极管,而箭头朝内的是PNP型。实际上箭头所指的方向是电流的方向。   电子制作中常用的三极管有9 0× ×系列,包括低频小功率硅管9013(NPN)、9012(PNP),低噪声管9014(NPN),高频小功率管9018(NPN)等。它们的型号一般都标在塑壳上,而样子都一样,都是TO-92标准封装。

半导体三极管的管脚判别 在安装半导体三极管之前,首先搞清楚三极管的管脚排列。一方面可以通过查手册获得,另一方面也可利用电子仪器进行测量,下面讲一下利用万用表判定三极管管脚的方法。首先判定PNP型和NPN型晶体管:用万用表的R×1kW(或R×100W)档,用黑表笔接三极管的任一管脚,用红表笔分别接其他两管脚。若表针指示的两阻值均很大,那么黑表笔所接的那个管脚是PNP型管的基极;如果万用表指示的两个阻值均很小,那么黑表笔所接的管脚是NPN型的基极;如果表针指示的阻值一个很大,一个很小,那么黑表笔所接的管脚不是基极。需要新换一个管脚重试,直到满足要求为止。进一步判定三极管集电极和发射极:首先假定一个管脚是集电极,另一个管脚是发射极;对NPN于型三极管,黑表笔接假定是集电极的管脚,红表笔接假定是发射极的管脚(对于PNP型管,万用表的红、黑表笔对调);然后用大拇指将基极和假定集电极连接(注意两管脚不能短接),这时记录下万用表的测量值;最后反过来,把原先假定的管脚对调,重新记录下万用表的读数,两次测量值较小的黑表笔所接的管脚是集电极(对于PNP 型管,则红表笔所接的是集电极)。

2、逻辑门

3、达林顿管ULN2003

内部逻辑电路图

例题:设计使单片机唱歌的程序 ;在接在单片机的P2.0上的小喇叭唱八月桂花香实验 ;本实验源程序如下: ;***************************************************** ;* Date : 2004.4.20 --------------------------------------------------* ;* Support Mb:0735-2197559 E-mail:c51cn@163.com -------* ;* Create by :dengdewu http://www.c51.cn 更多例程请登陆网站--* ;* 网站单片机学习资料同步更新,敬请新老朋友随时关注 ---* ;****************************************************** ORG 0000H LJMP START ORG 000BH ;中断入口 INC 20H ;中断服务程序,中断计数器加1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M晶振,形成10毫秒中断 RETI

START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H ;设定定时器工作方式 MOV IE,#82H MUSIC0: NOP MOV DPTR,#DAT ;表头地址送DPTR MOV 20H,#00H ;中断计数器清0 MOV B,#00H ;表序号清0 MUSIC1: NOP CLR A MOVC A,@A+DPTR ;查表取代码 JZ END0 ;是00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5: NOP

MOV R6,A INC DPTR MOV A,B MOVC A,@A+DPTR ;取节拍代码送R7 MOV R7,A SETB TR0 ;启动计数 MUSIC2: NOP CPL P2.0 MOV A,R6 MOV R3,A CPL A MOV P1,A ;显示(修改者加入的显示) CPL A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否? ;不等,则继续循环 MOV 20H,#00H ;等于,则取下一代码 INC DPTR LJMP MUSIC1

MUSIC3: NOP CLR TR0 ;休止100毫秒 MOV R2,#0DH MUSIC4: NOP MOV R3,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 END0: MOV R2,#64H ;歌曲结束,延时1秒后继续 MUSIC6: MOV R3,#00H LCALL DEL DJNZ R2,MUSIC6 LJMP MUSIC0 DEL: ;延时子程序 NOP DEL3: MOV R4,#05H DEL4: NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RET

DAT: ;数据表格存放在ROM中。 DB 18H, 30H, 1CH, 10H,20H, 40H, 1CH, 10H, 18H, 10H, 20H, 10H DB 1CH, 10H, 18H, 40H,1CH, 20H, 20H, 20H, 1CH, 20H, 18H, 20H DB 20H, 80H, 0FFH,20H,30H, 1CH, 10H, 18H, 20H, 15H, 20H, 1CH DB 20H, 20H, 20H, 26H,40H, 20H, 20H, 2BH, 20H, 26H, 20H, 20H DB 20H, 30H, 80H, 0FFH,20H, 20H, 1CH, 10H, 18H, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H, 30H, 20H, 2BH, 40H, 20H, 20H, 1CH, 10H DB 18H, 10H, 20H, 20H, 26H, 20H, 2BH, 20H, 30H, 20H, 2BH, 40H DB 20H, 30H, 1CH, 10H,18H, 20H, 15H, 20H, 1CH, 20H, 20H, 20H DB 26H, 40H, 20H, 20H, 2BH, 20H, 26H, 20H, 20H, 20H, 30H, 80H DB 20H, 30H, 1CH, 10H,20H, 10H, 1CH, 10H, 20H, 20H, 26H, 20H DB 2BH, 20H, 30H, 20H,2BH, 40H, 20H, 15H, 1FH, 05H, 20H, 10H DB 1CH, 10H, 20H, 20H,26H, 20H, 2BH, 20H, 30H, 20H, 2BH, 40H DB 20H, 30H, 1CH, 10H,18H, 20H, 15H, 20H, 1CH, 20H, 20H, 20H DB 26H, 40H, 20H, 20H,2BH, 20H, 26H, 20H, 20H, 20H, 30H, 30H DB 20H, 30H, 1CH, 10H,18H, 40H, 1CH, 20H, 20H, 20H, 26H, 40H DB 13H, 60H, 18H, 20H,15H, 40H, 13H, 40H,18H, 80H, 00H END

例题2:使继电器按一下按键就吸合,放开按键就不吸合的程序。P2.0接继电器,P1.2接继电器合灯,P1.4接继电器断开灯。 程序设计如下: org 00h ;源程序起始地址 jmp main ;跳转到MAIN org 0050h ;主程序开始地址 main: clr p2.0 ;关继电器和灯 clr p1.2 ;灯1灭 setb p1.4 ;灯2亮

loop: jb p3.6,lop1 ;键没按下则去lop1 setb p2.0 ;否则继电器吸合 setb p1.2 ;灯1亮 clr p1.4 ;灯2灭 jmp lop2 lop1: clr p2.0 ;继电器松开 clr p1.2 ;灯1灭 setb p1.4 ;灯2亮 lop2: nop ajmp loop ;循环 ret end

作业与练习: 6.1 6.4 6.5 6.6 6.9 6.12 6.13 6.14