- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 地铁物业管理培训课件.pptx
- 工程数学(本)形成性考核作业4.doc
- GB T 34520.7-2017 连续碳化硅纤维测试方法 第7部分:高温强度保留率 标准.pdf
- 自编教材审核表(模板).pdf
- 一例慢性阻塞性肺疾病急性加重期合并II型呼吸衰竭患者的个案护理PPT.pptx
- [大庆]黑龙江大庆市民政局所属事业单位选调事业编制工作人员笔试上岸试题历年高频考点难、易错点附带答案详解.docx VIP
- ISO9001 14001 ISO45001检查表审核方法全套.docx VIP
- 增光膜规格说明书.pdf
- 人教版数学四年级第一单元教材解读及集体备课课件.pptx VIP
- 2024 离婚协议书 离婚协议(打印版).docx
文档评论(0)