nbhkdz.com冰点文库

迪文DGUS屏基于自身二次开发平台实现密码登陆及修改的应用指南

时间:


迪文 DGUS 屏基于自身二次开发平台实现密码登陆及修改的应用指南 鞠卫亮 (北京迪文科技有限公司,北京,海淀) 引言: 在工业自动化领域, 用户产品使用经常会有密码登陆的需求, 通过单片机编程实现设置 及修改密码程序。迪文 DGUS 屏通过自身二次开发平台(DWIN_OS)便可轻松实现该项功 能,省去了单片机的编程,为客户开发带来极大的便利性。本文介绍了通过变量来设置修改 密码的方法,此方式可帮助用户实现简单显示终端安全性设定。 1.DGUS 屏及 DWIN_OS 介绍 DGUS 屏是北京迪文科技有限公司自主开发的一款高可靠性、 开发简单、 操作灵活的智 慧型人机界面, DWIN_OS 是基于 DGUS 屏的二次开发平台,通过微指令编程实现 DGUS 屏的二次开发,其代码简单,编译快捷也为众多工程师所青睐。 2.基于 DGUS 的 DWIN_OS 在密码设置基本原理的介绍 DGUS 的密码登陆的基本原理为: 用户设置密码存储于 DWIN_OS 寄存器中, 用户通过 数据录入将录入密码存入到 DGUS 变量地址中,通过微指令将 DGUS 变量地址中的数据转 入 DWIN_OS 寄存器中,然后与已存储密码进行比较。 DGUS 的密码修改基本原理为:用户通过数据录入将录入新密码存入到 DGUS 变量地 址中, 再通过微指令将其转入到 DWIN_OS 寄存器中, 在 DWIN_OS 寄存器中进行与初始密 码的替换。 该例程中程序开发流程图如下:

3.变量规划介绍 本例程中主要用到的 DGUS 变量地址、OS 寄存器地址及其用途如下:
用途说明 输入登录密码 新密码(修改密码) DGUS 变量地址使用 0X0010 0X0020 DWIN_OS 寄存器使用 R10-R13 R20-R23

重新输入新密码 登录密码确认键 修改密码确认键 初始密码保存

0X0030 0X0050 0X0060

R30-R33 R50/R51 R60/R61 R200-R203

4.基本步骤介绍 (1)设置初始密码 开始判断 R255 不为 5A,则加载一次初始密码。加载密码后 R255 为 5A,下次执行时 跳过加载密码。 ; DWIN OS IJNE R255,0x5A,INI ;开机加载初始密码 GOTO MAIN INI: LDBR R255,0x5A,1 ;初始 R255 寄存器存储数据为 5A LDBR R200,0,1 LDBR R201,0xA9,1 LDBR R202,0x8A,1 LDBR R203,0xC7,1 ;设定初始密码为 11111111 LDBR R150,0,4 ;设定字符串,作比较使用 END (2)输入登录密码并进行判断 输入密码的确认键变量地址设定为 0X0050,返回值为 AAAA。如果密码录入完成后点 击确定按钮,则变量地址 0X0050 内存储数据变为 0XAAAA。录入密码存储于 0X0010 开始 的两个字地址内。如果判断变量地址 0X0050 地址内存储为 0XAAAA ,则代表已输入登录 密码,便可将录入密码与初始密码进行比较;如果判断变量地址 0X0050 地址内存储数据不 为 0XAAAA,则表示未进行密码登陆操作,该步骤跳过。 当判断密码输入正确时,便跳转到已登录界面(此处设置跳转到密码修改页面) ,并将 变量地址 0X0050、0X0010 内数据清零方便进行后续操作。 当判断密码输入不正确时, 跳转到重新输入密码界面, 同时将变量地址 0X0050、 0X0010 内数据清零,该流程结束并进入重新输入密码状态。 MAIN: ;输入登录密码 LDWR R0,0x0050 MOVXR R50,1,1 IJNE R50,0xAA,SET_PASSWORD LDWR R0,0x0010 MOVXR R10,1,2 TESTS R10,R200,4 IJNE R0,0,PASSWORD_ERROR PASSWORD_RIGHT: LDBR R10,0,4 LDWR R0,0x0010 MOVXR R10,0,2 LDBR R100,04,1 MOVRD R100,4,1 LDBR R10,0,4

