2051單片機(jī)綜合學(xué)習(xí)系統(tǒng)_第1頁(yè)
2051單片機(jī)綜合學(xué)習(xí)系統(tǒng)_第2頁(yè)
2051單片機(jī)綜合學(xué)習(xí)系統(tǒng)_第3頁(yè)
2051單片機(jī)綜合學(xué)習(xí)系統(tǒng)_第4頁(yè)
2051單片機(jī)綜合學(xué)習(xí)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2051單片機(jī)綜合學(xué)習(xí)系統(tǒng)先看分別有流水燈, 線,SPI總線, 控,溫度傳感, 速入門(mén)如圖下我們將要使用的數(shù)碼管顯示,PS/2實(shí)驗(yàn),51單片機(jī)綜合學(xué)習(xí)系統(tǒng)能完成哪些實(shí)驗(yàn)與產(chǎn)品開(kāi)發(fā)工作:液晶顯示,按鍵開(kāi)關(guān),蜂鳴器奏樂(lè),繼電器控制,IIC總AD模數(shù)轉(zhuǎn)換,光耦實(shí)驗(yàn),串口通信,紅外線遙控,無(wú)線遙 1所示,其配套書(shū)本教程單片機(jī)快步進(jìn)電機(jī)控制等等。主體系統(tǒng)如圖2所示。他常"*: ji廠十門(mén) I.* :一 瘤'V *;盜曲-薩葦眉京譏乎圖1 51單片機(jī)綜合學(xué)習(xí)系統(tǒng)主機(jī)部分圖片圖2 51單片機(jī)綜合學(xué)習(xí)系統(tǒng)配套書(shū)本教程單片機(jī)快速入門(mén)DS1302的工作原理上圖是我們將要使用的 51單片機(jī)綜合學(xué)習(xí)

2、系統(tǒng)硬件平臺(tái),如圖1所示,本期實(shí)驗(yàn)我們用到了綜合系統(tǒng)主機(jī)、板載的DS1302時(shí)鐘芯片,綜合系統(tǒng)其它功能模塊原理與使用詳見(jiàn)前幾期電子制作雜志及后期連載教程介紹。在很多單片機(jī)系統(tǒng)中都要求帶有實(shí)時(shí)時(shí)鐘電路,如最常見(jiàn)的數(shù)字鐘、鐘控設(shè)備、數(shù)據(jù) 記錄儀表,這些儀表往往需要采集帶時(shí)標(biāo)的數(shù)據(jù),同時(shí)一般它們也會(huì)有一些需要保存起來(lái)的重要數(shù)據(jù),有了這些數(shù)據(jù),便于用戶(hù)后期對(duì)數(shù)據(jù)進(jìn)行觀察、分析。本小節(jié)就介紹市 面上常見(jiàn)的時(shí)鐘芯片 DS1302的應(yīng)用。DS1302是美國(guó)DALLAS公司推出的一款高性能、 低功耗、帶內(nèi)部RAM的實(shí)時(shí)時(shí)鐘芯片(RTC),也就是一種能夠?yàn)閱纹瑱C(jī)系統(tǒng)提供日期 和時(shí)間的芯片。通過(guò)本小節(jié)的學(xué)習(xí),我們

3、將會(huì)把RTC相關(guān)的一些技術(shù)粗略介紹一下,然后介紹DS1302與單片機(jī)之間的軟硬件應(yīng)用。DS1302時(shí)鐘芯片簡(jiǎn)介DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,可以通過(guò)串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(shí)、日、星期、月、年的信息,每個(gè)月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通 過(guò)AM/PM標(biāo)志位決定采用24或12小時(shí)時(shí)間格式。DS1302與單片機(jī)之間能簡(jiǎn)單地采 用同步串行的方式進(jìn)行通信,僅需三根I/O線:復(fù)位(RST八I/O數(shù)據(jù)線、串行時(shí)鐘(S31字節(jié)的字符組方式通信。DS1302工1mW。CLK)。時(shí)鐘/RAM的讀/寫(xiě)數(shù)

4、據(jù)以一字節(jié)或多達(dá) 作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí),功耗小于DS1302的內(nèi)部結(jié)構(gòu)DS1302的外部引腳功能說(shuō)明如圖 3所示:VcC21X127X2匚36gndF45圖3 DS1302封裝圖VcciSCLKI/ORSTX1,X2GNDRSTI/OSCLKVCC1VCC232.768kHz晶振引腳復(fù)位數(shù)據(jù)輸入/輸出串行時(shí)鐘電池引腳主電源引腳實(shí)時(shí)時(shí)鐘以及RAM。雖然數(shù)據(jù)分成兩種, 就是對(duì)特定的地址進(jìn)行讀寫(xiě)操作。<«iJMt>»MlM I Jk'KM控制邏輯、振蕩器、DS1302的內(nèi)部結(jié)構(gòu)如圖4所示,主要組成部分為:移位寄存器、 但是對(duì)單片機(jī)的程序而言,其實(shí)

5、是一樣的,圖4 DS1302的內(nèi)部結(jié)構(gòu)圖DS1302含充電電路,可以對(duì)作為后備電源的可充電電池充電,并可選擇充電使能和 串入的二極管數(shù)目,以調(diào)節(jié)電池充電電壓。不過(guò)對(duì)我們目前而言,最需要熟悉的是和時(shí) 鐘相關(guān)部分的功能,對(duì)于其它參數(shù)請(qǐng)參閱數(shù)據(jù)手冊(cè)。DS1302工作時(shí)為了對(duì)任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘( SCLK)的上升沿串行輸入, 前8位指定訪問(wèn)地址,命令字裝入移位寄存器后,在之后的時(shí)鐘周期,讀操作時(shí)輸出數(shù) 據(jù),寫(xiě)操作時(shí)輸出數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8(8位地址+8位數(shù)據(jù)),在多字節(jié)方式下為8加最多可達(dá)248

6、的數(shù)據(jù)。DS1302的寄存器和控制命令DS1302內(nèi)部共有12個(gè)寄存器,其中BCD碼形式。此外,DS1302還有年RAM相關(guān)的寄存器等。時(shí)時(shí)間寄存器及控制日歷、對(duì)DS1302的操作就是對(duì)其內(nèi)部寄存器的操作, 有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與 鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器以外的寄存器。 字如表1所示:寄存器名稱(chēng)RAM/CKA4A3A2A1A0RD/W秒寄存器 分寄存器 小時(shí)寄存器 日寄存器 月寄存器 星期寄存器 年寄存器 寫(xiě)保護(hù)寄存器 慢充電寄存器 時(shí)鐘突發(fā)寄存器日歷、時(shí)鐘寄存器與控制字對(duì)照表最后一位RD/W“0時(shí)表示

7、進(jìn)行寫(xiě)操作,為“1時(shí)表示讀操作。DS1302內(nèi)部寄存器列表如表 2所示:命令字取值范圍各位內(nèi)容寄存器名稱(chēng)寫(xiě)3210秒寄存器80H81H00-59CH10SECSEC個(gè),每個(gè)單元為一個(gè) 8位的字節(jié),其命令控制字為 COHFDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;再一類(lèi) 為突發(fā)方式下的RAM,此方式下可一次性讀寫(xiě)所有的 RAM的31個(gè)字節(jié),命令控制字 為 FEH (寫(xiě))、FFH (讀)。DS1302內(nèi)部的RAM分為兩類(lèi),一類(lèi)是單個(gè) RAM單元,共31分寄存器82H83H00-59010MINMIN小時(shí)寄存器84H85H01-12 或 00-2312/240AHRHR日期寄存器86H87H01-28,

8、29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR表2 :DS14302內(nèi)部主要寄存器分布表圖5 DS1302的命令字結(jié)構(gòu)DS1302的軟硬件設(shè)計(jì)實(shí)例我們現(xiàn)在已經(jīng)知道了控制寄存器和RAM的邏輯地址,接著就需要知道如何通過(guò)外部接口來(lái)訪問(wèn)這些資源。單片機(jī)是通過(guò)簡(jiǎn)單的同步串行通訊與DS1302通訊的,每次通訊都必須由單片機(jī)發(fā)起,無(wú)論是讀還是寫(xiě)操作,單片機(jī)都必須先向DS1302寫(xiě)入一個(gè)命令幀,這個(gè)幀的格式如表 1所示,最高位BIT7固定為1,BIT6決定操作是針

