AT89C51密碼鎖資料 共享
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (16.24 KB, 下載次數: 13)
下載附件
2018-11-18 01:59 上傳
單片機源程序如下:
- #include<reg51.h>
- sbit P1_4=P1^4;
- sbit P1_5=P1^5;
- sbit P1_6=P1^6;
- sbit P1_7=P1^7;
- sbit sound=P3^7;
- unsigned char keyval;
- void delay(void)
- {
- unsigned char i;
- for(i=0;i<200;i++);
- }
- void delay20ms(void)
- {
- unsigned char i,j;
- for(i=0;i<100;i++)
- for(j=0;j<60;j++);
- }
- void main(void)
- {
- unsigned char D[]={0,8,0,8,7,4,11};
- EA=1;
- ET0=1;
- TMOD=0x01;
- TH0=(65536-500)/256;
- TL0=(65536-500)%256;
- TR0=1;
- keyval=0xff;
- while(keyval!=D[0])
- ;
- while(keyval!=D[1])
- ;
- while(keyval!=D[2])
- ;
- while(keyval!=D[3])
- ;
- while(keyval!=D[4])
- ;
- while(keyval!=D[5])
- ;
- while(keyval!=D[6])
- ;
- P3=0xfe;
- }
- void time0_interserve(void)interrupt 1 using 1
- {
- unsigned char i;
- TR0=0;
- P1=0xf0;
- if((P1&0xf0)!=0xf0)
- delay20ms();
- if((P1&0xf0)!=0xf0)
- {
- P1=0xfe;
- if(P14==0)
- keyval=1;
- if(P15==0)
- keyval=2;
- if(P16==0)
- keyval=3;
- if(P17==0)
- keyval=4;
- P1=0xfd;
- if(P14==0)
- keyval=5;
- if(P15==0)
- keyval=6;
- if(P16==0)
- keyval=7;
- if(P17==0)
- keyval=8;
- P1=0xfb;
- if(P14==0)
- keyval=9;
- if(P15==0)
- keyval=0;
- if(P16==0)
- keyval=11;
- for(i=0;i<200;i++)
- {
- sound=0;
- delay();
- sound=1;
- delay();
- }
- }
- TR0=1;
- TH0=(65536-500)/256;
- TL0=(65536-500)%256;
- }
復制代碼
所有資料51hei提供下載:
AT89S51密碼鎖資料.zip
(93.4 KB, 下載次數: 49)
2018-11-17 21:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|