单片机/MCU论坛
直播中

张伟

6年用户 3经验值
私信 关注
[问答]

8通道AD采集卡通过485在LCD12864上显示数据?

我手里有一张8通道的AD采集卡,之前上位机与AD采集卡通过485通信进行收发数据。如图1

现在呢,由于需要,想加一块液晶显示,实时显示8个通道的采集数据。现在方案是这样,51单片机带一个485收发口,加一个12864屏幕,然后用线直接连在PC与AD采集卡中间,只接受数据,并且显示在液晶上。如图2


由于是单片机新手,还不太会写单片机程序。
哪位大神可以帮忙写一下程序。特别是主程序,我找了一些模块程序,比如12864显示模块,rs485模块,crc校验程序,就是主程序这一块有点乱,不知道怎么下手。

8通道AD采样通信MODBUS协议说明
功能码:03;
输入寄存器地址:40001-40008;
说明:读取输入寄存器;
①主机发送格式:【设备地址】【03】【寄存器地址高字节】【寄存器地址低字节】【寄存
器数高字节】【寄存器数低字节】【CRC 低字节】【CRC 高字节】;
②设备回应:【设备地址】【03】【字节数】【寄存器1 值高字节】【寄存器1 值低字节】…
【寄存器N 值高字节】【寄存器N 值低字节】【CRC 低字节】【CRC 高字节】
举例,在地址为1 的设备的第5 通道接满量程输入,读取模块采集值:
主机发送(HEX):01 03 00 00 00 08 44 0C;
设备回应(HEX):01 03 10 00 00 00 00 00 02 00 00 FF FF 00 02 00 03 00 00 26 2A;

寄存器地址寄存器功能说明     寄存器取值 (寄存器类型为16Bit)
40001   第1 路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40002 第2 路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40003第3路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40004第4路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40005第5路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40006第6路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40007 第7路模拟量输入 0X0000-0XFFFF(16 位分辨率)
40008    第8路模拟量输入  0X0000-0XFFFF(16 位分辨率)
MODBUS 请求:
功能码         1BYTE             0x03
起始地址      2BYTE            0x0000--0xffff
读取数量      2BYTE            N(1—125)

MODBUS 响应:
功能码        1BYTE           0x03
字节计数     1BYTE           2*N

输入状态     N*2 BYTE








  • 图1
  • 图2

回帖(1)

阿信509

2019-5-10 10:03:24
公司里有会写程序的吗?让他们写不就行了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分