專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)基礎(chǔ)知識(shí)

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月30日   【字體:

單片機(jī)基礎(chǔ)知識(shí)

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

其中推挽式盡量不要用,當(dāng)在開(kāi)漏輸出時(shí),需要添加上拉電阻。


四、定時(shí)器功能
        時(shí)鐘周期為晶振頻率分之一,如:1/11.0592M,普通51單片機(jī)一個(gè)機(jī)器周期為12個(gè)時(shí)鐘周期。每經(jīng)過(guò)一個(gè)機(jī)器周期寄存器自動(dòng)加一
       STC89C52有2個(gè)定時(shí)器和計(jì)數(shù)器。TF為定時(shí)器溢出標(biāo)志位,溢出時(shí)TF為高電平,TR為定時(shí)器控制位,為1時(shí),開(kāi)始計(jì)時(shí),清零時(shí)停止計(jì)時(shí)。

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

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

void interrupt_timer1() interrupt 3  //觸發(fā)中斷函數(shù)  以TF1為觸發(fā)信號(hào)。觸發(fā)后自動(dòng)歸為低電平。
{ 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為中斷觸發(fā)地址,x為中斷SFR.

默認(rèn)中斷優(yōu)先級(jí)如下:



 

 
關(guān)閉窗口

相關(guān)文章