proteus基于8086的电子密码锁技术报告(6)

2019-01-07 14:40

void querengg(char shuru[]) /// 显示输入之后的密码 ffdf {

int i,j,m;

for(j=0;j<7;j++) {

for(i=0;i<4;i++) {

m=shuru[i]; outp(IOC1,cs[i]); outp(IOA1,num1[m]); outp(IOB1,num2[m]); delay(1); }

} }

int panduan1(char shuru[],char mima[])//判断开锁 I为1,可以更改密码 I为0不允许更改密码

{ int i;

if(shuru[0]==mima[0]&&shuru[1]==mima[1]&&shuru[2]==mima[2]&&shuru[3]==mima[3]) //判断输入的密码和更改的密码是否一样

{

yes(); i=1; }

else

24

{

err();

i=0; } return i; }

int panduan2(char shuru[],char mima[],int t)//判断错误超过6次,警报 t为错误密码次数

{

if(shuru[0]==mima[0]&&shuru[1]==mima[1]&&shuru[2]==mima[2]&&shuru[3]==mima[3]) //判断输入的密码和更改的密码是否一样

{

yes(); t=0;

} else {

err();

t++; } return t; }

//////////////////////////////

void main(void)

25

{

int i1=0,i2=1,i3=2,i4=3; int s1=0,s2=1,s3=2,s4=3;

int r=1; //变量R非常重要,只有当R=1时,才可以修改密码,初始化密码,在判断密码中,会返回一个R,得知R=1or0. !!亮点

int t=0;

char mima[100]={0,0,0,0}; //这两个数组是亮点 char shuru[100]={0,0,0,0}; char tmp;

int c1=0; //更改密码的led位置!!亮点 int c2=0; //输入密码的led位置

fun82551(); fun82552();

while(1) {

tmp=inp(IOA2);

if(tmp==0xfffC&&r==1) 0000

{

26

// 显示

chushihua(r); mima[0]=0; mima[1]=0; mima[2]=0; mima[3]=0; }

if(tmp==0xffbd&&r==1) 密码 r=1时才能更改密码

{

mima[i1]=genggaimima(); c1=huanwei(c1); mima[i2]=change(c1); c1=huanwei(c1); mima[i3]=change(c1); c1=huanwei(c1); mima[i4]=change(c1); c1=0; int i,j,m;

for(j=0;j<25;j++) {

for(i=0;i<4;i++) {

m=mima[i]; outp(IOC1,cs[i]); outp(IOA1,num1[m]);

27

// 按更改密码开始改

outp(IOB1,num2[m]); delay(1);

}

} }

if(tmp==0xffdd) // {

querengg(shuru); }

if(tmp==0x7d) // {

shuru[s1]=shurumima(); c2=huanwei(c2); shuru[s2]=change(c2); c2=huanwei(c2); shuru[s3]=change(c2); c2=huanwei(c2); shuru[s4]=change(c2); c2=0; }

确认输入 重新输入输入密码28


proteus基于8086的电子密码锁技术报告(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新概念第一册重点及重要句型109-120

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: