论文导读:驱动程序:由PLC程序配合其3个输出触点(Y0—Y2)实现。数码管由8个发光二极管(以下简称字段)构成。是初始化MAX7219控制寄存器。本文设计了一种简单的PLC显示器。显示器,基于MAX7219的PLC数码管显示器。
关键词:PLC,MAX7219,数码管,显示器
前言:
现代PLC以集成度高、功能强、抗干扰能力强、组态灵活、工作稳定等优MAX7219的典型应用硬件电路点受到普遍欢迎,在传统工业的现代化改造中发挥越来越重要的作用。论文大全,显示器。PLC作为工业计算机,显示器方面通常采用人机界面模块。笔者考虑到人机界面的成本偏高,设计了一种成本低的显示器,当然没有人机界面那么人性化,而只能显示PLC数据寄存器的内容,但在显示要求不高和低成本的设备中,却是正好满足要求。笔者设计的思路是:
(1)、显示硬件:选用八段数码管(本文只介绍8位)
(2)、驱动硬件:选用MAX7219芯片
(3)、驱动程序:由PLC程序配合其3个输出触点(Y0—Y2)实现。
(4)、显示效果:0~9、—、E、H、L、P和blank(即不显示),8位均可带小数点显示。
正文:
1、显示硬件——八段数码管的简介
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 ~9、字符“—”、E、H、L、P及小数点“.”。
(注:本文选用8个8段LED数码管作为显示器。)
2、显示驱动——MAX7219芯片
2-1、工作时序图及工作原理。

时序图(图3)说明:首先PLC对芯片LOAD脚发送低电平信号,接着PLC对芯片的DIN脚输出一位数据(D15),再接着对芯片的CLK脚发送第一个脉冲(P1),而在P1的上升沿,芯片会读取DIN脚的数据(D15),移入到其内部的寄存器中,同理,紧跟着下一位D14数据也在下一个时钟上升沿时被移入芯片的内部寄存器。直到第16位数据(D0)被移入内部寄存器的同时或之后,在第下一个时钟上升沿之前这段时间内(图3的TLOAD),PLC必须送给芯片的LOAD脚一个高电平,否则,之前通信的D15~D0这16位数据将会全部丢失。论文大全,显示器。DOUT在级联MAX7219时会用到,在这里不作说明。
2-2、(16位)数据格式
表1:MAX7219的数据格式 |
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
x |
x |
x |
x |
address |
MSB DATA LSB |
说明:D15~D12是无关位,一般通信时设置为1111。
2-3、内部寄存器地址分配及其初始化
表2:内部寄存器地址分配 |
寄存器名称 |
地址分配 |
D15~D12 |
D11 |
D10 |
D9 |
D8 |
空操作 |
 |
0 |
0 |
0 |
0 |
DIG0 |
 |
0 |
0 |
0 |
1 |
DIG1 |
 |
0 |
0 |
1 |
0 |
DIG2 |
 |
0 |
0 |
1 |
1 |
DIG3 |
 |
0 |
1 |
0 |
0 |
DIG4 |
 |
0 |
1 |
0 |
1 |
DIG5 |
 |
0 |
1 |
1 |
0 |
DIG6 |
 |
0 |
1 |
1 |
1 |
DIG7 |
 |
1 |
0 |
0 |
0 |
译码方式 |
 |
1 |
0 |
0 |
1 |
显示亮度 |
 |
1 |
0 |
1 |
0 |
扫描范围 |
 |
1 |
0 |
1 |
1 |
关闭 |
 |
1 |
1 |
0 |
0 |
显示测试 |
 |
1 |
1 |
1 |
1 |
2-4、译码控制寄存器及其初始化。
2-4-2、初始化数据:详细的译码方式见下表
表3:译码寄存器数据格式 |
DECODE MODE |
REGISTER DATA |
HEX CODE |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
No decode for 7~0 digits |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
Code B decode for digit 0 Not decode for digits 7~1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
01 |
Code B decode for digits 3~0 No decode for digits 7~4 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0F |
Code decode for digits 7~0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
FF |
本文选择7~0位都采用B CODE 译码方式,故初始化该寄存器的数据是HFF。综上所述,初始化译码控制寄存器的数据为:D15~D0=HF9FF,将其存入PLC数据寄存D1中:LD M8002;MOV HF9FF D1
3、硬件电路
3-1、MAX7219的典型应用硬件电路


3-2、PLC与MAX7219的连接如图6所示。论文大全,显示器。电阻起限流作用。论文大全,显示器。
 
4、驱动程序的编写。
分为两部分,一是初始化MAX7219控制寄存器,二是发送待显数据。
4-1、I/O分配表:
表4:PLC的I/O分配表 |
输入分配 |
输出分配 |
|
|
Y0 |
接MAX7219的DIN脚 |
|
|
Y1 |
接MAX7219的LOAD脚 |
|
|
Y2 |
接MAX7219的CLK脚 |
4-2、PLC内部元件分配表
表5:PLC的内部元件分配表 |
PLC的寄存器 |
功能分配和15bit~8bit取值 |
7bit~0bit取值 |
说明 |
D1: |
初始化译码方式寄存器HX9 |
HFF |
全B CODE译码 |
D2: |
初始化亮度显示寄存器HXA |
HFA |
X0~XF亮度等级 |
D3 |
初始化扫描界限寄存器HXB |
HFF |
8位全部扫描 |
D4 |
初始化关断模式寄存器HXC |
HFF |
0bit=1,正常工作 |
D5 |
初始化显示测试寄存器HXF |
HFE |
0bit=0,正常工作 |
D0 |
待显数据,例如第3位数码管(即DIG 2),值为:HF3 |
例如显示5,则值为:H75。其中bit7为小数点,bit6~bit4无关位。 |
4-3、关键部分指令程序的编写。
LD M8002
MOV H0F9FF D1
MOV H0FAFA D2
MOV H0FBFF D3
MOV H0FCFF D4
MOV H0FFFE D5
LDI C1
ANDP M8012
ROL D1 K1
MPS
AND M8022
OUT Y0
MPP
OUT C1 K16
OUT Y1
ANDP C1
OUT Y2
LD C1
ANI C2
ANDP M8012
ROL D2 K1
MPS AND M8022
OUT Y0
MPP
OUT C2 K16
OUT Y1
ANDP C2
OUT Y2
END
5、结论
本文设计了一种简单的PLC显示器,虽然没有PLC触摸屏那么功能强大,但在很多应用场合,能用8位数码管显示PLC元件内部数据已经能满足需要了。论文大全,显示器。另外本设计只占用了PLC的3个输出触点,不需要占用PLC的串行通信口,就达到了显示8位数据的效果。论文大全,显示器。而且通过级联MAX7219芯片可以增加显示LED的数位。
参考文献:
《PLC原理及应用》,华南理工大学出版社
MAX7219(中英文)说明书
|