<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 學習方法與實踐 > 51單片機C語言學習(第二課 初步認識51芯片)

          51單片機C語言學習(第二課 初步認識51芯片)

          ——
          作者: 時間:2007-03-30 來源:EEPW 收藏

            上一課我們的第一個項目完成了,可能有懂C語言的朋友會說,"這和PC機上的C語言沒有多大的區(qū)別呀"。的確沒有太大的區(qū)別,C語言只是一種程序語言的統(tǒng)稱,針對不同的處理器相關的C語言都會有一些細節(jié)的改變。編寫PC機的C程序時,如要對硬件編程你就必須對硬件要有一定的認識,編程就更是如此,因它的開發(fā)應用是不可與硬件脫節(jié)的,所以我們先要來初步認識一下51苾片的結構和引腳功能。MSC51架構的芯片種類很多,具體特點和功能不盡相同(在以后編寫的附錄中會加入常用的一些51芯片的資料列表),在此后的教程中就以Atmel公司的AT89C51和AT89C2051為中心對象來進行學習,兩者是AT89系列的典型代表,在愛好者中使用相當?shù)亩?,應用資料很多,價格便宜,是初學51的首選芯片。嘿嘿,口水多多有點賣廣告之嫌了。:P  

          圖2-1 AT89C51和AT89C2051引腳功能圖


           
          表2-1 AT89C51和AT89C2051主要性能表

          AT89C51

          AT89C2051

          4KB可編程Flash存儲器(可擦寫1000次)

          2KB可編程Flash存儲器(可擦寫1000次)

          三級程序存儲器保密

          兩級程序存儲器保密

          靜態(tài)工作頻率:0Hz-24MHz

          靜態(tài)工作頻率:0Hz-24MHz

          128字節(jié)內(nèi)部RAM

          128字節(jié)內(nèi)部RAM

          2個16位定時/計數(shù)器

          2個16位定時/計數(shù)器

          一個串行通訊口

          一個串行通訊口

          6個中斷源

          6個中斷源

          32條I/O引線

          15條I/O引線

          片內(nèi)時種振蕩器

          1個片內(nèi)模擬比較器


           
            圖2-1中是AT89C51和AT89C2051的引腳功能圖。而表2-1中則是它們的主要性能表。以上可以看出它們是大體相同的,由于AT89C2051的IO線很少,導致它無法外加RAM和程序ROM,片內(nèi)Flash存儲器也少,但它的體積比AT89C51小很多,以后大家可根據(jù)實際需要來選用。它們各有其特點但其核心是一樣的,下面就來看看AT89C51的引腳具體功能。

            1.電源引腳

              Vcc 40 電源端
              GND 20 接地端
             ?。ぷ麟妷簽?V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。

            2.外接晶體引腳
           
           

           
          圖2-2 外接晶體引腳
           
              XTAL1 19
              XTAL2 18

            XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。

           ?。吞柾瑯訛锳T89C51的芯片,在其后面還有頻率編號,有12,16,20,24MHz可選。大家在購買和選用時要注意了。如AT89C51 24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯片。

            3.復位 RST 9

            在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機復位,只要這個腳保持高電平,51芯片便循環(huán)復位。復位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當復位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的00H處開始運行程序。常用的復位電路如圖2-3所示。

           ?。獜臀徊僮鞑粫?nèi)部RAM有所影響。

           


           

          圖2-3 常用復位電路
           
            4.輸入輸出引腳

            (1) P0端口[P0.0-P0.7] P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅(qū)動8個TTL。

            對內(nèi)部Flash程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電阻。

            在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。

            (2) P1端口[P1.0-P1.7] P1是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。

            對內(nèi)部Flash程序存儲器編程時,接收低8位地址信息。

            (3) P2端口[P2.0-P2.7] P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。

            對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。

            在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。

            (4) P3端口[P3.0-P3.7] P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。

            對內(nèi)部Flash程序存儲器編程時,接控制信息。除此之外P3端口還用于一些專門功能,具體請看 表2-2.。

           ?。狿1-3端口在做輸入使用時,因內(nèi)部有上接電阻,被外部拉低的引腳會輸出一定的電流。
           

          P3引腳

          兼用功能

          P3.0

          串行通訊輸入(RXD)

          P3.1

          串行通訊輸出(TXD)

          P3.2

          外部中斷0( INT0)

          P3.3

          外部中斷1(INT1)

          P3.4

          定時器0輸入(T0)

          P3.5

          定時器1輸入(T1)

          P3.6

          外部數(shù)據(jù)存儲器寫選通WR

          P3.7

          外部數(shù)據(jù)存儲器寫選通RD


           

            呼!一口氣說了那么多,停一下吧。嗯,什么?什么叫上拉電阻?上拉電阻簡單來說就是把電平拉高,通常用4.7-10K的電阻接到Vcc電源,下拉電阻則是把電平拉低,電阻接到GND地線上。具體說明也不是這里要討論的,接下來還是接著看其它的引腳功能吧。

            5.其它的控制或復用引腳

            (1) ALE/PROG 30 訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率輸出脈沖信號(此頻率是振蕩器頻率的1/6)。在訪問外部數(shù)據(jù)存儲器時,出現(xiàn)一個ALE脈沖。對Flash存儲器編程時,這個引腳用于輸入編程脈沖PROG

            (2) PSEN 29 該引是外部程序存儲器的選通信號輸出端。當AT89C51由外部程序存儲器取指令或常數(shù)時,每個機器周期輸出2個脈沖即兩次有效。但訪問外部數(shù)據(jù)存儲器時,將不會有脈沖輸出。

            (3) EA/Vpp 31 外部訪問允許端。當該引腳訪問外部程序存儲器時,應輸入低電平。要使AT89C51只訪問外部程序存儲器(地址為0000H-FFFFH),這時該引腳必須保持低電平。對Flash存儲器編程時,用于施加Vpp編程電壓。Vpp電壓有兩種,類似芯片最大頻率值要根據(jù)附加的編號或芯片內(nèi)的特征字決定。具體如表2-3所列。

           
            
           
          表2-3 Vpp與芯片型號和片內(nèi)特征字的關系

            看到這您對AT89C51引腳的功能應該有了一定的了解了,引腳在編程和校驗時的時序我們在這里就不做詳細的探討,通常情況下我們也沒有必要去撐握它,除非你想自己開發(fā)編程器。下來的課程我們要開始以一些簡單的實例來講述C程序的語法和編寫方法技巧,中間穿插相關的硬件知識如串口,中斷的用法等等。

           

          存儲器相關文章:存儲器原理


          上拉電阻相關文章:上拉電阻原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();