《第02課 初步認(rèn)識(shí)51芯片》由會(huì)員分享,可在線閱讀,更多相關(guān)《第02課 初步認(rèn)識(shí)51芯片(7頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第02課 初步認(rèn)識(shí)51芯片
第二課 初步認(rèn)識(shí)51芯片
上一課我們的第一個(gè)項(xiàng)目完成了,可能有懂C語言的朋友會(huì)說,"這和PC機(jī)上的C語言沒有多大的區(qū)別呀"。的確沒有太大的區(qū)別,C語言只是一種程序語言的統(tǒng)稱,針對(duì)不同的處理器相關(guān)的C語言都會(huì)有一些細(xì)節(jié)的改變。編寫PC機(jī)的C程序時(shí),如要對(duì)硬件編程你就必須對(duì)硬件要有一定的認(rèn)識(shí),51單片機(jī)編程就更是如此,因它的開發(fā)應(yīng)用是不可與硬件脫節(jié)的,所以我們先要來初步認(rèn)識(shí)一下51苾片的結(jié)構(gòu)和引腳功能。MS C51架構(gòu)的芯片種類很多,具體特點(diǎn)和功能不盡相同(在以后編寫的附錄中會(huì)加入常用的一些51芯片的資料列表),在此后的教程中就以Atmel公司的AT89C51和AT
2、89C2051為中心對(duì)象來進(jìn)行學(xué)習(xí),兩者是AT89系列的典型代表,在愛好者中使用相當(dāng)?shù)亩啵瑧?yīng)用資料很多,價(jià)格便宜,是初學(xué)51的首選芯片。嘿嘿,口水多多有點(diǎn)賣廣告之嫌了。:
P
圖2-1 AT89C51和AT89C2051引腳功能圖
AT89C51AT89C2051
4KB可編程Flash存儲(chǔ)器(可擦寫
1000次)2KB可編程Flash存儲(chǔ)器(可擦寫
1000次)
三級(jí)程序存儲(chǔ)器保密兩級(jí)程序存儲(chǔ)器保密靜態(tài)工作頻率:0Hz-24MHz靜態(tài)工作頻率:0Hz-24MHz 128字節(jié)內(nèi)部RAM128字節(jié)內(nèi)部RAM
2個(gè)16位定時(shí)/計(jì)數(shù)器2個(gè)16位定時(shí)/計(jì)數(shù)器一個(gè)串行通訊口一個(gè)串行通訊口
3、6個(gè)中斷源6個(gè)中斷源
32條I/O引線15條I/O引線
片內(nèi)時(shí)種振蕩器1個(gè)片內(nèi)模擬比較器
表2-1 AT89C51和AT89C2051主要性能表
圖2-1中是AT89C51和AT89C2051的引腳功能圖。而表2-1中則是它們的主要性能表。以上可以看出它們是大體相同的,由于AT89C2051的IO線很少,導(dǎo)致它無法外加RAM和程序ROM,片內(nèi)Flash存儲(chǔ)器也少,但它的體積比AT89C51小很多,以后大家可根據(jù)實(shí)際需要來選用。它們各有其特點(diǎn)但其核心是一樣的,下面就來看看AT89C51的引腳具體功能。
1.電源引腳
Vcc 40 電源端
GND 20 接地端
*工
4、作電壓為5V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。
2.外接晶體引腳
圖2-2 外接晶體引腳
XTAL1 19
XTAL2 18
XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時(shí),外部振蕩信號(hào)應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。
*型號(hào)同樣為AT89C51的芯片,在其后面還有頻率編號(hào),有12,16,20,24MHz可選。大家在購買和選用時(shí)要注意了。如AT89C51
5、
24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯片。
3.復(fù)位 RST 9
在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腿時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開始運(yùn)行程序。常用的復(fù)位電路如圖2-3所示。
*復(fù)位操作不會(huì)對(duì)內(nèi)部RAM有所影響。
圖2-3 常用復(fù)位電路
4. 輸入輸出引腳
(1) P0端口[P0.0-P0.7] P0是一個(gè)8位漏極開路型雙向I/O端口,端口置
6、1(對(duì)端口寫1)時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)TTL。
對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收指令字節(jié);校驗(yàn)程序時(shí)輸出指令字節(jié),要求外接上拉電阻。
在訪問外部程序和外部數(shù)據(jù)存儲(chǔ)器時(shí),P0口是分時(shí)轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。
(2) P1端口[P1.0-P1.7] P1是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端
口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。
對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收低8位地址信息。
(3) P2端口[P2.0-P2.7] P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。
7、輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。
對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收高8位地址和控制信息。
在訪問外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。
(4) P3端口[P3.0-P3.7] P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。
對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接控制信息。除此之外P3端口還用于一些專門功能,具體請(qǐng)看表2-2.。
*P1-3端口在做輸入使用時(shí),
8、因內(nèi)部有上接電阻,被外部拉低的引腳會(huì)輸出一定的電流。
P3引腳兼用功能
P3.0串行通訊輸入(RXD)
P3.1串行通訊輸出(TXD)
P3.2外部中斷0( INT0)
P3.3外部中斷1(INT1)
P3.4定時(shí)器0輸入(T0)
P3.5定時(shí)器1輸入(T1)
P3.6外部數(shù)據(jù)存儲(chǔ)器寫選通WR
P3.7外部數(shù)據(jù)存儲(chǔ)器寫選通RD
表2-2 P3端口引腳兼用功能表
呼!一口氣說了那么多,停一下吧。嗯,什么?什么叫上拉電阻?上拉電阻簡單來說就是把電平拉高,通常用4.7-10K的電阻接到Vcc電源,下拉電阻則是把電平拉低,電阻接到GND地線上。具體說明也不是這里要討論的,接下
9、來還是接著看其它的引腳功能吧。
5.其它的控制或復(fù)用引腳
(1) ALE/PROG 30 訪問外部存儲(chǔ)器時(shí),ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE端仍以不變的頻率輸出脈沖信號(hào)(此頻率是振蕩器頻率的1/6)。在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),出現(xiàn)一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程時(shí),這個(gè)引腳用于輸入編程脈沖PROG
(2) PSEN 29 該引是外部程序存儲(chǔ)器的選通信號(hào)輸出端。當(dāng)AT89C51由外部程序存儲(chǔ)器取指令或常數(shù)時(shí),每個(gè)機(jī)器周期輸出2個(gè)脈沖即兩次有效。但訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將不會(huì)有脈沖輸出。
(3) EA/Vpp 31 外部訪
10、問允許端。當(dāng)該引腳訪問外部程序存儲(chǔ)器時(shí),應(yīng)輸入低電平。要使AT89C51只訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),這時(shí)該引腳必須保持低電平,而要使用片內(nèi)的程序存儲(chǔ)器時(shí)該引腳必須保持高電平。對(duì)Flash存儲(chǔ)器編程時(shí),該引腳用于施加Vpp編程電壓。Vpp電壓有兩種,類似芯片最大頻率值要根據(jù)附加的編號(hào)或芯片內(nèi)的特征字決定。具體如表2-3所列。
Vpp = 12V Vpp = 5V
印刷在芯片面上的型號(hào)AT89C51
Xxxx
YYWW
AT89LV51
Xxxx
YYWW
AT89C51
xxxx-5
YYWW
AT89LV51
xxxx-5
YYWW
片內(nèi)特征字030H=1EH030H=1EH030H=1EH030H=1EH
031H=51H031H=61H031H=51H031H=61H
032H=FFH032H=FFH032H=05H032H=05H 表2-3 Vpp與芯片型號(hào)和片內(nèi)特征字的關(guān)系
看到這您對(duì)AT89C51引腳的功能應(yīng)該有了一定的了解了,引腳在編程和校驗(yàn)時(shí)的時(shí)序我們?cè)谶@里就不做詳細(xì)的探討,通常情況下我們也沒有必要去撐握它,除非你想自己開發(fā)編程器。下來的課程我們要開始以一些簡單的實(shí)例來講述C程序的語法和編寫方法技巧,中間穿插相關(guān)的硬件知識(shí)如串口,中斷的用法等等。