<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        單片機基礎知識

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月30日   【字體:

        單片機基礎知識

                      
        一、單片機內部資源三大指標
               1、FLASH:程序存儲空間,相當于電腦的硬盤ROM,掉電內容保留,檫寫次數10萬次。
               2、RAM:數據存儲空間,相當于電腦的內存,掉電后內容丟失,可無限次擦寫。
               3、SFR:(特殊功能寄存器)
        二、單片機最小系統
               1、電源電路
                     一般都用電腦USB接口供電(電壓5V電流500mA),一口兩用也可以寫入程序。
               2、復位電路
               3、晶振電路
        三、各個引腳的作用
                AT89C52中EA非表示中斷總開關,只有接高電平中斷功能才能使用。
                P0、P1、P2、P3四種I/0端口,每種8個引腳,共32個I/0口,其中P0沒有內置上拉電阻,需要在外圍電路中添加,其他三個均有。
                I/O有三種狀態,如下圖:

        其中推挽式盡量不要用,當在開漏輸出時,需要添加上拉電阻。


        四、定時器功能
                時鐘周期為晶振頻率分之一,如:1/11.0592M,普通51單片機一個機器周期為12個時鐘周期。每經過一個機器周期寄存器自動加一
               STC89C52有2個定時器和計數器。TF為定時器溢出標志位,溢出時TF為高電平,TR為定時器控制位,為1時,開始計時,清零時停止計時。

         
        如圖為實例程序,TMOD選擇模式,TH0、TL0置初值,TR0開始計數。 右圖為定時器初值的計算方法。
         
        五、中斷一般與定時器一起用。
        void timer1_init()   //定時器函數
        {TMOD |= 0x10;
         TMOD &= 0xdf; 
         TH1   = 0xFC;
         TL1   = 0x67;
         TR1   = 1;}

        void int_init() //中斷開啟
        {ET1 = 1;
         EA  = 1;}

        void interrupt_timer1() interrupt 3  //觸發中斷函數  以TF1為觸發信號。觸發后自動歸為低電平。
        { static uint32 sec = 0;
           TH1 = 0xFC;
           TL1 = 0x67;
           counter++;
           if(counter == 1000)
           {  sec++;
          counter = 0;
          a[0] = sec%10;
          a[1] = sec/10%10;
          a[2] = sec/100%10;
          a[3] = sec/1000%10;
          a[4] = sec/10000%10;
          a[5] = sec/100000%10;}
           refresh_led();}


        y = 8x +3,y為中斷觸發地址,x為中斷SFR.

        默認中斷優先級如下:



         

         
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