2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  單片機(jī)遙控系統(tǒng)是將紅外遙控技術(shù)和單片機(jī)應(yīng)用技術(shù)相結(jié)合的一種方案。本系統(tǒng)為紅外遙控電子密碼鎖的控制管理部分,只要再連接上不同用途的電磁鎖即可成為一個(gè)完整的紅外遙控電子密碼鎖系統(tǒng)應(yīng)用到各種領(lǐng)域中。而且本系統(tǒng)還設(shè)計(jì)有學(xué)習(xí)NEC紅外編碼遙控器的功能,通過(guò)紅外接收解碼電路,把遙控器的鍵碼還原并儲(chǔ)存起來(lái),再利用查找對(duì)比的方法便能夠識(shí)

2、別不同的遙控器,大大提高了系統(tǒng)的靈活性和實(shí)用性。</p><p>  本系統(tǒng)以單片機(jī)作為核心元件將電子密碼鎖和無(wú)線遙控技術(shù)結(jié)合起來(lái),使其具有修改密碼、報(bào)警鎖定等功能,不僅能進(jìn)行遠(yuǎn)距離遙控解鎖,還能實(shí)現(xiàn)近距離按鍵密碼初始化及復(fù)位解除報(bào)警。同時(shí)采用E2PROM作為存儲(chǔ)單元,方便用戶存儲(chǔ)、修改密碼和遙控器鍵碼;采用LCD顯示令使用更加方便直觀。紅外線遙控電子密碼鎖能實(shí)現(xiàn)多種控制功能,改善了傳統(tǒng)機(jī)械鎖的各種缺點(diǎn),有較好的

3、市場(chǎng)發(fā)展前景和技術(shù)應(yīng)用價(jià)值。而且本系統(tǒng)的紅外接收解碼部分延時(shí)計(jì)數(shù)準(zhǔn)確,并且有錯(cuò)誤校驗(yàn),所以整個(gè)接收解碼的準(zhǔn)確性非常高。</p><p>  設(shè)計(jì)電路主要由紅外線解碼學(xué)習(xí)電路、密碼修改和存儲(chǔ)電路、聲光提示報(bào)警電路、LCD顯示電路組成。系統(tǒng)能完成輸入密碼開(kāi)鎖、出錯(cuò)報(bào)警、超次鎖定、修改用戶密碼等基本的密碼鎖的功能,并且還能實(shí)現(xiàn)遠(yuǎn)距離遙控、按鍵密碼初始化、掉電存儲(chǔ)、聲光提示、遙控器學(xué)習(xí)識(shí)別等附加功能。</p>

4、<p>  關(guān)鍵詞:電子密碼鎖  紅外遙控  單片機(jī)  NEC編碼  遙控器學(xué)習(xí)</p><p><b>  目 錄</b></p><p>  1 設(shè)計(jì)目的意義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5、 . . . . . . 4</p><p>  2 在線編程電路和實(shí)物圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5</p><p>  2.1在線編程電路. . . . . . . . . . . . . . . . . . . . . . .

6、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5</p><p>  2.2實(shí)物圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5</p><

7、;p>  3 設(shè)計(jì)方案. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12</p><p>  3.1發(fā)射模塊的方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8、 . . . . . . . . . . . . . . . . . . . . .12</p><p>  3.2接收模塊的方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12</p><p>  4硬件分析及設(shè)計(jì). . . . . .

9、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12</p><p>  4.1發(fā)射模塊原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10、. . . . .12</p><p>  4.1.1紅外發(fā)送系統(tǒng)原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12</p><p>  4.1.2 NEC編碼格式介紹. . . . . . . . . . . . . . . . . . . . .

11、. . . . . . . . . . . . . . . . . . . . . . . . .12</p><p>  4.2接收模塊原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14</p><p>  4.2.1接收解碼

12、原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14</p><p>  4.2.2該模塊的硬件電路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13、 . . . . .14</p><p>  4.3存儲(chǔ)模塊原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14</p><p>  4.4液晶顯示模塊原理. . . . . . . . . . . . . . . . . . .

14、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15</p><p>  5 軟件設(shè)計(jì). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15</p><

15、;p>  5.1編程語(yǔ)言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13</p><p>  5.2主要程序說(shuō)明及流程圖.. . . . . . . . . . . . . . . . . . . . . . . . . . . .

16、 . . . . . . . . . . . . . . .13</p><p>  5.2.1主程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13</p><p>  5.2.2接收解碼程序. . . . .

17、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14</p><p>  5.2.3密碼判斷、報(bào)警及修改程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13</p>&

18、lt;p>  5.2.4主函數(shù). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13</p><p>  6功能分析及總結(jié). . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19、. . . . . . . . . . . . . . . . . . . . . . .13</p><p>  7具體操作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13</p><p>  參考文獻(xiàn). . . .

20、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16</p><p>  附錄. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21、. . . . . . . . . . . . . . . . . . . . . . 16</p><p><b>  1 設(shè)計(jì)目的意義</b></p><p>  隨著人們生活水平的提高,如何實(shí)現(xiàn)家庭防盜這一問(wèn)題也變得尤其重要。目前國(guó)內(nèi),大部分人使用的還是傳統(tǒng)的機(jī)械鎖。傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單,被撬的事件屢見(jiàn)不鮮。即使是一把質(zhì)量過(guò)關(guān)的機(jī)械鎖,通過(guò)急開(kāi)鎖,甚至可

22、以在不損壞鎖的前提下將鎖打開(kāi)。而且,在日常的生活和工作中,若使用傳統(tǒng)的機(jī)械式鑰匙開(kāi)鎖,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。為此,本系統(tǒng)試著設(shè)計(jì)具有防盜報(bào)警功能的紅外線遙控電子密碼鎖來(lái)代替?zhèn)鹘y(tǒng)的機(jī)械式密碼鎖,克服了機(jī)械式密碼鎖密碼量少、安全性能差的缺點(diǎn)。而且還添加了紅外遙控、遙控器學(xué)習(xí)識(shí)別和LCD顯示等功能,可以實(shí)現(xiàn)遠(yuǎn)距離開(kāi)關(guān)鎖、修改密碼等,系統(tǒng)靈活性強(qiáng),操作簡(jiǎn)單直觀、使用非常方便。由于這是一次學(xué)生的實(shí)習(xí)項(xiàng)目

23、,本產(chǎn)品未必能盡善盡美,但基本的要求還是可以滿足。</p><p>  2 在線編程電路和實(shí)物圖</p><p>  2.1在線編程電路(詳見(jiàn)附錄1)</p><p><b>  2.2實(shí)物圖</b></p><p><b>  圖1 實(shí)物圖</b></p><p><

24、b>  3 設(shè)計(jì)方案</b></p><p>  3.1 發(fā)射模塊的方案</p><p>  使用NEC編碼格式紅外線遙控編碼芯片uPD6122G等作為主芯片再加上外圍電路完成發(fā)射部分,或直接購(gòu)買(mǎi)紅外線遙控編碼芯片的遙控器成品作為系統(tǒng)的發(fā)射部分。因?yàn)槭羌t外線遙控編碼專(zhuān)用芯片,其內(nèi)部已經(jīng)集成了按鍵檢測(cè)、處理和紅外編碼模塊。而且無(wú)須編程,使用十分方便。故市面上的絕大多數(shù)的紅外

25、遙控器都是使用類(lèi)似的方案,可見(jiàn)這方面的技術(shù)已經(jīng)相當(dāng)成熟。在抗干擾能力上,因?yàn)闆](méi)有涉及到軟件,故其抗干擾能力強(qiáng)。</p><p>  3.2 接收模塊的方案</p><p>  發(fā)射模塊使用型號(hào)為HZ-FT007的20鍵車(chē)載MP3紅外遙控器和創(chuàng)維RC-585型DVD遙控器,因?yàn)樗鼈兌际遣捎肗EC編碼格式的紅外遙控芯片作為主要芯片;使用一體化紅外接收頭SM0038和單片機(jī)STC89C52RC結(jié)

26、合的方式完成接收解碼模塊,學(xué)習(xí)識(shí)別NEC編碼格式的不同遙控器;使用單片機(jī)內(nèi)部eeprom作為存儲(chǔ)模塊;使用LCD1602A實(shí)現(xiàn)系統(tǒng)的顯示模塊。系統(tǒng)的總框圖如圖3所示。這樣的選擇使系統(tǒng)在較低成本的情況下較好地實(shí)現(xiàn)系統(tǒng)的功能,而且系統(tǒng)有著較高的抗干擾性和穩(wěn)定性。</p><p>  圖2 選用方案系統(tǒng)框圖</p><p><b>  4硬件分析及設(shè)計(jì)</b></p&

27、gt;<p>  4.1 發(fā)射模塊原理</p><p>  4.1.1紅外發(fā)送系統(tǒng)原理</p><p>  紅外遙控信號(hào)是一連串的二進(jìn)制脈沖碼。為了使其在無(wú)線傳輸過(guò)程中免受其他紅外信號(hào)的干擾,通常都是先將其調(diào)制在特定的載波頻率上,然后再經(jīng)紅外發(fā)光二極管發(fā)射出去,紅外線接收裝置則會(huì)濾除其它雜波只接收該特定頻率的信號(hào)并將其還原成二進(jìn)制脈沖碼。在本紅外遙控系統(tǒng)中,紅外信號(hào)的載波頻率

28、為38KHz。</p><p>  通常,紅外遙控系統(tǒng)中所采用的編碼方式有兩種:通過(guò)脈沖寬度來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈寬調(diào)制(PWM)和通過(guò)脈沖串之間的時(shí)間間隔來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈時(shí)調(diào)制(PPM)。本系統(tǒng)是采用PPM方法,即用兩個(gè)脈沖之間的時(shí)間間隔來(lái)表示二進(jìn)制信息。</p><p>  為了確保發(fā)送端和接收端之間數(shù)據(jù)傳輸?shù)臏?zhǔn)確無(wú)誤,紅外線信號(hào)還要按照特定的傳輸協(xié)議來(lái)進(jìn)行信號(hào)傳輸。常用的紅外線信號(hào)傳輸

29、協(xié)議有NEC協(xié)議、RC-5協(xié)議、RC-6協(xié)議、Sharp協(xié)議等。</p><p>  4.1.2 NEC編碼格式介紹</p><p>  本系統(tǒng)使用的型號(hào)為HZ-FT007的20鍵車(chē)載MP3紅外遙控器和創(chuàng)維RC-585型DVD遙控器請(qǐng)參看附錄2中的實(shí)物圖,它們主要芯片都是NEC編碼格式的紅外遙控芯片。NEC編碼廣泛應(yīng)用于電視機(jī),DVD,PC電腦,音響等,是比較常用的一種紅外編碼格式。<

