新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 輸出1KHz和500Hz的音頻信號驅(qū)動揚聲器

        輸出1KHz和500Hz的音頻信號驅(qū)動揚聲器

        作者: 時間:2016-11-12 來源:網(wǎng)絡(luò) 收藏

        輸出

        用P1.0輸出,作報警信號,要求信號響100ms,信號響200ms,交替進行,P1.7接一開關(guān)進行控制,當(dāng)開關(guān)合上響報警信號,當(dāng)開關(guān)斷開告警信號停止,編出程序。
        2. 電路原理

        圖4.6.1
        3. 系統(tǒng)板上硬件連線
        (1. 把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPK IN端口上;
        (2. 在“音頻放大模塊”區(qū)域中的SPK OUT端口上接上一個8歐的或者是16歐的喇叭;
        (3. 把“單片機系統(tǒng)”區(qū)域中的P1.7/RD端口用導(dǎo)線連接到“四路撥動開關(guān)”區(qū)域中的K1端口上;
        4. 程序設(shè)計內(nèi)容
        (1. 信號產(chǎn)生的方法
        500Hz信號周期為2ms,信號電平為每1ms變反1次,1KHz的信號周期為1ms,信號電平每500us變反1次;
         
        5. 程序框圖

        圖4.6.2
        6. 匯編源程序
        FLAG BIT 00H
        ORG 00H
        START: JB P1.7,START
        JNB FLAG,NEXT
        MOV R2,#200
        DV: CPL P1.0
        LCALL DELY500
        LCALL DELY500
        DJNZ R2,DV
        CPL FLAG
        NEXT: MOV R2,#200
        DV1: CPL P1.0
        LCALL DELY500
        DJNZ R2,DV1
        CPL FLAG
        SJMP START
        DELY500: MOV R7,#250
        LOOP: NOP
        DJNZ R7,LOOP
        RET
        END
        7. C語言源程序
        #include
        #include

        bit flag;
        unsigned char count;

        void dely500(void)
        {
        unsigned char i;
        for(i=250;i>0;i--)
        {
        _nop_();
        }
        }

        void main(void)
        {
        while(1)
        {
        if(P1_7==0)
        {
        for(count=200;count>0;count--)
        {
        P1_0=~P1_0;
        dely500();
        }
        for(count=200;count>0;count--)
        {
        P1_0=~P1_0;
        dely500();
        dely500();
        }
        }
        }



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 兴化市| 阿克苏市| 韩城市| 湘西| 政和县| 澄城县| 禄劝| 夏津县| 康平县| 岱山县| 闻喜县| 晋中市| 盐源县| 灌云县| 沙河市| 晋宁县| 南昌县| 巫溪县| 邳州市| 信宜市| 顺义区| 邓州市| 息烽县| 收藏| 铁岭市| 中方县| 当雄县| 本溪| 无极县| 神池县| 交城县| 通榆县| 稷山县| 汪清县| 临西县| 泽普县| 南漳县| 黄梅县| 肃宁县| 沙雅县| 丰县|