《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 迪文DGUS屏基于自身二次開發(fā)平臺(tái)實(shí)現(xiàn)密碼登陸及修改的應(yīng)用指南
迪文DGUS屏基于自身二次開發(fā)平臺(tái)實(shí)現(xiàn)密碼登陸及修改的應(yīng)用指南
鞠衛(wèi)亮
北京迪文科技有限公司
摘要: 介紹了DWIN DGUS屏基于DGUS的二次開發(fā)平臺(tái)進(jìn)行密碼設(shè)置和修改的實(shí)現(xiàn)方法。
Abstract:
Key words :

 

引言:

在工業(yè)自動(dòng)化領(lǐng)域,用戶產(chǎn)品使用經(jīng)常會(huì)有密碼登陸的需求,通過單片機(jī)編程實(shí)現(xiàn)設(shè)置及修改密碼程序。迪文DGUS屏通過自身二次開發(fā)平臺(tái)(DWIN_OS)便可輕松實(shí)現(xiàn)該項(xiàng)功能,省去了單片機(jī)的編程,為客戶開發(fā)帶來極大的便利性。本文介紹了通過變量來設(shè)置修改密碼的方法,此方式可幫助用戶實(shí)現(xiàn)簡(jiǎn)單顯示終端安全性設(shè)定。

 

1.DGUS屏及DWIN_OS介紹

    DGUS屏是北京迪文科技有限公司自主開發(fā)的一款高可靠性、開發(fā)簡(jiǎn)單、操作靈活的智慧型人機(jī)界面,DWIN_OS是基于DGUS屏的二次開發(fā)平臺(tái),通過微指令編程實(shí)現(xiàn)DGUS屏的二次開發(fā),其代碼簡(jiǎn)單,編譯快捷也為眾多工程師所青睞。

2.基于DGUS的DWIN_OS在密碼設(shè)置基本原理的介紹

DGUS的密碼登陸的基本原理為:用戶設(shè)置密碼存儲(chǔ)于DWIN_OS寄存器中,用戶通過數(shù)據(jù)錄入將錄入密碼存入到DGUS變量地址中,通過微指令將DGUS變量地址中的數(shù)據(jù)轉(zhuǎn)入DWIN_OS寄存器中,然后與已存儲(chǔ)密碼進(jìn)行比較。

DGUS的密碼修改基本原理為:用戶通過數(shù)據(jù)錄入將錄入新密碼存入到DGUS變量地址中,再通過微指令將其轉(zhuǎn)入到DWIN_OS寄存器中,在DWIN_OS寄存器中進(jìn)行與初始密碼的替換。

該例程中程序開發(fā)流程圖如下:

 

 

3.變量規(guī)劃介紹

本例程中主要用到的DGUS變量地址、OS寄存器地址及其用途如下:

用途說明

DGUS變量地址使用

DWIN_OS寄存器使用

輸入登錄密碼

0X0010

R10-R13

新密碼(修改密碼)

0X0020

R20-R23

重新輸入新密碼

0X0030

R30-R33

登錄密碼確認(rèn)鍵

0X0050

R50/R51

修改密碼確認(rèn)鍵

0X0060

R60/R61

初始密碼保存

 

R200-R203

 

 

4.基本步驟介紹

(1)設(shè)置初始密碼

     開始判斷R255不為5A,則加載一次初始密碼。加載密碼后R255為5A,下次執(zhí)行時(shí)跳過加載密碼。

  ; DWIN OS

  IJNE R255,0x5A,INI                   ;開機(jī)加載初始密碼

  GOTO MAIN

  INI:

      LDBR  R255,0x5A,1               ;初始R255寄存器存儲(chǔ)數(shù)據(jù)為5A

      LDBR  R200,0,1                   

      LDBR  R201,0xA9,1

      LDBR  R202,0x8A,1

      LDBR  R203,0xC7,1               ;設(shè)定初始密碼為11111111

      LDBR  R150,0,4                   ;設(shè)定字符串,作比較使用

      END

(2)輸入登錄密碼并進(jìn)行判斷

輸入密碼的確認(rèn)鍵變量地址設(shè)定為0X0050,返回值為AAAA。如果密碼錄入完成后點(diǎn)擊確定按鈕,則變量地址0X0050內(nèi)存儲(chǔ)數(shù)據(jù)變?yōu)?XAAAA。錄入密碼存儲(chǔ)于0X0010開始的兩個(gè)字地址內(nèi)。如果判斷變量地址0X0050地址內(nèi)存儲(chǔ)為0XAAAA,則代表已輸入登錄密碼,便可將錄入密碼與初始密碼進(jìn)行比較;如果判斷變量地址0X0050地址內(nèi)存儲(chǔ)數(shù)據(jù)不為0XAAAA,則表示未進(jìn)行密碼登陸操作,該步驟跳過。