30、;/p><p>  下面以NEC編碼標(biāo)準(zhǔn)的紅外編碼芯片uPD6122G作為例子介紹。NEC遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中的前十六位是用戶碼,后16位為8位的數(shù)據(jù)碼及其反碼。在每次編碼之前還會(huì)發(fā)送9ms高電平和4.5ms低電平組成的引導(dǎo)碼(或稱起始碼)。而且第二段的用戶碼也可以在遙控應(yīng)用電路中被設(shè)置為第一段用戶碼的反碼。它的幀結(jié)構(gòu)如下圖所示。</p><p><b>  圖3

31、幀結(jié)構(gòu)</b></p><p>  NEC編碼標(biāo)準(zhǔn)是以用不同脈沖的時(shí)間間隔來(lái)區(qū)分‘0’和‘1’的,uPD6122G以脈寬為0.56ms、間隔0.565ms、周期為1.125ms的組合表示二進(jìn)制的‘0’;以脈寬為0.56ms、間隔1.69ms,周期為2.25ms的組合表示二進(jìn)制的‘1’。其波形如下圖所示。</p><p><b>  圖4 脈沖波形圖</b>

32、</p><p>  使用455KHz晶振時(shí)各代碼所占的時(shí)間如下圖所示:</p><p>  圖5 晶振時(shí)各代碼所占時(shí)間</p><p>  uPD6122G按鍵輸出有兩種方式:一種是每次按鍵都輸出完整的一幀數(shù)據(jù);另一種是按下按鍵不松開(kāi)時(shí),發(fā)送完整的一幀數(shù)據(jù)后再發(fā)送重復(fù)碼,直到按鍵被松開(kāi)。其波形如下圖所示。</p><p><b>

33、  圖6 按鍵輸出波形</b></p><p><b>  4.2接收模塊原理</b></p><p>  4.2.1接收解碼原理</p><p>  接收解碼的關(guān)鍵是如何識(shí)別‘0’和‘1’,本系統(tǒng)使用的是一體化紅外接收頭進(jìn)行紅外信號(hào)接收,在沒(méi)有信號(hào)的時(shí)候其輸出端是高電平,而有信號(hào)的時(shí)候是低電平,所以其輸出信號(hào)電平正好和遙控發(fā)射端相

34、反。從上面的討論可以發(fā)現(xiàn)在遙控發(fā)射端‘0’和‘1’均以0.56ms的高電平開(kāi)始,不同的是低電平的寬度,‘0’為0.565ms,‘1’為1.69ms,所以必須根據(jù)低電平的寬度區(qū)別‘0’和‘1’。本系統(tǒng)用中斷的方式實(shí)現(xiàn)從接收頭到MCU的信號(hào)傳輸。如圖9所示,紅外接收頭的輸出端連接到單片機(jī)的INT0腳。接收頭輸出端有低電平信號(hào)輸出時(shí)引起單片機(jī)的中斷。單片機(jī)響應(yīng)中斷并進(jìn)行信號(hào)的接收解碼。解碼后的信號(hào)就變成相應(yīng)的遙控器按鍵代碼,從而可以成為密碼鎖

35、的密碼。</p><p>  圖7 中斷接收示意圖</p><p>  4.2.2該模塊的硬件電路</p><p>  接收解碼電路由一體化紅外接收頭SM0038和單片機(jī)STC89C52RC組成。 </p><p>  STC系列單片機(jī)具有在系統(tǒng)中直接可編程特性,其好處是:省去購(gòu)買(mǎi)通用編程器,單片機(jī)在用戶系統(tǒng)上即可下載/燒錄用戶程序,而無(wú)須將

36、單片機(jī)從已生產(chǎn)好的產(chǎn)品上拆下,再用通用編程器將程序代碼燒錄進(jìn)單片機(jī)內(nèi)部。有些程序尚未定型的產(chǎn)品可以一邊生產(chǎn),一邊完善,加快了產(chǎn)品進(jìn)入市場(chǎng)的速度,減小了新產(chǎn)品由于軟件缺陷帶來(lái)的風(fēng)險(xiǎn)。由于可以在用戶的目標(biāo)系統(tǒng)上將程序直接下載進(jìn)單片機(jī)看運(yùn)行結(jié)果對(duì)錯(cuò),故無(wú)須仿真器,因此選擇使用這款單片機(jī)。</p><p>  一體化紅外接收頭SM0038是集信號(hào)放大、濾波、檢波、整形于一體的紅外接收器,電路內(nèi)置PIN二極管和前置放大器,

37、采用可以紅外濾波的環(huán)氧樹(shù)脂材料封裝,可靠性高,不易受環(huán)境影響并可以防止非控制信號(hào)的輸出脈沖出現(xiàn)。它的內(nèi)部電路如圖10所示。</p><p>  圖8 SM0038內(nèi)部結(jié)構(gòu)圖</p><p>  SM0038內(nèi)置帶通濾波器、積分器、和自動(dòng)增益控制電路以抑制各種干擾和噪音。數(shù)據(jù)信號(hào)和干擾信號(hào)的主要區(qū)別在于載波頻率、脈沖波長(zhǎng)和工作周期上。所以數(shù)據(jù)信號(hào)應(yīng)該滿足載波信號(hào)的頻率盡量接近帶通濾波器的中心

38、頻率(38KHZ);脈沖長(zhǎng)度在300us以上;數(shù)據(jù)的編碼類(lèi)型相兼容。而本系統(tǒng)選用的SM0038在這三方面和NEC編碼格式是相配的。</p><p>  4.3 存儲(chǔ)模塊原理</p><p>  STC89C51、52內(nèi)部都自帶有2K字節(jié)的EEPROM,54、55和58都自帶有16K字節(jié)的EEPROM,STC單片機(jī)是利用IAP技術(shù)實(shí)現(xiàn)的EEPROM,內(nèi)部Flash擦寫(xiě)次數(shù)可達(dá)100,000

