《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 迪文DGUS屏基于自身二次开发平台实现密码登陆及修改的应用指南
迪文DGUS屏基于自身二次开发平台实现密码登陆及修改的应用指南
鞠卫亮
北京迪文科技有限公司
摘要: 介绍了DWIN DGUS屏基于DGUS的二次开发平台进行密码设置和修改的实现方法。
Abstract:
Key words :

 

引言:

在工业自动化领域,用户产品使用经常会有密码登陆的需求,通过单片机编程实现设置及修改密码程序。迪文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变量地址使用

DWIN_OS寄存器使用

输入登录密码

0X0010

R10-R13

新密码(修改密码)

0X0020

R20-R23

重新输入新密码

0X0030

R30-R33

登录密码确认键

0X0050

R50/R51

修改密码确认键

0X0060

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                   ;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                     ;0X0050地址变量清零

      GOTO  GOEND

(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                  ;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                     ;0X0060地址变量清零

      GOTO  GOEND

     

  GOEND:

      END

5.结论

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

 

 

 

此内容为AET网站原创,未经授权禁止转载。