求帮忙编一段 汇编语言,基于51单片机的密码锁,要求在下面。真心求帮忙啊急急急!!!

2024-12-05 02:03:59
推荐回答(4个)
回答1:

伪代码,参考吧
矩阵:(查表法)
uchar keyscan()
{
uchar scan1,scan2,keycode,j;
P1=0xf0;
scan1=P1;
if((scan1&0xf0)!=0xf0) //判键是否按下
{
delayms(30); //延时30ms
scan1=P1;
if((scan1&0xf0)!=0xf0) //二次判键是否按下
{
P1=0x0f;
scan2=P1;
keycode=scan1|scan2; //组合成键编码
for(j=0;j<=15;j++)
{
if(keycode== key_code[j]) //查表得键值
{
key=j;
return(key);
}
}
}
}

return (*);
}

数码管:给值就行了
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off

回答2:

是要做实际的电路实验吗?

下图中的,驱动继电器的三极管,画错了。
另外,继电器上面的,二极管,应该有限流电阻。

驱动数码管,段,应该用 P0。

P3,有第二功能,不宜用于矩阵键盘。

电路,不合理的地方太多了,编程后,也难以实验成功。

回答3:

你这里没有矩阵键盘呀

回答4:

用555就可以解决比51便宜实用多了