39、次以上,先來(lái)介紹下ISP與IAP的區(qū)別和特點(diǎn)。</p><p>  STC單片機(jī)內(nèi)部有幾個(gè)專(zhuān)門(mén)的特殊功能寄存器負(fù)責(zé)管理ISP/IAP功能的,見(jiàn)表1。</p><p>  表1 ISP/IAP相關(guān)寄存器列表</p><p>  ISP_DATA:ISP/IAP操作時(shí)的數(shù)據(jù)寄存器。</p><p>  ISP/IAP從Flash讀出的數(shù)據(jù)放在此處

40、,向Flash寫(xiě)入的數(shù)據(jù)也需放在此處。</p><p>  ISP_ADDRH:ISP/IAP操作時(shí)的地址寄存器高八位。</p><p>  ISP_ADDRL:ISP/IAP操作時(shí)的地址寄存器低八位。</p><p>  ISP_CMD:ISP/IAP操作時(shí)的命令模式寄存器,須命令觸發(fā)寄存器觸發(fā)方可生效。命令模式如表2所示。</p><p>

41、;  表2 ISP_CMD寄存器模式設(shè)置</p><p>  程序在系統(tǒng)ISP程序區(qū)時(shí)可以對(duì)用戶應(yīng)用程序區(qū)/數(shù)據(jù)Flash區(qū)(EEPROM)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除;程序在用戶應(yīng)用程序區(qū)時(shí),僅可以對(duì)數(shù)據(jù)Flash區(qū)(EEPROM)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除。STC89C51RC/RD+系列單片機(jī)出廠時(shí)已經(jīng)固化有ISP引導(dǎo)碼,并設(shè)置為上電復(fù)位進(jìn)入ISP程序區(qū),并且出廠時(shí)就已完全加密。</p>

42、<p>  ISP_TRIG:ISP/IAP操作時(shí)的命令觸發(fā)寄存器。</p><p>  在ISPEN(ISP_CONTR.7) =1時(shí),對(duì)ISP_TRIG 先寫(xiě)入46h,再寫(xiě)入B9h,ISP/IAP命令才會(huì)生效。</p><p>  STC89C52RC,STC89LE52RC單片機(jī)內(nèi)部可用Data Flash(EEPROM)的地址如表3所示,其它型號(hào)單片機(jī)請(qǐng)查閱相關(guān)資料。&

43、lt;/p><p>  表3 STC89C52RC、STC89LE52RC單片機(jī)內(nèi)部EEPROM地址表</p><p>  每個(gè)扇區(qū)為512字節(jié),建議大家在寫(xiě)程序時(shí),將同一次修改的數(shù)據(jù)放在同一個(gè)扇區(qū), 方便修改,因?yàn)樵趫?zhí)行擦除命令時(shí),一次最少要擦除一個(gè)扇區(qū)的數(shù)據(jù),每次在更新數(shù)據(jù)前都必須要擦除原數(shù)據(jù)方可重新寫(xiě)入新數(shù)據(jù),不能直接在原來(lái)數(shù)據(jù)基礎(chǔ)上更新內(nèi)容。</p><p

44、>  4.4 液晶顯示模塊原理</p><p>  系統(tǒng)中采用LCD1602作為顯示器件輸出信息。與傳統(tǒng)的LED數(shù)碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點(diǎn),而且不需要外加驅(qū)動(dòng)電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的顯示器件了。LCD1602可以顯示2行×16個(gè)字符,具有8位數(shù)據(jù)總線D0-D7,和RS、R/W、E三個(gè)控制端口,工作電壓為5V,并且?guī)в凶址麑?duì)比度

45、調(diào)節(jié)和背光設(shè)置。LCD1602與單片機(jī)的連接電路圖參考附錄3。</p><p>  其管腳功能簡(jiǎn)介如下:</p><p>  VL:LCD對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為0-5V。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,可以用一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度;</p><p>  RS:數(shù)據(jù)或者指令選擇端。處理器寫(xiě)入指令時(shí),RS為低電平,寫(xiě)入數(shù)據(jù)時(shí),RS為高電平;&l

46、t;/p><p>  R/W:讀寫(xiě)控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫(xiě)入數(shù)據(jù);</p><p>  E:LCD模塊使能信號(hào)控制端。寫(xiě)數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊;</p><p>  D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向;</p><p>  BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VCC;</p>

47、;<p>  BLK: LED背光負(fù)極。</p><p><b>  5軟件設(shè)計(jì)</b></p><p><b>  5.1 編程語(yǔ)言</b></p><p>  目前,對(duì)單片機(jī)的編程主要采用匯編和C語(yǔ)言。匯編語(yǔ)言有執(zhí)行效率高、速度快、與硬件結(jié)合緊密等特點(diǎn)。尤其在進(jìn)行I/O端口管理時(shí),使用匯編語(yǔ)言有快捷、直觀

48、的優(yōu)點(diǎn)。但是使用匯編語(yǔ)言相對(duì)于使用高級(jí)語(yǔ)言編程難度要大一些,且程序可讀性低,開(kāi)放性差,從系統(tǒng)開(kāi)發(fā)時(shí)間來(lái)看,效率不是很高。</p><p>  C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言,可產(chǎn)生緊湊代碼。C語(yǔ)言可以用許多機(jī)器級(jí)函數(shù)直接控制操作8051硬件。與匯編語(yǔ)言相比,C語(yǔ)言有如下的優(yōu)點(diǎn):</p><p>  不要求了解單片機(jī)的指令系統(tǒng),僅要求對(duì)8051的存儲(chǔ)結(jié)構(gòu)有初步了解;</p><p

49、>  寄存器分配,不同存儲(chǔ)器的尋址及數(shù)據(jù)類(lèi)型等細(xì)節(jié)可由編譯器管理;</p><p>  程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;</p><p>  具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;</p><p>  關(guān)鍵字及運(yùn)算符可用近似人的思維方式使用;</p><p>  編程及程序調(diào)試時(shí)間顯

50、著縮短,從而提高效率;</p><p>  提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;</p><p>  已編好的程序可容易地植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。</p><p>  當(dāng)然,采用混編模式,就能結(jié)合兩者的優(yōu)點(diǎn)。本著學(xué)習(xí)的目的,本系統(tǒng)均采用C51語(yǔ)言編寫(xiě)。</p><p>  5.2 主要程序說(shuō)明及流程圖<

51、;/p><p>  本系統(tǒng)的軟件程序主要包括主程序、接收解碼程序、密碼判斷和報(bào)警程序、密碼修改程序、遙控器學(xué)習(xí)識(shí)別程序幾個(gè)大的模塊程序。</p><p><b>  5.2.1主程序</b></p><p>  主程序首先是初始化程序,然后就等待紅外接收頭輸出端的低電平,低電平出現(xiàn)說(shuō)明遙控有鍵按下,外部中斷設(shè)定為下降沿觸發(fā),故單片機(jī)進(jìn)入中斷服務(wù)程序

52、進(jìn)行信號(hào)的接收解碼。當(dāng)接收到遙控器識(shí)別按鍵時(shí),單片機(jī)查找AT24C02并判斷此遙控器ID是否已存在。當(dāng)ID不存在時(shí),系統(tǒng)進(jìn)入遙控器學(xué)習(xí)模式,保存新ID及其鍵碼;當(dāng)遙控器ID已存在時(shí),系統(tǒng)進(jìn)入密碼輸入界面,并且接收到八位的密碼以后就開(kāi)始運(yùn)行密碼核對(duì)程序,當(dāng)密碼輸入正確后,就可以進(jìn)行開(kāi)鎖、上鎖或修改密碼的操作。當(dāng)密碼輸入錯(cuò)誤的時(shí)候就會(huì)進(jìn)入密碼輸入提醒程序提醒用戶重新輸入密碼,密碼輸入累積到3次時(shí)系統(tǒng)會(huì)報(bào)警并鎖定。</p>&l

53、t;p><b>  圖9主程序流程圖</b></p><p>  5.2.2接收解碼程序</p><p>  紅外接收解碼的關(guān)鍵是如何識(shí)別‘0’和‘1’碼,我的做法是根據(jù)‘0’和‘1’碼的高電平寬度不一樣的特點(diǎn)來(lái)進(jìn)行識(shí)別。接收程序的流程圖如圖10所示。</p><p>  進(jìn)入紅外接收程序后先關(guān)閉中斷。接著的工作是避開(kāi)9ms高電平、4.5

54、ms的低電平的引導(dǎo)碼,并且判斷是否干擾信號(hào)或者重復(fù)信號(hào)。正如前面所說(shuō),一體化紅外接收頭的輸出端電平跟遙控發(fā)射端電平相反。如圖14所示。</p><p>  所以只要遙控有鍵按下單片機(jī)就會(huì)馬上產(chǎn)生中斷接收數(shù)據(jù)。跟在引導(dǎo)碼后面的是32位用戶碼和數(shù)據(jù)碼,也就是我們想要的數(shù)據(jù),單片機(jī)把它接收并保存。當(dāng)接收完8位的數(shù)據(jù)時(shí)要更換另外一個(gè)數(shù)據(jù)緩沖區(qū),當(dāng)32位的鍵碼都接收完的時(shí)候就意味這一幀的數(shù)據(jù)已經(jīng)接收完畢。然后根據(jù)接收到的數(shù)

55、據(jù)碼和數(shù)據(jù)反碼是否對(duì)應(yīng)位相反來(lái)確定接收的這一幀數(shù)據(jù)是否正確,最后退出接收解碼程序。</p><p>  圖10 接收頭前導(dǎo)碼信號(hào)變相圖</p><p>  而單片機(jī)的接收端的‘0’‘1’波形圖如圖15所示。在保存‘0’碼和‘1’碼的時(shí)候還有一個(gè)保存時(shí)機(jī)的問(wèn)題,如果從0.56ms低電平過(guò)后開(kāi)始延時(shí),0.56ms以后若讀到為低電平,說(shuō)明該位為‘0’,反之則為‘1’。為安全起見(jiàn),延時(shí)必須比0.5

56、6ms長(zhǎng)一些,但又不能超過(guò)1.12ms,否則如果該位為‘0’讀到的已是下一位的高電平,因此取( 1.12ms + 0.56ms )/2=0.84ms 較為可靠,一般取0.84ms左右均可。</p><p>  圖11 單片機(jī)接收端的‘0’‘1’波形圖</p><p><b>  接收解碼中斷程序:</b></p><p>  void IR_I

