• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      18. “嘀、嘀、……”報警聲
      文章長度[] 加入時間[2008/5/30] 更新時間[2025/5/7 16:36:15] 級別[0] [評論] [收藏]
       
      1. 實驗任務
      用AT89S51單片機產生“嘀、嘀、…”報警聲從P1.0端口輸出,產生頻率為1KHz,根據上面圖可知:1KHZ方波從P1.0輸出0.2秒,接著0.2秒從P1.0輸出電平信號,如此循環下去,就形成我們所需的報警聲了。
      2. 電路原理圖
      圖4.18.1
      3. 系統板硬件連線
      (1.       把“單片機系統”區域中的P1.0端口用導線連接到“音頻放大模塊”區域中的SPK IN端口上,
      (2.       在“音頻放大模塊”區域中的SPK OUT端口上接上一個8歐或者是16歐的喇叭;
      4. 程序設計方法
      (1.生活中我們常常到各種各樣的報警聲,例如“嘀、嘀、…”就是常見的一種聲音報警聲,但對于這種報警聲,嘀0.2秒鐘,然后斷0.2秒鐘,如此循環下去,假設嘀聲的頻率為1KHz,則報警聲時序圖如下圖所示:
      上述波形信號如何用單片機來產生呢?
      (2.       由于要產生上面的信號,我們把上面的信號分成兩部分,一部分為1KHZ方波,占用時間為0.2秒;另一部分為電平,也是占用0.2秒;因此,我們利用單片機的定時/計數器T0作為定時,可以定時0.2秒;同時,也要用單片機產生1KHZ的方波,對于1KHZ的方波信號周期為1ms,高電平占用0.5ms,低電平占用0.5ms,因此也采用定時器T0來完成0.5ms的定時;最后,可以選定定時/計數器T0的定時時間為0.5ms,而要定時0.2秒則是0.5ms的400倍,也就是說以0.5ms定時400次就達到0.2秒的定時時間了。
      5. 程序框圖
      主程序框圖

      開 始
      T02S=0,T05MS=0,FLAG=0
      T0初始化
      T0啟動定時并開中斷
      等待中斷
       


      中斷服務程序框圖

      T0中斷入口
      T02S加1
      T02S=400嗎?
      FLAG取反
      FLAG=0
      FLAG=1
      P1.0取反
      中斷返回
       

      圖4.18.2
      6. 匯編源程序
      T02SA                EQU 30H
      T02SB                EQU 31H
      FLAG                 BIT 00H
                                  ORG 00H
                                  LJMP START
                                  ORG 0BH
                                  LJMP INT_T0
      START:               MOV T02SA,#00H
                                  MOV T02SB,#00H
                                  CLR FLAG
                                  MOV TMOD,#01H
                                  MOV TH0,#(65536-500) / 256
                                  MOV TL0,#(65536-500) MOD 256
                                  SETB TR0
                                  SETB ET0
                                  SETB EA
                                  SJMP $
      INT_T0:
                                  MOV TH0,#(65536-500) / 256
                                  MOV TL0,#(65536-500) MOD 256
                                  INC T02SA
                                  MOV A,T02SA
                                  CJNE A,#100,NEXT
                                  INC T02SB
                                  MOV A,T02SB
                                  CJNE A,#04H,NEXT
                                  MOV T02SA,#00H
                                  MOV T02SB,#00H
                                  CPL FLAG
      NEXT:                JB FLAG,DONE
                                  CPL P1.0
      DONE:               RETI
                                  END
      7. C語言源程序
      #include <AT89X51.H>
      unsigned int t02s;
      unsigned char t05ms;
      bit flag;
      void main(void)
      {
        TMOD=0x01;
        TH0=(65536-500)/256;
        TL0=(65536-500)%256;
        TR0=1;
        ET0=1;
        EA=1;
        while(1);
      }
      void t0(void) interrupt 1 using 0
      {
        TH0=(65536-500)/256;
        TL0=(65536-500)%256;
        t02s++;
        if(t02s==400)
          {
            t02s=0;
            flag=~flag;
          }
        if(flag==0)
          {
            P1_0=~P1_0;
          }
      }
      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版