久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3120|回復: 7
打印 上一主題 下一主題
收起左側

單片機數據存儲出問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:208105 發表于 2017-10-16 20:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我做的是密碼鎖,刪除數據不能全部刪除,會有一位亂的數據遺留,這是怎么回事啊
以下是我的程序
  1. #include<reg52.h>
  2. #include"1602.h"
  3. #include"delay.h"
  4. #include"keyboard.h"
  5. sbit LED1=P2^0;
  6. sbit LED2=P2^1;
  7. sbit beep=P1^5;
  8. unsigned char data password[]={1,2,3,4,5,6};
  9. void sound()
  10. {
  11. int t=2000;
  12. while(t--)
  13. {  
  14.     beep=~beep;
  15.     delay(50);
  16. }
  17. }
  18. /*------------------------------------------------
  19.                     Ö÷³ÌÐò
  20. ------------------------------------------------*/
  21. main()
  22. {
  23. unsigned char num,i,j;                  
  24. unsigned char passwordtemp[6],inputtimes;      
  25. unsigned char passwordlength,PLEN;     
  26. bit Flag;

  27. PLEN=sizeof(password)/sizeof(password[0]);

  28. LCD_Init();      
  29. DelayMs(10);        
  30. LCD_Clear();      
  31. LCD_Write_String(0,0,"  Welcome! ");   
  32. LCD_Write_String(0,1,"Input password!");
  33.   while (1)        
  34.   {
  35.     num=KeyPro();
  36.     if(num!=0xff)  
  37.    {
  38.     if(i==0)   
  39.    LCD_Write_String(0,1,"                ");
  40.    if(i<6)
  41.    {
  42.        passwordtemp[i]=num;
  43.        LCD_Write_Char(i,1,num+'0');
  44.    }
  45.   if(num=='A')
  46.   {
  47.     i=0;
  48.     LCD_Clear();
  49.     LCD_Init();
  50.         LCD_Write_Char(i,1,num+'0');
  51.      passwordtemp[i]=0;
  52.      }
  53.    i++;   
  54.   if(i==7)
  55.    {
  56.       passwordlength=i-1;
  57.    i=0;
  58.    if(passwordlength==PLEN)
  59.      {
  60.       Flag=1;
  61.       for(j=0;j<PLEN;j++)
  62.          Flag=Flag&&(passwordtemp[j]==password[j]);
  63.          }
  64.       if(Flag)
  65.     {
  66.        LCD_Write_String(0,1,"          ");
  67.         LCD_Write_String(0,1,"   Lock open!");
  68.      LED1=0;
  69.      LED2=0;
  70.         inputtimes=0;
  71.         Flag=0;     
  72.   }
  73.    else
  74.      {
  75.     LCD_Write_String(0,1,"          ");
  76.     LCD_Write_String(0,1,"  try again!!!");
  77.     sound();
  78.     inputtimes++;
  79.     if(inputtimes==3)
  80.     {
  81.        LCD_Write_String(0,1,"                ");
  82.        LCD_Write_String(0,1,"Wrong 3 times!");
  83.        while(1);
  84.     }
  85.   }
  86.    }
  87.     }
  88.   }
  89. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:123289 發表于 2017-10-17 19:44 | 只看該作者
刪除與顯示構思不好!
刪除只需在記錄區做個標記,顯示時看到這個標記就不顯示(或顯示一個提示信息)。你看這個建議如何?
回復

使用道具 舉報

板凳
ID:208105 發表于 2017-10-17 21:10 | 只看該作者
if(num=='B')                 {                         i=-2;                         LCD_Clear();                         LCD_Init();                                   i++;                         if(i==0)                 LCD_Write_String(0,1,"                ");                         if(i<6)                         {                            LCD_Write_Data(password[i]);                                  password[i]=num;                                  LCD_Write_Char(i,1,num+'0');                         }                         if(i==7)                         {                                                  LCD_Write_String(0,0," new password         ");         LCD_Write_String(0,1," ");                                   LCD_Write_Char(i,1,num+'0');                                   Flag=1;       }
回復

使用道具 舉報

地板
ID:208105 發表于 2017-10-17 21:11 | 只看該作者
刪除的程序可以用嗎,我之前的問題已經解決了
if(num=='B')
                {
                        i=-2;
                        LCD_Clear();
                        LCD_Init();          
                        i++;
                        if(i==0)   
            LCD_Write_String(0,1,"                ");
                        if(i<6)
                        {
                           LCD_Write_Data(password[i]);
                                 password[i]=num;
                                 LCD_Write_Char(i,1,num+'0');
                        }
                        if(i==7)
                        {
                
                                LCD_Write_String(0,0," new password         ");
        LCD_Write_String(0,1," ");
                                 LCD_Write_Char(i,1,num+'0');
                                  Flag=1;
      }
回復

使用道具 舉報

5#
ID:111634 發表于 2017-10-17 21:14 | 只看該作者
你要刪除什么數據?是密碼鎖EPROM中的密碼數據嗎?
回復

使用道具 舉報

6#
ID:208105 發表于 2017-10-17 21:28 | 只看該作者
修改這里面的數據password[]={1,2,3,4,5,6},一直修改不了,程序好像沒有進去執行
回復

使用道具 舉報

7#
ID:166645 發表于 2017-10-17 22:26 | 只看該作者
一般請教別人找問題的程序問題,,你首先要做到一個好的注釋,方便別人快速的找到你的問題,你這樣發程序,比人還要重頭研究一遍

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:111634 發表于 2017-10-18 21:08 | 只看該作者
rrrlll 發表于 2017-10-17 21:28
修改這里面的數據password[]={1,2,3,4,5,6},一直修改不了,程序好像沒有進去執行

在定義password[]時不要賦值,在程序運行后在賦值和修改。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一级网站 | 久久久久久国产免费视网址 | 日韩色视频 | 成人福利视频网站 | 久久免费大片 | 在线欧美激情 | 久久精品免费一区二区三 | 日本一区二区三区视频在线 | 一区二区三区在线 | 欧 | 国产91成人| 中文字幕亚洲一区 | 91毛片在线观看 | 免费观看一级黄色录像 | 青青青伊人 | 日韩日韩日韩日韩日韩日韩日韩 | 亚洲免费在线视频 | 男女羞羞视频在线看 | 日韩欧美1区2区 | 男女av| 久久久久久久久久久高潮一区二区 | 99精品视频在线观看 | 日韩一区二区三区在线播放 | 美女爽到呻吟久久久久 | 一级毛片色一级 | 国产不卡视频 | 日韩欧美国产一区二区三区 | 亚洲欧美一区二区三区情侣bbw | 先锋资源网 | 精品国产不卡一区二区三区 | 免费一级黄色 | 亚洲精品一 | 在线观看www视频 | 久久久久久久一区 | 午夜专区| 国产中文字幕在线观看 | 伊人最新网址 | 国产成人一区二 | 亚洲一区二区高清 | 亚洲欧洲国产视频 | 成人精品一区二区 | 久久69精品久久久久久久电影好 |