57、N() interrupt 0 using 0</p><p><b>  {</b></p><p>  unsigned char j,k,N=0;</p><p>  EX0 = 0; </p><p>  delay(15);</p><p>  if (IRIN==1) </p

58、><p><b>  { EX0 =1;</b></p><p><b>  return;</b></p><p>  } //確認(rèn)IR信號(hào)出現(xiàn)</p><p>  while (!IRIN) //等IR變?yōu)楦唠娖?,跳過(guò)9ms的前導(dǎo)低電平信號(hào)。&l

59、t;/p><p>  {delay(1);}</p><p>  for (j=0;j<4;j++) //收集四組數(shù)據(jù)</p><p><b>  { </b></p><p>  for (k=0;k<8;k++) //每組數(shù)據(jù)有8位</p><p><

60、;b>  {</b></p><p>  while (IRIN) //等 IR 變?yōu)榈碗娖?,跳過(guò)4.5ms的前導(dǎo)高電平信號(hào)。</p><p>  {delay(1);}</p><p>  while (!IRIN) //等 IR 變?yōu)楦唠娖?lt;/p><p>  {delay(1);}</p

61、><p>  while (IRIN) //計(jì)算IR高電平時(shí)長(zhǎng)</p><p><b>  {</b></p><p><b>  delay(1);</b></p><p>  N++; </p><p>  if (N>=30)&

62、lt;/p><p><b>  { EX0=1;</b></p><p>  return;} //0.14ms計(jì)數(shù)過(guò)長(zhǎng)自動(dòng)離開(kāi)。</p><p>  } //高電平計(jì)數(shù)完畢 </p><p>  IRCOM[j]=

63、IRCOM[j] >> 1; //數(shù)據(jù)最高位補(bǔ)“0”</p><p>  if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補(bǔ)“1”</p><p><b>  N=0;</b></p><p>  } //end for k</p&g

64、t;<p>  } //end for j</p><p>  if (IRCOM[2]!=~IRCOM[3])</p><p><b>  { EX0=1;</b></p><p><b>  return; }</b></p><p>  IRCOM[5]=IRCOM[2]

65、 & 0x0F; //取鍵碼的低四位</p><p>  IRCOM[6]=IRCOM[2] >> 4; //右移4次,高四位變?yōu)榈退奈?lt;/p><p>  if(IRCOM[5]>9)</p><p>  { IRCOM[5]=IRCOM[5]+0x37;}</p><p><b> 

66、 else</b></p><p>  IRCOM[5]=IRCOM[5]+0x30;</p><p>  if(IRCOM[6]>9)</p><p>  { IRCOM[6]=IRCOM[6]+0x37;}</p><p><b>  else</b></p><p>  I

67、RCOM[6]=IRCOM[6]+0x30;</p><p><b>  LED3=0;</b></p><p><b>  beep();</b></p><p><b>  LED3=1;</b></p><p>  ir_data=IRCOM[2];</p>

68、<p>  ir_flag=1; //信號(hào)接收成功標(biāo)志位</p><p><b>  EX0 = 1; </b></p><p><b>  } </b></p><p>  5.2.3密碼判斷、報(bào)警及修改程序</p><p>  電子密碼鎖的軟件編程主要分為兩方面,分別是接收密

69、碼后判斷及報(bào)警部分和密碼修改控制部分。</p><p>  首先介紹密碼判斷及報(bào)警程序。顯示收到的鍵碼并保存到接收緩存receive_code[8],直到8位鍵碼接收完畢。然后和原密碼緩存origin_code[8]比較,判斷密碼是否正確。若密碼正確則將標(biāo)志位code_right=1;若不正確則報(bào)警并使密碼輸入錯(cuò)誤次數(shù)wrong_num++,再判斷錯(cuò)誤次數(shù)是否已達(dá)3次,若是則程序進(jìn)入死循環(huán)鎖定。程序流程圖所示。&

70、lt;/p><p>  圖12 密碼判斷、報(bào)警大致程序流程</p><p>  接著介紹密碼修改控制程序。當(dāng)密碼輸入正確以后用戶按下“密碼修改鍵”就會(huì)進(jìn)入密碼修改操作,單片機(jī)也就會(huì)運(yùn)行密碼修改程序。</p><p>  圖13 密碼修改流程圖</p><p>  進(jìn)入密碼修改程序首先等待新密碼的第一次輸入。第一次輸入的新密碼放在接收緩存recei

71、ve_code[8]中,當(dāng)輸入完第八個(gè)密碼后系統(tǒng)會(huì)提示再次輸入密碼,第二次輸入的新密碼放在密碼比較緩存com_code[8]中。第二次輸入密碼完成后就檢驗(yàn)兩次輸入的新密碼是否相同,如果相同的話就更換密碼,將新密碼儲(chǔ)存到芯片的eeprom中。</p><p>  Eeprom存儲(chǔ)子程序:</p><p>  /* ================ 打開(kāi) ISP,IAP 功能 ========

72、========= */</p><p>  void ISP_IAP_enable(void)</p><p><b>  {</b></p><p>  EA = 0; /* 關(guān)中斷 */</p><p>  ISP_CONTR = ISP_CONTR & 0x18; /* 000

73、1,1000 */</p><p>  ISP_CONTR = ISP_CONTR | WaitTime; /* 寫(xiě)入硬件延時(shí) */</p><p>  ISP_CONTR = ISP_CONTR | 0x80; /* ISPEN=1 */</p><p><b>  }</b></p><p>  /*

74、=============== 關(guān)閉 ISP,IAP 功能 ================== */</p><p>  void ISP_IAP_disable(void)</p><p><b>  {</b></p><p>  ISP_CONTR = ISP_CONTR & 0x7f; /* ISPEN = 0 */</

75、p><p>  ISP_TRIG = 0x00;</p><p>  EA = 1; /* 開(kāi)中斷 */</p><p><b>  }</b></p><p>  /* ================ 公用的觸發(fā)代碼 ==================== */</p><p>  

76、void ISPgoon(void)</p><p><b>  {</b></p><p>  ISP_IAP_enable(); /* 打開(kāi) ISP,IAP 功能 */</p><p>  ISP_TRIG = 0x46; /* 觸發(fā)ISP_IAP命令字節(jié)1 */</p><p>  ISP_TRIG = 0x

77、b9; /* 觸發(fā)ISP_IAP命令字節(jié)2 */</p><p><b>  _nop_();</b></p><p><b>  }</b></p><p>  /* ==================== 字節(jié)讀 ======================== */</p><p>  u

78、nsigned char byte_read(unsigned int byte_addr)</p><p><b>  {</b></p><p>  ISP_ADDRH = (unsigned char)(byte_addr >> 8);/* 地址賦值 */</p><p>  ISP_ADDRL = (unsigned cha

79、r)(byte_addr & 0x00ff);</p><p>  ISP_CMD = ISP_CMD & 0xf8; /* 清除低3位 */</p><p>  ISP_CMD = ISP_CMD | RdCommand; /* 寫(xiě)入讀命令 */</p><p>  ISPgoon(); /* 觸發(fā)執(zhí)行 */</p

80、><p>  ISP_IAP_disable(); /* 關(guān)閉ISP,IAP功能 */</p><p>  return (ISP_DATA); /* 返回讀到的數(shù)據(jù) */</p><p><b>  }</b></p><p>  /* ================== 扇區(qū)擦除 =============

81、=========== */</p><p>  void SectorErase(unsigned int sector_addr)</p><p><b>  {</b></p><p>  unsigned int iSectorAddr;</p><p>  iSectorAddr = (sector_addr

82、& 0xfe00); /* 取扇區(qū)地址 */</p><p>  ISP_ADDRH = (unsigned char)(iSectorAddr >> 8);</p><p>  ISP_ADDRL = 0x00;</p><p>  ISP_CMD = ISP_CMD & 0xf8; /* 清空低3位 */</p>

83、<p>  ISP_CMD = ISP_CMD | EraseCommand; /* 擦除命令3 */</p><p>  ISPgoon(); /* 觸發(fā)執(zhí)行 */</p><p>  ISP_IAP_disable(); /* 關(guān)閉ISP,IAP功能 */</p><p><b>  }</b></p&

84、gt;<p>  /* ==================== 字節(jié)寫(xiě) ======================== */</p><p>  void byte_write(unsigned int byte_addr, unsigned char original_data)</p><p><b>  {</b></p><

85、;p>  ISP_ADDRH = (unsigned char)(byte_addr >> 8); /* 取地址 */</p><p>  ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);</p><p>  ISP_CMD = ISP_CMD & 0xf8; /* 清低3位 */</p&g

86、t;<p>  ISP_CMD = ISP_CMD | PrgCommand; /* 寫(xiě)命令2 */</p><p>  ISP_DATA = original_data; /* 寫(xiě)入數(shù)據(jù)準(zhǔn)備 */</p><p>  ISPgoon(); /* 觸發(fā)執(zhí)行 */</p><p>  ISP_IAP_disable(); /

87、* 關(guān)閉IAP功能 */</p><p><b>  }</b></p><p><b>  5.2.4主函數(shù)</b></p><p>  void main() //主函數(shù)</p><p><b>  {</b></p><p>  uchar

