程序笔记   发布时间:2022-07-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了51单片机实战教程(28 人机界面编程五)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

2本文将介绍Usart HMI常用指令

page指令 用于页面切换,使用格式 :

page obj     

obj指页面名称或id,

示例:

有下面两个页面, 要从page0 切换到main

51单片机实战教程(28 人机界面编程五)

代码如下:

page 1    //type 2
page main  //type 1

2  ref 刷新控件指令(或者重绘控件)   

使用格式: ref obj   obj指控件名称或id, 

示例:

刷新下图t0

51单片机实战教程(28 人机界面编程五)

ref t0  //type 1
ref  1  // type 2

3 click  激活控件按下/弹起事件指令, 使用格式:

click obj event   

obj指控件名称或id,event指按下或弹起事件,0代表弹起事件,1代表按下事件。示例:激活下图b0的按下事件

51单片机实战教程(28 人机界面编程五)

click b0 1    //type 1
click 8  1    //type 2, 8 is b0's id

 4 get 带格式获取变量/常量值指令  向串口发送变量/常量值    

使用格式:get attr   

attr指变量/常量值。

示例:向串口发送下面控件t0的值

51单片机实战教程(28 人机界面编程五)

51单片机实战教程(28 人机界面编程五)

在发送数据时前面加了起始符(字符加0x70,整数加0x71),整数发送是一次发送4个字节,不足4个字节,高位用0x00补齐,低位在前,  后面加了结束符0xFF 0xFF 0xFF

5 prints 向串口发送变量/常量值指令 与get指令类似,但发送数据时,没有加起始符与结束符。

使用格式: prints attr,length

length指发送长度,0代表发送完attr的所有数据。

示例:

51单片机实战教程(28 人机界面编程五)

6 printh 向串口字符16位值指令 使用格式:

printh hex     

示例:

51单片机实战教程(28 人机界面编程五)

 7 vis 隐藏/显示控件指令      使用格式:

vis obj,state

 obj指控件名称或id,如果obj用255代替则表示页面上的所有控件。state可以为0或1。0为隐藏,1为显示。示例:下图是main页面,上面有多个控件,t2控件的文本为时钟设置

51单片机实战教程(28 人机界面编程五)

进入调试模式下藏在指令/显示控件 vi7.vis  隐藏/显示控件s  隐藏/显示控件vis  隐藏/显示控件

进入调试模式,在指令输入区输入page main回车,即切换到main页面。

51单片机实战教程(28 人机界面编程五)

 在指令输入区输入vis t2,0  回车, 结果如下:

51单片机实战教程(28 人机界面编程五)

 t2控件被隐藏了,再在指令输入区输入vis t2,1  回车, 结果如下:

51单片机实战教程(28 人机界面编程五)

 t2控件显示出来了。

8 tsw 控件触摸使能指令  使用格式:

tsw obj,state   

obj是指控件名称或id,如果obj用255代替则表示页面上的所有控件。state可以为0或1. 1是触摸使能,即触摸功能有效,0是触摸功能失效。 示例:下面是page0页面,上面有多个按钮。

51单片机实战教程(28 人机界面编程五)

 进入调试模式,如下:

51单片机实战教程(28 人机界面编程五)

 用鼠标左键点击“0”按钮,结果如下:

51单片机实战教程(28 人机界面编程五)

 在指令输入区输入 tsw b0,0 回车,再用鼠标左键点击“0”按钮,结果如下:

51单片机实战教程(28 人机界面编程五)

 按钮没有反应,也就是说按钮失效了。再在指令输入区输入 tsw b0,1 回车,再用鼠标左键点击“0”按钮,结果如下:

51单片机实战教程(28 人机界面编程五)

按钮又有效了。

9 randset 随机数范围设置指令    使用格式:

randset minval,maxval  

minval:最小值

maxval:最大值

示例:

51单片机实战教程(28 人机界面编程五)

 读取rand两次得到的结果分别为0x49,0x53,都在10~100以内。

10 add 往曲线/波形控件添加数据指令  使用格式:

add objid,ch,val

objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称,id号取值范围0~3,也就是说一个控件最多可以显示4条曲线)。

ch:曲线控件通道号val:数据 (最大255,最小0)。

示例:

add 13,0,30

add 13,1,35

11 cle 清除曲线/波形控件控件中的数据指令  使用格式:

cle objid,ch objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称) ch:曲线控件通道号(255表示所有通道)

示例:

cle 13,0

12 addt 曲线/波形控件数据透传指令  使用格式:

addt objid,ch,qyt objid: 曲线控件ID序号(此处必须是ID号,不支持使用控件名称) ch:曲线控件中的通道号 qyt:本次透传数据的点数量 示例:

addt 13,0,100 (ID为13的曲线控件进入数据透传模式,透传点数为100点)

13 sendme 发送当前页面ID号到串口指令    使用格式:

sendme                                  //此指令不需要参数

14 covx 变量类型转换指令   使用格式:

covx att1,att2,lenth,format att1:源变量 att2:目标变量 lenth:字符串的长度(0为自动长度,非0为固定长度) format:申明数值类型(0-数字;1-货币;2-Hex)

示例:

51单片机实战教程(28 人机界面编程五)

 结果为:0x03E8,转换为十进制刚好为1000.

15 strlen 获取字符串变量字符长度指令,使用格式:

strlen att0,att1 att0:需要测试的字符串变量 att1:把测试结果赋值给此变量 示例:

strlen t0.txt,n0.val  //把字符串变量t0.txt的实际字符长度赋值给n0.val

16 btlen 获取字符串变量字节长度指令 注意与strlen的区别,strlen是获取字符数,btlen是获取字节数,如果是单字节字符串结果是一致的,双字节字符串差异就大了。使用格式:

btlen att0,att1 att0:需要测试的字符串变量 att1:把测试结果赋值给此变量 示例:

btlen t0.txt,n0.val  //把字符串变量t0.txt的实际字节长度赋值给n0.val

17.substr 字符串截取指令  使用格式:

substr att0,att1,star,lenth att0:源变量(必须是字符串变量) att1:目标变量(必须是字符串变量) star:在源变量中的字符起始位置lenth:截取字符串长度                                                                         示例:

substr t0.txt,t1.txt,0,2   //从t0.txt中的0位置开始截取2个字符赋值给t1.txt

18 spstr 字符串分割指令  使用格式:

spstr src,dec,key,index src:源变量(必须是字符串变量) dec:目标变量(必须是字符串变量) key:分隔符字符串(必须是字符串变量) index:取第几份(在src字符串中用key字符串做分割后,取第index份字符内容赋值给dec变量) 示例:data0.txt的d字符内容为:aaaa^bbbb^cccc^dddd 执行命令:spstr data0.txt,t0.txt,"^",2 运行结果:t0.txt内容为:cccc

19 ref_stop 暂停屏幕刷新指令     使用格式:

    ref_stop    //此指令不需要参数

20 com_stop 暂停串口指令执行指令    使用格式:

        com_stop    //此指令不需要参数

22 com_star 恢复串口指令执行指令   使用格式:

        com_star    //此指令不需要参数

23 wepo写入一个变量到用户存储区(EEPROM)指令  这个需要屏硬件支持才能使用,使用格式:

wepo att,add att:变量/常量 add: 用户存储区位置(从0开始) 示例1:

wepo t0.txt,10 //将t0.txt的内容写入用户存储区的第10位置,在储存区中的占用空间为t0.txt的最大设置值+1,即t0的txt-maxl属性表示的大小+1

示例2:

wepo “abcd”,10 //将字符串“abcd”写入用户存储区的第10位置,在储存区中占用大小为5字节

示例3:

wepo 125,10 //将数值125写入用户存储区的第10位置, 在储存区中占用大小为4字节

24.repo 从用户存储区(EEPRO)读数据到一个变量指令  这个需要屏硬件支持才能使用,使用格式:

repo att,add att:目标变量 add: 用户存储区位置(从0开始) 示例1:

repo t0.txt,10  //从用户存储区的10位置读数据到t0.txt变量中,在储存区中的读取数据量为t0.txt的最大设置值+1,即t0的txt-maxl属性表示的大小+1 示例2.

repo n0.val,10 //从用户存储区的10位置读数据到n0.val,在存储区中的读取数据量为4字节

25 wept 透传数据写入用户存储区(EEPROM)指令  这个需要屏硬件支持才能使用,使用格式:

wept add,lenth add: 用户存储区地址(从0开始) lenth:透传长度 示例:wept 10,30 //透传30个字节的数据存到EEPROM的10位置,占用空间为10-39

26 rept 从用户存储区读取数据并透传发送到串口指令    这个需要屏硬件支持才能使用,使用格式:

rept add,lenth add: 用户存储区位置(从0开始) lenth:读取并透传发送的长度 示例:

rept 10,30 //从用户存储区的10位置读取30个字节并透传发送到串口

27 cls 清屏指令            使用格式:

cls color color是十进制颜色值或颜色代号 示例1:

cls 1024 //用十进制1024的颜色值刷屏 示例2:

cls RED //用代号为RED的颜色(RED代表红色)刷屏

28 pic 刷图指令          使用格式:

pic x,y,picid x:起始点x坐标; y:起始点y坐标; picid:图片ID; 示例1:

pic 10,20,0 //在坐标(10,20)位置显示资源文件中图片ID为0的图片 示例2:

pic 40,50,1 //在坐标(40,50)位置显示资源文件中图片ID为1的图片 

29 picq 切图指令   使用格式:

picq x,y,w,h,pici dx:屏幕起始点x坐标; y:屏幕起始点y坐标; w:区域宽度; h:区域高度; picid:图片ID; 示例:

picq 20,50,30,20,0 //将图片0起始坐标(0,0)宽度30高度20这个区域切到屏幕上显示,屏幕上的显示起始坐标为(20,50)

30 xpic 高级切图指令       使用格式:

xpic x,y,w,h,x0,y0,picid x:屏幕起始点x坐标; y:屏幕起始点y坐标; w:区域宽度 ;h:区域高度; x0:图片起始点x坐标; y0:图片起始点y坐标; picid:图片ID; 示例:

xpic 20,50,30,20,40,15,0 //将图片0起始坐标(40,15)宽度30高度20这个区域切到屏幕上显示,屏幕上的显示起始坐标为(20,50)

31 xstr 写字指令      使用格式:

xstr x,y,w,h,fontid,pointcolor,backcolor,xcenter,ycenter,sta,string x:起始点坐标x; y:起始点坐标y; w:区域宽度; h:区域高度; fontid:字库ID; pointcolor:字体颜色; backcolor:背景色(sta设置为切图或图片时,backcolor表示图片ID); xcenter:水平对齐方式(0为左对齐,1为居中,2为右对齐); ycenter: 垂直对齐方式(0为上对齐,1为居中,2为下对齐); sta:背景填充方式(0为切图,1为单色,2为图片,3为无背景,sta设置为切图或图片时,backcolor表示图片ID) string:字符内容; 示例:

xstr 0,0,100,30,1,RED,BLACK,1,1,1,”中国”   //使用字库1在起始坐标(0,0),宽度100,高度30这个区域写出”中国”,字体色为RED,背景色为BLACK(如果不想写背景色(即无背景)可以设置sta参数为3),水平对齐方式为居中,垂直对齐方式也为居中。

32 fill 区域填充指令    使用格式:

fill x,y,w,h,color x:起始点坐标x ; y:起始点坐标y; w:区域宽度; h:区域高度; color:填充颜色; 示例:

fill 0,0,100,30,RED   //在起始坐标(0,0)宽度100,高度30这个区域填充RED颜色

33 line 画线指令       使用格式:

line x,y,x2,y2,color x:起始点坐标x; y:起始点坐标y; x2:结束点坐标x ; y2:结束点坐标y; color:画线颜色; 示例:

line 0,0,100,100,RED //在坐标(0,0)和坐标(100,100)之间画出一条RED颜色的线

34 draw 画矩形指令  画出的矩形无填充, 使用格式:

draw x,y,x2,y2,color x:起始点坐标x ; y:起始点坐标y; x2:结束点坐标x ; y2:结束点坐标y; color:画线颜色; 示例:

draw 0,0,100,100,RED  //画一个矩形,左上角为(0,0),右下角为(100,100), 颜色为RED

35 cir 画空心圆指令             使用格式:

cir x,y,r,color x:圆心坐标x y:圆心坐标y r:半径 color:画线颜色; 示例:

cir 100,100,30,RED     //以坐标(100,100)为圆心画一个半径为30的空心圆,颜色为RED

36 cirs 画实心圆指令            使用格式:

cirs x,y,r,color x:圆心坐标x y:圆心坐标y r:半径 color:填充颜色; 示例:

cirs 100,100,30,RED  //以坐标(100,100)为圆心画一个半径为30的实心圆,填充颜色为RED

大佬总结

以上是大佬教程为你收集整理的51单片机实战教程(28 人机界面编程五)全部内容,希望文章能够帮你解决51单片机实战教程(28 人机界面编程五)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: