⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 +_-

📁 avr单片机icc写的密码锁
💻
字号:
#include <iom16v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int
#define  ulong unsigned long
#pragma  interrupt_handler  miao2:2
#include "yejing.c"
#include "451.c"
uint j=0,g=0,js=0,xg=0,cg=0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    uchar mimas[]={0,0,0,0,0,0},mimac[]={2,2,3,4,5,6},mima_cs[]={0,0,0,0,0,0};
void miao2()
{uchar q;
 q=ch451_read();
  switch(q)
  {
    case keycode_s1:  g=1;break;
	case keycode_s2:  g=2;break;
	case keycode_s3:  g=3;break;
	case keycode_s9:  g=4;break;
	case keycode_s10: g=5;break;
	case keycode_s11: g=6;break;
	case keycode_s17: g=7;break;
	case keycode_s18: g=8;break;
	case keycode_s19: g=9;break;
	case keycode_s4:  g=0;break;
    case keycode_s12: g=12;break;
	case keycode_s20: g=20;break;
	
}

if(g==12){j=0;
write_com12864(0x01);
   delay_ms(10);}
if(g==20)
{j=20,xg=1;}
if(g>=0&&g<10)
{j++;
mimas[j-1]=g;
if(j==7)
{j=0;}
}
//return g;
}


void main()
{   uint i;
 //液晶配置
   port_init12864();
   lcd_init12864();
   
   write_com12864(0x01);
   delay_ms(10);
   
   //451配置
   port_init451();
   int0_init();
   ch451_init();
   ch451_write(CH451_RESET);
   ch451_write(CH451_SYSON2);
   ch451_write(CH451_TWINKLE);
   ch451_write(CH451_BCD);
   for(;;)
   {
   switch(j)
     {
	 case 0:{
	 if(xg==1){write_com12864(0x06);  
     delay(5);
     lcd_pos12864(1,0);
     writeString12864("输入原密码");}
	 if(xg==2){write_com12864(0x06);  
     delay(5);
     lcd_pos12864(1,0);
     writeString12864("输修改密码");}
	 if(xg==3){write_com12864(0x06);  
     delay(5);
     lcd_pos12864(1,0);
     writeString12864("输修改密码");}
	 if(xg<1){write_com12864(0x06);  
     delay(5);
     lcd_pos12864(0,0);
     writeString12864("请输入密码");}
	 break;}
	 case 1:{ 
	 lcd_pos12864(0,5);
     write_dat12864(0X0f);
	// mimas[0]=g;
	 break;}
	 case 2:
	 {lcd_pos12864(0,5);
     write_dat12864(0X0f);
	 write_dat12864(0X0f);
	 //mimas[1]=g;
	 break;}
	 case 3:
	 {lcd_pos12864(0,6);
     write_dat12864(0X0f);
	 //mimas[2]=g;
	 break;}
	 case 4:{
	 lcd_pos12864(0,6);
     write_dat12864(0X0f);
	 write_dat12864(0X0f);
	 //mimas[3]=g;
	 break;}
	 case 5:
	 {lcd_pos12864(0,7);
     write_dat12864(0X0f);
	 //mimas[4]=g;
	 break;}
	 case 6:
	 {lcd_pos12864(0,7); 
     write_dat12864(0X0f);
	 write_dat12864(0X0f);
	 //mimas[5]=g;
	 if(xg==3){if(mima_cs[0]==mimas[0]&&mima_cs[1]==mimas[1]&&mima_cs[2]==mimas[2]&&mima_cs[3]==mimas[3]&&mima_cs[4]==mimas[4]&&mima_cs[5]==mimas[5])
	 for(i=0;i<=5;i++){mimac[i]=mima_cs[i];}
	 cg=1,j=0;
	 }
	 if(xg==2){for(i=0;i<=5;i++){mima_cs[i]=mimas[i];}
	 xg=3,j=0} 
	 else
	 {for(i=0;i<=5;i++)
	 {if(mimac[i]==mimas[i])
	 js++;
	 }}
	 if(js==6)
	 {
	 write_com12864(0x06);  
     delay(5);
     lcd_pos12864(1,0);
     writeString12864("密码输入正确");
	 delay_ms(1000);
	 if(xg=1){j=0;xg=2;
	  write_com12864(0x01);  
     delay(5);}
	 else{for(;;);}
	 }
	 else{
	 write_com12864(0x06);  
     delay(5);
     lcd_pos12864(1,0);
     writeString12864("密码错误");
	 delay_ms(1000);
	 j=0;
	  write_com12864(0x01);  
     delay(5);}
	 break;}
	 case 20:
	 { write_com12864(0x06);  
     delay(5);
     lcd_pos12864(1,0);
     writeString12864("输入原密码");
	 break;}
     }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -