版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 題目單片機(jī)控制的萬年歷設(shè)計(jì) </p><p> 學(xué)院 機(jī)電工程系 </p><p> 專業(yè) 電子信息工程技術(shù) </p><p> 年級(jí) &l
2、t;/p><p> 姓名 </p><p> 指導(dǎo)教師 </p><p><b> ?。?0 年 月)</b></p><p> 基于單片機(jī)控制1602液晶的萬年歷</p><p><b> 摘要&
3、lt;/b></p><p> 隨著社會(huì)主義市場(chǎng)經(jīng)濟(jì)的發(fā)展,人們對(duì)時(shí)間和溫度可靠性的要求不斷提高;到目前為止,利用先進(jìn)的單片機(jī)技術(shù)、控制技術(shù)以及通訊技術(shù),設(shè)計(jì)高性能、高節(jié)能、能適應(yīng)不同領(lǐng)域的產(chǎn)品是必然的趨勢(shì)</p><p> 本論文分析單片機(jī)控制1602液晶的原理及系統(tǒng)的組成結(jié)構(gòu),提出不同的控制方案,通過研究和比較,本論文采用液晶實(shí)現(xiàn)時(shí)鐘和溫度,然后用數(shù)字對(duì)系統(tǒng)單片機(jī)的設(shè)計(jì)。最后
4、對(duì)系統(tǒng)的軟硬件設(shè)計(jì)進(jìn)行了詳細(xì)的介紹。本論文設(shè)計(jì)與實(shí)現(xiàn)通過單片機(jī)控制來實(shí)現(xiàn)想要的目的。具體講述了系統(tǒng)的總體設(shè)計(jì)與軟件的實(shí)現(xiàn),并對(duì)系統(tǒng)采取的可靠性措施進(jìn)行了說明。</p><p><b> 目錄</b></p><p><b> 第一章 緒論4</b></p><p> 1.1數(shù)字電子鐘的背景4</p>
5、<p> 1.2 數(shù)字電子鐘的意義4</p><p> 1.3數(shù)字電子鐘的應(yīng)用5</p><p> 第二章 數(shù)字鐘的硬件設(shè)計(jì)6</p><p> 第三章 數(shù)字鐘的軟件設(shè)計(jì)10</p><p> 3.1 ds1302芯片的介紹10</p><p> 3.2 程序的實(shí)現(xiàn)13</
6、p><p> 3.3 DS18B20溫度管的介紹17</p><p> 3.4 DS18B20的程序20</p><p><b> 3.5主函數(shù)25</b></p><p> 第四章 調(diào)試與功能說明28</p><p> 4.1 硬盤調(diào)試28</p><p
7、> 4.2 系統(tǒng)性能測(cè)試與功能說明28</p><p> 4.3 系統(tǒng)時(shí)鐘誤差分析29</p><p> 4.4 軟件調(diào)試問題及解決29</p><p> 第五章 單片機(jī)的應(yīng)用特點(diǎn)和應(yīng)用領(lǐng)域31</p><p> 5.1 單片機(jī)的特點(diǎn)31</p><p> 5.2 單片機(jī)的應(yīng)用領(lǐng)域32&
8、lt;/p><p><b> 結(jié)束語34</b></p><p><b> 致 謝35</b></p><p><b> 參考文獻(xiàn)36</b></p><p><b> 第一章 緒論</b></p><p> 1.1數(shù)字
9、電子鐘的背景 </p><p> 20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時(shí)間對(duì)人們來說總是那么寶貴,工作</p><p> 的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷
10、大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。 </p><p> 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替
11、硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。 </p><p> 單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。</p><p> 1.2 數(shù)字電子鐘的意義 </p><p> 數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分
12、,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)
13、的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。</p><p> 1.3數(shù)字電子鐘的應(yīng)用 </p><p> 數(shù)字鐘已成為人們?nèi)粘I钪校罕夭豢缮俚谋匦杵?,廣泛用于個(gè)人家庭以及車站、碼頭、劇場(chǎng)、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集</p><p> 成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使數(shù)字鐘具有走時(shí)準(zhǔn)確、性
14、能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)及自動(dòng)控制等各個(gè)領(lǐng)域。 </p><p> 第二章 數(shù)字鐘的硬件設(shè)計(jì)</p><p><b> 1)最小系統(tǒng)</b></p><p> 單片機(jī)最小系統(tǒng)或者稱為最小應(yīng)用系統(tǒng),素質(zhì)用最少的元件組成的單片機(jī)可以工作的系統(tǒng),對(duì)51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:?jiǎn)纹瑱C(jī)、復(fù)位電路、晶振電路。&l
15、t;/p><p> 復(fù)位電路:使用了獨(dú)立式鍵盤,單片機(jī)的P1口鍵盤的接口。該設(shè)計(jì)要求只需4個(gè)鍵對(duì)步進(jìn)電機(jī)的狀態(tài)進(jìn)行控制,但考慮到對(duì)控制功能的擴(kuò)展,使用了6路獨(dú)立式鍵盤。復(fù)位電路采用手動(dòng)復(fù)位,所謂手動(dòng)復(fù)位,是指通過接通一按鈕開關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài),晶振電路用30PF的電容和一12M晶體振蕩器組成為整個(gè)電路提供時(shí)鐘頻率。如圖。</p><p> 晶振電路: 51單片機(jī)的時(shí)鐘信號(hào)通常用兩種電
16、路形式電路得到:內(nèi)部震蕩方式和外部中斷方式。在引腳XTAL1和XTAL2外部接晶振電路器(簡(jiǎn)稱晶振)或陶瓷晶振器,就構(gòu)成了內(nèi)部晶振方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。內(nèi)部振蕩方式的外部電路如圖5示。其電容值一般在5~30pf,晶振頻率的典型值為12MHz,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路實(shí)用較多。 </p><p>
17、; 1.電源引腳 </p><p> Vcc 40 電源端 </p><p> GND 20 接地端 </p><p> 工作電壓為5V,另有AT89LV51工作電壓則是 2.7-6V, 引腳功能一樣。 </p><p><b> 2.外接晶體引腳 </b></p><p&g
18、t; 晶振連接的內(nèi)部、外部方式</p><p><b> XTAL1 19 </b></p><p><b> XTAL2 18 </b></p><p> XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時(shí),外</p><p> 部振蕩信號(hào)應(yīng)直接加到XTAL
19、1,而XTAL2懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻,如晶振為 12MHz,時(shí)鐘頻率就為 6MHz。晶振的頻率可以在 1MHz-24MHz內(nèi)選擇。電容取 30PF左右。系統(tǒng)的時(shí)鐘電路設(shè)計(jì)是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳 XTAL1和 XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及
20、電容 C1和 C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為 12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為 22μF。在焊接刷電路板時(shí),晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。 </p><p> 3.
21、 復(fù)位 RST 9 </p><p> 在振蕩器運(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處開始運(yùn)行程序。復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳 RST通過一個(gè)斯密特觸發(fā)
22、器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時(shí)鐘頻率選用6MHz時(shí),C取22μF,Rs約為200Ω,Rk約為1K。復(fù)位操作不會(huì)對(duì)內(nèi)部RAM有所影響。 </p><p><b> 4.輸入輸出引腳 </b></p><p>
23、(1) P0端口[P0.0-P0.7] P0是一個(gè)8位漏極開路型雙向I/O端口,端口置1(對(duì)端口寫</p><p> 1)時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)TTL。 </p><p> 對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收指令字節(jié);校驗(yàn)程序時(shí)輸出指令字節(jié),要求外接上位電阻。 </p><p> 在訪問外部程序和外部數(shù)據(jù)存儲(chǔ)器時(shí),P0口是分時(shí)轉(zhuǎn)換的地址(
24、低 8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。 </p><p> (2) 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位地址信息。 </p><p> (3) P2端口[P2.0-P2.7] P2是一個(gè)帶有內(nèi)部上拉電阻的
25、 8位雙向 I/0端口。輸出時(shí)可驅(qū)動(dòng) 4個(gè) TTL。端口置 1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部 Flash程序存儲(chǔ)器編程時(shí),接收高8位地址和控制信息。 </p><p> 在訪問外部程序和 16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高 8位地址。而在訪問 8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。 </p><p> (4) P3端口[P3.0-P3.7] P
26、2是一個(gè)帶有內(nèi)部上拉電阻的 8位雙向 I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 </p><p> 對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接控制信息。除此之外P3端口還用于一些專門功能,LED顯示電路顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有: 發(fā)光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。
27、</p><p> 發(fā)光二極管(LED)由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器由7條線段圍成 8字型,每一段包含一個(gè)發(fā)光二極管。外加正向電壓時(shí)二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號(hào)。LED數(shù)碼管有共陽、共LED液晶的原理和符號(hào).。顯示電路顯示模塊需要實(shí)時(shí)顯示當(dāng)前的時(shí)間,即時(shí)、分、秒,
28、因此需要,另需來顯示橫。采用動(dòng)態(tài)顯示方式顯示時(shí)間,硬件連接如下圖所示,時(shí)的十位和個(gè)位分別顯示在分的十位和個(gè)位分別顯示在第四個(gè)和第五個(gè)秒的十位和個(gè)位分別顯示在,其余顯示橫線。LED顯示器的顯示控制方式按驅(qū)動(dòng)方式可分成靜態(tài)顯示方式和動(dòng)態(tài)顯示方式兩種。對(duì)于多位LED顯示器,通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式。流80mA(每段 10mA);動(dòng)態(tài):平均電流 4-5mA 峰值電流 100mA </p><p>
29、; 3.3 鍵盤控制電路 </p><p> 該設(shè)計(jì)需要校對(duì)時(shí)間,所以用三個(gè)按鍵來實(shí)現(xiàn)。按 khour來調(diào)節(jié)小時(shí)的時(shí)間,按來調(diào)節(jié)分針的時(shí)間,按 ksec來調(diào)節(jié)秒的時(shí)間。 </p><p> 時(shí)間隨鍵盤材料和操作員而異,不過通??偸遣淮笥?0ms。很容易想到,抖動(dòng)問題不解決就會(huì)引起對(duì)閉合鍵的識(shí)別。用軟件方法可以很容易地解決抖動(dòng)問題,這就是通過延</p><p>
30、; 第三章 數(shù)字鐘的軟件設(shè)計(jì)</p><p> 系統(tǒng)的軟件設(shè)計(jì)也是工具系統(tǒng)功能的設(shè)計(jì)。單片機(jī)軟件的設(shè)計(jì)主要包括執(zhí)行軟件(完成各種實(shí)質(zhì)性功能)的設(shè)計(jì)和監(jiān)控軟件的設(shè)計(jì)。單片機(jī)的軟件設(shè)計(jì)通常要考慮以下幾個(gè)方面的問題: </p><p> ?。?)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個(gè)相對(duì)獨(dú)立的部分,設(shè)計(jì)出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡(jiǎn)潔和流程合理; </p><p
31、> (2)培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計(jì)、實(shí)行模塊化、子程序化。既便于調(diào)試、鏈接,又便于移植和修改; </p><p> ?。?)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù); </p><p> ?。?)繪制程序流程圖; </p><p> ?。?)合理分配系統(tǒng)資源; </p><p> ?。?)為程序加入
32、注釋,提高可讀性,實(shí)施軟件工程; </p><p> (7)注意軟件的抗干擾設(shè)計(jì),提高系統(tǒng)的可靠性。 </p><p> 3.1 ds1302芯片的介紹</p><p> 對(duì)于市面上的大多數(shù)51單片機(jī)開發(fā)板來說。ds1302和ds18b20應(yīng)該是比較常見的兩種外圍芯片。ds1302是具有SPI總線接口的時(shí)鐘芯片。ds18b20則是具有單總線接口的數(shù)字溫度傳感器
33、。下面讓我們分別來認(rèn)識(shí)并學(xué)會(huì)應(yīng)用這兩種芯片。 </p><p> 首先依舊是看DS1302的datasheet中的相關(guān)介紹。</p><p> DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行日歷電路通信。實(shí)時(shí)時(shí)鐘/日歷提供秒、分、時(shí)、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通
34、過AM/PM指示決定采用24或12小時(shí)格式。DS1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線:(1)RES(復(fù)位),(2)I/O(數(shù)據(jù)線),(3)SCLK(串行時(shí)鐘)。時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31字節(jié)的字符組方式通信。DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功耗小于1mW。 DS1302時(shí)由DS1202改進(jìn)而來,增加了以下特性:雙電源管腳用于主電源和備份電源供應(yīng),Vccl為可編
35、程涓流充電電源,附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。下面將主要的性能指標(biāo)作一綜合:●實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的秒、分、時(shí)、日、日期、星期、月、年的能力,還有閏年調(diào)整的能力●31X8為暫存數(shù)據(jù)存儲(chǔ)RAM●串行I/O口方式使得管腳數(shù)量最少●寬范圍工作電壓</p><p> 上面是它的一些基本的應(yīng)用介紹。</p><p> 下
36、面是它的引腳的描述</p><p> 下面是DS1302的時(shí)鐘寄存器。我們要讀取的時(shí)間數(shù)據(jù)就是從下面這些數(shù)據(jù)寄存器中讀取出來的。當(dāng)我們要想調(diào)整時(shí)間時(shí),可以把時(shí)間數(shù)據(jù)寫入到相應(yīng)的寄存器中就可以了。 </p><p> 這是DS1302內(nèi)部的31個(gè)RAM寄存器。在某些應(yīng)用場(chǎng)合我們可以應(yīng)用到。如我們想要做一個(gè)帶定時(shí)功能的鬧鐘。則可以把鬧鐘的時(shí)間寫入到31個(gè)RAM寄存器中的任意幾個(gè)。當(dāng)單片機(jī)掉
37、電時(shí),只要我們的DS1302的備用電池還能工作,那么保存在其中的鬧鐘數(shù)據(jù)就不會(huì)丟失。</p><p> 由于對(duì)于這些器件的操作基本上按照數(shù)據(jù)手冊(cè)上面提供的時(shí)序圖和相關(guān)命令字來進(jìn)行操作就可以了。因此在我們應(yīng)用這些器件的時(shí)候一定要對(duì)照著手冊(cè)上面的要求來進(jìn)行操作。如果覺得還不夠放心的話??梢缘骄W(wǎng)上下載一些參考程序。對(duì)著手冊(cè)看別人的程序,看別人的思路是怎么樣的。 </p><p> DS130
38、2和單片機(jī)的連接很簡(jiǎn)單。只需一根復(fù)位線,一根時(shí)鐘線,一根數(shù)據(jù)線即可。同時(shí)它本身還需要接一個(gè)32.768KHz的晶振來提供時(shí)鐘源。對(duì)于晶振的兩端可以分別接一個(gè)6PF左右的電容以提高晶振的精確度。同時(shí)可以在第8腳接上一個(gè)3.6V的可充電的電池。當(dāng)系統(tǒng)正常工作時(shí)可以對(duì)電池進(jìn)行涓流充電。當(dāng)系統(tǒng)掉電時(shí),DS1302由這個(gè)電池提供的能量繼續(xù)工作。 </p><p><b> 3.2 程序的實(shí)現(xiàn)</b>
39、</p><p> #include<reg51.h>//寄存器的定義</p><p> #include"ww.h"</p><p> #include <intrins.h></p><p> #include"delay.h"</p><p>
40、; sbit sck=P3^6;//時(shí)鐘</p><p> sbit io=P3^4;//數(shù)據(jù)</p><p> sbit rst = P3^5;// DS1302復(fù)位// DS1302復(fù)位</p><p> uchar time_data[7]={11,04,05,19,16,44,00};//年周月日時(shí)分秒</p><p>
41、; uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};</p><p> uchar read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};</p><p> uchar dis[6];</p><p> void write_ds1302_byte(u
42、char dat)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0;i<8;i++)//有八位脈沖,是串行的,</p><p><b> {</b></p><p>
43、; sck=0;//先是低電平</p><p> io=dat&0x01;//是從地位開始傳的 </p><p> sck=1;//拉高,把數(shù)據(jù)傳過去,完成</p><p> dat=dat>>1;//與完了,要移位操作</p><p><b> }</b></p><p
44、><b> }</b></p><p> void write_ds1302(uchar add, uchar dat)</p><p><b> {</b></p><p> rst=0;//rst是片選,先置低脈沖</p><p> _nop_();//不動(dòng)</p>
45、<p> sck=0;_nop_();</p><p> rst=1;//是為了寫數(shù)據(jù)</p><p><b> _nop_();</b></p><p> write_ds1302_byte(add);//傳數(shù)據(jù)</p><p> write_ds1302_byte(dat);//傳數(shù)據(jù)</
46、p><p> rst=0;//保持,因?yàn)樗容^敏感</p><p><b> _nop_();</b></p><p> io=1;//釋放出</p><p> sck=1;//釋放出</p><p><b> }</b></p><p> u
47、char read_ds1302(uchar add)</p><p><b> {</b></p><p> uchar i,value;</p><p><b> rst=0;</b></p><p><b> _nop_();</b></p><
48、;p> sck=0;_nop_();</p><p><b> rst=1;</b></p><p><b> _nop_();</b></p><p> write_ds1302_byte(add);</p><p> for(i=0;i<8;i++)</p>
49、<p><b> {</b></p><p> value=value>>1;</p><p><b> sck=0;</b></p><p><b> if(io)</b></p><p> value=value|0x80;</p>
50、;<p><b> sck=1;</b></p><p><b> }</b></p><p><b> rst=0;</b></p><p><b> _nop_();</b></p><p><b> sck=0;&l
51、t;/b></p><p><b> sck=1;</b></p><p><b> io=1;</b></p><p> return value;</p><p><b> }</b></p><p> void set_rtc(vo
52、id)//設(shè)置時(shí)間</p><p><b> {</b></p><p> uchar i,j;</p><p> for(i=0;i<7;i++)</p><p><b> {</b></p><p> j=time_data[i]/10;</p>
53、;<p> time_data[i]=time_data[i]%10;</p><p> time_data[i]=time_data[i]+j*16;//轉(zhuǎn)換bcd碼</p><p><b> }</b></p><p> write_ds1302(0x8e,0x00);//去除寫保護(hù)</p><p&
54、gt; for(i=0;i<7;i++)//往里寫數(shù)據(jù)</p><p><b> {</b></p><p> write_ds1302(write_add[i],time_data[i]);</p><p><b> }</b></p><p> write_ds1302(0x8e
55、,0x80);//加除寫保護(hù)</p><p><b> }</b></p><p> void read_rtc(void)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i
56、=0;i<7;i++)</p><p><b> {</b></p><p> time_data[i]=read_ds1302(read_add[i]);</p><p><b> }</b></p><p><b> }</b></p><
57、p> /*void time_pros()</p><p><b> {</b></p><p> dis[1]=time_data[6]/16;</p><p> dis[2]=time_data[5]%16;</p><p> dis[3]=time_data[5]/16;</p>&l
58、t;p> dis[4]=time_data[4]%16;</p><p> dis[5]=time_data[4]/16;</p><p><b> } */</b></p><p> #ifndef __WW_H__</p><p> #define __WW_H__</p><p&
59、gt; #include"delay.h"</p><p> //uchar time_data[7]={0,0,12,15,5,3,00};</p><p> //uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};</p><p> //uchar read_add[7]={
60、0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};</p><p> //uchar dis[6];</p><p> void write_ds1302_byte(uchar dat);</p><p> void write_ds1302(uchar add, uchar dat);</p><p> uch
61、ar read_ds1302(uchar add);</p><p> void set_rtc(void);</p><p> void read_rtc(void);</p><p> //void time_pros(void);//轉(zhuǎn)換十進(jìn)制</p><p> //void display(void);</p>
62、<p><b> #endif</b></p><p><b> 延時(shí)函數(shù)文件</b></p><p> #include"delay.h"</p><p> void delayms(uint xms)</p><p><b> {</b&
63、gt;</p><p><b> uint i,j;</b></p><p> for(i=xms;i>0;i--)</p><p> for(j=110;j>0;j--);</p><p><b> } </b></p><p> void delay
64、(uint t)</p><p><b> {</b></p><p> while(t--);</p><p><b> }</b></p><p> void delay_50ms(uint t)</p><p><b> {</b><
65、;/p><p><b> uchar j;</b></p><p> for(;t>0;t--)</p><p> for(j=6245;j>0;j--);</p><p><b> }</b></p><p> #ifndef __DELAY_H__<
66、;/p><p> #define __DELAY_H__ </p><p> #define uint unsigned int </p><p> #define uchar unsigned char</p><p> void delayms(uint xms);</p><p> void delay
67、(uint t);</p><p> void delay_50ms(uint t);</p><p><b> #endif</b></p><p> 有了上面的這些函數(shù)我們就可以對(duì)DS1302進(jìn)行操作了。當(dāng)我們想要獲取當(dāng)前時(shí)間時(shí),只需要調(diào)用( void )這個(gè)函數(shù)即可。讀取到的時(shí)間數(shù)據(jù)保存在這個(gè)結(jié)構(gòu)體中 </p><
68、;p> 3.3 DS18B20溫度管的介紹</p><p> 下面再讓我們看看DS18B20吧。 </p><p> 全數(shù)字溫度轉(zhuǎn)換及輸出。</p><p> 先進(jìn)的單總線數(shù)據(jù)通信。</p><p> 最高12位分辨率,精度可達(dá)+-0.5攝氏度。</p><p> 12位分辨率的最大周期為750毫秒
69、。</p><p><b> 可選擇寄生工作方式</b></p><p> 檢測(cè)溫度為-50’C~+125’C(-67’+257’F)</p><p> 內(nèi)置EEPROM,,限溫報(bào)警功能。</p><p> 64位光刻ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。</p><p> 多樣封裝形式
70、,適應(yīng)不同硬件系統(tǒng)。</p><p> DS18B20的內(nèi)部存儲(chǔ)器分為以下幾部分 </p><p> ROM:存放該器件的編碼。前8位為單線系列的編碼(DS18B20的編碼是19H)后面48位為芯片的唯一序列號(hào)。在出場(chǎng)的時(shí)候就已經(jīng)設(shè)置好,用戶無法更改。最后8位是以上56位的CRC碼。 </p><p> RAM:DS18B20的內(nèi)部暫存器共9個(gè)字節(jié)。其中第一
71、個(gè)和第二個(gè)字節(jié)存放轉(zhuǎn)換后的溫度值。第二個(gè)和第三個(gè)字節(jié)分別存放高溫和低溫告警值。(可以用RAM指令將其拷貝到EEPROM中)第四個(gè)字節(jié)為配置寄存器。第5~7個(gè)字節(jié)保留。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。</p><p> DS18B20的溫度存放如上圖所示。其中S位符號(hào)位。當(dāng)溫度值為負(fù)值時(shí),S = 1 ,反之則S = 0 。我們把得到的溫度數(shù)據(jù)乘上對(duì)應(yīng)的分辨率即可以得到轉(zhuǎn)換后的溫度值。 </p>&
72、lt;p> DS18B20的通訊協(xié)議: </p><p> 在對(duì)DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格保證讀寫的時(shí)序。否則將無法讀取測(cè)溫結(jié)果。根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令。這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。 </p><p>
73、復(fù)位要求主機(jī)將數(shù)據(jù)線下拉500us,然后釋放,DS18B20收到信號(hào)后等待16~160us然后發(fā)出60~240us的</p><p> 存在低脈沖,主機(jī)收到此信號(hào)表示復(fù)位成功。</p><p> 上圖即DS18B20的復(fù)位時(shí)序圖。 </p><p> 下面是讀操作的時(shí)序圖</p><p><b> 這是寫操作的時(shí)序圖<
74、/b></p><p> 3.4 DS18B20的程序</p><p> #include<reg51.h></p><p> #include"ss.h"</p><p> #include"delay.h"</p><p> void init_
75、1(void)</p><p><b> {</b></p><p><b> uchar x;</b></p><p><b> DQ=1;</b></p><p><b> delay(8);</b></p><p>&
76、lt;b> DQ=0;</b></p><p> delay(80);</p><p><b> DQ=1;</b></p><p><b> delay(8);</b></p><p><b> x=DQ;</b></p><p
77、><b> delay(4);</b></p><p><b> }</b></p><p> void write_byle(uchar date)</p><p><b> {</b></p><p><b> uchar i;</b>
78、</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p><b> DQ=0;</b></p><p> DQ=date&0x01; </p><p><b> delay(4);</b
79、></p><p><b> DQ=1;</b></p><p> date=date>>1;</p><p><b> }</b></p><p><b> delay(4);</b></p><p><b> }
80、</b></p><p> uchar read_byle(void)</p><p><b> {</b></p><p> uchar i,value;</p><p> for(i=0;i<8;i++)</p><p><b> {</b>&
81、lt;/p><p><b> DQ=0;</b></p><p> value>>=1;</p><p><b> DQ=1;</b></p><p><b> if(DQ)</b></p><p> value=value|0x80;
82、</p><p><b> delay(4);</b></p><p><b> }</b></p><p> return value;</p><p><b> }</b></p><p> uchar temupt(void)</p
83、><p><b> {</b></p><p> uchar a,b;</p><p><b> init_1();</b></p><p> write_byle(0xcc);</p><p> write_byle(0x44);</p><p&g
84、t; delay(10);</p><p><b> init_1();</b></p><p> write_byle(0xcc);</p><p> write_byle(0xbe);</p><p> a=read_byle();</p><p> b=read_byle();&
85、lt;/p><p><b> b<<=4;</b></p><p> b+=(a&0xf0)>>4;</p><p><b> return b;</b></p><p><b> }</b></p><p> #i
86、fndef __SS_H__</p><p> #define __SS_H__</p><p> #include<reg51.h></p><p> #include"delay.h"</p><p> sbit DQ=P3^7;</p><p> void init_1(
87、void);</p><p> void write_byle(uchar date);</p><p> uchar read_byle(void);</p><p> uchar temupt(void);</p><p><b> #endif</b></p><p><b&g
88、t; 延時(shí)函數(shù)文件</b></p><p> #include"delay.h"</p><p> void delayms(uint xms)</p><p><b> {</b></p><p><b> uint i,j;</b></p>
89、<p> for(i=xms;i>0;i--)</p><p> for(j=110;j>0;j--);</p><p><b> } </b></p><p> void delay(uint t)</p><p><b> {</b></p>&l
90、t;p> while(t--);</p><p><b> }</b></p><p> void delay_50ms(uint t)</p><p><b> {</b></p><p><b> uchar j;</b></p><p&
91、gt; for(;t>0;t--)</p><p> for(j=6245;j>0;j--);</p><p><b> }</b></p><p> #ifndef __DELAY_H__</p><p> #define __DELAY_H__ </p><p>
92、#define uint unsigned int </p><p> #define uchar unsigned char</p><p> void delayms(uint xms);</p><p> void delay(uint t);</p><p> void delay_50ms(uint t);</p>
93、;<p><b> #endif</b></p><p><b> 液晶c語言程序設(shè)計(jì)</b></p><p> #include <reg51.h></p><p> #include"smg.h"</p><p> #include&quo
94、t;delay.h"</p><p> sbit rd = P2^6; </p><p> sbit rw = P2^5;</p><p> sbit ep = P2^7; </p><p> //uchar table[]="I LOVE MUC";</p>
95、<p> //uchar code table1[]="WWW.BAIDU.COM";</p><p> void write_tt(uchar tt)</p><p><b> {</b></p><p><b> ep=0;</b></p><p><
96、;b> rd=0;</b></p><p><b> rw=0;</b></p><p><b> P0=tt;</b></p><p> delayms(1);</p><p><b> ep=1;</b></p><p>
97、 delayms(1);</p><p> ep=0;</p><p> } </p><p> void write_com(uchar dat)</p><p><b> {</b></p><p><b> ep=0;<
98、/b></p><p><b> rd=1;</b></p><p><b> rw=0;</b></p><p><b> P0=dat;</b></p><p> delayms(1);</p><p><b> ep=1;
99、</b></p><p> delayms(1);</p><p><b> ep=0;</b></p><p><b> }</b></p><p> void init(void)</p><p><b> {</b><
100、;/p><p> delayms(15);</p><p> write_tt(0x38);</p><p> delayms(5);</p><p> write_tt(0x38);</p><p> delayms(5);</p><p> write_tt(0x38);</p
101、><p> write_tt(0x38);</p><p> write_tt(0x08);</p><p> write_tt(0x01);</p><p> write_tt(0x06);</p><p> write_tt(0x0c);</p><p><b> }<
102、;/b></p><p> #ifndef __SMG_H__</p><p> #define __SMG_H__</p><p> #include"delay.h"</p><p> //uchar table[]="I LOVE MUC";</p><p>
103、; void write_tt(uchar tt);</p><p> void write_com(uchar dat);</p><p> void init(void);</p><p><b> #endif</b></p><p> 如果想獲取當(dāng)前的溫度數(shù)據(jù),在主函數(shù)中調(diào)用 ( void )就可以了。
104、溫度數(shù)據(jù)就保存到Temperature中去了。</p><p><b> 3.5主函數(shù)</b></p><p> #include"ss.h"</p><p> #include"smg.h"</p><p> #include"delay.h"<
105、/p><p> #include"ww.h"</p><p><b> bit flag;</b></p><p> uchar time_data[];</p><p> //uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};<
106、/p><p> //uchar read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};</p><p> //uchar table[]="2";</p><p> uchar disp[]="0123456789";</p><p> //uchar
107、 table[]="℃ ";</p><p> void main()</p><p><b> {</b></p><p> uchar temp;</p><p><b> init();</b></p><p> // set_rtc();
108、</p><p><b> while(1)</b></p><p><b> {</b></p><p> read_rtc();</p><p> //time_pros();</p><p> write_tt(0x80);</p><p&
109、gt; write_com(disp[time_data[4]/16]);</p><p> write_tt(0x81);</p><p> write_com(disp[time_data[4]%16]);</p><p> delay_50ms(20);</p><p><b> if(flag)</b>
110、</p><p><b> {</b></p><p> write_tt(0x82);</p><p> write_com(':');</p><p> write_tt(0x85);</p><p> write_com(':');</p>
111、;<p> delay(55500); </p><p><b> flag=0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
112、<p> write_tt(0x82);</p><p> write_com(' ');</p><p> write_tt(0x85);</p><p> write_com(' ');</p><p> delay(55500);</p><p><b&
113、gt; flag=1; </b></p><p><b> }</b></p><p> write_tt(0x83);</p><p> write_com(disp[time_data[5]/16]);</p><p> write_tt(0x84);</p><p>
114、 write_com(disp[time_data[5]%16]);</p><p> delay_50ms(20);</p><p> write_tt(0x86);</p><p> write_com(disp[time_data[6]/16]);</p><p> write_tt(0x87);</p><
115、p> write_com(disp[time_data[6]%16]);</p><p> delay_50ms(20);</p><p> write_tt(0x8b);</p><p> write_com(disp[time_data[1]/16]);</p><p> write_tt(0x8c);</p>
116、<p> write_com(disp[time_data[1]%16]);</p><p> delay_50ms(20);</p><p> write_tt(0x80+0x45);</p><p> write_com('2');</p><p> write_tt(0x80+0x46);<
117、/p><p> write_com('0');</p><p> delay_50ms(20); </p><p> write_tt(0x80+0x47);</p><p> write_com(disp[time_data[0]/16]);</p><p> write_tt(0x80+0x4
118、8);</p><p> write_com(disp[time_data[0]%16]);</p><p> delay_50ms(20);</p><p> write_tt(0x80+0x49);</p><p> write_com('-');</p><p> write_tt(0x
119、80+0x4a);</p><p> write_com(disp[time_data[2]/16]);</p><p> write_tt(0x80+0x4b);</p><p> write_com(disp[time_data[2]%16]);</p><p> delay_50ms(20);</p><p&
120、gt; write_tt(0x80+0x4c);</p><p> write_com('-'); </p><p> write_tt(0x80+0x4d);</p><p> write_com(disp[time_data[3]/16]);</p><p> write_tt(0x80+0x4e);</p
121、><p> write_com(disp[time_data[3]%16]);</p><p> delay_50ms(20); </p><p> temp=temupt();</p><p> write_tt(0x80+0x40);</p><p> write_com(disp[temp/10]);<
122、;/p><p> delay(50);</p><p> write_tt(0x80+0x41);</p><p> write_com(disp[temp%10]);</p><p> delay(50);</p><p> write_tt(0x80+0x42);</p><p>
123、write_com(0xa5);</p><p> write_tt(0x80+0x43);</p><p> write_com('c');</p><p><b> }</b></p><p><b> }</b></p><p>
124、第四章 調(diào)試與功能說明</p><p> 單片機(jī)應(yīng)用系統(tǒng)的調(diào)試包括硬件和軟件兩部分,但是他們并不能完全分開。一般的方法</p><p> 是排除明顯的硬件故障,再進(jìn)行綜合調(diào)試,排除可能的軟/硬件故障。 </p><p><b> 4.1 硬盤調(diào)試 </b></p><p> 拿到電路板后,首先要檢查加工質(zhì)量,并
125、確保沒有任何方面的錯(cuò)誤,如短路和斷路,尤</p><p> 其要避免電源短路;元器件在安裝前要逐一檢查,用萬用表測(cè)其數(shù)值,看是否與所用相同;</p><p> 完成焊接后,應(yīng)先空載上電(芯片座上不插芯片),并檢查各引腳的電位是否正確。若一切</p><p> 正常,方可在斷電的情況下將芯片插入,再次檢查各引腳的電位及其邏輯關(guān)系。將萬用表的</p>
126、<p> 探針放到單片機(jī)接電源的引腳上檢測(cè)一下,看是否符合要求。 </p><p> 4.2 系統(tǒng)性能測(cè)試與功能說明 </p><p> 走時(shí):默認(rèn)為走時(shí)狀態(tài),按 24小時(shí)制分別顯示“時(shí)時(shí)-分分-秒秒”,有 2個(gè)“-”動(dòng)態(tài)</p><p> 顯示,時(shí)間會(huì)按實(shí)際時(shí)間以秒為最少單位變化。 </p><p> 走時(shí)調(diào)整:按
127、ksec對(duì)秒進(jìn)行調(diào)整,按一下加一秒;按 kmin對(duì)分進(jìn)行調(diào)整,按一下加一</p><p> 分;按khour對(duì)時(shí)進(jìn)行調(diào)整,按一下加一小時(shí),從而達(dá)到快速設(shè)定時(shí)間的目的。 </p><p> 4.3 系統(tǒng)時(shí)鐘誤差分析 </p><p> 時(shí)間是一個(gè)基本物理量,具有連續(xù)、自動(dòng)流逝、不重復(fù)等特性。我國(guó)時(shí)間基準(zhǔn)來自國(guó)家</p><p> 授時(shí)中
128、心,人們?nèi)粘J褂玫臅r(shí)鐘就是以一定的精度與該基準(zhǔn)保持同步的。結(jié)合時(shí)間概念和誤</p><p> 差理論,可以定義電子鐘的走時(shí)誤差 S=S1-S2,S1表示程序?qū)嶋H運(yùn)行計(jì)算所得的秒;S2表示</p><p> 客觀時(shí)間的標(biāo)準(zhǔn)秒。S>0時(shí)表示電子鐘秒單元數(shù)值刷新滯后,即走時(shí)誤差為“慢”;反之,</p><p> S<0表示秒單元數(shù)值的刷新超前,即走時(shí)誤差
129、為“快”。 </p><p> 本次設(shè)計(jì)的單片機(jī)電子鐘系統(tǒng)中,其誤差主要來源包括晶體頻率誤差,定時(shí)器溢出誤差,</p><p> 延遲誤差。晶體頻率產(chǎn)生震蕩,容易產(chǎn)生走時(shí)誤差;定時(shí)器溢出的時(shí)間誤差,本應(yīng)這一秒溢</p><p> 出,但卻在下一秒溢出,造成走時(shí)誤差;延遲時(shí)間過長(zhǎng)或過短,都會(huì)造成與基準(zhǔn)時(shí)間產(chǎn)生偏</p><p> 差,造
130、成走時(shí)誤差。 </p><p> 4.4 軟件調(diào)試問題及解決 </p><p> 軟件程序的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采</p><p> 取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者</p><p> 一般需要仿真系統(tǒng)的支持。本次課題,Keil軟件來調(diào)試程序,
131、通過各個(gè)模塊程序的單步或跟</p><p> 蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。 </p><p> 仿真部分采用 protus 6 professional軟件,此軟件功能強(qiáng)大且操作較為簡(jiǎn)單,可以很</p><p> 容易的實(shí)現(xiàn)各種系統(tǒng)的仿真。 </p><p> 首先打開 protus 6 professional軟件,在
132、元件庫中找到要選用的所有元件,然后進(jìn)行</p><p> 原理圖的繪制;繪制好后再選擇wave6000已經(jīng)編譯好的*.hex文件,選擇運(yùn)行,觀察顯示結(jié)</p><p> 果,根據(jù)顯示的結(jié)果和課題的要求再修改程序,再運(yùn)行查,直到滿足要求。 </p><p> 第五章 單片機(jī)的應(yīng)用特點(diǎn)和應(yīng)用領(lǐng)域</p><p> 5.1 單片機(jī)的特點(diǎn)&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)萬年歷系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的萬年歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬年歷的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬年歷的設(shè)計(jì)
- 基于單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 51單片機(jī)萬年歷畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的測(cè)溫萬年歷畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的萬年歷畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的電子萬年歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于51單片機(jī)的萬年歷設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于51單片機(jī)的萬年歷設(shè)計(jì)
- 基于單片機(jī)的電子萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的數(shù)字萬年歷設(shè)計(jì)
- 基于單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì).doc
- 單片機(jī)的電子萬年歷設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)控制1602液晶的萬年歷
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的電子萬年歷的設(shè)計(jì)
- 基于單片機(jī)的電子萬年歷的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--萬年歷
評(píng)論
0/150
提交評(píng)論