永发信息网

请高手为我提供一份“电子密码锁”的设计和原理图(Multisim做的)急.请高手帮帮忙

答案:1  悬赏:10  手机版
解决时间 2021-05-25 12:16

我看你的答案没有图啊 能否提供下啊 谢谢啦

最佳答案
C语言源程序
#include
unsigned char code ps[]={1,2,3,4,5};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char pslen=9;
unsigned char templen;
unsigned char digit;
unsigned char funcount;
unsigned char digitcount;
unsigned char psbuf[9];
bit cmpflag;
bit hibitflag;
bit errorflag;
bit rightflag;
unsigned int second3;
unsigned int aa;
unsigned int bb;
bit alarmflag;
bit exchangeflag;
unsigned int cc;
unsigned int dd;
bit okflag;
unsigned char oka;
unsigned char okb;
void main(void)
{
unsigned char i,j;
P2=dispcode[digitcount];
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%6;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(cmpflag==0)
{
if(P3_6==0) //function key
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_6==0)
{
if(hibitflag==0)
{
funcount++;
if(funcount==pslen+2)
{
funcount=0;
cmpflag=1;
}
P1=dispcode[funcount];
}
else
{
second3=0;
}
while(P3_6==0);
}
}
if(P3_7==0) //digit key
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{
if(hibitflag==0)
{
digitcount++;
if(digitcount==10)
{
digitcount=0;
}
P2=dispcode[digitcount];
if(funcount==1)
{
pslen=digitcount;
templen=pslen;
}
else if(funcount>1)
{
psbuf[funcount-2]=digitcount;
}
}
else
{
second3=0;
}
while(P3_7==0);
}
}
}
else
{
cmpflag=0;
for(i=0;i
{
if(ps[i]!=psbuf[i])
{
hibitflag=1;
i=pslen;
errorflag=1;
rightflag=0;
cmpflag=0;
second3=0;
goto a;
}
}
cc=0;
errorflag=0;
rightflag=1;
hibitflag=0;
a: cmpflag=0;
}

}
}
void t0(void) interrupt 1 using 0
{
TH0=(65536-500)/256;
TL0=(65536-500)%6;
if((errorflag==1) && (rightflag==0))
{
bb++;
if(bb==800)
{
bb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
P0_0=~P0_0;
}
aa++;
if(aa==800)
{
aa=0;
P0_1=~P0_1;
}
second3++;
if(second3==6400)
{
second3=0;
hibitflag=0;
errorflag=0;
rightflag=0;
cmpflag=0;
P0_1=1;
alarmflag=0;
bb=0;
aa=0;
}
}
if((errorflag==0) && (rightflag==1))
{
P0_1=0;
cc++;
if(cc<1000)
{
okflag=1;
}
else if(cc<2000)
{
okflag=0;
}
else
{
errorflag=0;
rightflag=0;
hibitflag=0;
cmpflag=0;
P0_1=1;
cc=0;
oka=0;
okb=0;
okflag=0;
P0_0=1;
}
if(okflag==1)
{
oka++;
if(oka==2)
{
oka=0;
P0_0=~P0_0;
}
}
else
{
okb++;
if(okb==3)
{
okb=0;
P0_0=~P0_0;
}
}
}
}


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黄石港区黄石新吴都医药(福民大药房)地址是什
绩效考核怎么算,人力资源部绩效奖金怎么算呀
X68G和X616G谁可以支持扩展内存卡??哪个好
驿城区驻马店巴蜀传奇自助火锅(总店)这个地址
什么是氟中毒?快!快!快!谢了
富拉尔基区齐齐哈尔鹤乡烧饼快餐店地址在哪里
视屏不能录制 高手帮忙
亚克力板和玻璃哪个贵,玻璃隔板和亚克力的,
鹤城区怀化牛仔大王在哪里啊,我有事要去这里
2KHz方波信号产生电路 的电路图
潜江市潜江鱼锅焖饭哪位知道具体地址啊
求记英语单词诀窍,好的不难忘记的
黄梅县黄冈滨河阳光营销中心地址在哪,我要去
中国武术应战泰拳几号开始··· ?
想哭的时候如何能憋住不哭
推荐资讯
怎样用废物做乐器
黄陂区大悟县新世纪超市(驻武汉办事处)在哪里
萨尔图区大庆盛天宠物医院地址是什么,有没有
涟源市娄底涟源市燃气管理站哪位知道具体地址
爱出虚汗怎么办好啊?男34岁
是不是点卷买的宠物没有加成的啊?
人的肚子里真的能怀上动物吗
濮阳金梦婚纱影楼招聘
怎么把Wendous nternet Explor8.0的浏览器改
QQ窗口上方怎么没有天气预报
人的生理时钟中哪个时段是长高的?
“纪念这一百天”怎么用英语写
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?