迪文目前T5产品型号非常多,就个人来看开发来看,对T5UID1熟悉度较高,主要包括4.3寸和3.5寸86盒产品。 关于T5UID1,从入门方面来讲和原来的K600+系列产品相比地址和一些指令出现了变动,1包括T5的地址规划必须从1000H开始原来的K600+是从0开始,2,指令中数据库操作指令MOVXL指令取消,数据库读写改为地址0008H如下图 数据库读写变为 LDWR R0,0008H LDWR R20,5A(A5)00H LDWR R22,0000H LDWR R24,1000H LDWR R26,0002H MOVXR R20,0,4 上面几行代码表示将将变量地址1000H从数据库地址000000中读出来/(写进去) 读取长度为两个字。 另外T5UID1相比K600+在编写时多了框架要求如下图; 其中当需要使用中断时标准格式为 ORG 1000H GOTO MAIN GOTO T0INT GOTO T1INT GOTO T2INT ORG 1080H MAIN NOP GOTO MAIN T0INT: NOP RETI T1INT: NOP RETI T2INT: NOP RETI 不需要使用中断将 GOTO T1INT换位NOP即可。 主程序从MAIN开始即可。 说完了区别那么开始关于T5UID1的初步编程,首先从最简单的变量地址赋值开始如下图: 其中R0为加载变量地址将对其读写,1000H表示变量地址,R10之前各寄存器有实际应用含义不可随意使用,200表示赋值量,MOVXR读写指令,详细使用见迪文开发指南。 写完上面表示会基本的赋值,那么上面对应的“变量地址赋值”是程序对应的子程序,这时候就需要了解相关的子程序调用了,迪文的子程序调用格式为 CALL 子程序 子程序: NOP RET 各子程序结束时需要RET不然会继续向下执行不会结束,子程序支持嵌套。 讲到这里各位对基本功能块的写法有个基本了解,为了加深映像下面增加了几个例子,比如跳转,加减法如下 从上图那么就可以进行基本的运算和判断,其中,ADD表示进行加法运算,R10,R14为32Bit数,R20表示64Bit数据,100+100结果等于200结果在R27寄存器,所以使用LDWR时是双字节长度,所以从R26将其取出,IJNE为8Bit立即数判断,表示对于一些需要判断条件1001H地址中的数据等于200时执行操作,否则跳转,执行其它功能,这种判断对执行特殊指令的功能特别适用,比如温控器应用中,达到多少温度执行开关机或者定时开关机功能。这样使用逻辑判断来实现较为复杂的功能。 通过上面的学习相信大家对T5UID1有个基本的思路,配合开发指南的详细说明,一些较为简单的功能应该能较快写出,只有熟练掌握基本功能那么接下来一些较为复杂的功能,比如最常用的密码功能,简单固定密码写法就是如下,密码为123456 复杂的可修改密码写法又相对来说复杂一些如下所示: 通过上面可以看出,无论代码的量和逻辑都增加了非常多,但是都是密码功能,其实就是从简单的功能块堆起来实现的,由数据库的读写来保存对比密码来替代了不可改写的固定密码,所以学习使用迪文屏时需要优先熟练基本功能,只有这样才能在接下来的复杂功能逻辑中如鱼得水,这次就先讲这么多,下次讲解86盒modbus的详细使用情况。
完整的Word格式文档51黑下载地址:
TUID1开发心得.docx
(382.47 KB, 下载次数: 30)
|