找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5240|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

主程序中如何申請中斷?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:28165 發(fā)表于 2011-2-24 21:50 | 只看該作者 回帖獎勵(lì) |倒序?yàn)g覽 |閱讀模式

各位大師們 你們好,我將用定時(shí)器編寫一個(gè)5分鐘的定時(shí)程序,主循環(huán)中如果檢測到一個(gè) IO口為低電平的時(shí)候?qū)⑸暾堉袛?由單片機(jī)的另一個(gè)IO口輸出5分鐘的高電平狀態(tài)

主循環(huán)如何編寫?如果是檢測到IO口為低電平時(shí)就要啟動定時(shí)器,如何編程?謝謝高手們指點(diǎn)

MAIN:  SETB _WDI;喂狗
           NOP
           NOP
           MOV C,K1_IN;讀IO口狀態(tài)
          JNC OPENRELAY;若=0證明是低電平
          LJMP MAIN

OPENRELAY: SETB RELAY;打開繼電器
          SETB TF1;?????該處如何申請中斷去延時(shí)這5分鐘???
          LJMP MAIN

 

 TIMER1:  SETB _WDI
  MOV  TH1,#03CH    ;賦初值
   MOV  TL1,#0B0H
  DJNZ  R3,EXT1      ;1s到了?沒有轉(zhuǎn)去EXT1
    MOV  R3,#20       ;1s到了,重新賦值
  DEC  R4           ;1S到了R4減1

  CJNE  R4,#0,EXT1   ;60s到了嗎,沒有到則轉(zhuǎn)去EXT1
  MOV  R4,#60       ;60S到了重新賦值
  DEC R5      ;60S到了R5減1

  CJNE  R5,#0,EXT1   ;300s到了嗎,沒有到則轉(zhuǎn)去EXT1
  MOV  R5,#5        ;300s到了,重新賦值
closedrelay: CLR RELAY
  SETB C
EXT1:  RETI     ;中斷返回

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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