9、對(duì) RAM還 是時(shí)鐘寄存器,接著的 5個(gè)BIT是RAM或時(shí)鐘寄存器在 DS1302的內(nèi)部地址,最后一 個(gè)BIT表示這次操作是讀操作抑或是寫(xiě)操作。物理上,DS1302的通訊接口由3個(gè)口線組成,即 RST,SCLK,I/O。其中RST從低 電平變成高電平啟動(dòng)一次數(shù)據(jù)傳輸過(guò)程,SCLK是時(shí)鐘線,I/O是數(shù)據(jù)線。具體的讀寫(xiě)時(shí)序參考圖5,但是請(qǐng)注意,無(wú)論是哪種同步通訊類(lèi)型的串行接口,都是對(duì)時(shí)鐘信號(hào)敏 感的,而且一般數(shù)據(jù)寫(xiě)入有效是在上升沿,讀出有效是在下降沿(DS1302正是如此的,但是在芯片手冊(cè)里沒(méi)有明確說(shuō)明),如果不是特別確定,則把程序設(shè)計(jì)成這樣:平時(shí)SCLK保持低電平,在時(shí)鐘變動(dòng)前設(shè)置數(shù)據(jù), 在時(shí)鐘

10、變動(dòng)后讀取數(shù)據(jù), 即數(shù)據(jù)操作總是在 SCLK保持為低電平的時(shí)候,相鄰的操作之間間隔有一個(gè)上升沿和一個(gè)下降沿。1;M5 h 1TkMl本例將實(shí)現(xiàn)對(duì)DS1302的讀寫(xiě)操作,將時(shí)鐘數(shù)據(jù)在LED數(shù)碼管上顯示出來(lái)。調(diào)試時(shí)將功 能選擇開(kāi)關(guān)調(diào)到 DS1302的狀態(tài)上。圖6 DS1302實(shí)驗(yàn)演示圖-.3“侖:IP ?戸-fw; F JAnJI 亠 L F f ft-V f - -f 單匸* p It"-H B - - 片 “ i r ”I 訃小 乂也;> - f , ?二 4 £ r 、! J ¥ - F rX” :;: -弋"bl-卡”;,4 > r -

11、* =.第-J : ha!;0丄匕丿匕C二 J二 JR"TH防?932 52 :-*; ? V *;焊- ;18B20 ftD0e32 PC81/HTTP: /UWUI, Hirrc硬件原理圖程序流程圖圖10-46硬件原理圖開(kāi)姐DS1303訥怕化讀腳托1302時(shí)間靈示時(shí)、分.耿圖10-47軟件流程圖初步認(rèn)識(shí)2051芯片上一課我們的第一個(gè)項(xiàng)目完成了,可能有懂C語(yǔ)言的朋友會(huì)說(shuō),"這和PC機(jī)上的C語(yǔ)言沒(méi)有多大的區(qū)別呀"。的確沒(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ì)硬

