迪文科技论坛

 找回密码
 立即注册
搜索
查看: 2035|回复: 3

【开源】迪文K600+通过编写OS实现翻页密码和时间锁

[复制链接]

17

主题

118

回帖

1079

积分

金牌会员

Rank: 6Rank: 6

积分
1079
QQ
发表于 2019-9-12 19:25:24 | 显示全部楼层 |阅读模式
之前发布的贴子中,使用迪文触摸屏借助单片机的定时器实现了翻页密码和设备定时锁,这种与单片机的配合使用存在一定的缺点,不仅占用单片机的资源,还浪费了触摸屏的性能;
这次通过迪文屏的OS程序编写实现设备定时锁定,本文只是对实现的思想左一定的解释,对部分源码加以注释和解释,具体内容请参考压缩包中的触摸屏工程及OS程序,由于本人能
力有限,在OS及程序中有什么问题,请指出,谢谢!


1.本程序是以K600+触摸屏为基础编写,触摸屏必须自带RTC;


2.翻页密码部分参照了迪文官方提供的K600+翻页密码程序,在此致谢!


3.由于本工程为本人为单位书写,所以本人对触摸屏中的工程图片进行了屏蔽,按键位置可能在显示界面不显示,但是不影响使用,如若有工程师
使用,请务必不要使用触摸屏工程文件中的图片,再次致谢!


功能:设备不在授权使用,一般会在设备下位机或人机互交界面等增加定时时间,在用户使用时间范围内,设备可以正常运转,超出使用时间后,设备被锁死,不在授权使用;
思路:应为我所使用的K600+触摸屏自带RTC,所以实现该功能是通过读取RTC的时间与用户的设定时间比较,若使用时间没有达到用户设定的时间,则触摸屏正常运行,若使用时间等于或
超出用户设定的使用时间,则判断当前密码与用户输入后保存的密码是否一致,一致则不弹出锁定界面,不一致,弹出锁定界面并提示用户输入密码,用户输入密码正确,解锁,输入密码不
正确,提示用户并持续锁定;
  本工程一共编写了三期时间锁定,每期的指令基本一致,只是调用不同的子程序,由于本程序书为本人很久前编写,在程序结构上可能不够理想,如有更好的意见请指出,致谢!
下面对部分OS程序解释:
clear: LDWR R0,0X4100      
  MOVXR R10,1,1   
  IJNE R11,5AH,Go_End
  
  LDWR    R0,0X4101      
        MOVXR   R10,1,1        
  LDWR    R4,0210H  ;0X0100 0000
        LDWR    R6,0000H
  LDWR R0,0X4101       ;            
  MOVXL 3,2             ;新密码写入数据库
  LDWR R0,0x4100  ;
  LDBR R10,0,1  
  MOVXR R10,0,1
  LDWR R0,0x4101  ;
  LDBR R10,1,1  
  MOVXR R10,1,1
  
  LDWR    R0,0X4101      
        MOVXR   R10,1,1        
  LDWR    R4,0111H  ;0X0100 0000
        LDWR    R6,0000H
  LDWR R0,0X4101       ;            
  MOVXL 3,2             ;新密码写入数据库
  LDWR R0,0x4100  ;
  LDBR R10,0,1  
  MOVXR R10,0,1
  LDWR R0,0x4101  ;
  LDBR R10,1,1  
  MOVXR R10,1,1
  
  LDWR    R0,0X4101      
        MOVXR   R10,1,1        
  LDWR    R4,0112H  ;0X0100 0000
        LDWR    R6,0000H
  LDWR R0,0X4101       ;            
  MOVXL 3,2             ;新密码写入数据库
  LDWR R0,0x4100  ;
  LDBR R10,0,1  
  MOVXR R10,0,1
  LDWR R0,0x4101  ;
  LDBR R10,1,1  
  MOVXR R10,1,1
  
  GOTO    Go_End4
  
READTIMmima:
  LDWR     R4,0210H  ;0X0018 0000
        LDWR     R6,0000H  ;读取保存的时间1
        LDWR     R0,0X4500      
        MOVXL    2,6
       ;LDWR  R0,0X4501      ;
  MOVXR  R10,1,3
        LDWR     R4,0200H  ;0X0018 0000
        LDWR     R6,0000H  ;读取保存的时间1
        LDWR     R0,0X4512      
        MOVXL    2,3
        ;LDWR  R0,0X4513       ;
  MOVXR  R20,1,3
        CJNE  R10,R24,READTIME
        CJNE  R11,R25,READTIME
        
  LDWR R0,0x4400 ; R0:R1 指定DGUS 变量地址0x0010
        LDWR R160,0
        MOVXR R160, 0, 1
        GOTO     Go_End2
SHURUMIMA:        
  LDWR    R0,0X3051       ;读密码框,触摸屏手动输入的值
        MOVXR   R10,1,2      ;将变量地址0x3051、0x3052、0x3053、0x3054分别写传送给R10、R11、R12、R13
        LDBR    R14,0,1      ;0写入R14
        OR      R14,R10,1
        OR      R14,R11,1
        OR      R14,R12,1
        OR      R14,R13,1     
        IJNE    R14,0,MIMANE0    ;密码框不为0
        GOTO    READTIMmima
MIMANE0:
   LDWR    R0,0X3051      
        MOVXR   R10,1,1        
  LDWR    R4,0210H  ;0X0110 0000
        LDWR    R6,0000H
  LDWR R0,0X3051       ;            
  MOVXL 3,2             ;新密码写入数据库
  LDWR R0,0x3051  ;
  LDBR R10,0,10  
  MOVXR R10,0,10
  GOTO    Go_End2        
