您当前的位置:五五电子网电子知识单片机-工控设备51单片机矩阵式键盘的连接方法和工作原理 正文
矩阵式键盘的连接方法和工作原理

矩阵式键盘的连接方法和工作原理

点击数:7299 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   51单片机
阳极 hgfedcba 各段为 01110011 时 显示器就显示 P 字符 即 P”字符的字形码是 73H 而如果是共 阳极 LED 显示器 公共阳极接高电平 显示 P”字符的字形代码应为 100011008CH这里必须注意 

的是 很多产品为了方便接线 常常不按照规则的方法去对应字段与位的关系 这时字形码就必须根据

接线来自行设计了 后面我们会给出一个例子让大家参考 那么数码管和 单片机 又是如何连接的呢 请 继续往下看



 

90

---------------- 

 

二 LED 数码管的静态显示方法

在 单片机 的应用系统中 数码管显示器的显示常采用两种方法 静态显示和动态扫描显示 所谓 静态显示 就是把多个 LED 显示器的每一段与一个独立的并行口连接起来 而公共端则根据数码管的种 类连接到 VCC 或 GND 端 这种连接方式的每一个显示器都要占用一个单独的具有锁存功能的 I/O 端口 用于笔划段字形代码 单片机只需把要显示的字形代码发送到接口电路 就不用再管它了 直到 要显示新的数据时 再发送新的字形码 因此 使用这种方法当显示位数较多时单片机中 I/O 口的开销 很大 需要提供的 I/O 接口电路也较复杂 但它具有编程简单 显示稳定 CPU 的效率较高的优点

下面我们以常用的串-并转换电路 74LS164 为例 介绍一种常用的静态显示电路 以使大家对静态 显示有一个基本的了解 请看下面的电路图























MCS-51  单片机 串行口方式称为移位寄存器方式 外接 6 片 74LS164 作为 6 位 LED 显示器的静态显

示接口 我们把 单片机 的 RXD 作为数据输出线 TXD 作为移位时钟脉冲 74LS164 为 TTL 单向 8 位移位 寄存器 可实现串行输入 并行输出 其中 A B1 2 脚为串行数据输入端 2 个引脚按逻辑 与

运算规律输入信号 只有一个输入信号时可并接 T8 脚为时钟输入端 可连接到串行口的 TXD 端

每一个时钟信号的上升沿加到 T 端时 移位寄存器移一位 8 个时钟脉冲过后 8 位二进制数全部移入

74LS164 中 R9 脚为复位端 当 R=0 时 移位寄存器各位复 0只有当 R=1 时 时钟脉冲才起作

用 Q1 Q8 3-6 脚和 10-13 脚 为并行输出端 分别接到 LED 显示器的 hgfedcba 各段对应的引脚上

关于 74LS164 还可以作如下的介绍 所谓时钟脉冲端 其实就是需要高 低 高 低的脉冲 不 管这个脉冲是怎么来的 比如 我们用根电线 一端接 T 一端用手拿着 分别接高电平 低电平 那

也是给出时钟脉冲 在 74LS164 获得时钟脉冲的瞬间再讲清楚点 是在脉冲的前沿如果数据输入 端1 2 脚是高电平 则就会有一个 1 进入到 74LS164 的内部 如果数据输入端是低电平 则就

会有一个 0 进入其内部 在给出了 8 个脉冲后 最先进入 74LS164 的第一个数据到达了最高位 然

后再来一个脉冲会有什么情况发生呢 第一个脉冲就会从最高位移出 就象车站排队买票 栏杆就那么

长 要从后面进去一个人 就必须要从前面走出去一个人才行

搞清了这一点 让我们再来看电路图电路图在后面的附录中6 片 74LS164 首尾相串 而时钟 端则连接在一起 这样 当第一次输入 8 个脉冲时 从 单片机  RXD 端输出的数据就进入到了第一片 74LS164

中了 而当第二次 8 个脉冲到来后 这个数据就进入到了第二片 74LS164 新的数据则进入了第一片

