大佬教程收集整理的这篇文章主要介绍了51单片机实战教程(28 人机界面编程五),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
2本文将介绍Usart HMI常用指令
1 page指令 用于页面切换,使用格式 :
page obj
obj指页面名称或id,
示例:
有下面两个页面, 要从page0 切换到main
代码如下:page 1 //type 2
page main //type 1
2 ref 刷新控件指令(或者重绘控件)
使用格式: ref obj obj指控件名称或id,
示例:
刷新下图t0
ref t0 //type 1
ref 1 // type 2
3 click 激活控件按下/弹起事件指令, 使用格式:
click obj event
obj指控件名称或id,event指按下或弹起事件,0代表弹起事件,1代表按下事件。示例:激活下图b0的按下事件
click b0 1 //type 1
click 8 1 //type 2, 8 is b0's id
4 get 带格式获取变量/常量值指令 向串口发送变量/常量值
使用格式:get attr
attr指变量/常量值。
示例:向串口发送下面控件t0的值
在发送数据时前面加了起始符(字符加0x70,整数加0x71),整数发送是一次发送4个字节,不足4个字节,高位用0x00补齐,低位在前, 后面加了结束符0xFF 0xFF 0xFF
5 prints 向串口发送变量/常量值指令 与get指令类似,但发送数据时,没有加起始符与结束符。
使用格式: prints attr,length
length指发送长度,0代表发送完attr的所有数据。
示例:
6 printh 向串口字符16位值指令 使用格式:
printh hex
示例:
7 vis 隐藏/显示控件指令 使用格式:
vis obj,state
obj指控件名称或id,如果obj用255代替则表示页面上的所有控件。state可以为0或1。0为隐藏,1为显示。示例:下图是main页面,上面有多个控件,t2控件的文本为时钟设置
隐
进入调试模式下藏在指令/显示控件 vi7.vis 隐藏/显示控件s 隐藏/显示控件vis 隐藏/显示控件进入调试模式,在指令输入区输入page main回车,即切换到main页面。
在指令输入区输入vis t2,0 回车, 结果如下:
t2控件被隐藏了,再在指令输入区输入vis t2,1 回车, 结果如下:
t2控件显示出来了。
8 tsw 控件触摸使能指令 使用格式:
tsw obj,state
obj是指控件名称或id,如果obj用255代替则表示页面上的所有控件。state可以为0或1. 1是触摸使能,即触摸功能有效,0是触摸功能失效。 示例:下面是page0页面,上面有多个按钮。
进入调试模式,如下:
用鼠标左键点击“0”按钮,结果如下:
在指令输入区输入 tsw b0,0 回车,再用鼠标左键点击“0”按钮,结果如下:
按钮没有反应,也就是说按钮失效了。再在指令输入区输入 tsw b0,1 回车,再用鼠标左键点击“0”按钮,结果如下:
按钮又有效了。
9 randset 随机数范围设置指令 使用格式:
randset minval,maxval
minval:最小值
maxval:最大值
示例:
读取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)
示例:
结果为: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,请注明来意。