• 專注電子技術學習與研究
    當前位置:單片機教程網 >> 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.

    默認中斷優先級如下:



     

     
    關閉窗口

    相關文章

    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的