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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

用單片機設計15s倒計時器

作者:佚名   來源:本站原創   點擊數:  更新時間:2009年10月26日   【字體:

/*
跳線設置:默認跳線位置,注意蜂鳴器選擇跳線J5要選23端
程序效果:利用單片機的定時/計數器設計一個15到0倒計時器,
  按S4后啟動,要求精確顯示到百分之一秒。
發揮部分:  
1、定時結束后有提示音報警,并可重新定時
2、定時過程中按獨立鍵盤s5可暫停,按S4繼續
運行環境:51hei單片機學習板
*/
  ORG 0000H
  LJMP START   //主程序必須避開地址000BH
  ORG 000BH  //定時器0的中段服務程序,起始地址為000BH
  LJMP IT00
  ORG 0030H
START:    MOV TH0,#0EBH //裝入初始值,定時時間為10ms
  MOV TL0,#64H
  MOV TMOD,#01H //工作方式1
  MOV 33H,#01   //顯示初值為15s
  MOV 32H,#05
  MOV 31H,#00
  MOV 30H,#00
  SETB ET0   //打開定時0
  SETB EA   //開總中斷
LOOP1:   JB P3.6,LOOP   //判斷高低位,即按鍵KEY0是否按            下
  LCALL DISPLAY //為低,即按鍵按下,延時消抖
  LCALL DISPLAY
  JB P3.6,LOOP   //按鍵真的按下,并不是外界的干擾
  SETB TR0  //啟動定時器
HERE:    LCALL DISPLAY //調用顯示
   JB P3.7,LOOP3 //判斷高低,即KEY1按鍵是否按下
   CLR TR0   //按下,關閉定時器,這里并沒有消抖
   LJMP LOOP1    //等待KEY0的按下
LOOP3:   SJMP HERE    //KEY1沒有按下,就需顯示
LOOP:     LCALL DISPLAY  //KEY1沒有按下,就需顯示
  LJMP  LOOP1
//減10ms子程序
SUB1:    DEC 30H     //百分位減1
  MOV A,30H
  CJNE A,#0FFH,LOOP2 //判斷百分位減到0之后是否        再減1
  MOV 30H,#09   //是,裝入初值9
  DEC 31H    //十分位減1
  MOV A,31H
  CJNE A,#0FFH,LOOP2 //判斷百分位減到0之后是否        再減1
  MOV 31H,#09
  DEC 32H
  MOV A,32H
  CJNE A,#0FFH,LOOP2
  MOV 32H,#09
  DEC 33H
  MOV A,33H
  CJNE A,#0FFH,LOOP2
  clr P2.2    //從15s減到0s后,驅動蜂鳴器
  LCALL DELAY   //延時
  LCALL DELAY
  SETB P2.2  //關閉蜂鳴器
  MOV 33H,#01   //裝入初值15s
  MOV 32H,#05
  MOV 31H,#00
  MOV 30H,#00
LOOP2:   NOP    //空指令
  RET    //返回
//顯示子程序
DISPLAY: MOV DPTR,#TAB  //賦表首地址
  MOV A,#0FBH 
 
 SETB P2.7
 MOV P0,A  //亮最左邊的數碼管
 CLR P2.7
  XCH A,R0   //暫存A的值
  MOV A,33H
  MOVC A,@A+DPTR //根據表值查找所需的值
 SETB P2.6
 MOV P0,A  //顯示值
 CLR P2.6
  LCALL DELAY   //延時
  XCH A,R0 //恢復原值
  RL A    //循環左移,為下次做準備
 SETB P2.7
 MOV P0,A
 CLR P2.7
  XCH A,R0
  MOV A,32H
  MOVC A,@A+DPTR
 SETB P2.6
 MOV P0,A
 CLR P2.6
  LCALL DELAY
  XCH A,R0
  RL A

 SETB P2.7
 MOV P0,A
 clr P2.7

  XCH A,R0
  MOV A,31H
  MOVC A,@A+DPTR
 SETB P2.6
 MOV P0,A
 clr P2.6
  LCALL DELAY
  XCH A,R0
  RL A
 SETB P2.7
 MOV P0,A
 clr P2.7
  XCH A,R0
  MOV A,30H
  MOVC A,@A+DPTR
 SETB P2.6
 MOV P0,A
 clr P2.6
  LCALL DELAY
  RET
TAB:     DB 3FH,06H,5BH,4FH,66H  ;數碼管顯示的數值  
  DB 6DH,7DH,07H,7FH,6FH
IT00:     MOV TH0,#0EBH  //裝入初值,時間為10ms
  MOV TL0,#64H
  LCALL SUB1   //減10ms
  RETI     //返回
DELAY:    MOV R7,#04 //延時子程序,時間大約為:2us*4*250
DEL2:       MOV R6,#250
DEL1:      DJNZ R6,DEL1
  DJNZ R7,DEL2
  RET
  END  //結束
 

關閉窗口

相關文章

主站蜘蛛池模板: 久久最新 | 99re视频在线| 久久精品国产一区二区 | 国产精品久久久久久238 | 日韩一区二区免费视频 | 特级黄一级播放 | 免费在线观看成年人视频 | 欧美一二三区 | 国产精品色婷婷久久58 | 国产最新视频在线 | 国产农村妇女毛片精品久久麻豆 | 日日摸日日添日日躁av | 欧美一区二区三区视频在线观看 | 国产精品成人国产乱一区 | 欧美一区二区久久 | 看片天堂 | 午夜影院操 | 欧美一级毛片久久99精品蜜桃 | 欧美日韩精品一区 | 亚洲综合在线播放 | 国产欧美久久精品 | 欧美成人一级视频 | 久草资源网站 | 亚洲精品久久视频 | 天天爽天天操 | 一级片片 | 欧美男人天堂 | 久久国产综合 | 在线观看日韩 | 精品亚洲一区二区 | 欧美视频免费在线观看 | 国产精品久久久久国产a级 欧美日韩国产免费 | 成人免费观看视频 | 婷婷开心激情综合五月天 | 国产精品无码久久久久 | 精品不卡 | 亚洲一区视频在线 | 久久久久久久电影 | 国产精品免费av | 久久久.com| 成人欧美一区二区 |