WriteSet:
  LDWR R0,0X4007       ;
  MOVXR R10,1,1   ;
  IJNE R11,5AH,Go_End2 ;重建密码确认键是否按下
  
  LDWR    R0,0X4000      
        MOVXR   R10,1,6        
  LDWR    R4,0200H  ;0X0100 0000
        LDWR    R6,0000H
  LDWR R0,0X4000       ;            
  MOVXL 3,10             ;新密码写入数据库
  LDWR R0,0x4000  ;
  LDBR R10,0,20  
  MOVXR R10,0,10
  GOTO    Go_End2
READSET:
  LDWR     R4,0200H  ;0X0018 0000
        LDWR     R6,0000H  ;读取保存的时间1
        LDWR     R0,0X4020      
        MOVXL    2,5
        GOTO    Go_End2
;===========================================================
READTIME:
  LDWR R0,0x4400 ; R0:R1 指定DGUS 变量地址0x0010
        LDWR R200,0x005A
        MOVXR R200, 0, 1
        
  MOVDR 20H,R130,7
  LDWR R0,0x6000
  MOVXR R130, 0, 7  ;读取当前时间
;===========================================================  
ZHUANHUAN:
  MOV R130,R40,1
  BCDHEX R40,R41,0X11 ;00010001
  MOV R41,R150,1 ; 各1字节
  MOV R131,R40,1
  BCDHEX R40,R41,0X11
  MOV R41,R152,1
TESTyear:
  LDWR  R0,0X4020 ;
  MOVXR R137,1,2
  JS R137,R149,TIM1JIAMI
  CJNE R138,R150,Go_End2
  JS R139,R151,TIM1JIAMI
  GOTO Go_End2
TIM1JIAMI:
  LDBR R30,0,16
  LDWR  R0,0X4022
  MOVXR R36,1,1        
  LDWR R44,10     
  DIV R30,R38,0 ;判断密码个位数
  
  LDWR R11,1 ;判断密码各位是否为1,为1跳转到GEWEI1
  CJNE R45,R12,budeng1
  GOTO GEWEI1
  
budeng1DWR R11,3;判断密码各位是否为3,为1跳转到GEWEI2
  CJNE R45,R12,budeng2
  GOTO GEWEI2
  
budeng2DWR R11,2 ;判断密码各位是否为4,为1跳转到GEWEI4
  CJNE R45,R12,budeng124
  GOTO GEWEI4
  
budeng124: LDWR R10,106  ;不判个位
     MOVRD R10,3,2
     GOTO Go_End2
  
GEWEI1:
  LDWR R0,0x2500 ; R0:R1 指定DGUS 变量
        LDWR R10,0x0004
  MOVXR R10, 0, 1 ;设置2500=3;
  
  LDWR R0,0x2602 ; R0:R1 指定DGUS 变量
        LDWR R10,0x0001
  MOVXR R10, 0, 1 ;设置2500=3;
  
  IJNE R100,30,BUTIAO
  GOTO TIAO
BUTIAO:
  LDWR R10,107  ;切换到第106页,密码个位为1,在22文件里面设置道夫该页发送道夫=3;
  MOVRD R10,3,2
  INC     R100, 0, 1
  IJNE R100,30,Go_End2

   
TIAO:   
  LDWR R10,106 ;切换到第106页,密码个位为1,在22文件里面设置道夫该页发送道夫=3;
  MOVRD R10,3,2
  GOTO Go_End2
      
GEWEI2:
  LDWR R0,0x2500 ; R0:R1 指定DGUS 变量
        LDWR R10,0x0004      
  MOVXR R10, 0, 1 ;设置2500=3;
  
  LDWR R0,0x2612 ; R0:R1 指定DGUS 变量
        LDWR R10,0x0003
  MOVXR R10, 0, 1 ;设置2500=3;
  
  IJNE R102,30,BUTIAO1
  GOTO TIAO1
BUTIAO1:
  LDWR R10,107  ;切换到第106页,密码个位为1,在22文件里面设置道夫该页发送道夫=3;
  MOVRD R10,3,2
  INC     R102, 0, 1
  IJNE R102,30,Go_End2

   
TIAO1:
  LDWR R10,113;切换到第106页,密码个位为1,在22文件里面设置道夫该页发送道夫=3;
  MOVRD R10,3,2
  GOTO Go_End2
  
GEWEI4:
  LDWR R0,0x2500 ; R0:R1 指定DGUS 变量
        LDWR R10,0x0004
  MOVXR R10, 0, 1 ;设置2500=3;
  
  LDWR R0,0x2622 ; R0:R1 指定DGUS 变量
        LDWR R10,0x0002
  MOVXR R10, 0, 1 ;设置2500=3;
  
  IJNE R104,30,BUTIAO2
  GOTO TIAO2
BUTIAO2:
  LDWR R10,107  ;切换到第106页,
锁定界面

  MOVRD R10,3,2
  INC     R104, 0, 1
  IJNE R104,30,Go_End2
   
TIAO2:
  LDWR R10,114 ;切换到第106页,锁定界面;
  MOVRD R10,3,2
Go_End2:
  RET

工程会在后续上传,谢谢!
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

17

主题

118

回帖

1079

积分

金牌会员

Rank: 6Rank: 6

积分
1079
QQ
 楼主| 发表于 2019-9-12 19:27:08 | 显示全部楼层
由于把排版问题,帖子中的冒号等字符,变为了表情,具体参考我上传的文件!
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

17

主题

118

回帖

1079

积分

金牌会员

Rank: 6Rank: 6

积分
1079
QQ
 楼主| 发表于 2019-9-12 19:45:49 | 显示全部楼层
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

0

主题

1

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2020-5-27 15:41:48 | 显示全部楼层
谢谢分享,参考一下,节省了很多开发时间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-4-26 14:48 , Processed in 0.086918 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表