新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機驅動蜂鳴器原理與設計

        單片機驅動蜂鳴器原理與設計

        作者: 時間:2013-03-21 來源:網絡 收藏

          ORG 0000H
          AJMP START ;跳轉到初始化程序

          ORG 0033H
          START:
          MOV SP,#60H ;SP初始化
          MOV P3,#0FFH ;端口初始化

          MAIN: ACALL SOUND ;發聲
          ACALL YS500M ;延時
          AJMP MAIN

          SOUND:
          MOV P1,#11011011B ;點亮2個警示黃色發光二極管
          MOV R2,#200 ;響200個周期
          SND1: CLR P3.7 ;輸出低電平T1導通,
          ACALL YS1ms ;延時
          SETB P3.7 ;輸出高電平T1截止,不響
          ACALL YS1ms ;延時
          DJNZ R2,SND1
          MOV P1,#0FFH ;熄滅黃色警示燈
          RET

          YS1ms: ;1ms延時子程序
          MOV R0,#2
          YL1: MOV R1,#250 ;改變R0的數值可改變聲音頻率
          DJNZ R1,$
          DJNZ R0,YL1
          RET

          YS500M: ;500ms延時子程序
          MOV R0,#6
          YL2: MOV R1,#200
          YL3: MOV R2,#250
          DJNZ R2,$
          DJNZ R1,YL3
          DJNZ R0,YL2
          RET

          END

          3、“叮咚”電子門鈴實驗程序:常見的家用電子門鈴在有客人來訪時候,如果按壓門鈴按鈕時,室內會發出“叮咚”聲音,本實驗程序模擬電子門鈴的發音,當我們按壓實驗板上的K1按鈕時候,蜂鳴器發出“叮咚”音樂聲,是一個比較實用的程序。

          “叮咚”電子門鈴實驗ASM源程序: “叮咚”電子門鈴C語言源程序:
          ORG 0000H
          LJMP START ;跳轉到初始化程序

          ORG 000BH
          LJMP PGT0 ;跳轉到T0中斷服務程序
          START:
          OBUF1 EQU 30H ;初始化程序
          OBUF2 EQU 31H
          OBUF3 EQU 32H
          OBUF4 EQU 33H
          FLAGB BIT 00H
          STOPB BIT 01H
          K1 BIT P3.2 ;定義按鈕K1,作為門鈴按鈕

          MOV TMOD,#02H ;定時器初始化
          MOV TH0,#06H
          MOV TL0,#06H
          SETB ET0 ;啟動定時器T0
          SETB EA ;啟動總中斷

          MAIN: ;主程序
          JB K1,MAIN ;檢測K1按鈕
          LCALL YS10M ;延時去抖動
          JB K1,MAIN
          SETB TR0 ;按鈕有效
          MOV P1,#00H ;點亮按鈕指示燈
          MOV OBUF1,#00H
          MOV OBUF2,#00H
          MOV OBUF3,#00H
          MOV OBUF4,#00H
          CLR FLAGB
          CLR STOPB
          JNB STOPB,$
          MOV P1,#0FFH
          LJMP MAIN ;發出“叮咚”完畢,返回重新檢測按鈕

          YS10M: ;10ms延時子程序
          MOV R6,#20
          D1: MOV R7,#248
          DJNZ R7,$
          DJNZ R6,D1
          RET

          PGT0: ;定時器T0中斷服務程序
          INC OBUF3 ;中斷服務程序中發出一聲“叮咚”響聲
          MOV A,OBUF3
          CJNE A,#100,NEXT
          MOV OBUF3,#00H
          INC OBUF4
          MOV A,OBUF4
          CJNE A,#20,NEXT
          MOV OBUF4,#00H
          JB FLAGB,PGSTP
          CPL FLAGB
          AJMP NEXT
          PGSTP:
          SETB STOPB
          CLR TR0
          LJMP INT0RET
          NEXT: JB FLAGB,SOU2
          INC OBUF2
          MOV A,OBUF2
          CJNE A,#03H,INT0RET
          MOV OBUF2,#00H
          CPL P3.7
          LJMP INT0RET
          SOU2: INC OBUF1
          MOV A,OBUF1
          CJNE A,#04H,INT0RET
          MOV OBUF1,#00H
          CPL P3.7
          LJMP INT0RET
          INT0RET:
          RETI

        蜂鳴器相關文章:蜂鳴器原理
        燃氣報警器相關文章:燃氣報警器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 渝北区| 定结县| 上犹县| 莆田市| 揭东县| 高清| 长治县| 新乐市| 晋中市| 崇文区| 澳门| 聊城市| 丰都县| 汶川县| 蓬溪县| 栖霞市| 鹰潭市| 平谷区| 中方县| 太和县| 萨迦县| 南安市| 房产| 威远县| 共和县| 阿克| 祁门县| 临沂市| 甘泉县| 伊宁市| 青浦区| 镇江市| 长兴县| 泰安市| 贵港市| 昭平县| 郑州市| 屏南县| 文水县| 九龙城区| 壶关县|