久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
SPI總線12864電子密碼鎖程序設計
[打印本頁]
作者:
bansgeng
時間:
2020-1-14 20:54
標題:
SPI總線12864電子密碼鎖程序設計
基于單片機設計
51hei.png
(19.12 KB, 下載次數: 6)
下載附件
2020-1-15 00:52 上傳
單片機源程序如下:
#include<reg51.h>
#include<intrins.h>
#include<stdlib.h>
#include<zimo.H>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include<ds1820.H>
#include<ds1302.H>
#include<at2402.H>
#define uchar unsigned char
#define uint unsigned int
#define lcd_data P1
uchar a1[6];
uchar t;
uchar h;
uchar k;
uchar f=0;
uchar b1[6];
uchar a1[6]={9,6,3,1,0,2};
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void write_cmd(uchar cmd)
{
lcd_rs=0;
lcd_rw=0;
lcd_en=0;
P1=cmd;
delay(0);
lcd_en=1;
delay(0);
lcd_en=0;
}
void write_dat(uchar dat)
{
lcd_rs=1;
lcd_rw=0;
lcd_en=0;
P1=dat;
delay(0);
lcd_en=1;
delay(0);
lcd_en=0;
}
void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++)
{
write_cmd(0xb8+pag+j);
write_cmd(0x40+col);
for(i=0;i<16;i++)
write_dat(hzk[16*j+i]);
}
}
void hz_disp161(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++)
{
write_cmd(0xb8+pag+j);
write_cmd(0x40+col);
for(i=0;i<8;i++)
write_dat(hzk[8*j+i]);
}
}
void StartMsg(void)
{
CS2=1;CS1=0;
hz_disp16(0,32,huan);
delay(10);
hz_disp16(0,48,ying);
delay(10);
CS2=0;CS1=1;
hz_disp16(0,0,shi);
delay(10);
hz_disp16(0,16,yong);
delay(10);
CS2=1;CS1=0;
hz_disp16(2,16,xin1);
delay(10);
hz_disp16(2,32,dian);
delay(10);
hz_disp16(2,48,zi);
delay(10);
CS2=0;CS1=1;
hz_disp16(2,0,mi);
delay(10);
hz_disp16(2,16,ma);
delay(10);
hz_disp16(2,32,suo);
delay(10);
CS2=1;CS1=0;
hz_disp16(4,16,zhi);
delay(10);
hz_disp16(4,32,zuo);
delay(10);
hz_disp16(4,48,maohao);
delay(10);
CS2=0;CS1=1;
hz_disp16(4,0,liu);
delay(10);
hz_disp16(4,16,li);
delay(10);
hz_disp16(4,32,guo);
delay(10);
CS2=1;CS1=0;
hz_disp16(6,0,wu);
delay(10);
hz_disp16(6,16,li1);
delay(10);
hz_disp16(6,32,yuan);
hz_disp161(6,48,gg);
delay(10);
hz_disp161(6,56,hh);
delay(10);
CS2=0;CS1=1;
hz_disp16(6,0,tong);
delay(10);
hz_disp16(6,16,xin);
delay(10);
hz_disp16(6,32,gong);
delay(10);
hz_disp16(6,48,cheng);
delay(10);
}
void Disp_Img(unsigned char code *img)
{
unsigned char j=0,k=0;
for(k=0;k<8;k++)
{
CS2=1;
CS1=0;
delay(10);
write_cmd(0xb8+k);
write_cmd(0x40+0);
for(j=0;j<64;j++)
write_dat(img[k*128+j]);
CS2=0;
CS1=1;
delay(10);
write_cmd(0xb8+k);
write_cmd(0x40+0);
for(j=64;j<128;j++)
write_dat(img[k*128+j]);
}
}
void Mima(void)
{
CS2=1;CS1=0;
hz_disp16(6,0,mi);
hz_disp16(6,16,ma);
hz_disp16(6,32,weixiao);
hz_disp16(6,48,maohao);
}
void Wrong(void)
{
CS2=1;CS1=0;
hz_disp16(0,32,dui);
hz_disp16(2,32,bu);
hz_disp16(4,32,qi1);
hz_disp16(6,32,douhao);
hz_disp16(0,48,mi);
hz_disp16(2,48,ma);
hz_disp16(4,48,cuo);
hz_disp16(6,48,wu1);
CS2=0;CS1=1;
hz_disp16(0,0,qing);
hz_disp16(2,0,chong);
hz_disp16(4,0,xin1);
hz_disp16(6,0,shu);
hz_disp16(0,16,ru);
hz_disp16(2,16,douhao);
hz_disp16(4,16,xie);
hz_disp16(6,16,xie);
}
void Xinmima(void)
{
CS2=1;CS1=0;
hz_disp16(4,16,qing);
hz_disp16(4,32,shu);
hz_disp16(4,48,ru);
CS2=0;CS1=1;
hz_disp16(4,0,xin1);
hz_disp16(4,16,mi);
hz_disp16(4,32,ma);
}
void xiugai(void)
{
CS2=1;CS1=0;
hz_disp16(3,16,mi1);
hz_disp16(3,32,ma1);
hz_disp16(3,48,xiu);
CS2=0;CS1=1;
hz_disp16(3,0,gai);
hz_disp16(3,16,cheng1);
hz_disp16(3,32,gong1);
}
matrixkey()
{
void Wrong(void);
void Xinmima(void);
uchar m;
uchar k=0;
uchar temp,key;
void Disp_Img(unsigned char code *img);
Mima();
P2=0xfe;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xee:
key=7;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xde:
key=8;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xbe:
key=9;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0x7e:
init();
for(k=0;k<6;k++)
{
write_add(k,a1[k]);
delayms(20);
}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
if(t==1)
{
CS2=0;CS1=1;
hz_disp161(6,0,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,0,shuzi[key]);delay(5);}
}
if(t==2)
{
CS2=0;CS1=1;
hz_disp161(6,8,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,8,shuzi[key]);delay(5);}
}
if(t==3)
{
CS2=0;CS1=1;
hz_disp161(6,16,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,16,shuzi[key]);delay(5);}
}
if(t==4)
{
CS2=0;CS1=1;
hz_disp161(6,24,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,24,shuzi[key]);delay(5);}
}
if(t==5)
{
CS2=0;CS1=1;
hz_disp161(6,32,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,32,shuzi[key]);delay(5);}
}
if(t==6)
{
CS2=0;CS1=1;
hz_disp161(6,40,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,40,shuzi[key]);delay(5);}
}
}
}
P2=0xfd;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xed:
key=4;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xdd:
key=5;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xbd:
key=6;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
if(t==1)
{
CS2=0;CS1=1;
hz_disp161(6,0,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,0,shuzi[key]);delay(5);}
}
if(t==2)
{
CS2=0;CS1=1;
hz_disp161(6,8,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,8,shuzi[key]);delay(5);}
}
if(t==3)
{
CS2=0;CS1=1;
hz_disp161(6,16,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,16,shuzi[key]);delay(5);}
}
if(t==4)
{
CS2=0;CS1=1;
hz_disp161(6,24,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,24,shuzi[key]);delay(5);}
}
if(t==5)
{
CS2=0;CS1=1;
hz_disp161(6,32,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,32,shuzi[key]);delay(5);}
}
if(t==6)
{
CS2=0;CS1=1;
hz_disp161(6,40,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,40,shuzi[key]);delay(5);}
}
}
}
P2=0xfb;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xeb:
key=1;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xdb:
key=2;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xbb:
key=3;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
if(t==1)
{
CS2=0;CS1=1;
hz_disp161(6,0,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,0,shuzi[key]);delay(5);}
}
if(t==2)
{
CS2=0;CS1=1;
hz_disp161(6,8,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,8,shuzi[key]);delay(5);}
}
if(t==3)
{
CS2=0;CS1=1;
hz_disp161(6,16,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,16,shuzi[key]);delay(5);}
}
if(t==4)
{
CS2=0;CS1=1;
hz_disp161(6,24,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,24,shuzi[key]);delay(5);}
}
if(t==5)
{
CS2=0;CS1=1;
hz_disp161(6,32,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,0,shuzi[key]);delay(5);}
}
if(t==6)
{
CS2=0;CS1=1;
hz_disp161(6,40,shuzi[10]);
delay(5);
if(h==1) {hz_disp161(6,40,shuzi[key]);delay(5);}
}
}
}
P2=0xf7;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xe7: //改密碼/
init();
for(k=0;k<6;k++)
{
a1[k]=read_add(k);
}
if(a1[0]==b1[0]) { f++;}
if(a1[1]==b1[1]) {f++;}
if(a1[2]==b1[2]) {f++;}
if(a1[3]==b1[3]) {f++;}
if(a1[4]==b1[4]) {f++;}
if(a1[5]==b1[5]) {f++;}
if(f==6)
{
f=0;
Clr_Scr();
h=1;
t=0;
ClockMsg();
Xinmima();
}
break;
case 0xd7:
key=0;
b1[t]=key;
if(h==1){a1[t]=key;}
t++;
break;
case 0xb7:
if(t==1)
{
t--;
CS2=0;CS1=1;
hz_disp161(6,0,kongbai);
delay(5);
}
if(t==2)
{
t--;
CS2=0;CS1=1;
hz_disp161(6,8,kongbai);
delay(5);
}
if(t==3)
{
t--;
CS2=0;CS1=1;
hz_disp161(6,16,kongbai);
delay(5);
}
if(t==4)
{
t--;
CS2=0;CS1=1;
hz_disp161(6,24,kongbai);
delay(5);
}
if(t==5)
{
t--;
CS2=0;CS1=1;
hz_disp161(6,32,kongbai);
delay(5);
}
if(t==6)
{
t--;
CS2=0;CS1=1;
hz_disp161(6,40,kongbai);
delay(5);
}
break;
case 0x77: //確認//
if(h==1)
{
init();
for(k=0;k<6;k++)
{
write_add(k,b1[k]);
delayms(20);
}
Clr_Scr();
xiugai();
delay(1000);
Clr_Scr();
f=0;t=0;
h=0;
}
else
{
init();
for(k=0;k<6;k++)
{
a1[k]=read_add(k);
}
if(a1[0]==b1[0]) {f++;}
if(a1[1]==b1[1]) {f++;}
if(a1[2]==b1[2]) {f++;}
if(a1[3]==b1[3]) {f++;}
if(a1[4]==b1[4]) {f++;}
if(a1[5]==b1[5]) {f++;}
if(f==6)
{ Clr_Scr();
Disp_Img(img2);
delay(100);
f=0;
while(1);
}
else
{
Clr_Scr();
delay(50);
Wrong();
delay(500);
Clr_Scr();
Clr_Scr();
f=0;
m++;
if(m==3)
{
while(1)
{
speak=0;
delay(1);
speak=1;
}
}
}
}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
if(t==1)
{
CS2=0;CS1=1;
hz_disp161(6,0,shuzi[10]);
delay(5);
}
if(t==2)
{
CS2=0;CS1=1;
hz_disp161(6,8,shuzi[10]);
delay(5);
}
if(t==3)
{
CS2=0;CS1=1;
hz_disp161(6,16,shuzi[10]);
delay(5);
}
if(t==4)
{
CS2=0;CS1=1;
hz_disp161(6,24,shuzi[10]);
delay(5);
}
if(t==5)
{
CS2=0;CS1=1;
hz_disp161(6,32,shuzi[10]);
delay(5);
}
if(t==6)
{
CS2=0;CS1=1;
hz_disp161(6,40,shuzi[10]);
delay(5);
}
}
}
}
void main()
{
lcd_init();
Clr_Scr();
ClockMsg();
ds1302();
ds18b20();
ds18b20();
ds18b20();
Mima();
while(1)
{
Refresh();
matrixkey();
}
}
復制代碼
所有資料51hei提供下載:
SPI總線之電子密碼鎖.rar
(222.48 KB, 下載次數: 19)
2020-1-14 20:53 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精精精精xxxx免费视频
|
中文字幕在线播放不卡
|
国产日韩欧美二区
|
亚洲91视频
|
免费毛片在线
|
国产在线观看网站
|
一区二区三区视频在线观看
|
日韩中文字幕视频在线观看
|
欧美激情一区二区
|
国产精品国产成人国产三级
|
国产精品视频在
|
一级做a爰片久久毛片
|
亚洲精品视频免费观看
|
久久久久久综合
|
精品国产精品国产偷麻豆
|
美女一级a毛片免费观看97
|
久久精品天堂
|
午夜精
|
欧美日韩在线一区二区
|
狠狠综合久久av一区二区老牛
|
国产亚洲精品成人av久久ww
|
一级毛片色一级
|
91免费小视频
|
中文字幕11页
|
久久小视频
|
天天干夜夜拍
|
久久久99国产精品免费
|
黄色网址在线播放
|
自拍偷拍一区二区三区
|
91成人在线
|
色欧美综合
|
欧美精品一区三区
|
小h片免费观看久久久久
|
日本激情视频在线播放
|
亚洲欧美精品在线观看
|
99热播精品
|
亚洲一区二区三区四区在线观看
|
国产精品视频一二三区
|
精品国产91乱码一区二区三区
|
亚洲精品电影网在线观看
|
免费观看一级特黄欧美大片
|