单片机连接串口液晶屏C语言程序.pdf

单片机连接串口液晶屏C语言程序.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机连接串口液晶屏(ATPAD)C 语言实例 工业串口液晶屏 ATPad 是一款主动式串口液晶屏,其界面和人机交互都不需要单片机 参与,只需要 2 条简单的指令进行数据交互即可完成系统设计,使用非常简单。 本实例程序是基于 ATPAD 串口屏一个典型的应用:串口液晶屏显示单片机采集到的 8 路 AD 值并存储到文件系统中;串口液晶屏显示单片机采集到的一个实时波形;串口液晶屏上 的 4 个按钮控制单片机的 4 路输出; 串口液晶屏将用户设置的 2 个参数传给单片机。 使用的 2 条指令定义如下: 1,液晶屏发送数据给单片机(发送一个寄存器数据): 发送:| EID |0X06 |addrH |addrL |val1H |val1L |crcL |crcH 共8 个字节 EID: 单片机ID 0X06:命令字,固定为 0x06 addrH,addrL: 寄存器地址高 8 位,寄存器地址低 8 位 val1H,val1L: 寄存器值高 8 位, 寄存器值低 8位 crcL, crcH : 前面所有数据的 CRC校验低 8 位和高 8 位(可设置为忽略) 2, 单片机发送数据给 ATPAD(发送若干个寄存器数据): 发送:| ID |0X10 |addrH |addrL |Num |val1H |val1L | |crcL |crcH 总长度为 Num*2+7 个字节 ID: 串口液晶屏的 ID 0x10: 命令字,固定为 0x10 addrH addrL: 写入寄存器地址的高 8 位和低8 位 Num: 写入的寄存器数, 1~125, 一个寄存器 16 位(2 个字节) val1H val1L: 第一个寄存器的高 8位和低 8 位值 crcL crcH : 前面所有数据的 CRC 校验低 8 位和高 8 位(可设置为忽略) 以下是使用 C 语言的单片机程序: // 是否需要做 CRC 校验,1 校验,0,不需要校验 #define CRC_CHECK_UART 1 // 定义该单片机的 id,必须和液晶屏端定义的一致 int MY_ID=3; // 定义串口液晶屏的 id,必须和液晶屏端定义的一致 int ATPAD_ID=1; //寄存器定义,必须和液晶屏端定义一致// //[1-8]: 8路模拟量值的 100 倍 //[9],[10]: 2 个参数 //[11]: 4 路输出状态, BIT0~BIT3 分别代表输出 1~输出 4, 为 1 打开,0关闭 //[20]~[619]: 波形数据, 共600 个点 #define ATPAD_UART_WAVLENGTH 600 #define ATPAD_REG_AD1 1 #define ATPAD_REG_AD2 2 #define ATPAD_REG_AD3 3 #define ATPAD_REG_AD4 4 #define ATPAD_REG_AD5 5 #define ATPAD_REG_AD6 6 #define ATPAD_REG_AD7 7 #define ATPAD_REG_AD8 8 #define ATPAD_REG_PARAM1 9 #define ATPAD_REG_PARAM2 10 #define ATPAD_REG_OUTPUT 11 #define ATPAD_REG_WAV 20 // 接收数据缓存定义, 液晶屏写单片机命令字指令只有 8字节 #define COMMADN_MAXLENGTH 8 char rCommand[COMMADN_MAXLENGTH]; int rCommandLength=0; // 发送数据缓存定义,本例中一次最多发 30 个寄存器,故长度为 30*2+7=67 #define DATA_MAXLENGTH 67 char sCommand[DATA_MAXLENGTH]; int param1; // 参数1 是串口屏通过写寄存器 9 设置给单片机的参数 int param2; // 参数2 是串口屏通过写寄存器 10 设置给单片机的参数 int outstatus; // 输出控制是串口屏通过写寄存器 11 设置给单片机的输出控制状态 static float CosineTable[91] = { { 1.000000 },{ 0.9998

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档