欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機求思路 P1.0按下執行p2.0輸出半個小時關掉

[復制鏈接]
跳轉到指定樓層
樓主
ID:953405 發表于 2021-7-17 15:26 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現,謝謝大家
P1.0按下執行p2.0輸出半個小時關掉 P1.2按下執行p2.1輸出1個小時關掉    p1.3按下執行P2.2輸出 P1.4按下關掉所有程序 高電平為輸出 求大佬們幫忙
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2021-7-18 01:13 | 只看該作者
設立p2.0和p2.1的輸出倒數暫存
建立1毫秒定時中斷
在中斷中當倒數暫存大于0時倒數暫存減1

在主程序中
P1.0按下執行p2.0輸出并在相關的倒數暫存中放入1800000
當倒數暫存為零時關掉輸出
P1.2同上
P1.4按下關掉所有輸出并清零倒數暫存
回復

使用道具 舉報

板凳
ID:824490 發表于 2021-7-18 01:52 | 只看該作者
本帖最后由 名字不是重點 于 2021-7-18 01:57 編輯

1:開一個中斷,10ms,定義一個int變量time來 計數,一次中斷time++;
2:定義一個char變量mode,再寫一個鍵掃函數,對應P1.0--P1.4按下時為mode0-mode4
3:大循環,檢測鍵值,用Switch語句跳到對應的mode值,同時time清0.
   mode1:
    time=0;
    P2.1=0;P2.2=0;//如需輸出互斥,則加入此行

     while(time<180000) {P2.0=1; }
     P2.0=0;
    break;
  mode2:
   time=0;
   P2.0=0;P2.2=0;//如需輸出互斥,則加入此行
     while(time<360000) {P2.1=1; }
     P2.1=0;
    break;
mode3:
    P2.0=0;P2.1=0;//如需輸出互斥,則加入此行
   P2.2=1;
  break;
mode4:
    P2.2=0;
    P2.1=0;
    P2.0=0;
    break;

差不多就是這樣,你自己調整優化一下就OK了

回復

使用道具 舉報

地板
ID:950257 發表于 2021-7-18 11:28 | 只看該作者
用定時器在后臺計時就行
回復

使用道具 舉報

5#
ID:708541 發表于 2021-7-18 11:36 | 只看該作者
方法有很多種,自己多想想,自己多寫寫程序,就可以寫出來了,別人告訴你的,你一定能記住,下次類似的問題你還是過來問,多鍛煉一下自己。
回復

使用道具 舉報

6#
ID:161164 發表于 2021-7-18 12:25 來自觸屏版 | 只看該作者
名字不是重點 發表于 2021-7-18 01:52
1:開一個中斷,10ms,定義一個int變量time來 計數,一次中斷time++;
2:定義一個char變量mode,再寫一個鍵掃 ...

為什么要用while(time<xxx)?
豈不是進入了Mode1后要等半小時才能轉mode?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表