Philips 8位元P89C51單晶片基本電路與一般傳統(tǒng)的8051電路大致相同,電路包括:電源電路、時(shí)脈電路(Clock)、重置電路(Reset)。由於P89C51具有串列式線上下載程式功能(ISP),因此必須額外加入一組與PC電腦連接的串列通訊界面,才能執(zhí)行程式下載功能。以下將電路分為基本電路,串列通訊電路,以及輸出入介面電路三部份做介紹。
P89C51基本電路
Philips公司出品的P89C51Rx2晶片有三種包裝型式,我們採(cǎi)用傳統(tǒng)40PIN DIP包裝IC,本電路使用的腳位如表4-1所示。基本電路結(jié)構(gòu)如圖4-1,相關(guān)說(shuō)明如下:
l 電源電路(電源/接地)︰在Vcc/Vss(40腳,20腳),分別連接5V直流電源與接地。一般為了讓單晶片系統(tǒng)電源品質(zhì),建議使用MC7805CT,額外加入穩(wěn)壓電路,將提供穩(wěn)定5V的電源,如圖4-2所示。(註圖左端的圓形接點(diǎn)是使用一般變壓器電源的圓形插孔)
l 系統(tǒng)時(shí)脈的振盪電路(Clock):在XTAL1/2 (18腳,19腳),時(shí)脈反相放大器輸出/入端,連接兩個(gè)20PF的電容與石英振盪器。P8C51RX2的最大頻率可用到33MHz,通常使用12MHz。由於考量使用串列通訊時(shí),希望獲得更精確的傳輸率(baud rate) ,因此我們使用11.0592MHz的石英振盪器。(請(qǐng)參照本章4-7節(jié)的說(shuō)明)
l 重置電路(RESET):在RESET (9腳),使用10KΩ電阻與10uF電容組成一RC電路,電容並接一按鍵開關(guān),提供系統(tǒng)重置時(shí),RESET接腳提昇到高電位的觸發(fā)信號(hào),並保持一足夠的延遲時(shí)間。
串列通訊電路
在P89C51Rx2單晶片電路中加入串列通訊界面,透過(guò)RS-232連接到PC電腦,除了可提供單晶片線上下載程式功能(ISP)之外,還可以利用此資料傳輸通道,使用PC對(duì)單晶片系統(tǒng)做遠(yuǎn)端控制的功能。相關(guān)界面電路製作的說(shuō)明如下:
l 串列傳輸界面(UART):在RXD/TXD(10腳,11腳),使用ICL232的EIA界面(或MAX232),做為串列傳輸界面。這是因?yàn)檫h(yuǎn)距離串列傳輸容易受到雜訊干擾,加入ICL232的目的是將準(zhǔn)位0V轉(zhuǎn)換為-8V~-15V,將準(zhǔn)位5V轉(zhuǎn)換為8V~15V。
l 使用9PIN的RS-232標(biāo)準(zhǔn)接頭,將其中三支重要的接腳Pin2,Pin3,Pin5(接收、傳送與接地),連接ICL232的T2(Out)、R2(In)接腳,方便P89C51與PC的RS-232串列埠連接。
l 串列傳輸指示燈:在RXD/TXD(10腳,11腳),另外跨接一組LED指示燈。當(dāng)程式下載或串列通訊傳輸時(shí),可由指示燈顯示。
l 程式線上下載切換開關(guān):在 (29腳)加入ISP_SW切換開關(guān)。當(dāng)開關(guān)閉合時(shí),
l 低電位狀態(tài),可執(zhí)行程式燒錄工作;當(dāng)開關(guān)打開時(shí),單晶片進(jìn)入程式執(zhí)行狀態(tài)。
輸出入界面電路
使用8PIN的腳座將P89C51的輸出入埠P0埠(32~39腳)、P1埠(1~8腳)、P2埠(21~28腳),可依照使用者的需求,搭配不同的輸出入界面電路,彈性運(yùn)用這些輸出入埠。例如,LED、SW、LCD、鍵盤、ADC轉(zhuǎn)換、感測(cè)電路、馬達(dá)驅(qū)動(dòng)電路…等。此外,P3埠(10~17腳)除了RXD/TXD做串列傳輸之外,還有INT0/INT1、T0/T1,亦可做拉出腳座,提供外部中斷與計(jì)數(shù)使用。本章稍後會(huì)介紹幾種常用的輸出入介面的應(yīng)用實(shí)例。
表4-1:P89C51基本電路的相關(guān)腳位
接腳 |
說(shuō)明 |
Vcc /Vss <40,20> |
電源(5V)/ 接地 |
XTAL1/2 <18,19> |
時(shí)脈反相放大器輸出/入端, 接石英振盪器(11.0592MHz) |
RESET <9> |
高電位動(dòng)作, 系統(tǒng)重置, PC回到0000H(PB1) |
EA/Vpp/Psen <31> |
若系統(tǒng)讀取外部程式,接低電位(接+5v) |
PSEN <29> |
程式儲(chǔ)存致能ISP功能開啟需接地才能執(zhí)行 (ISP_SW) |
P0.0~P0.7 <32-39> |
8位元I/O埠,外接記憶體做資料位址線 |
P1.0~P1.7 <1-8> |
8位元I/O埠 |
P2.0~P2.7 <21-28> |
8位元I/O埠,外接記憶體可做位址線 |
RXD/TXD <10,11> |
串列通訊輸出/入(P3.0, P3.1) |
INT0/1 <12,13> |
外部中斷輸入 (P3.2, P3.3) |
T0/T1 <14,15> |
計(jì)時(shí)計(jì)數(shù)器的輸入(P3.4, P3.5) |
WR/RD <16,17> |
外部資料的讀取/寫入(P3.7, P3.8) |
圖4-1:P89C51基本電路
圖4-2:P89C51的穩(wěn)壓電路
【範(fàn)例4-1】 P89C51基本電路測(cè)試:
測(cè)試P89C51電路是否正常,可以將P0埠連結(jié)一組LED BAR,並使用Keil uVision2 撰寫一個(gè)簡(jiǎn)單的P0埠輸出程式,經(jīng)組譯連結(jié)後的HEX檔,再使用Flash Magic將它下載測(cè)試電路上的P89C51,並觀察LED BAR是否正常顯示,以確認(rèn)電路是否正確。操作步驟如下:
步驟1:依照?qǐng)D4-3,製作單晶片89C51測(cè)試電路。P0埠加入測(cè)試電路。所需零件清單如表4-2。
圖4-3: 8個(gè)LED輸出做基本電路測(cè)試
表4-2: C51 P89C51基本電路的零件清單
零件名稱 |
規(guī)格 |
數(shù)量 |
備註 |
P89C51單晶片 |
P89C51RD2 |
1 |
CPU |
石英振盪器 |
11.059MHz |
1 |
時(shí)脈電路 |
鎝質(zhì)電容 |
20P |
2 |
時(shí)脈電路 |
電解質(zhì)電容 |
25v/10uf |
1 |
重置電路 |
重置開關(guān) |
可復(fù)歸式開關(guān) |
1 |
重置電路 |
ICL232 |
EIA界面/準(zhǔn)位轉(zhuǎn)換 |
1 |
串列通訊電路 |
MC7805 |
|
|
穩(wěn)壓電路 |
LED |
|
8 |
輸出測(cè)試用 |
電阻(排阻) |
330 |
|
輸出測(cè)試用 |
步驟2:開啟Keil μVision2,建立一新專案ch4_1。加入ch4_1.c檔案,輸入下列程式:
//範(fàn)例4-1:P89C51基本電路測(cè)試
//檔名:ch4_1.C
#include
void main()
{
P0=0x52; // P0埠=01010010B
}
步驟3:執(zhí)行ch4_1專案的編譯與連結(jié)。產(chǎn)生ch4_1.hex。
步驟4:將P89C51電路測(cè)試的串列通訊埠,經(jīng)由RS-232傳輸線連接到PC電腦上。開啟測(cè)試電路電源,切換到程式下載狀態(tài)。
步驟5:開啟Flash Magic程式,設(shè)定晶片種類,選擇ch4_1.hex檔案,將測(cè)試程式下載到測(cè)試電路的P89C51晶片上。(Flash Magic程式的操作方式,請(qǐng)參照第2章2-6節(jié)的說(shuō)明)
步驟6:將測(cè)試電路切換到執(zhí)行狀態(tài)。觀察P0埠的8個(gè)LED燈號(hào)。顯示是否如下圖4-4。如果無(wú)法確顯示,重新檢查電路與程式下載動(dòng)作是否,直到正確顯示為止。
圖4-4: P0埠的8個(gè)LED輸出測(cè)試結(jié)果