• 回答数

    3

  • 浏览数

    139

jasmine1995
首页 > 学术期刊 > 电子密码锁毕业论文绪论

3个回答 默认排序
  • 默认排序
  • 按时间排序

我们家懒格格

已采纳

程序设计内容

(1). 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。

(2). 密码的输入问题:  由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。

C语言源程序

#include unsigned char code ps[]={1,2,3,4,5};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,                               

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

unsigned char pslen=9; unsigned char templen;

unsigned char digit; unsigned char funcount;

unsigned char digitcount;

unsigned char psbuf[9];

bit cmpflag;

bit hibitflag;

bit errorflag;

bit rightflag;

unsigned int second3;

unsigned int aa;

unsigned int bb;

bit alarmflag;

bit exchangeflag;

unsigned int cc;

unsigned int dd;

bit okflag;

unsigned char oka;

unsigned char okb;

void main(void)

{  

unsigned char i,j;  

P2=dispcode[digitcount];  

TMOD=0x01;  

TH0=(65536-500)/256;  

TL0=(65536-500)%6;  

TR0=1;  

ET0=1;  

EA=1;  

while(1)   

  {      

if(cmpflag==0)        

{          

if(P3_6==0) //function key           

  {              

for(i=10;i>0;i--)              

for(j=248;j>0;j--);      

         if(P3_6==0)                

{                

   if(hibitflag==0)       

              {     

                  funcount++;  

                     if(funcount==pslen+2)

                        {  

                         funcount=0;

                          cmpflag=1;

                         }

                       P1=dispcode[funcount];

                    }

                    else

                      {

                         second3=0;

                      }  

                 while(P3_6==0);

                }

            }

          if(P3_7==0) //digit key

            {

              for(i=10;i>0;i--)

              for(j=248;j>0;j--);

              if(P3_7==0)

                {

                  if(hibitflag==0)

                    {

                      digitcount++; 

                  if(digitcount==10)

                        {

                          digitcount=0;

                        }

                      P2=dispcode[digitcount];

                      if(funcount==1)

                        {

                          pslen=digitcount;                          

templen=pslen;

                        }

                        else if(funcount>1)

                          {  

                           psbuf[funcount-2]=digitcount;

                          }

                    }

                    else

                      {

                        second3=0;

                      }

                  while(P3_7==0);

                }

            }

        }  

       else

          {

            cmpflag=0;

            for(i=0;i

              {  

               if(ps[i]!=psbuf[i])

                  {

                    hibitflag=1;

                    i=pslen;

                    errorflag=1;

                    rightflag=0;

                    cmpflag=0;

                    second3=0;

                    goto a;  

                 }

              }   

          cc=0;  

           errorflag=0;  

           rightflag=1;

            hibitflag=0;

a:   cmpflag=0;

          }

}

}

void t0(void)

interrupt 1 using 0 {   TH0=(65536-500)/256;  

TL0=(65536-500)%6;  

if((errorflag==1) && (rightflag==0))  

{

      bb++;

      if(bb==800)

        {

          bb=0;

          alarmflag=~alarmflag;

        }

      if(alarmflag==1)

        {

          P0_0=~P0_0;

        }

      aa++;

      if(aa==800)

        {

          aa=0;

          P0_1=~P0_1;

        }

      second3++;

      if(second3==6400)

        {

          second3=0;

          hibitflag=0;

          errorflag=0;

          rightflag=0;

          cmpflag=0;

          P0_1=1;  

         alarmflag=0;

          bb=0;  

         aa=0;  

       }

    }

  if((errorflag==0) && (rightflag==1))

    {

      P0_1=0;

      cc++;

      if(cc<1000)

        {

          okflag=1;

        }

        else if(cc<2000)

          {

            okflag=0;

          }

          else

            {

              errorflag=0;

              rightflag=0;

              hibitflag=0;

              cmpflag=0;

              P0_1=1;

              cc=0;  

             oka=0;

              okb=0;

              okflag=0;  

             P0_0=1;  

           }

      if(okflag==1)

        {  

         oka++;  

         if(oka==2)

            {

              oka=0;

              P0_0=~P0_0;

            }

        }

        else

          {

            okb++;

            if(okb==3)

              {

                okb=0;

                P0_0=~P0_0;

              }  

         }

    }

}

244 评论

傻喵喵123

主要功能:输入0-9任意四位数字作为开锁密码,在下次开锁时必须输入设定密码,输入密码确认后开锁电路工作。应用电子元件组成电路实现对输入信号检验功能,如符合要求则输出开锁信号。本电路涉及单元电路有密码输入电路、密码检验电路、密码存储电路、开锁电路、报警电路、电源电路等。量化的技术指标: 本电路可实现预置密码功能,在密码锁工作时,只有在规定时间内输入正确的密码,密码锁才工作,否则密码锁报警电路被启动而发出报警声。所涉及的基本知识:电子技术、数字电路、555时基电路原理 完成课题条件:(主要元器件、所需的设备或所用的软件等)74LS116、74LS135、74LS25、74LS194、74LS147、555时基电路

118 评论

吃生鱼片的猫

用STC的单片机,里面有EEPROM,把设定的密码写到里面。正常运行时 输入密码和EEPROM里面的密码比较 正确了就可以进入

216 评论

相关问答

  • 密码锁论文答辩问题

    论文答辩常见评语大全 导语:论文答辩常见评语有哪些呢?论文答辩评语是对学生论文内容、主题、结构等方面客观的评价。下面是我分享的论文答辩常见评语大全,欢迎大家阅读

    洁博利郑少波 1人参与回答 2023-12-09
  • 电子密码锁设计毕业论文与设计

    程序设计内容 (1). 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。 (2). 密码的输

    princess小姐 5人参与回答 2023-12-11
  • 密码锁控制系统的毕业论文

    基于EDI的电子征税系统应用探讨 【论文摘要】作为电子化贸易工具的EDI技术已相当成熟,将其用于电子征税发挥了其安全可靠、数据从计算机到计算机自动传输不需人工

    小璇璇APPLE 4人参与回答 2023-12-08
  • 红外线遥控密码锁毕业论文

    我晕 5姐怎么还学习了?? 家庭智能化系统, 报警主机使用说明 , 微机灯光控制系统, IC卡片介绍 ADSL 路由功能的配置

    monica的私人花园 7人参与回答 2023-12-08
  • 语音电子锁毕业论文

    本科论文不能抄袭,只能借鉴,这有多个专业的论文,可供参考,1.基于labVIEW虚拟滤波器的设计与实现 2.双闭环直流调速系统设计 3.单片机脉搏测量仪 4.单

    小殊哥哥 6人参与回答 2023-12-05