找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1486|回复: 3
打印 上一主题 下一主题
收起左侧

单片机制作的自动取款机程序怎么设置一个初始密码

[复制链接]
跳转到指定楼层
楼主
ID:452418 发表于 2019-6-4 23:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比较函数:用来确定密码正误
*********************************************************************/
bit check(uchar p[],uchar q[])
{  uchar n,k=0;        
   for(n=0;n<6;n++)
   {  if(p[n]==q[n])
       k++;}
   if(k==6)
   return 1;
   else return 0;
}void main()
{         
    uchar key_buff[6];                 //输入缓冲
    uchar new_key[6] ;                 //密码设置缓冲区
    uchar original_key[6];                   //密码读出缓冲区
        WriteSet(6,9);                    
        init();
    while(1)
        {             for(b=0;b<6;b++)      //24c08里面取出正确的密码                                                  
               {
                 original_key[ b]=ReadSet(b);
                 delay(5);
               }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2019-6-5 08:02 | 只看该作者
“ //24c08里面取出正确的密码”
在这个里面先放一个密码,这个码就是初始密码。
回复

使用道具 举报

板凳
ID:452418 发表于 2019-6-5 12:03 | 只看该作者
yzwzfyz 发表于 2019-6-5 08:02
“ //24c08里面取出正确的密码”
在这个里面先放一个密码,这个码就是初始密码。

是先设一个original_key[6]={0,0,0,0,0,0,},但是要怎么写入?是用 WriteSet(6,9)吗?

void WriteSet(unsigned char add, unsigned char dat)
// 在指定地址addr处写入数据WriteCurrent
{
        start();               //开始数据传递
        WriteCurrent(OP_WRITE);  //选择要操作的AT24Cxx芯片,并告知要对   其写入数据
         Ask();
        WriteCurrent(add);       //写入指定地址
        Ask();
        WriteCurrent(dat);       //向当前地址(上面指定的地址)写入数据
        Ask();
        stop();                //停止数据传递
        delaynms(5);               //1个字节的写入周期为1ms, 最好延时1ms以上
}
我把下面的original_key[ b]=ReadSet(b)改为original_key[ 6]=ReadSet(b)才行
但之后改不了密码了。
回复

使用道具 举报

地板
ID:93224 发表于 2019-6-5 17:50 | 只看该作者
可以吧原始的密码写进ROm里面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表