找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3914|回復(fù): 11
收起左側(cè)

單片機(jī)程序里能設(shè)個(gè)到期鎖定功能嗎?

[復(fù)制鏈接]
ID:106553 發(fā)表于 2016-7-26 22:51 | 顯示全部樓層 |閱讀模式
就是單片機(jī)程序里設(shè)好一個(gè)時(shí)間后(比如一個(gè)月或三個(gè)月)單片機(jī)程序就不能正常用了,到期鎖定后要用的話(huà)只能從新輸入一次之前的程序。如可以的話(huà)請(qǐng)幫忙加進(jìn)下面的程序里。
#include<reg52.h>
sbit k1 =P3^4;        //按鍵
sbit led1 =P1^0;        //1
sbit led2 =P1^1;        //2
sbit led3 =P1^2;        //3
unsigned char n=0;
voiddelay(unsigned int t)     //延時(shí)子程序
{ while(t--);   }                //延時(shí)子程序
void main(void)        //主程序
{
           while(1)  //掃描按鍵
      {
                if(k1==0)        //按鍵按下
        {     
                       if(n==0)
                 {
                        led1 = 0;     //1
                   delay(60000);       //延時(shí)
         
                          led2 = 0;           //2
                    
                      delay(60000);      //延時(shí)
                            led1 = 1;            //1
                                   n=1;
                     }   
         }      
               
                if(k1==1)        //按鍵彈起
           {
                       if(n==1)
              {
                          led2 = 1; //2
                                                  
                    led3 = 0; //3               
               delay(60000);       //延時(shí)               
                    led3 = 1;                      //3
                     n=0;
                   }
            }
      }
}
[/url]


回復(fù)

使用道具 舉報(bào)

ID:96682 發(fā)表于 2016-7-27 07:23 | 顯示全部樓層
就這個(gè)嘛完全是入門(mén)級(jí)的沒(méi)那個(gè)必要加入
回復(fù)

使用道具 舉報(bào)

ID:97438 發(fā)表于 2016-7-27 09:00 | 顯示全部樓層
如果要精確的話(huà),你需要一個(gè)時(shí)基,或者你從來(lái)都不關(guān)機(jī)。否則的話(huà),只能按每天使用多長(zhǎng)時(shí)間,來(lái)定一個(gè)總的時(shí)間,每次使用的時(shí)候,減時(shí)間
回復(fù)

使用道具 舉報(bào)

ID:121156 發(fā)表于 2016-7-27 09:43 | 顯示全部樓層
可以加一個(gè)時(shí)間中斷,反正你的程序也比較簡(jiǎn)單,多響應(yīng)幾次中斷也沒(méi)多大影響
回復(fù)

使用道具 舉報(bào)

ID:121156 發(fā)表于 2016-7-27 09:45 | 顯示全部樓層
道理和昨天改的一樣,再加一個(gè)變量,當(dāng)?shù)狡跁r(shí)變量值發(fā)生改變
回復(fù)

使用道具 舉報(bào)

ID:121156 發(fā)表于 2016-7-27 09:47 | 顯示全部樓層
也不對(duì)。。。。如果芯片斷電就不行了,所以得加一塊外部時(shí)鐘芯片。。。。
回復(fù)

使用道具 舉報(bào)

ID:106553 發(fā)表于 2016-7-27 15:38 | 顯示全部樓層
PK250 發(fā)表于 2016-7-27 09:47
也不對(duì)。。。。如果芯片斷電就不行了,所以得加一塊外部時(shí)鐘芯片。。。。

斷電先不管他,能不能設(shè)好一個(gè)時(shí)間(比如100個(gè)小時(shí))后這單片機(jī)就不能正常工作了這時(shí)斷一下電也不能用了,只能從新輸入一次程序�?梢缘脑�(huà)請(qǐng)幫忙加進(jìn)這個(gè)程序里。謝謝了!
回復(fù)

使用道具 舉報(bào)

