• 大小: 0.06M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签: 其他  

资源简介

单片机密码锁.zip

资源截图

代码片段和文件信息

#include 

unsigned char show[8]={00000000};
unsigned char code seg7_table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x710x400x000x500x5c};
unsigned char code wei_table[]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};
unsigned char code err[]={0x0e0x120x120x130x120x110x110x11};
unsigned char count=0;
unsigned long ab;
unsigned char flag=0;
//unsigned char flag1=1;
unsigned char key_code;
bit key_press=0;

void delay(long dly)
{
while(dly--);
}


void disp(long dat)
{
    
bit flag1=0;    
long e;
unsigned char i;
e=dat;
 if(e==0) 
{
for(i=0;i<7;i++)
{
show[i]=0x11;
}
show[7]=0x00;
}
else if((e>99999999)||(e<-9999999))
{
        for(i=0;i<8;i++)
{
 show[i]=err[i];
}
}

else
{
    if(e<0)
{
flag1=1;
e=-e;
}
for(i=0;i<8;i++)
{
if(e>=1)
{
    show[7-i]=e%10;
e=e/10;
}
else
{
    if(flag1==1)
{
show[7-i]=0x10;
flag1=0;
}
else
{
show[7-i]=0x11;
}
}
}

}
}

void read_key() //4X4矩阵键盘说明:行为输入,列为输出
{
    char xy;
char i;
P1=0xf0;
if(P1!=0xf0)
{
delay(1000);
if(P1!=0xf0)
{
    y=P1; 
x=0xfe;
for(i=0;i<4;i++)
{
P1=x |0xf0;
if((P1 & 0xf0)!=0xf0)
{
x=P1;
key_code=y | (x & 0x0f);
key_press=1;
}
x=(x<<1)+0x01;
}
switch(key_code)
{
case 0xee:    key_code=7;break;
case 0xde:    key_code=8;break;
case 0xbe:    key_code=9;break;
case 0x7e:    key_code=14;break;
                      case 0xed:    key_code=4;break;
case 0xdd:    key_code=5;break;
case 0xbd:    key_code=6;break;
case 0x7d:    key_code=13;break; 
case 0xeb:    key_code=1;break;
case 0xdb:    key_code=2;break;
case 0xbb:    key_code=3;break;
case 0x7b:    key_code=12;break;
                      case 0xe7:    key_code=15;break;
case 0xd7:    key_code=0;break;
case 0xb7:    key_code=16;break;
case 0x77:    key_code=11;break;
}
   
}

}
}
void calculate()
{
      if(key_code<10)
  {
       if(flag==0)
   {
      a=a*10+key_code; 
  disp(a);
}
   else
   {
      b=b*10+key_code; 
  disp(b);
}
      }
  else
  {
     switch(key_code)
{
case 11:flag=1;break;
case 12:flag=2;break;
case 13:flag=3;break;
case 14:flag=4;break;
case 15:a=0;b=0;disp(a);flag=0;break;
case 16:{
switch(flag)
{
case 1:a=a+b;disp(a);b=0;break;
case 2:a=a-b;disp(a);b=0;break;
case 3:a=a*b;disp(a);b=0;break;
case 4:a=a/b;disp(a);b=0;break;
}
}
}
  }
     

     
}

void main()
{
    TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TR0=1;
EA=1;
ET0=1;
a=0;
b=0;
disp(a);
// get_keycode();
while(1) 
{
read_key();

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-29 23:06  简易计算器\
     文件        8139  2018-04-25 13:51  简易计算器\counter
     文件        3316  2018-04-25 13:51  简易计算器\counter.c
     文件        4534  2018-04-25 13:51  简易计算器\counter.hex
     文件          46  2018-04-25 13:51  简易计算器\counter.lnp
     文件       10137  2018-04-25 13:51  简易计算器\counter.LST
     文件       13692  2018-04-25 13:51  简易计算器\counter.M51
     文件        9869  2018-04-25 13:51  简易计算器\counter.OBJ
     文件         757  2018-04-25 13:51  简易计算器\counter.plg
     文件       55217  2018-04-25 13:51  简易计算器\counter.uvopt
     文件       13234  2018-04-18 16:29  简易计算器\counter.uvproj
     文件       55221  2018-04-25 13:48  简易计算器\counter_uvopt.bak
     文件           0  2018-04-18 16:26  简易计算器\counter_uvproj.bak
     文件       97430  2018-04-25 13:54  简易计算器\jycounter.DSN
     文件         768  2018-04-25 15:32  简易计算器\jycounter.PWI
     文件       97428  2018-04-25 13:52  简易计算器\Last Loaded jycounter.DBK

评论

共有 条评论