阳极 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单片机