單片機(jī)C語(yǔ)言教程(二)
上一課我們的第一個(gè)項(xiàng)目完成了,可能有懂C語(yǔ)言的朋友會(huì)說(shuō),"這和PC機(jī)上的C語(yǔ)言沒(méi)有多大的區(qū)別呀"。 本文引用地址:http://m.butianyuan.cn/article/201611/320763.htm的確沒(méi)有太大的區(qū)別,C語(yǔ)言只是一種程序語(yǔ)言的統(tǒng)稱(chēng),針對(duì)不同的處理器相關(guān)的C語(yǔ)言都會(huì)有一些細(xì)節(jié)的 改變。 編寫(xiě)PC機(jī)的C程序時(shí),如要對(duì)硬件編程你就必須對(duì)硬件要有一定的認(rèn)識(shí),51單片機(jī)編程就更是如此,因它 的開(kāi)發(fā)應(yīng)用是不可與硬件脫節(jié)的,所以我們先要來(lái)初步認(rèn)識(shí)一下51苾片的結(jié)構(gòu)和引腳功能。MSC51架構(gòu)的芯片 種類(lèi)很多,具體特點(diǎn)和功能不盡相同(在以后編寫(xiě)的附錄中會(huì)加入常用的一些51芯片的資料列表),在此后 的教程中就以Atmel公司的AT89C51和AT89C2051為中心對(duì)象來(lái)進(jìn)行學(xué)習(xí),兩者是AT89系列的典型代表, 在愛(ài)好者中使用相當(dāng)?shù)亩?,?yīng)用資料很多,價(jià)格便宜,是初學(xué)51的首選芯片。嘿嘿,口水多多有點(diǎn)賣(mài)廣告之嫌 了。:P | |||||||||||||||||||||||
圖2-1 AT89C51和AT89C2051引腳功能圖 | |||||||||||||||||||||||
| |||||||||||||||||||||||
表2-1 AT89C51和AT89C2051主要性能表 | |||||||||||||||||||||||
圖2-1中是AT89C51和AT89C2051的引腳功能圖。而表2-1中則是它們的主要性能表。以上可以看出它們 是大體相同的,由于AT89C2051的IO線很少,導(dǎo)致它無(wú)法外加RAM和程序ROM,片內(nèi)Flash存儲(chǔ)器也少,但它的 體積比AT89C51小很多,以后大家可根據(jù)實(shí)際需要來(lái)選用。它們各有其特點(diǎn)但其核心是一樣的,下面就來(lái)看 看AT89C51的引腳具體功能。 2.外接晶體引腳 | |||||||||||||||||||||||
圖2-2 外接晶體引腳 | |||||||||||||||||||||||
XTAL1 19 直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻 率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。 注意了。如AT89C51 24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯片。 3.復(fù)位 RST 9 位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計(jì)數(shù)器 和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開(kāi)始運(yùn)行程序。 常用的復(fù)位電路如圖2-3所示。 | |||||||||||||||||||||||
圖2-3 常用復(fù)位電路 | |||||||||||||||||||||||
4.輸入輸出引腳 抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)TTL。 上拉電阻起作用。 端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。 端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 請(qǐng)看表2-2.。 | |||||||||||||||||||||||
| |||||||||||||||||||||||
表2-2 P3端口引腳兼用功能表 | |||||||||||||||||||||||
呼!一口氣說(shuō)了那么多,停一下吧。嗯,什么?什么叫上拉電阻?上拉電阻簡(jiǎn)單來(lái)說(shuō)就是把電平拉高, 通常用4.7-10K的電阻接到Vcc電源,下拉電阻則是把電平拉低,電阻接到GND地線上。具體說(shuō)明也不是這 里要討論的,接下來(lái)還是接著看其它的引腳功能吧。 使不訪問(wèn)外部存儲(chǔ)器,ALE端仍以不變的頻率輸出脈沖信號(hào)(此頻率是振蕩器頻率的1/6)。在訪問(wèn)外部數(shù)據(jù)存 儲(chǔ)器時(shí),出現(xiàn)一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程時(shí),這個(gè)引腳用于輸入編程脈沖PROG 常數(shù)時(shí),每個(gè)機(jī)器周期輸出2個(gè)脈沖即兩次有效。但訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將不會(huì)有脈沖輸出。 只訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),這時(shí)該引腳必須保持低電平。對(duì)Flash存儲(chǔ)器編程時(shí),用于 施加Vpp編程電壓。Vpp電壓有兩種,類(lèi)似芯片最大頻率值要根據(jù)附加的編號(hào)或芯片內(nèi)的特征字決定。具體 如表2-3所列。 | |||||||||||||||||||||||
| |||||||||||||||||||||||
表2-3 Vpp與芯片型號(hào)和片內(nèi)特征字的關(guān)系 | |||||||||||||||||||||||
看到這您對(duì)AT89C51引腳的功能應(yīng)該有了一定的了解了,引腳在編程和校驗(yàn)時(shí)的時(shí)序我們?cè)谶@里就不做 詳細(xì)的探討,通常情況下我們也沒(méi)有必要去撐握它,除非你想自己開(kāi)發(fā)編程器。下來(lái)的課程我們要開(kāi)始以 一些簡(jiǎn)單的實(shí)例來(lái)講述C程序的語(yǔ)法和編寫(xiě)方法技巧,中間穿插相關(guān)的硬件知識(shí)如串口,中斷的用法等等。 |
評(píng)論