當(dāng)判斷密碼輸入正確時(shí),便跳轉(zhuǎn)到已登錄界面(此處設(shè)置跳轉(zhuǎn)到密碼修改頁面),并將變量地址0X0050、0X0010內(nèi)數(shù)據(jù)清零方便進(jìn)行后續(xù)操作。

當(dāng)判斷密碼輸入不正確時(shí),跳轉(zhuǎn)到重新輸入密碼界面,同時(shí)將變量地址0X0050、0X0010內(nèi)數(shù)據(jù)清零,該流程結(jié)束并進(jìn)入重新輸入密碼狀態(tài)。

 

  MAIN:

  ;輸入登錄密碼

      LDWR    R0,0x0050

      MOVXR  R50,1,1

      IJNE      R50,0xAA,SET_PASSWORD    ;判斷是否點(diǎn)擊密碼輸入確認(rèn)鍵

      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                     ;跳轉(zhuǎn)頁面

      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                    ;跳轉(zhuǎn)頁面

      LDBR    R10,0,4

      LDBR    R50,0,2

      LDWR   R0,0x0050

      MOVXR  R50,0,1                     ;0X0050地址變量清零

      GOTO  GOEND

(3)密碼重新設(shè)置

重新設(shè)置密碼的確認(rèn)鍵變量地址設(shè)定為0X0060,返回值為AAAA。如果重設(shè)密碼錄入完成后點(diǎn)擊確定修改按鈕,則變量地址0X0060內(nèi)存儲(chǔ)數(shù)據(jù)變?yōu)?XAAAA。錄入新密碼及確認(rèn)新密碼分別存儲(chǔ)于0X0020和0X0030開始的兩個(gè)字地址內(nèi)。如果判斷變量地址0X0060地址內(nèi)存儲(chǔ)為0XAAAA,則代表已確認(rèn)修改密碼,便可將錄入新密碼與重新輸入的新密碼進(jìn)行比較(本文中介紹例程密碼不能設(shè)置為0);如果判斷變量地址0X0060地址內(nèi)存儲(chǔ)不為0XAAAA,則表示未進(jìn)行修改密碼操作,該步驟跳過。

當(dāng)0X0060地址數(shù)據(jù)為0XAAAA時(shí),如果判斷變量地址0X0050和0X0060開始的兩個(gè)字地址內(nèi)存儲(chǔ)數(shù)據(jù)相同且不為0,則密碼修改成功;如果判斷變量地址0X0050和0X0060開始的兩個(gè)字地址內(nèi)存儲(chǔ)數(shù)據(jù)不相同或同時(shí)為0,則密碼修改不成功。

密碼修改成功后切換到修改密碼成功頁面,并將新密碼替換掉初始密碼,同時(shí)將0X0050和0X0060開始的兩個(gè)字地址內(nèi)存儲(chǔ)數(shù)據(jù)清零。

密碼修改不成功則切換到重新修改密碼頁面,將0X0050和0X0060開始的兩個(gè)字地址內(nèi)存儲(chǔ)數(shù)據(jù)清零方便重新修改密碼。

  ;設(shè)置密碼

  SET_PASSWORD:

      LDWR    R0,0x0060

      MOVXR  R60,1,1

      IJNE     R60,0xAA,GOEND              ;判斷是否點(diǎn)擊重設(shè)密碼確認(rèn)鍵

      LDWR   R0,0x0020

      MOVXR  R20,1,2

      LDWR   R0,0x0030

      MOVXR  R30,1,2

      TESTS   R20,R30,4                      ;重設(shè)密碼對(duì)比

      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                    ;跳轉(zhuǎn)頁面

      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                      ;跳轉(zhuǎn)頁面

      LDWR   R0,0x0060

      MOVXR  R60,0,1                     ;0X0060地址變量清零

      GOTO  GOEND

     

  GOEND:

      END

5.結(jié)論

    通過對(duì)DWIN_OS密碼管理例程的介紹,讓讀者更好地了解DWIN_OS平臺(tái)的開發(fā)方式及使用方法,并體會(huì)到DGUS屏借助DWIN_OS二次開發(fā)平臺(tái)所實(shí)現(xiàn)功能的方便性和快捷性,進(jìn)而幫助讀者更快實(shí)現(xiàn)新產(chǎn)品開發(fā)。

 

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。