标题: 求方法 制作一个指纹锁,如何通过按压指纹时长进行,一个指纹解两个锁或者一个锁 [打印本页]

作者: 以及他,    时间: 2022-5-9 16:27
标题: 求方法 制作一个指纹锁,如何通过按压指纹时长进行,一个指纹解两个锁或者一个锁
做一个指纹锁,如何通过按压指纹时长进行,一个指纹解两个锁或者一个锁,比如按1秒解一个锁,2秒解锁两锁,我该如何检测按压时长?

作者: yzwzfyz    时间: 2022-5-9 17:20
每做一种,就设立一个计数器,用于计时这个时间,当时间满足时,你就达成目的了。顺便做个标记,标记是否达成目的。
作者: 以及他,    时间: 2022-5-9 17:38
yzwzfyz 发表于 2022-5-9 17:20
每做一种,就设立一个计数器,用于计时这个时间,当时间满足时,你就达成目的了。顺便做个标记,标记是否达 ...

可以不用计数器这种吗,来个简单点的,比如说根据它高电平时间来设置?
作者: 小猫电子    时间: 2022-5-9 17:56
采用计数器计时判断长短很麻烦吗
作者: 以及他,    时间: 2022-5-9 23:29
小猫电子 发表于 2022-5-9 17:56
采用计数器计时判断长短很麻烦吗

主要是咱不会啊,有啥相关案例可以参考的吗?


作者: 188610329    时间: 2022-5-9 23:39
以及他, 发表于 2022-5-9 17:38
可以不用计数器这种吗,来个简单点的,比如说根据它高电平时间来设置?

你觉得,"高电平时间" 是不用 "计数" 就能得到的么?
作者: dzbj    时间: 2022-5-10 00:18
188610329 发表于 2022-5-9 23:39
你觉得,"高电平时间" 是不用 "计数" 就能得到的么?

我觉得能 用一个特大的变量 int不行就flot 一个不够就两个 高电平时循环一圈加一次 满了就进位 然后低了再判断

不许急眼啊 咱说的是能不能 不是好不好啊
作者: 名字不是重点    时间: 2022-5-10 09:08
不如用不同手指来的快:大母指解1个,食指解2个,中指解3个。。。左右手再分开,可以解10个。。
作者: 以及他,    时间: 2022-5-10 18:24
188610329 发表于 2022-5-9 23:39
你觉得,"高电平时间" 是不用 "计数" 就能得到的么?

对不起啊,主要是咱太白了
作者: 以及他,    时间: 2022-5-10 18:26
名字不是重点 发表于 2022-5-10 09:08
不如用不同手指来的快:大母指解1个,食指解2个,中指解3个。。。左右手再分开,可以解10个。。

我也知道这个,主要是不给这么做啊
作者: zycman    时间: 2022-5-11 11:00
软件你搞不定那就只能考虑硬件啊。比如,你按压2次,3次。。。。。。。。
作者: 188610329    时间: 2022-5-11 11:46
以及他, 发表于 2022-5-10 18:24
对不起啊,主要是咱太白了

白不白的都不是重点,  你牵扯到时间的长短,就逃不开 计数,   "我数三个数" 这就是最基本的一个时间概念。除非你不要判断时间,否则“计数” 你就躲不开,不管是硬件上,还是软件上,总之,躲不开“计数”。
作者: lkc8210    时间: 2022-5-12 15:21
以及他, 发表于 2022-5-9 23:29
主要是咱不会啊,有啥相关案例可以参考的吗?

用例程改一下就可以了
  1. /*------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ---------------------------------------------*/
  3. /* --- STC89-90xx Series 16-bit Timer Demo -------------------------*/
  4. /* If you want to use the program or the program referenced in the  */
  5. /* article, please specify in which data and procedures from STC    */
  6. /*------------------------------------------------------------------*/

  7. #include "reg51.h"

  8. typedef unsigned char BYTE;
  9. typedef unsigned int WORD;

  10. //-----------------------------------------------

  11. /* define constants */
  12. #define FOSC 11059200L

  13. #define T1MS (65536-FOSC/12/1000)   //1ms timer calculation method in 12T mode

  14. /* define SFR */
  15. sbit TEST_LED = P1^0;               //work LED, flash once per second

  16. /* define variables */
  17. WORD count = 0;                         //1000 times counter
  18. BYTE PushCnt = 0;
  19. /* define IO */
  20. sbit Fingerprint = P1^0;//自己改
  21. //-----------------------------------------------

  22. /* Timer0 interrupt routine */
  23. void tm0_isr() interrupt 1
  24. {
  25.     TL0 = T1MS;                     //reload timer0 low byte
  26.     TH0 = T1MS >> 8;                //reload timer0 high byte
  27.         if(!Fingerprint)
  28.         {
  29.                 if (count++ >= 1000)               //1ms * 1000 -> 1s
  30.                 {
  31.                         count = 0;               //reset counter
  32.                         PushCnt++;
  33.                         if(PushCnt==1)Unlock1();
  34.                         if(PushCnt==2)Unlock2();
  35.                         if(PushCnt==3)Unlock3();
  36.                         if(PushCnt==4)Unlock4();
  37.                 }
  38.         }else{
  39.                 count = 0;
  40.                 PushCnt = 0;
  41.         }
  42. }

  43. //-----------------------------------------------

  44. /* main program */
  45. void main()
  46. {
  47.     TMOD = 0x01;                    //set timer0 as mode1 (16-bit)
  48.     TL0 = T1MS;                     //initial timer0 low byte
  49.     TH0 = T1MS >> 8;                //initial timer0 high byte
  50.     TR0 = 1;                        //timer0 start running
  51.     ET0 = 1;                        //enable timer0 interrupt
  52.     EA = 1;                         //open global interrupt switch
  53.     count = 0;                      //initial counter
  54.         Fingerprint = 1;
  55.     while (1);                      //loop
  56. }

复制代码








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1