求助:电子密码锁的显示问题

2020-02-02 09:18发布

本人新手中的新手T T
现在想写一个电子密码锁的程序
要求:
1、用4*4矩阵键盘组成0~9数字键及确认和删除键
2、用8位数码管显示输入的密码及当前状态,当按下数字键0~9中任意一个键时,数码管靠左显示按下数字,再次按下按键时,数码管靠左第二位显示数字,依次类推
3、用一个独立的继电器,控制密码锁开关
请教各位前辈们,这个数码管显示部分应该怎么写,让第一位密码显示在最左面,第二位显示的左边第二位....后面的几位密码依次显示
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
w1000
1楼-- · 2020-02-03 02:39
如果要移位,笨点的办法就是建个数组 sumaguan[4]
for (i>0)
{
   desplay( sumaguan[i-1],(4-i)  );
    i--;
}
白滚滚
2楼-- · 2020-02-03 08:01
void display()
{   
        P0=tab[str[num]];
        CS1=0;
        LEDWR=0;
        LEDWR=1;
        CS1=1;

        P0=~(0x80>>num);
        CS2=0;
        LEDWR=0;
        LEDWR=1;
        CS2=1;
        Delay(1);
        num++;
       num=num&0x07;
   
}
将键值存入到str[]这个数组中,tab[]当中存放的是段选码,然后对数组操作,但是最后出来的结果位选还是不对,请教各位前辈,问题出在哪里?
我想实现的效果是第一个键值显示在DS7数码管,第二个键值显示在DS6.....依次类推
Doctor_A
3楼-- · 2020-02-03 10:55
 精彩回答 2  元偷偷看……
白滚滚
4楼-- · 2020-02-03 13:30
本帖最后由 白滚滚 于 2012-11-21 17:55 编辑
Doctor_A 发表于 2012-11-21 16:52
你的八位数码管指的是八位共端的,还是八位每一位都是独立公共端的。下面说一下八位独立公共端的(此处需要 ...


谢谢^_^
我的八位数码管是八位公端的,段选线和位选线都连到同一个单片机IO口的,段选和位选各连到一个锁存器
现在要求第一位按键的值显示在最左边一位,其他七位数码管是灭的,然后再让第二个按键值显示在最左边第二位,其他六位数码管同样是灭的.....
我现在程序运行后位选出来只有1,3,5,7数码管亮╮(╯▽╰)╭
这是怎么回事T T
白滚滚
5楼-- · 2020-02-03 14:13
还是没出来
franque
6楼-- · 2020-02-03 14:22
你如果能够让数码管都可以显示,也就出来了
定义个数组,将输入的密码挨个替换就可以了

一周热门 更多>