ID:135415 發(fā)表于 2016-7-29 09:23 | 顯示全部樓層
#include<reg52.h>
sbit k1 =P3^4;        //按鍵
sbit led1 =P1^0;        //燈1
sbit led2 =P1^1;        //燈2
sbit led3 =P1^2;        //燈3
unsigned char n=0;
voiddelay(unsigned int t)     //延時(shí)子程序
{ while(t--);   }                //延時(shí)子程序
void main(void)        //主程序
{
           while(1)  //掃描按鍵
      {
                if(k1==0)        //按鍵按下
        {     
                       if(n==0)
                 {
                        led1 = 0;     //燈1亮
                   delay(60000);       //延時(shí)
         
                          led2 = 0;           //燈2亮
                    
                      delay(60000);      //延時(shí)
                            led1 = 1;            //燈1滅
                                   n=1;
                     }   
         }      
               
                if(k1==1)        //按鍵彈起
           {
                       if(n==1)
              {
                          led2 = 1; //燈2滅
                                                  
                    led3 = 0; //燈3亮               
               delay(60000);       //延時(shí)               
                    led3 = 1;                      //燈3滅
                     n=100--------0;
                   }
            }
      }
}
[/url]
其他你在改
回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2016-7-29 09:51 | 顯示全部樓層
這個(gè)可以使用帶eeprom的單片機(jī),用數(shù)個(gè)eeprom字節(jié)記錄“運(yùn)行累計(jì)時(shí)間”(如果應(yīng)用程序不需要實(shí)時(shí)時(shí)鐘,可以不加時(shí)鐘芯片,反正單片機(jī)一運(yùn)行,定時(shí)器便啟動(dòng)。)“運(yùn)行累計(jì)時(shí)間”(可以十分鐘或小時(shí),也可以是天)比較,達(dá)到或超過(guò)以后就跳過(guò)主要的功能程序模塊即可。但是建議你還是設(shè)一個(gè)口令比較程序,輸入一個(gè)正確口令即可繼續(xù)使用。沒(méi)必要重裝。如果你想設(shè)置第二個(gè)“限制時(shí)間段”,或更多,就多設(shè)計(jì)個(gè)預(yù)置口令,比如達(dá)到100小時(shí)是什么口令,超過(guò)100達(dá)到200小時(shí)時(shí)是什么口令。

我想,這些提示對(duì)一個(gè)自己所編程序的價(jià)值需要這個(gè)功能的人來(lái)說(shuō),已經(jīng)夠了吧?
回復(fù)

使用道具 舉報(bào)

ID:106553 發(fā)表于 2016-7-30 13:08 | 顯示全部樓層
AMB 發(fā)表于 2016-7-29 09:23
#include
sbit k1 =P3^4;        //按鍵
sbit led1 =P1^0;        //燈1

void delay(unsigned int t)     //延時(shí)子程序 (這里我少打了個(gè)空格)
  n=100--------0;  (這句不能通過(guò),這是定的時(shí)間嗎?)
我是新手,能幫我加全嗎謝謝了!
回復(fù)

使用道具 舉報(bào)

ID:106553 發(fā)表于 2016-7-30 13:21 | 顯示全部樓層
本帖最后由 w3158 于 2016-7-30 17:04 編輯
ahshmj 發(fā)表于 2016-7-29 09:51
這個(gè)可以使用帶eeprom的單片機(jī),用數(shù)個(gè)eeprom字節(jié)記錄“運(yùn)行累計(jì)時(shí)間”(如果應(yīng)用程序不需要實(shí)時(shí)時(shí)鐘,可以 ...

謝謝你的提示,不過(guò)我才剛剛學(xué)單片機(jī)只會(huì)在比較簡(jiǎn)單的程序中改改我要的功能。現(xiàn)在能不能用個(gè)定時(shí)器計(jì)時(shí),比如到時(shí)間了就把延時(shí)時(shí)間改變了,反正不能正常工作就行。除非在到期之前斷一下電就從新計(jì)時(shí),如中間沒(méi)斷過(guò)電一旦到期限后再斷電也不能正常了�?梢缘脑�(huà)請(qǐng)幫忙加進(jìn)去,謝謝了!
回復(fù)

使用道具 舉報(bào)

ID:106553 發(fā)表于 2016-7-31 22:17 | 顯示全部樓層
我怎么成技術(shù)員了?我是新手啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表