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

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

点击数:7299 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   51单片机

MOV  temp,#0

next: ljmp stlop

;显示子程序

display:  MOV  a,temp ;将 temp 中的十六进制数转换成 10 进制

MOV  b,#10 ;10 进制/10=10 进制

div ab

MOV  b_bit,a ;十位在 a mov a_bit,b ;个位在 b

MOV  dptr,#numtab ;指定查表启始地址

MOV  r0,#4

dpl1:  MOV  r1,#250 ;显示 1000 次

dplop:  MOV  a,a_bit ;取个位数

MOV C A,@A+DPTR ;查个位数的 7 段代码

 

95


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

 

MOV  p2,a ;送出个位的 7 段代码

clr p0.7 ;开个位显示 acall d1ms ;显示 1ms setb p0.7

MOV  a,b_bit ;取十位数

MOV C A,@A+DPTR ;查十位数的 7 段代码

MOV  p2,a ;送出十位的 7 段代码

clr p0.6 ;开十位显示 acall d1ms ;显示 1ms setb p0.6

djnz r1,dplop ;100 次没完循环

djnz r0,dpl1 ;4 个 100 次没完循环

ret

;*************************1MS 延时(按 12MHz 算)************************ D1MS:  MOV  R7,#50 ;

D1: MOV  R6,#200 ; D2:DJNZ R6,$ ; DJNZ R7,D1

RET

numtab: db DB 0EEH 28H 0CDH 6DH 2BH 67H 0E7H 2CH 0EFH 2FH

END

细心的朋友可能看出来了 这段指令中有的是用大写字母来写的 而有的是用小写字母来写的

有什么区别吗 在 KEIL C51 中用汇编写程序的时候是不区分大小写的 你完全可以根据自己的书写习 惯来写 不过标号是不能前面的用大写 后面的用小写 这样编译时会出错 好了 不多说了 你还是 自己试试吧

这段程序可以完成从 0-99 的显示循环 当然在实际的产品中 不可能只显示两个数字不做其他的

事 不过程序的结构和思路是没有问题的

从上面的程序中我们可以看出 与静态扫描相比 动态扫描的程序稍微有点复杂 但这是值得的

因为它可以大大节省 单片机 的 I/O 口线资源 所以在实际的工程应用中几乎都采用动态扫描的方法来进 行数码管的显示 我们的这个程序也具有一定的通用性 只要改变端口的值及计数器的值就可以显示更 多的位数了

不过正如我前面所说的那样  单片机 的程序设计在实际应用中还会考虑很多的其他问题 所以这 一课的内容同样只是给大家以后的学习打一个基础 倒是下面的 LED 数码管的选择原则和驱动方法大家 有必要了解一下

二 LED 数码管的选择和驱动

LED 数码管是 单片机 人机界面输出中用的最多也是最简单的显示方式 由于单片机口线的驱动能 力是有限的 所以如何来选择和驱动 LED 数码管是单片机初学者的基本功 下面就来给大家介绍一下

前面我们已经讲过 LED 数码管有两种连接方法 一种是共阳接法 一种是共阴接法 在 单片机

的应用中 对于共阳接法 我们一般把它叫做 接电源 方法 即把 COM 端接 VCC通过控制 COM

端引脚电平的高低来达到片选的目的 而对于共阴接法 则通常叫做 接地 方法 即把 COM 端接 GND

由于受 单片机 口线驱动能力的限制 采用直接驱动的方法 只能连接小规格的 LED 数码管 目前 市场上有一种高亮度的数码管 每段工作电流约为 2-3mA 这样当 LED 全亮时 工作电流在 10-20mA 左

右 是普通数码管的 1/5 正好能用 单片机 的口线直接驱动 因此在条件允许的情况下 应尽量采用这

种 LED 数码管作为显示器件

当然如果想用更高亮度或更大尺寸的数码管来作为显示器件 比如户外的电子钟 大型广告牌等

 

96


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

 

等 就必须采用适当的扩展电路来实现与 单片机 的接口 常用的接口元件可以是三极管 集成电路和专 用芯片等

三极管的规格可以根据数码管所需的驱动电流大小进行选择 电流比较小的可以用 9013 8550 等小功率晶体管 电流比较大的则可以用 TIP217 等大功率三极管 而当显示器的位数较多时 一般也 会采用集成电路来作接口 此类集成电路有 2003 2803 7406 75452 等 它们的功能其实就是由多路 晶体管组成的达林顿电路具体电路请大家自己找一些相关的资料查一下 另外还可以使用一种叫译码/

驱动器的芯片 这种芯片能将二-十进制码BCD 码译成七段码a-g以驱动数码管 采用这种芯片 的最大好处是编程简单 并且能提高 CPU 的运行效率 如 CD4511 或 74LS47 等就是此类芯片不过 它

们的驱动能力也是有限的 具体数据请参考有关的 DS 介绍






勘误 真是不好意思 左面的这个图又画错了 四个三极管应该用来驱动片选端 而不是位选

端 请大家千万别照抄 不然出了问题可不要来找我哦 *^*

近几年来 国内外厂商还开发了许多基于串行总线SPI和 I2C 总线方式的 LED 接口芯片 这些 芯片采用 SPI 总线或 I2C 总线方式与 单片机 进行通讯 具用占用单片机口线少 程序易于实现的特点

比如美信的 MAX7219 力源的 PS7219SPI 总线和 SAA1064I2C 总线等 有些芯片还集成了键盘控 制器 可以实现键盘和显示的双重功能 如 zlg7289 等 关于这方面的内容请您自己找一些相关的资料

来看一下

其实 除了数码管显示外 在实际的工程应用中  单片机 还有很多的显示方法 其中比较常用的 就是液晶显示器 液晶显示器是一种低压低功耗的显示器件 它的工作电压一般只要几伏 工作电流仅 有几个微安 是任何数码管显示器件所无法比拟的 除此之外 液晶显示器的最大优点就是可以显示文

字 图形和曲线 与传统的数码管显示器相比 显示界面有了质的提高 采用点阵式的液晶显示器配合 大规模集成电路能够显示大量的信息 目前已经广泛使用在各类中高档仪器仪表及家用电器中 比如数 字万用表 手机 数码相机等等 不过它的使用方法与编程就比较复杂了 我们只有等到下册中再来给 大家讲解了



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


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