88、 m,a,b=0,c=0,e,f,k,i=0,j=0,wrong_num=0;</p><p>  uchar code_right=0;</p><p>  uchar new1_code,new2_code;</p><p>  uchar receive_code[8],com_code[8];</p><p>  uint addr;

89、</p><p>  IE = 0x81; //允許總中斷中斷,使能 INT0 外部中斷</p><p>  TCON = 0x01; //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)</p><p>  IRIN=1; //I/O口初始化</p><p>  BE

90、EP=1; //蜂鳴器初始化</p><p>  if(byte_read(0x2200)==0x11) //初始密碼讀取</p><p><b>  {</b></p><p>  origin_code[0]=byte_read(0x2000);</p><p>  origin_code[1]

91、=byte_read(0x2001);</p><p>  origin_code[2]=byte_read(0x2002);</p><p>  origin_code[3]=byte_read(0x2003);</p><p>  origin_code[4]=byte_read(0x2004);</p><p>  origin_c

92、ode[5]=byte_read(0x2005);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  SectorErase(0x2000);</p><p&

93、gt;  byte_write(0x2000,0x0C);</p><p>  byte_write(0x2001,0x18);</p><p>  byte_write(0x2002,0x5E);</p><p>  byte_write(0x2003,0x08);</p><p>  byte_write(0x2004,0x1C);<

94、;/p><p>  byte_write(0x2005,0x5A);</p><p>  origin_code[0]=0x0C;</p><p>  origin_code[1]=0x18;</p><p>  origin_code[2]=0x5E;</p><p>  origin_code[3]=0x08;<

95、/p><p>  origin_code[4]=0x1C;</p><p>  origin_code[5]=0x5A;</p><p><b>  }</b></p><p>  delay1(10); //延時(shí)</p><p>  lcd_init();

96、 //初始化LCD </p><p>  delay1(10); //延時(shí)</p><p>  lcd_init(); </p><p>  delay1(10);</p><p>  EX0=0;//關(guān)中斷</p><p>  lcd_wcmd(0x01

