機電一體化專業畢業設計

2、晶片內部具有時鐘振盪器(傳統最高工作頻率可至 33mhz)

3、內部程式存儲器(rom)為 4kb

4、內部數據存儲器(ram)為 128b

5、外部程式存儲器可擴充至64kb

6、外部數據存儲器可擴充至64kb 

7、32 條雙向輸入輸出線,且每條均可以單獨做 i/o 的控制

8、5 箇中斷向量源

9、2 組獨立的 16 位定時器

10、1 個全雙工串列通信連線埠

11、8751 及 8752 單晶片具有數據保密的功能

12、單晶片提供位邏輯運算指令

2.2.2 at89s51各引腳功能介紹:

at89c51為雙列直插式封裝的51單片機晶片,有40個引腳,其引腳功能分類如圖所示:

圖 2-3 at89s51單片機引腳圖

vcc:atat89s51 電源正端輸入,接+5v。

vss:電源地端。

xtal1:單晶片系統時鐘的反向放大器輸入端。

xtal2:系統時鐘的反向放大器輸出端,一般在設計上只要在xtal1 和 xtal2 上接上一隻石英振盪晶體系統就可以動作了,此外可以在兩個引腳與地之間加入一個 20pf 的小電容,可以使系統更穩定,避免噪聲干擾而當機。

reset:at89s51的重置引腳,高電平動作,當要對晶片重置時,只要對升至高電平並保持兩個機器周期以上的時間,at89s51便能完成系統重置的各項動作,使得內部特殊功能暫存器之內容均被設成已知狀態,並且至地址0000h處開始讀入程式代碼而執行程式。

ea/vpp:"ea"為英文"external access"的縮寫,表示存取外部程式代碼之意,低電平動作,也就是說當此引腳接低電平後,系統會取用外部的程式代碼(存於外部eprom中)來執行程式。因此在8031及8032中,ea引腳必須接低電平,因為其內部無程式存儲器空間。如果是使用 8751 內部程式空間時,此引腳要接成高電平。此外,在將程式代碼燒錄至8751內部eprom時,可以利用此引腳來輸入21v的燒錄高壓(vpp)。

ale/prog:ale是英文address latch enable"的縮寫,表示地址鎖存器啟用信號。

atat89s51可以利用這個引腳來觸發外部的8位鎖存器(如74ls373),將連線埠0的地址匯流排(a0~a7)鎖進鎖存器中,因為atat89s51是以多工的方式送出地址及數據。平時在程式執行時ale引腳的輸出頻率約是系統工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程式代碼時,此引腳會被當成程式規劃的特殊功能來使用。psen:此為"program store enable"的縮寫,其意為程式儲存啟用,當8051被設成為讀取外部程式代碼工作模式時(ea=0),會送出此信號以便取得程式代碼,通常這支腳是接到eprom的oe腳。atat89s51可以利用psen及rd引腳分別啟用存在外部的ram與eprom,使得數據存儲器與程式存儲器可以合併在一起而共用64k的定址範圍。

port0(p0.0~p0.7):連線埠0是一個8位寬的開路電極(open drain)雙向輸出入連線埠,共有8個位,p0.0表示位0,p0.1表示位1,依此類推。其他三個i/o連線埠(p1、p2、p3)則不具有此電路組態,而是內部有一提升電路,p0在當作i/o用時可以推動8個ls的ttl負載。如果當ea引腳為低電平時(即取用外部程式代碼或數據存儲器),p0就以多工方式提供地址匯流排(a0~a7)及數據匯流排(d0~d7)。設計者必須外加一個鎖存器將連線埠0送出的地址鎖住成為a0~a7,再配合連線埠2所送出的a8~a15合成一組完整的16位地址匯流排,而定位地址到64k的外部存儲器空間。

port2(p2.0~p2.7):連線埠2是具有內部提升電路的雙向i/o連線埠,每一個引腳可以推動4個ls的,若將連線埠,此連線埠便能當成輸入連線埠來。p2除了當作一般i/o連線埠使用外,若是在atat89s51擴充外接程式存儲器或數據存儲器時,也提供地址匯流排的高位元組a8~a15,這個時候p2便不能當作i/o來使用了。port1(p1.0~p1.7):連線埠1也是具有內部提升電路的雙向i/o連線埠,其輸出緩衝器可以推動4個ls ttl負載,同樣地,若將連線埠1的輸出設為高電平,便是由此連線埠來輸入數據。如果是使用8052或是8032的話,p1.0又當作定時器2的外部脈衝輸入腳,而p1.1可以有t2ex功能,可以做外部中斷輸入的觸發引腳。

port3(p3.0~p3.7):連線埠3也具有內部提升電路的雙向i/o連線埠,其輸出緩衝器可以推動4個ttl負載,同時還多工具有其他的額外特殊功能,包括串列通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。

其引腳分配如下:

p3.0:rxd,串列通信輸入。

p3.1:txd,串列通信輸出。

p3.2:int0,外部中斷0輸入。

p3.3:int1,外部中斷1輸入。

p3.4:t0,計時計數器0輸入。