新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)驅(qū)動(dòng)蜂鳴器原理與設(shè)計(jì)

        單片機(jī)驅(qū)動(dòng)蜂鳴器原理與設(shè)計(jì)

        作者: 時(shí)間:2013-03-21 來源:網(wǎng)絡(luò) 收藏

          ORG 0000H
          AJMP START ;跳轉(zhuǎn)到初始化程序

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

          MAIN: ACALL SOUND ;發(fā)聲
          ACALL YS500M ;延時(shí)
          AJMP MAIN

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

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

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

          END

          3、“叮咚”電子門鈴實(shí)驗(yàn)程序:常見的家用電子門鈴在有客人來訪時(shí)候,如果按壓門鈴按鈕時(shí),室內(nèi)會(huì)發(fā)出“叮咚”聲音,本實(shí)驗(yàn)程序模擬電子門鈴的發(fā)音,當(dāng)我們按壓實(shí)驗(yàn)板上的K1按鈕時(shí)候,蜂鳴器發(fā)出“叮咚”音樂聲,是一個(gè)比較實(shí)用的程序。

          “叮咚”電子門鈴實(shí)驗(yàn)ASM源程序: “叮咚”電子門鈴C語(yǔ)言源程序:
          ORG 0000H
          LJMP START ;跳轉(zhuǎn)到初始化程序

          ORG 000BH
          LJMP PGT0 ;跳轉(zhuǎn)到T0中斷服務(wù)程序
          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 ;定時(shí)器初始化
          MOV TH0,#06H
          MOV TL0,#06H
          SETB ET0 ;啟動(dòng)定時(shí)器T0
          SETB EA ;啟動(dòng)總中斷

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

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

          PGT0: ;定時(shí)器T0中斷服務(wù)程序
          INC OBUF3 ;中斷服務(wù)程序中發(fā)出一聲“叮咚”響聲
          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

        蜂鳴器相關(guān)文章:蜂鳴器原理
        燃?xì)鈭?bào)警器相關(guān)文章:燃?xì)鈭?bào)警器原理


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 伊宁市| 大荔县| 酉阳| 东安县| 洛阳市| 安福县| 曲阜市| 芜湖市| 县级市| 蒲城县| 牙克石市| 浮梁县| 郁南县| 息烽县| 白水县| 阿克苏市| 宜兰市| 景泰县| 黄龙县| 墨脱县| 保康县| 吴江市| 赤城县| 大英县| 望奎县| 镇安县| 四子王旗| 昭觉县| 秦皇岛市| 临沧市| 泗阳县| 郸城县| 门头沟区| 西林县| 平凉市| 乐东| 河东区| 武强县| 临泉县| 昌乐县| 开江县|