;判断是否点击密码输入确认键

;判断密码是否一致

;录入密码清除 ;跳转页面

LDBR R50,0,2 LDWR R0,0x0050 MOVXR R50,0,1 GOTO GOEND PASSWORD_ERROR: LDBR R10,0,4 LDWR R0,0x0010 MOVXR R10,0,2 LDBR R100,03,1 MOVRD R100,4,1 LDBR R10,0,4 LDBR R50,0,2 LDWR R0,0x0050 MOVXR R50,0,1 GOTO GOEND

;0X0050 地址变量清零

;录入密码清除 ;跳转页面

;0X0050 地址变量清零

(3)密码重新设置 重新设置密码的确认键变量地址设定为 0X0060,返回值为 AAAA。如果重设密码录入 完成后点击确定修改按钮,则变量地址 0X0060 内存储数据变为 0XAAAA。录入新密码及 确认新密码分别存储于 0X0020 和 0X0030 开始的两个字地址内。 如果判断变量地址 0X0060 地址内存储为 0XAAAA,则代表已确认修改密码,便可将录入新密码与重新输入的新密码 进行比较 (本文中介绍例程密码不能设置为 0) ; 如果判断变量地址 0X0060 地址内存储不为 0XAAAA,则表示未进行修改密码操作,该步骤跳过。 当 0X0060 地址数据为 0XAAAA 时, 如果判断变量地址 0X0050 和 0X0060 开始的两个 字地址内存储数据相同且不为 0,则密码修改成功;如果判断变量地址 0X0050 和 0X0060 开始的两个字地址内存储数据不相同或同时为 0,则密码修改不成功。 密码修改成功后切换到修改密码成功页面, 并将新密码替换掉初始密码, 同时将 0X0050 和 0X0060 开始的两个字地址内存储数据清零。 密码修改不成功则切换到重新修改密码页面,将 0X0050 和 0X0060 开始的两个字地址 内存储数据清零方便重新修改密码。 ;设置密码 SET_PASSWORD: LDWR R0,0x0060 MOVXR R60,1,1 IJNE R60,0xAA,GOEND ;判断是否点击重设密码确认键 LDWR R0,0x0020 MOVXR R20,1,2 LDWR R0,0x0030 MOVXR R30,1,2 TESTS R20,R30,4 ;重设密码对比 IJNE R0,0,SET_PASSWORD_ERROR TESTS R20,R150,4 IJNE R0,0,SET_PASSWORD_RIGHT ;密码不能为零 GOTO SET_PASSWORD_ERROR SET_PASSWORD_RIGHT: MOV R30,R200,4 LDBR R20,0,4 LDWR R0,0x0020 MOVXR R20,0,2

LDBR R30,0,4 LDWR R0,0x0030 MOVXR R30,0,2 LDBR R100,7,1 MOVRD R100,4,1 LDBR R60,0,2 LDWR R0,0x0060 MOVXR R60,0,1 GOTO GOEND SET_PASSWORD_ERROR: LDBR R20,0,4 LDWR R0,0x0020 MOVXR R20,0,2 LDBR R30,0,4 LDWR R0,0x0030 MOVXR R30,0,2 LDBR R100,6,1 MOVRD R100,4,1 LDBR R60,0,2 LDWR R0,0x0060 MOVXR R60,0,1 GOTO GOEND GOEND: END

;输入密码清零 ;跳转页面 ;0X0060 地址变量清零

;输入密码清零

;跳转页面 ;0X0060 地址变量清零

5.结论 通过对 DWIN_OS 密码管理例程的介绍, 让读者更好地了解 DWIN_OS 平台的开发方式 及使用方法,并体会到 DGUS 屏借助 DWIN_OS 二次开发平台所实现功能的方便性和快捷 性,进而帮助读者更快实现新产品开发。


赞助商链接