12、件要有一定的認(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)廣告之嫌了。RST嚴(yán)m(xù) inrrirj irrJTTjaummKTAL2 - XTAL ( OhC I37i423 VCCl IPO.O H

13、AO和 .P0.1 lADIlI PO JI IPO. 3 1*03) JI Cb J. * Ap羊 *I * 4AC>«11 P&.r ADJ) I IE:| ALEfPAO宕 IPSCN:f*i.T 1A1 時(shí)4 4A 114I IPJ 51、忖1 HJI PJ J (AIOlPJ IIH&T/VPP (RXDt P3 O' '! (TXDJ P3.1 .XTAL2 7KTAL1 1 1 (INTOI P3 2 (IhTM P3.3i(,T0> P3.4 - i(TU P3.5GND IfS010典191017161511411y VC

14、C'F1I.7Pl.ft 口 Pl £'PI PI.3 =1 PI.2 _1 P1.1 (AlliMlI Ti Pl.O (AtNO) *1卩”AT89C51AT89C2P51AT89C51AT89C20514KB可編程Flash存儲(chǔ)器(可擦寫(xiě)10002KB可編程Flash存儲(chǔ)器(可擦寫(xiě)1000次)次)三級(jí)程序存儲(chǔ)器保密兩級(jí)程序存儲(chǔ)器保密靜態(tài)工作頻率:0Hz-24MHz靜態(tài)工作頻率:0Hz-24MHz128字節(jié)內(nèi)部RAM128字節(jié)內(nèi)部RAM2個(gè)16位定時(shí)/計(jì)數(shù)器2個(gè)16位定時(shí)/計(jì)數(shù)器一個(gè)串行通訊口一個(gè)串行通訊口6個(gè)中斷源6個(gè)中斷源32條I/O引線15條I/O引線片內(nèi)時(shí)

15、種振蕩器1個(gè)片內(nèi)模擬比較器和AT89C2051引腳功能圖圖 2- 1 AT89C51圖2 1中是AT89C51和AT89C2051的引腳功能圖。而表2 1中則是它們的主要性 能表。以上可以看出它們是大體相同的,由于AT89C2051的10線很少,導(dǎo)致它無(wú)法外加RAM和程序ROM,片內(nèi)Flash存儲(chǔ)器也少,但它的體積比 AT89C51小很多,以后 大家可根據(jù)實(shí)際需要來(lái)選用。它們各有其特點(diǎn)但其核心是一樣的,下面就來(lái)看看AT89C51的引腳具體功能。1.電源引腳Vcc 40 電源端GND 20 接地端*工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V,引腳功能一樣。2.外接晶體引腳C2T

16、卜C1 I卜XTAL2XTAL1懸空外部摭跖信號(hào)X7AL2XTALIGNDXTAL119GMD2.外部方式外接晶體引腳XTAL218是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時(shí),XTAL1外部振蕩信號(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可選。大 家在購(gòu)買(mǎi)和選用時(shí)要注意了。 如AT89C51 24PC就是最高振蕩頻率為 2

17、4MHz,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處開(kāi)始運(yùn)行程序。常用的復(fù)位電路如圖2 3所示。*復(fù)位操作不會(huì)對(duì)內(nèi)部 RAM有所影響。圖2-3常用復(fù)位電路4.輸入輸出引腳(1) P0端口 P0.0-P0.7 P0是一個(gè)8位漏極開(kāi)路型雙向I/O端口,端口置1 (對(duì)端口寫(xiě)1) 時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)

18、TTL。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收指令字節(jié);校驗(yàn)程序時(shí)輸出指令字節(jié),要求外接上 拉電阻。在訪問(wèn)外部程序和外部數(shù)據(jù)存儲(chǔ)器時(shí),P0 口是分時(shí)轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問(wèn)期間內(nèi)部的上拉電阻起作用。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位地址信息。P2端口 P2.0 P2.7 P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部Flash程序存儲(chǔ)器

19、編程時(shí),接收高 8位地址和控制信息。在訪問(wèn)外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口送出高8位地址。而在訪問(wèn)8位地址 的外部數(shù)據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。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端口還用于一些專(zhuān)門(mén)功能,具體請(qǐng)看表2 2.。* P1 3端口在做輸入使用時(shí),因內(nèi)部有上接電阻,被外部拉低的引腳會(huì)輸出一定的電 流。P3引腳兼用功能P 3.0串行通訊輸入(RXDP 3.1串行通訊輸出(TXDP 3.2外部

20、中斷0 ( INT0 )P 3.3外部中斷1 (INT1)P 3.4定時(shí)器0輸入(T0)P 3.5定時(shí)器1輸入(T1)P 3.6外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通WRP 3.7外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通RD表2- 2 P3端口引腳兼用功能表呼! 一口氣說(shuō)了那么多,停一下吧。嗯,什么?什么叫上拉電阻?上拉電阻簡(jiǎn)單來(lái)說(shuō)就 是把電平拉高,通常用 4.7 10K的電阻接到Vcc電源,下拉電阻則是把電平拉低,電 阻接到GND地線上。具體說(shuō)明也不是這里要討論的,接下來(lái)還是接著看其它的引腳功 能吧。5.其它的控制或復(fù)用引腳ALE端仍以不變的頻率輸出脈沖信號(hào)(此頻率是振脈沖。對(duì)Flash存儲(chǔ)器編程ALE/PROG 30訪問(wèn)外部存儲(chǔ)器時(shí),ALE (地址鎖存允許)的輸出用于鎖存地址的 低位字節(jié)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論