• <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支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      19. “叮咚”門鈴
      文章長度[] 加入時間[2008/5/30] 更新時間[2025/5/23 12:41:57] 級別[0] [評論] [收藏]
       
      1. 實驗任務
      當按下開關SP1,AT89S51單片機產生“叮咚”聲從P1.0端口輸出到LM386,經過放大之后送入喇叭。
      2. 電路原理圖
      圖4.19.1
      3. 系統板上硬件連線
      (1.       把“單片機系統”區域中的P1.0端口用導線連接到“音頻放大模塊”區域中的SPK IN端口上;
      (2.       在“音頻放大模塊”區域中的SPK OUT端口上接上一個8歐或者是16歐的喇叭;
      (3.       把“單片機系統”區域中的P3.7/RD端口用導線連接到“獨立式鍵盤”區域中的SP1端口上;
      4. 程序設計方法
      (1.       我們用單片機實定時/計數器T0來產生700HZ和500HZ的頻率,根據定時/計數器T0,我們取定時250us,因此,700HZ的頻率要經過3次250us的定時,而500HZ的頻率要經過4次250us的定時。
      (2.       在設計過程,只有當按下SP1之后,才啟動T0開始工作,當T0工作完畢,回到最初狀態。
      (3.       “!焙汀斑恕甭曇舾髡加0.5秒,因此定時/計數器T0要完成0.5秒的定時,對于以250us為基準定時2000次才可以。
      6. 匯編源程序
      T5HZ                  EQU 30H
      T7HZ                  EQU 31H
      T05SA                EQU 32H
      T05SB                 EQU 33H
      FLAG                 BIT 00H
      STOP                  BIT 01H
      SP1                      BIT P3.7
                                  ORG 00H
                                  LJMP START
                                  ORG 0BH
                                  LJMP INT_T0
      START:               MOV TMOD,#02H
                                  MOV TH0,#06H
                                  MOV TL0,#06H
                                  SETB ET0
                                  SETB EA
      NSP:                   JB SP1,NSP
                                  LCALL DELY10MS
                                  JB SP1,NSP
                                  SETB TR0
                                  MOV T5HZ,#00H
                                  MOV T7HZ,#00H
                                  MOV T05SA,#00H
                                  MOV T05SB,#00H
                                  CLR FLAG
                                  CLR STOP                  
                                  JNB STOP,$
                                  LJMP NSP
      DELY10MS:       MOV R6,#20
      D1:                      MOV R7,#248
                                  DJNZ R7,$
                                  DJNZ R6,D1
                                  RET
      INT_T0:             INC T05SA
                                  MOV A,T05SA
                                  CJNE A,#100,NEXT
                                  MOV T05SA,#00H
                                  INC T05SB
                                  MOV A,T05SB
                                  CJNE A,#20,NEXT
                                  MOV T05SB,#00H
                                  JB FLAG,STP
                                  CPL FLAG
                                  LJMP NEXT
      STP:                    SETB STOP
                                  CLR TR0
                                  LJMP DONE
      NEXT:                JB FLAG,S5HZ
                                  INC T7HZ
                                  MOV A,T7HZ
                                  CJNE A,#03H,DONE
                                  MOV T7HZ,#00H
                                  CPL P1.0
                                  LJMP DONE
      S5HZ:                 INC T5HZ
                                  MOV A,T5HZ
                                  CJNE A,#04H,DONE
                                  MOV T5HZ,#00H
                                  CPL P1.0
                                  LJMP DONE
      DONE:                RETI
                                  END
      7. C語言源程序
      #include <AT89X51.H>
      unsigned char t5hz;
      unsigned char t7hz;
      unsigned int tcnt;
      bit stop;
      bit flag;
      void main(void)
      {
        unsigned char i,j;
        TMOD=0x02;
        TH0=0x06;
        TL0=0x06;
        ET0=1;
        EA=1;
        while(1)
          {
            if(P3_7==0)
              {
                for(i=10;i>0;i--)
                for(j=248;j>0;j--);
                if(P3_7==0)
                  {
                    t5hz=0;
                    t7hz=0;
                    tcnt=0;
                    flag=0;
                    stop=0;
                    TR0=1;
                    while(stop==0);
                  }
              }
          }
      }
      void t0(void) interrupt 1 using 0
      {
        tcnt++;
        if(tcnt==2000)
          {
            tcnt=0;
            if(flag==0)
              {
                flag=~flag;
              }
              else
                {
                  stop=1;
                  TR0=0;
                }
          }
        if(flag==0)
          {
            t7hz++;
            if(t7hz==3)
              {
                t7hz=0;
                P1_0=~P1_0;
              }
          }
          else
            {
              t5hz++;
              if(t5hz==4)
                {
                  t5hz=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嫩草黄片动漫版