74LS164 中 这样 当第六次 8 个脉冲完成后 首次送出的数据被送到了最左面的 74LS164 中 其他 的数据则依次出现在第一 二 三 四 五片 74LS164 中 这里有个问题 在第一次 8 个脉冲到来时

除了第一片 74LS164 中接收数据外 其他各片在干吗呢 它们也在接收数据 因为它们的时钟端都是被 接在一起的 可是数据还没有送到其他各片呢 它们在接收什么数据呢 其实所谓数据不过是一种说法 而已 它实际上就是电平的高或低 当第一次 8 个脉冲到来时 第一片 74LS164 固然是从 单片机 接收数

 

91


---------------- 

 

据了 而其它各片也接到前一片的 Q8 上 而 Q8 是一根电线 在数字电路中它只可能有两种状态 低电 平或高电平 也就是 0”和 1” 所以它的下一片 74LS164 也相当于是在接收数据 只是接收的全部是

0 或 1 而已 这个问题放在这儿来讲 可能有的朋友不屑一顾 而有的朋友可能还是不清楚 这 实际上涉及到数的本质的问题 如果不懂 请并回到前面的内容再仔细的复习一遍 或找一些数字电路 方面的书籍看一下 理解了 74LS164 的工作原理 再来看这个问题就会变得简单多了 这里就算给大家 留个习题吧 希望大家务必把 74LS164 的工作原理搞清楚 搞懂了这一点 您的级别就超过初级了 变 成中级了

接下来让我们做一个实验 做这个实验也需要一套附件 这套附件由于大家只用一次 所以各位 可以到我这儿来借 同样免费使用 不过还是那句老话 请各位多多爱惜哦 不要把它搞坏了

我们把附件的两根线连接到实验板的 P3 口扩展插座和实验仪的电源接口上 先看实验要求

输入 把要显示的数分别放在显示缓冲区 60H-65H 共 6 个单元中 并且分别对应各个数码管

LED1-LED6

输出 将预置在显示缓冲区中的 6 个数转换成相应的显示字形码 然后输出到显示器中显示出来

程序如下

ORG 0000H ; AJMP START ; ORG 30H ; START: MOV  SP,#6FH;

MOV
65H,#0
;

MOV
64H,#1
;

MOV
63H,#2
;

MOV
62H,#3
;

MOV
61H,#4
;

MOV
60H,#5
;


LCALL DISP ; SJMP $ ;

DISP: MOV  SCON,#00H ;初始化串行口方式 0

MOV
R1,#06H
;显示 6 位数

MOV
R0,#65H
;60H-65H 为显示缓冲区

MOV
DPTR,#SETTAB
;字形表的入口地址



LOOP: MOV  A,@R0 ;取最高位的待显示数据

MOV C A,@A+DPTR ;查表获取字形码 MOV SBUF,A ;送串口显示 DELAY:JNB TI,DELAY ;等待发送完毕

CLR
TI
;清发送标志


DEC
R0
;指针下移一位
准备取下一个待显示数

DJNZ
R1,LOOP
;直到 6 个数据全显示完


RET

;





SETTAB: ;字形表 前面有介绍 后面我们会介绍字形表的制作

DB 03H,9FH,27H,0DH,99H,49H,41H,1FH,01H,09H,0FFH; END

如果按图示数码管排列 则以上程序将显示 543210

不过我们的实验板是做不了这个实验的 为什么 我们稍候再讲 先让我们来讲解一下字形表的 制作问题 先就上述标准的图形来做 写出数据位和字形的对应关系并列一个表如下共阳接法 也就

是输出为 0 时笔段亮

 

92


---------------- 

 

怎么样 不算复杂吧 就是这样列个表格 根据要求0 亮 1 灭写出相应位的 0 和 1

就可以了 接着练习一下 写出显示 A-F 的字形码


数据位
 D7
 D6
 D5
 D4
 D3
 D2
 D1
 D0
 字型码
 
笔段位
 A
 B
 C
 D
 E
 F
 G

上一页  [1] [2] [3] [4]  下一页


本文关键字:工作原理  键盘  51单片机单片机-工控设备 - 51单片机