给你个例子:
点阵图文屏通讯协议
通讯
(1)232口通讯:8位数据位, 1位停止位, 标志效验, 波特率为19200
通讯顺序为:
1、 先初始化232端口。
2、 传送屏参数设置帧。
3、 传送屏功能设置帧。
4、 传送显示属性帧。
5、 传送点阵数据帧
传送每一屏的全部“点阵数据”,按顺序传送完每一幕数据。
点阵数据处理:从左到右,从上到下,每8点为1字节。
对于双色屏,同时传送红色、绿色。
6、 送开始显示命令帧04。
主要功能帧定义:
(0x06)回传接收帧:1字节回传
通讯头,任何一帧通讯必需要。(6字节)
1 2 3 4 5 6
0x5a 0xa5 len addr snum Command
说明:
0x5a,0xa5 两个起始标志字节。
Len 每帧长度:从1开始,长度不超过250个字节。
Addr屏号: 0-255,其中0是广播方式
Snum通讯包计数:0-255,通讯包序号,从0开始,每次发送完成加1,重发的数据序号不变。
Command:命令字节标志。
CheckSum 校验和,从起始字节到校验和之前的所有字节的异或。
应答:接收成功返回1字节:0x06。
屏复位功能(0A)
1 2
通讯头 功能值 CheckSum
功能值:0-复位,1-开机,2-关机
屏参数设置帧(0B)
1 2 3 4 5 6 7 8 9
通讯头 卡型号 W高位 W低位 H高位 H低位 颜色 扫描 亮度
10 11 12 13 14 15 16 17 18 19 20
极性 保留 保留CheckSum
卡型号:(区别不同存储类型)
颜色:0-单色,1-双色,2-三色 ,3-256级灰度
扫描:0-1/16,1-1/8,2-1/4
亮度:0-7级
屏功能设置帧(0C)
1 2 3 4 5 6 7 8 9
通讯头 开机时 开机分 关机时 关机分 保留 保留 保留 保留 CheckSum
时钟帧(0x0E)
1 2 3 4 5 6 7 8
通讯头 秒 分 时 日 月 星期 年 CheckSum
时间数据以10进制的方式表示。例如10进制的25分,表示成16进制是 25h。
发送成功返回 0x06
◆ 显示属性帧(0x0F)
1 2 3 4 5 6 7 8
通讯头 引入方式 引入速度 追加方式 停留时间 引出方式 时钟方式 显示时钟 时钟
停留时间 ….. CheckSum
7、 显示时钟:
0 不显示
1 年-月-日 星期
2 时:分:秒 温度
3 年-月-日 星期 时:分:秒
点阵数据帧(0x10)
1 2 3 …
通讯头 点阵数据 点阵数据 点阵数据 … CheckSum
;每屏的数据 横向取模,每8个点组成一个字节,左边是高位。Byte0-byten
;数据排列的格式
;三色 Byte0红,Byte0绿,Byte0兰,Byte1红,Byte1绿,Byte1兰,
;双色 Byte0红,Byte0绿, Byte1红,Byte1绿,
;单色 Byte0红,Byte1红,
执行命令帧(0x04)
1 2 3 4 5
通讯头 开始页高位 开始页
低位 结束页高位 结束页
低位 CheckSum
◆ 亮度命令帧(0x11)
1 2 3 4 5 6 7
通讯头 亮度值 时间段1
开始时 时间段1
开始分 时间段1
结束时 时间段1
结束分 时间段1
亮度值 时间段2
开始时
8 9 10 11 12 13 14 15
时间段2
开始分 时间段2
结束时 时间段2
结束分 时间段2
亮度值 时间段3
开始时 时间段3
开始分 时间段3
结束时 时间段3
结束分
16 17 18 19 20 21 22
时间段3
亮度值 时间段4
开始时 时间段4
开始分 时间段4
结束时 时间段4
结束分 时间段4
亮度值 CheckSum
亮度值:0-7级(最暗-最亮)
8 自动调整亮度(需要硬件支持)
9 使用时间段调整亮度
设置波特率命令帧(0x0D)
1 2
通讯头 波特率 CheckSum
波特率值:0-9600,1-19200,2-38400,3-57600
5a a5 07 00 00 0d 00 f5 9600
5a a5 07 00 00 0d 01 f4 19200
5a a5 07 00 00 0d 02 f7 38400
5a a5 07 00 00 0d 03 f6 57600
设置单元板命令帧(0x12)
1 2
通讯头 编号 CheckSum
波特率值:0-9600,1-19200,2-38400,3-57600
5a a5 07 00 00 12 00 ea
5a a5 07 00 00 12 01 eb
5a a5 07 00 00 12 02 e8
5a a5 07 00 00 12 03 e9
5a a5 07 00 00 12 05 ef
5a a5 07 00 00 12 06 ec
引入、引出、追加方式
InMode0=左移入←
InMode1=右移入→
InMode2=上卷入↑
InMode3=下卷入↓
InMode4=左跳入←
InMode5=右展开→
InMode6=左展开←
InMode7=上展开↑
InMode8=下展开↓
InMode9=中间-两端展开
InMode10=两端-中间展开
InMode11=中间-上下展开
InMode12=上下-中间展开
InMode13=立即显示
InMode14=预备
InMode15=随机显示
OutMode0=左移出←
OutMode1=右移出→
OutMode2=上卷出↑
OutMode3=下卷出↓
OutMode4=左跳出←
OutMode5=右闭合→
OutMode6=左闭合←
OutMode7=上闭合↑
OutMode8=下闭合↓
OutMode9=中间-两端闭合
OutMode10=两端-中间闭合
OutMode11=中间-上下闭合
OutMode12=上下-中间闭合
OutMode13=立即消失
OutMode14=预备
OutMode15=随机消失
DemoMode0=正常显示
DemoMode1=下页连续
LED显示器是指类似数字式电子表或计算器的显示方式。每个数字位的显示如右图,每位数字位由7个标签控件构成,通过控制这些控件的背景颜色,使得显示不同的数字。例如显示数字“1”,将2号标签和3号标签的背景颜色设置为与窗体背景颜色不同,其他标签的背景颜色设置为与窗体背景颜色相同,就可以显示出数字“1”。以上是1个数字位的显示方法。构造8个数据位,就可以显示8为数字。由文本输入框输入数字,单击显示按钮在LED显示器上显示相应的数字。
四、主要技术问题的描述:
1、 动态数组的建立
利用load 控件数组名(下标)语句 建立控件数组。并为每个控件数组元素设置大小、位置(参考附录生成象棋棋盘的程序)。
2、 数字的显示
依据存储的EI数组对相应的控件的背景颜色属性进行设置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)