97、); </p><p>  lcd_pos(0); //設(shè)置顯示位置為第一行的第1個(gè)字符</p><p>  for(m=0;m<16;m++)</p><p><b>  {</b></p><p>  lcd_wdat(welc[m]);</p><p&

98、gt;  delay1(10); //字符顯示延時(shí)</p><p><b>  }</b></p><p>  lcd_pos(0x40); //設(shè)置顯示位置為第二行的第1個(gè)字符</p><p>  for(m=0;m<16;m++)</p><p><b>  {

99、 </b></p><p>  lcd_wdat(cdis2[m]);</p><p>  delay1(10);</p><p><b>  }</b></p><p>  EX0=1; //開(kāi)中斷</p><p>  delay1(500);</p>

100、<p><b>  beep();</b></p><p>  lcd_wcmd(0x01); //密碼輸入</p><p>  delay1(10);</p><p>  lcd_pos(0);</p><p>  for(m=0;m<16;m++)</p><p>

101、;  lcd_wdat(ent_sign[m]);</p><p>  ir_flag=0;</p><p>  for(;;) //密碼接收、確認(rèn)、顯示</p><p><b>  { </b></p><p>  if(ir_flag==0) continue;</p><

102、;p>  ir_flag=0;</p><p>  //按鍵屏蔽if(ir_data==num_1||ir_data==num_2||ir_data==num_3||ir_data==num_4||ir_data==num_5||ir_data==num_6||ir_data==num_7||ir_data==num_8||ir_data==num_9||ir_data==num_0)</p>

103、;<p>  { if(code_right==1) continue;</p><p>  receive_code[i]=ir_data; //按下一個(gè)鍵,顯示一個(gè)星號(hào)</p><p>  lcd_pos(0x40+j);</p><p><b>  j++;</b></p><p>  lc

104、d_wdat(codestar[i]);</p><p><b>  i++;</b></p><p>  ir_data=0;</p><p><b>  }</b></p><p>  if(ir_data==num_voldec) //密碼輸入修改鍵</p><p>

105、;<b>  {</b></p><p><b>  i--;</b></p><p>  if(i<0) i=0;</p><p><b>  j--;</b></p><p>  if(j<0) j=0;</p><p>  lcd_p

106、os(0x40+j); </p><p>  lcd_wdat(ent_empty[0]);</p><p><b>  } </b></p><p><b>  if(i>0)</b></p><p><b>  { </b></p><p&g

107、t;  if(ir_data==num_play) // 密碼輸入完畢確認(rèn)鍵 play</p><p><b>  { </b></p><p><b>  a=0;</b></p><p>  if(i<6||i>6) a=1; //判斷密碼是否為六位數(shù)</p><p&

108、gt;  while(i--)</p><p><b>  {</b></p><p>  if(origin_code[i]!=receive_code[i])//與原密碼比較</p><p><b>  a++;</b></p><p><b>  } </b><

109、;/p><p>  if(a>0) wrong_num++; </p><p><b>  for(;;)</b></p><p><b>  {</b></p><p>  if(wrong_num==1&&b==0&&c==0) //第一次輸入錯(cuò)誤顯

110、示</p><p>  { lcd_wcmd(0x01);</p><p>  lcd_pos(0);</p><p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(wrong_code1[m]);</p><p>  lcd_pos(0x40); </p>&l

111、t;p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(ent_aga[m]);</p><p><b>  LED1=0;</b></p><p><b>  beep();</b></p><p><b>  EX0=0;</b>&

112、lt;/p><p>  delay1(1000);</p><p><b>  EX0=1;</b></p><p>  lcd_wcmd(0x01);</p><p>  lcd_pos(0);</p><p>  for(m=0;m<16;m++)</p><p> 

113、 lcd_wdat(ent_sign[m]);</p><p><b>  i=0;</b></p><p><b>  j=0;</b></p><p><b>  b=1;</b></p><p>  lcd_pos(0x40);</p><p> 

114、 for(m=0;m<16;m++)</p><p>  lcd_wdat(ent_empty[m]);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  else if(wrong_num==2&&b==1&

115、&c==0)//第二次密碼輸入錯(cuò)誤顯示</p><p>  {lcd_wcmd(0x01);</p><p>  lcd_pos(0);</p><p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(wrong_code2[m]);</p><p>  lcd_pos

116、(0x40); </p><p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(ent_aga[m]);</p><p><b>  LED2=0;</b></p><p><b>  beep();</b></p><p>  dela

117、y1(20);</p><p><b>  beep(); </b></p><p><b>  EX0=0;</b></p><p>  delay1(1000);</p><p><b>  EX0=1;</b></p><p>  lcd_wcm

118、d(0x01);</p><p>  lcd_pos(0);</p><p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(ent_sign[m]);</p><p><b>  i=0;</b></p><p><b>  j=0;</b&g

119、t;</p><p><b>  c=1;</b></p><p>  lcd_pos(0x40);</p><p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(ent_empty[m]);</p><p><b>  break;</b&g

120、t;</p><p><b>  }</b></p><p>  else if(wrong_num==3&&b==1&&c==1) //第三次密碼輸入錯(cuò)誤顯示、鎖定</p><p>  {lcd_wcmd(0x01);</p><p>  lcd_pos(0);</p>

121、<p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(wrong_code3[m]);</p><p>  lcd_pos(0x40); </p><p>  for(m=0;m<16;m++)</p><p>  lcd_wdat(lock_[m]);</p><

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論