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

QQ登錄

只需一步,快速開始

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

51單片機(jī)倒計(jì)時(shí)發(fā)聲器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
設(shè)計(jì)要求: 1:上電后二位數(shù)碼管顯示88
                 2:?jiǎn)螕舭粹o,倒計(jì)時(shí)開始從20秒開始,到0時(shí)喇叭發(fā)聲。
                 3:雙擊按鈕開關(guān):倒計(jì)時(shí)從0開始正常記時(shí),到20秒后發(fā)聲。
                 4:記數(shù)結(jié)束從開始狀態(tài)重新開始下一輪.


基本器件和管腳:

                1)數(shù)碼管:


2)74譯碼器 SN 74LS47



將BCD 碼轉(zhuǎn)換成數(shù)碼管顯示的數(shù).

單片機(jī)及其接口電路:



程序代碼: 本次晶振12MHZ

SW EQU P1.0;   按鈕開關(guān)指定為P1.0位
BUZZER EQU P3.7; 喇叭指定為P3.7位
ORG 00H;    程序起始地址00H開始

START:
       CLR BUZZER        ;  清零喇叭位為低電平(關(guān)閉喇叭)
  MOV P0,#88H        ;   給2個(gè)74譯碼器都發(fā)送88,,88為BCD碼
  NOP
  NOP
  JB SW,$           ;判斷按鈕是否按下,當(dāng)SW==1時(shí),程序一直跳到$這里T原地不動(dòng),當(dāng)按鍵按下時(shí),SW==0則進(jìn)入下面
  NOP
  NOP
  NOP               ;        稍微延時(shí)
  JNB SW,$          ;    判斷按鍵是否松開
  
  MOV R3,#10        ;       在一秒內(nèi)判斷是否雙擊
D1:
       MOV R4,#200
D2:
       MOV R5,#250
  DJNZ R5,$
  JNB SW,TIMER      ;   如果按鍵按下,則進(jìn)入另外一直記時(shí)狀態(tài)
  DJNZ R4,D2
  DJNZ R3,D1
  
  MOV R1,#21        ; 倒計(jì)時(shí)初始值21

COUNTDOWN:  
       DEC R1            ;      R1自減1
  MOV A,R1          ;    R1復(fù)值給累加器A
  MOV B,#10         ;   寄存器B賦值10
  DIV AB            ;     累加器A除以寄存器B,商存A,余存B
  SWAP A            ;      A的高低4位互換 ,目的用于譯碼器顯示,有2個(gè)譯碼器,所以要區(qū)分R1中的高位和低位
  ORL A,B           ;     A=A+B做或操作
  MOV P0,A          ;    輸出到譯碼器從而顯示到數(shù)碼管
  CALL DELAY        ;   延時(shí)1秒
  CJNE A,#00H,COUNTDOWN ;  如果累加器A不等于00H則跳轉(zhuǎn)到COUNTDOWN,即一直倒計(jì)時(shí)直到A減到0
  SETB BUZZER       ;   計(jì)數(shù)到0喇叭發(fā)聲
  CALL DELAY
  JMP START         ;  跳到開始處從頭開始
  
TIMER:
       MOV A,#00H
LOOP:
       MOV P0,A          ;  數(shù)碼管顯示數(shù)A
  CALL DELAY
  ADD A,#1          ;  累加器加1操作
  DA A              ;      十進(jìn)制調(diào)整
  CJNE A,#21H,LOOP  ; 判斷是否計(jì)時(shí)到21
  SETB BUZZER
  CALL DELAY
  JMP START

DELAY: 延時(shí)1秒子程序
       MOV R3,#10
D3:
       MOV R4,#200
D4:
       MOV R5,#250
  DJNZ R5,$
  DJNZ R4,D4
  DJNZ R3,D3
  RET                 ;        子程序結(jié)束標(biāo)志
  
  END



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

使用道具 舉報(bào)

沙發(fā)
ID:61326 發(fā)表于 2014-5-4 08:32 | 只看該作者
謝謝你!
回復(fù)

使用道具 舉報(bào)

板凳
ID:48413 發(fā)表于 2014-7-15 21:20 | 只看該作者
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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