初步認(rèn)識(shí)8051單片機(jī)芯片
發(fā)布時(shí)間:2020-12-28 13:32:52 點(diǎn)擊次數(shù):209
在上一課中,我們的第一個(gè)項(xiàng)目已完成。一些懂c語言的朋友可能會(huì)說:“這與pc上的c語言從未太大區(qū)別?!贝_實(shí)并未太大區(qū)別。c語言只是編程語言的通用術(shù)語。對(duì)于不同的微處理器,c語言的細(xì)節(jié)將有所更改。在為pc編寫c程序時(shí),如果要對(duì)硬件進(jìn)行編程,則必須對(duì)硬件有一定的了解,尤為是51scm編程,因?yàn)樗拈_發(fā)和應(yīng)用不能與硬件分離,因此我們必須首先讓我們對(duì)51芯片的構(gòu)造和引腳功能有一個(gè)初步的了解。MSC51體系構(gòu)造中的芯片類別很多,并且特定的屬性和功能有所不同(在附錄中,我將添加常用的51種芯片的列表),在以下教程中,Atmel公司的AT89C51和AT89C2051是求學(xué)的中心對(duì)象。這兩個(gè)是AT89系列的典型代表。它們?cè)跇I(yè)余愛好者中被大量使用,具有許多應(yīng)用材質(zhì),并且價(jià)錢廉價(jià)。他們是初學(xué)者的首選51。嘿,很多口水有點(diǎn)像賣廣告。
初步了解8051芯片-ldaniori-的感受
圖2-1AT89C51和AT89C2051引腳功能圖
圖2-1是AT89C51和AT89C2051的引腳功能圖,表2-1是它們的主要性能表,從上面可以看出它們基本相同。由于AT89C2051的io行很少,因此無法添加RAM和程序ROM。片上Flash的內(nèi)存也較少,但是它的體積卻比AT89C51大得多,將來可以根據(jù)具體需要選取,它們有自己的特色,但基本是相同的,讓我們看一下AT89C51的特定功能。
1.電源引腳
Vcc40電源端子
GND20接地端子
*工作電壓為5v,at89lv51的工作電壓為2.7-6v,引腳功能相同。
2.外部水晶針
初步了解8051芯片-ldaniori-的感受
圖2-2外部晶振引腳
XTAL119
XTAL218
XTAL1是片上振蕩器的反相放大器的輸入端子,XTAL2是輸出端子。當(dāng)使用外部振蕩器時(shí),外部振蕩信號(hào)應(yīng)直接加到xtal1上,而xtal2維持懸空狀況。在內(nèi)部模式下,時(shí)鐘發(fā)生器將振蕩脈沖除以2例如,如果結(jié)晶振蕩器為12mhz,則時(shí)鐘頻率為6mhz,晶體振蕩器的頻率可以在1mhz-24mhz之間選項(xiàng),電容約為30pf。
*型號(hào)也是AT89C51的芯片,后面有一個(gè)頻率數(shù)字,可選12,16,20,24mhz,每個(gè)人在選購時(shí)都要留意,例如AT89C5124PC是具有24mhz最大振蕩頻率的平常商用芯片和40p6封裝。
3.重設(shè)RST 9
當(dāng)振蕩器運(yùn)轉(zhuǎn)時(shí),當(dāng)此引腳上出現(xiàn)大于兩個(gè)機(jī)器周期(24個(gè)振蕩周期)的高電平時(shí),它將使微控制器復(fù)位。只要該引腳維持高電平,51芯片就會(huì)周期性地復(fù)位。復(fù)位后,P0-P3口都置1引腳為高電平,程序計(jì)數(shù)器和特別功能寄存器SFR都被掃除。從高電平變成低電平時(shí),芯片從00h開始運(yùn)行程序,芯片為ROM。常用的復(fù)位電路如圖2-3所示。
*重置操作不會(huì)影響內(nèi)部RAM。
初步了解8051芯片-ldaniori-的感受
圖2-3常用復(fù)位電路
4.輸入和輸出引腳
(1)P0port[P0.0-P0.7] P0是8位漏極開路雙向I/O端口,當(dāng)端口設(shè)置為1(向端口寫1)作為高阻抗輸入時(shí)。用作輸出端口,它可以驅(qū)動(dòng)8TTL。
對(duì)內(nèi)部Flash程序存儲(chǔ)器進(jìn)行編程時(shí),接收命令字節(jié);驗(yàn)證程序時(shí),輸出命令字節(jié)并需要一個(gè)外部上拉電阻。
當(dāng)訪問外部程序和外部數(shù)據(jù)存儲(chǔ)器時(shí),端口p0是地址(低8位)/數(shù)據(jù)總線,用于分時(shí)變換,并且內(nèi)部上拉電阻在訪問期間起作用。
(2)P1port[P1.0-P1.7] P1是帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可以驅(qū)動(dòng)4TTL。當(dāng)端口設(shè)置為1時(shí),內(nèi)部上拉電阻會(huì)將端口拉至高電平進(jìn)行輸入。
對(duì)內(nèi)部Flash程序存儲(chǔ)器進(jìn)行編程時(shí),請(qǐng)接收地址信息的低8位。
(3)P2port[P2.0-P2.7] P2是帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4TTL。當(dāng)端口設(shè)置為1時(shí),內(nèi)部上拉電阻會(huì)將端口拉至高電平進(jìn)行輸入。
對(duì)內(nèi)部Flash程序存儲(chǔ)器進(jìn)行編程時(shí),請(qǐng)接收地址和支配信息的高8位。
當(dāng)訪問外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口發(fā)送高8位地址。當(dāng)訪問具有8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),其引腳上的內(nèi)容在此期間不會(huì)變動(dòng)。
(4)P3port[P3.0-P3.7] P2是帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4TTL。當(dāng)端口設(shè)置為1時(shí),內(nèi)部上拉電阻會(huì)將端口拉至高電平進(jìn)行輸入。
對(duì)內(nèi)部Flash程序存儲(chǔ)器進(jìn)行編程時(shí),訪問控制信息。此外,P3port還用于某些特別功能,請(qǐng)參考表2-2。
當(dāng)*P1-3端口用作輸入時(shí),由于內(nèi)部電阻,從外部下拉的引腳將輸出一定的電流。
!我一口氣說了這么多,請(qǐng)停下來。嗯,什么?什么是上拉電阻?上拉電阻只是為了拉高電平。一般而言使用4.7-10k電阻器連接到Vcc電源。下拉電阻用于將電平下拉,該電阻連接至GND地線。此處不討論實(shí)際指令,讓我們看一下其他引腳功能。
5.其他控制或多路復(fù)用引腳
(1)ALE/PROG30訪問外部存儲(chǔ)器時(shí),ALE的輸出(容許地址鎖存)用于鎖存地址低位字節(jié)。即使不訪問外部存儲(chǔ)器,脈沖信號(hào)端子仍會(huì)輸出振蕩器以恒定頻率(此頻率為ALEfrequency的1/6)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),會(huì)出現(xiàn)ale脈沖。對(duì)Flash存儲(chǔ)器進(jìn)行編程時(shí),此引腳用于輸入編程脈沖prog
(2)PSEN29該引是外部程序存儲(chǔ)器的選通信號(hào)輸出端子,當(dāng)AT89C51從外部程序存儲(chǔ)器中得到指令或常量時(shí),每個(gè)機(jī)器周期輸出2個(gè)脈沖,兩次有效性。訪問外部數(shù)據(jù)儲(chǔ)存時(shí),將并未脈沖輸出。
(3)EA/Vpp31外部訪問權(quán)限端子。當(dāng)該引腳訪問外部程序存儲(chǔ)器時(shí),輸入低電平。要使AT89C51僅訪問外部程序存儲(chǔ)器(地址0000h-ffffh),必須保存此引腳。這時(shí)為低電平,當(dāng)對(duì)Flash存儲(chǔ)器進(jìn)行編程時(shí),用于強(qiáng)加Vpp編程電壓.vpp電壓有兩種種類。相像芯片的最大頻率值取決芯片中的附加號(hào)碼或功能字,實(shí)際如表2-3所示。
表2-3Vpp與芯片型號(hào)和芯片內(nèi)特點(diǎn)字的聯(lián)系
見到這一點(diǎn),您應(yīng)當(dāng)對(duì)AT89C51引腳的功能有一定的了解。此處將不詳實(shí)討論編程和驗(yàn)證期間的引腳時(shí)序。一般而言,除非您想開發(fā)自己的程序員,否則我們不需要贊同它。在下一科目中,我們將以一些簡(jiǎn)便的示例來敘述c程序的語法和編寫方式,并穿插相關(guān)的硬件學(xué)問,例如串行端口,暫停使用情形等。