avr系統(tǒng)用戶板設計畢業(yè)論文_第1頁
已閱讀1頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  一 概述1</b></p><p><b>  1課題背景1</b></p><p>  2 課題設計的任務與意義1</p><p>  二 系統(tǒng)的硬件結構功能與特點2</p>&

2、lt;p>  1系統(tǒng)設計思想成及其結構2</p><p>  2 系統(tǒng)主要特點2</p><p>  三 ATmege128的結構及性能4</p><p>  1 AVR單片機ATmega128的性能特點4</p><p>  2 ATmega128的硬件結構8</p><p>  3 主要的控制器1

3、0</p><p>  四 外部存儲器的結構與應用12</p><p>  1 外部存儲器擴展的原理12</p><p>  (1)外部存儲器接口12</p><p> ?。?)地址鎖存要求12</p><p>  2 與外部存儲器相關的寄存器13</p><p>  3 外部存儲器應

4、用的軟件實現15</p><p>  (1)存儲器的擴展15</p><p> ?。?)實驗調試程序16</p><p>  4 外部擴展存儲器全部空間的利用技巧17</p><p>  五 并行I/O口的原理與應用19</p><p>  1 擴展并行I/O口的原理及意義19</p><

5、;p>  2 外部并行I/O口電路的設計與應用19</p><p> ?。?)外部并行I/O口電路調試實驗20</p><p> ?。?)8255外接鍵盤實驗22</p><p>  六 外部鍵盤與LED、LCD電路的設計與應用25</p><p>  1、8279的性能特點與工作原理25</p><p&g

6、t;  2 LED顯示電路實驗26</p><p>  3 LCD顯示電路設計及軟件實現28</p><p>  七 A/D、D/A轉換接口擴展29</p><p>  1 A/D轉換電路設計與軟件實現29</p><p>  (1) A/D轉換器的主要參數:29</p><p> ?。?)ADC0809的特

7、性29</p><p> ?。?)A/D轉換的使用實例30</p><p>  2 D/A轉換電路的設計與軟件實現31</p><p> ?。?)D/A轉換基本原理:31</p><p> ?。?)D/A轉換的主要性能指標31</p><p>  (3)D/A轉換軟件實現32</p><

8、;p>  八 SPI、USART、FPGA接口的應用33</p><p>  1 SPI的電路設計與軟件實現33</p><p>  (1) SPI的通信說明:33</p><p>  (2) SPI的寄存器:33</p><p> ?。?)SPI的軟件實現35</p><p>  2 USART接口電

9、路與通信36</p><p>  (1)USART接口電路的特點36</p><p> ?。?)USART口的通信實驗37</p><p>  3 FPGA接口電路與通信38</p><p> ?。?)FPGA的功能與結構38</p><p> ?。?)FPGA 接口實驗軟件實現38</p>

10、<p><b>  結束語41</b></p><p><b>  參考文獻42</b></p><p><b>  致謝43</b></p><p><b>  附錄 144</b></p><p>  程序一 8255擴展接鍵盤實驗

11、44</p><p>  程序二 LED顯示接口實驗46</p><p>  程序三 鍵盤顯示綜合實驗51</p><p>  程序四 LCD 顯示8 字循環(huán)顯示60</p><p>  程序五 A/D轉換實驗63</p><p>  程序六 D/A轉換實驗64</p><p><

12、;b>  一 概述</b></p><p><b>  1課題背景</b></p><p>  單片機就是由一塊芯片組成的微機系統(tǒng)。片內包括了CPU、程序存儲器、數據存儲器、定時/計數器及I/O口。單片機技術作為計算機技術的一個分支,廣泛的應用在工業(yè)控制、儀器儀表、機電一體化產品、家用電器等各個領域。從應用領域來說單片機主要用于控制,所以也叫做微控

13、制器(Microcomputer)。從單片機呈現給用戶的供應狀態(tài)看,單片機僅是一塊集成電路芯片,它的所有功能部件都集成在一塊芯片上,所以稱之為單片機(Sing-Chip Microcomputer)。雖然單片機的機構和指令系統(tǒng)與通用微型計算機是有差別的,但基本的功能模塊和基本的工作原來是一樣的。</p><p>  自從單片機問世以來,單片機技術已經發(fā)展成為計算機技術中的一個非常有活力的分支,它有自己的特征、規(guī)范

14、、發(fā)展道路和應用環(huán)境。世界上各大芯片制造公司都推出了自己的單片機,從4位發(fā)展到8位、16位到32位,功能、性能在不斷提高;單片機發(fā)展到現在,單片機產品多達50多個系列,300多種型號。為了適應不同的需要,各種單片機都有自己的特點,有的側重與運算,有的側重與速度,有的側重與組建網絡等。</p><p>  隨著單片機技術的發(fā)展,現在容量大、速度快、高性能、低功耗的單片機已經成為主流。AVR單片機是ATMEL公司19

15、97年推出的全新配置精簡指令集(RISC)單片機系列。片內存儲器采用FLASH存儲器,可以反復修改上千次,便于新產品的開發(fā);程序高度機密 ,避免加密處理。</p><p>  AVR單片機打破了舊的設計格局。廢除了機器周期,拋棄了復雜指令計算機追求指令完備的做法,采用精簡指令集。以字為長度單位,將內容豐富的操作數與操作碼安排在一個字之中。取指周期短,又可預取指令,實現流水線作業(yè)。故可高速執(zhí)行指令;并且這種速度的升

16、躍,是以高可靠性為后盾的。</p><p>  AVR單片機硬件結構采用8位機與16位機的折中策略,即采用局部寄存器堆和單體高速輸入/輸出的方案。這樣即提高了指令執(zhí)行速度,克服了瓶頸現象;增強了功能,又減少了對外設管理的開銷。相對簡化了硬件結構、降低了成本,故AVR單片機在速度、性能、成本方面取得了優(yōu)化平衡,是一種高性價比的單片機。</p><p>  2 課題設計的任務與意義</p

17、><p>  本課題立足于設計一個功能全面,資源豐富的AVR系統(tǒng)用戶板,以 ATMEL 公司的ATMEGA128高檔8位單片機為核心,功能全面,外部資源配置齊全的用戶板系統(tǒng)。本課題解決了外部資源配置不全的問題。用于對高年級學生進行高檔8位機的技能訓練,要求完成本課題的系統(tǒng)設計。利用嵌入式ATmega128開發(fā)用戶板,不僅可以進行初級入門的學習,也可以進行更高層次的學習和訓練,或作為產品設計開發(fā)的前期開發(fā)應用,非常適合

18、高等院校和電子工程技術人員使用。</p><p>  由于這個系統(tǒng)十分龐大,需要擴展大量的外部電路,還需要編寫大量的調試和應用程序,在這樣短的時間內需要多人合作才能完成,所以我們同組三人進行了明確的任務分工:硬件由吳韜同學完成,軟件(匯編和C語言)由我和包漢舉同學完成。</p><p>  二 系統(tǒng)的硬件結構功能與特點</p><p>  1系統(tǒng)設計思想成及其結構&

19、lt;/p><p>  本系統(tǒng)是一個以 ATMEL 公司的高檔8位單片機ATMEGA128為核心的高檔單片機用戶使用系統(tǒng),功能全面,外部資源配置齊全,包括 64K RAM、LCD顯示電路、鍵盤控制電路、PIO口、A/D、D/A與LED顯示電路擴展,以及FPGA接口、SPI接口與UART接口等。</p><p>  本系統(tǒng)采用模塊化設計思想,在各個模塊用三總線結構實現,(即通過數據總線、地址總線

20、和控制總線來連接)。外圍芯片均通過三總線結構相連,由三總線進行控制。這樣的電路條理清晰,資源分配方便合理。并且便于局部的修改。在系統(tǒng)擴展和配置設計時,遵循以下原則:</p><p>  (1) 盡可能選擇典型大眾化的電路,并符合單片機的常規(guī)用法。為硬件系統(tǒng)的標準化、模塊化奠定良好的基礎。</p><p>  (2) 系統(tǒng)的擴展與外圍設備配置的水平應充分滿足應用系統(tǒng)當前的功能要求,并留有適當

21、余地,便于以后進行功能的擴充。</p><p>  (3) 硬件結構的設計應考慮應用軟件方案的實現。軟件能夠實現的功能盡可能由軟件實現,以簡化硬件結構,提高可靠性。但必須注意,由軟件實現的硬件功能,其響應時間要比直接用硬件來的長。因此,某些功能選擇以軟件代硬件實現時,應綜合考慮系統(tǒng)響應速度,實時要求等相關的技術指針。</p><p>  (4) 整個系統(tǒng)中相關的器件要盡可能做到性能匹配。如

22、果系統(tǒng)中相關的器件性能差異很大,系統(tǒng)綜合性能將降低,甚至不能正常工作。</p><p>  (5) 可靠性及抗干擾設計是硬件設計中不可忽視的一部分,它包括芯片,器件選擇,去耦濾波,印刷電路板布線,信道隔離等。如果設計中只注重功能實現,而忽視可靠性及抗干擾設計,到頭來只能是事倍功半,甚至會造成系統(tǒng)崩潰,前功盡棄。</p><p>  (6) 單片機外接電路較多時,必須考慮其驅動能力。驅動能力

23、不足時,系統(tǒng)工作不可靠。解決的辦法是增加驅動能力,增強總線驅動器或者減少芯片功耗,降低總線負載。</p><p><b>  2 系統(tǒng)主要特點</b></p><p>  在體現上述硬件設計思想時,本系統(tǒng)具有以下幾大主要特點:</p><p>  (1) 本系統(tǒng)采用模塊化設計思想,在各個模塊用三總線結構采用標準的三總線結構。這樣的電路條理清晰,

24、資源分配方便合理。并且便于局部的修改。</p><p>  (2) 大量采用性能非常良好的外圍芯片。如 RAMTRON公司的新型鐵電內存—FM24C256,具有掉電資料不丟失,可承受超過一百億次擦寫操作,資料保存時間長等特點。還有片外數據存儲器BR62256F,LCD液晶顯示器WGM12864M等。系統(tǒng)的核心—ATMEGA128本身就是一款非常先進的高檔單片機。這些先進的配置為用戶緊跟先進水平,提高專業(yè)技能提供了

25、良好的外部條件。</p><p>  (3) 提供了豐富的用戶自定義擴展I/O口。本系統(tǒng)外部資源非常豐富,很容易滿足很多設計和用戶的需求。為了使用戶能夠滿足更高的動手需求和設計需要,以及對以后擴展升級的需要,我們設定了許多用戶自定義I/O口。包括定時/計數脈沖自定義擴展口,中斷自定義擴展口,8255芯片自定義擴展口等。這些正體現了系統(tǒng)用戶板的設計思想,給予了用戶很大的自我發(fā)揮空間。</p><

26、p>  三 ATmege128的結構及性能</p><p>  1 AVR單片機ATmega128的性能特點</p><p>  高性能、低功耗的AVR® 8 位微處理器</p><p>  ? 先進的RISC 結構</p><p>  – 133 條指令– 大多數可以在一個時鐘周期內完成</p><p&g

27、t;  – 32 x 8 通用工作寄存器+ 外設控制寄存器</p><p><b>  – 全靜態(tài)工作</b></p><p>  – 工作于16 MHz 時性能高達16 MIPS</p><p>  – 只需兩個時鐘周期的硬件乘法器</p><p>  ? 非易失性的程序和數據存儲器</p><p&

28、gt;  – 128K 字節(jié)的系統(tǒng)內可編程Flash</p><p>  壽命: 10,000 次寫/ 擦除周期</p><p>  – 具有獨立鎖定位、可選擇的啟動代碼區(qū)</p><p>  通過片內的啟動程序實現系統(tǒng)內編程</p><p>  真正的讀- 修改- 寫操作</p><p>  – 4K字節(jié)的EEPRO

29、M</p><p>  壽命: 100,000 次寫/ 擦除周期</p><p>  – 4K 字節(jié)的內部SRAM</p><p>  – 多達64K 字節(jié)的優(yōu)化的外部存儲器空間</p><p>  – 可以對鎖定位進行編程以實現軟件加密</p><p>  – 可以通過SPI 實現系統(tǒng)內編程</p>&

30、lt;p>  ? JTAG 接口( 與IEEE 1149.1 標準兼容)</p><p>  – 遵循JTAG 標準的邊界掃描功能</p><p>  – 支持擴展的片內調試</p><p>  – 通過JTAG 接口實現對Flash, EEPROM, 熔絲位和鎖定位的編程</p><p><b>  ? 外設特點</b

31、></p><p>  – 兩個具有獨立的預分頻器和比較器功能的8 位定時器/ 計數器</p><p>  – 兩個具有預分頻器、比較功能和捕捉功能的16 位定時器/ 計數器</p><p>  – 具有獨立預分頻器的實時時鐘計數器</p><p>  – 兩路8 位PWM</p><p>  – 6路分辨率可編

32、程(2 到16 位)的PWM</p><p><b>  – 輸出比較調制器</b></p><p>  – 8路10 位ADC</p><p><b>  8個單端通道</b></p><p><b>  7個差分通道</b></p><p>  2個

33、具有可編程增益(1x, 10x, 或200x)的差分通道</p><p>  – 面向字節(jié)的兩線接口</p><p>  – 兩個可編程的串行USART</p><p>  – 可工作于主機/ 從機模式的SPI 串行接口</p><p>  – 具有獨立片內振蕩器的可編程看門狗定時器</p><p><b>

34、  – 片內模擬比較器</b></p><p>  ? 特殊的處理器特點</p><p>  – 上電復位以及可編程的掉電檢測</p><p>  – 片內經過標定的RC 振蕩器</p><p>  – 片內/ 片外中斷源</p><p>  – 6種睡眠模式: 空閑模式、ADC 噪聲抑制模式、省電模式、掉

35、電模式、Standby 模式以及</p><p>  擴展的Standby 模式</p><p>  – 可以通過軟件進行選擇的時鐘頻率</p><p>  – 通過熔絲位可以選擇ATmega103 兼容模式</p><p>  – 全局上拉禁止功能</p><p><b>  ? I/O 和封裝</b

36、></p><p>  – 53個可編程I/O 口線</p><p>  – 64引腳TQFP 與64 引腳MLF 封裝</p><p><b>  ? 工作電壓</b></p><p>  – 2.7 - 5.5V ATmega128L</p><p>  – 4.5 - 5.5V ATm

37、ega128</p><p><b>  ? 速度等級</b></p><p>  – 0 - 8 MHz ATmega128L</p><p>  – 0 - 16 MHz ATmega128</p><p>  ATmega128 的外部結構</p><p>  ATmega128為基于AVR

38、 RISC結構的8位低功耗CMOS微處理器。由于其先進的指令集以及單周期指令執(zhí)行時間, ATmega128 的數據吞吐率高達1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。</p><p>  Atmega128結構框圖</p><p>  AVR 內核具有豐富的指令集和32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期

39、內同時訪問兩個獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的復雜指令集微處理器高10 倍的數據吞吐率。</p><p>  ATmega128 具有如下特點:128K 字節(jié)的系統(tǒng)內可編程Flash( 具有在寫的過程中還可以讀的能力,即RWW)、4K 字節(jié)的EEPROM、4K 字節(jié)的SRAM、53 個通用I/O 口線、32個通用工作寄存器、實時時鐘RTC、4 個靈活的具有比較模式和PWM 功能的定時器/

40、 計數器(T/C)、兩個USART、面向字節(jié)的兩線接口TWI、8 通道10 位ADC( 具有可選的可編程增益)、具有片內振蕩器的可編程看門狗定時器、SPI 串行端口、與IEEE 1149.1 規(guī)范兼容的JTAG 測試接口( 此接口同時還可以用于片上調試),以及六種可以通過軟件選擇的省電模式。</p><p>  空閑模式時CPU 停止工作,而SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器

41、停止振蕩,所有功能除了中斷和硬件復位之外都停止工作,寄存器的內容則一直保持;省電模式時異步定時器繼續(xù)運行,以允許用戶維持時間基準,器件的其他部分則處于睡眠狀態(tài); ADC 噪聲抑制模式時CPU 和所有的I/O 模塊停止運行,而異步定時器和ADC 繼續(xù)工作,以減少ADC 轉換時的開關噪聲; Standby 模式時振蕩器工作而其他部分睡眠,使得器件只消耗極少的電流,同時具有快速啟動能力;擴展Standby 模式則允許振蕩器異步定時器繼續(xù)工作。

42、</p><p>  Atmega128的封裝與引腳如下:</p><p>  ATmega128是以Atmel 的高密度非易失性內存技術生產的。片內ISP Flash 可以通過SPI 接口、通用編程器,或引導程序多次編程。引導程序可以使用任何接口來下載應用程序到應用Flash存儲器。在更新應用Flash存儲器時引導Flash區(qū)的程序繼續(xù)運行,實現RWW操作。通過將8 位RISC CPU

43、與系統(tǒng)內可編程的Flash 集成在一個芯片內, ATmega128 為許多嵌入式控制應用提供了靈活而低成本的方案。ATmega128 AVR有整套的開發(fā)工具,包括C編譯器,宏匯編,程序調試器/ 仿真器和評估板。</p><p><b>  引腳說明 </b></p><p>  VCC 數字電路的電源。</p><p><b>  G

44、ND 地。</b></p><p>  端口A(PA7..PA0) 端口A 為8 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復位發(fā)生時端口A 為三態(tài)。端口A 也可以用做其他不同的特殊功能,請參見P 68。</p><p>  端口B(PB7..PB0)

45、 端口B 為8 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復位發(fā)生時端口B 為三態(tài)。端口B 也可以用做其他不同的特殊功能,請參見P 69。端口C(PC7..PC0) 端口C 為8 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使

46、能,則端口被外部電路拉低時將輸出電流。復位發(fā)生時端口C 為三態(tài)。端口C 也可以用做其他不同的特殊功能,請參見P 72。在ATmega103 兼容模式下,端口C 只能作為輸出,而且在復位發(fā)生時不是三態(tài)。</p><p>  端口D(PD7..PD0) 端口D 為8 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路

47、拉低時將輸出電流。復位發(fā)生時端口D 為三態(tài)。端口D 也可以用做其他不同的特殊功能,請參見P 73。</p><p>  端口E(PE7..PE0) 端口E 為8 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復位發(fā)生時端口E 為三態(tài)。</p><p>  端口E 也可

48、以用做其他不同的特殊功能,請參見P 75。</p><p>  端口F(PF7..PF0) 端口F 為ADC 的模擬輸入引腳。</p><p>  如果不作為ADC 的模擬輸入,端口F 可以作為8 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復位發(fā)生時端口F 為三態(tài)

49、。如果使能了JTAG 接口,則復位發(fā)生時引腳PF7(TDI)、PF5(TMS) 和PF4(TCK) 的上拉電阻使能。端口F 也可以作為JTAG 接口。在ATmega103 兼容模式下,端口F 只能作為輸入引腳。</p><p>  端口G(PG4..PG0) 端口G 為5 位雙向I/O 口,并具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口

50、被外部電路拉低時將輸出電流。復位發(fā)生時端口G 為三態(tài)。端口G 也可以用做其他不同的特殊功能。在ATmega103 兼容模式下,端口G 只能作為外部存儲器的所存信號以及32 kHz 振蕩器的輸入,并且在復位時這些引腳初始化為PG0 = 1, PG1 = 1 以及PG2 = 0。PG3 和PG4 是振蕩器引腳。</p><p>  RESET 復位輸入引腳。超過最小門限時間的低電平將引起系統(tǒng)復位。門限時間在P 47T

51、able 19說明。低于此時間的脈沖不能保證可靠復位。</p><p>  XTAL1 反向振蕩器放大器及片內時鐘操作電路的輸入。</p><p>  XTAL2 反向振蕩器放大器的輸出。</p><p>  AVCC AVCC為端口F以及ADC轉換器的電源,需要與VCC相連接,即使沒有使用ADC也應該如</p><p>  此。使用ADC

52、時應該通過一個低通濾波器與VCC 連接。</p><p>  AREF AREF 為ADC 的模擬基準輸入引腳。</p><p>  PEN PEN是SPI串行下載的使能引腳。在上電復位時保持PEN為低電平將使器件進入SPI串行</p><p>  下載模式。在正常工作過程中PEN 引腳沒有其他功能。</p><p>  2 ATmega12

53、8的硬件結構</p><p>  CPU 的主要任務是保證程序的正確執(zhí)行。因此它必須能夠訪問存儲器,執(zhí)行運算,控制外設以及處理中斷。</p><p><b> ?。?)結構綜述:</b></p><p>  為了得到最大程度的性能以及并行性, AVR 采用了Harvard 結構,具有獨立的數據和程序總線。程序存儲器的指令通過一級流水線運行。CP

54、U 在執(zhí)行一條指令的同時讀取下一條指令( 在本文稱為預取)。這個概念實現了指令的單時鐘周期運行。程序存儲器為可以快速訪問寄存器文件包括32個8位通用工作寄存器,而且都可以在一個時鐘周期內訪問。從而實現單時鐘周期的ALU 操作。</p><p>  在典型的ALU 操作過程中,兩個位于寄存器文件中的操作數同時被訪問,然后執(zhí)行相應的運算,結果再被送回寄存器文件。整個過程僅需要一個寄存器文件里有6 個寄存器可以用作3

55、個16 位的間接地址寄存器指針以尋址數據空間,實現高效的地址運算。其中一個指針還可以作為程序存儲器查詢表的地址指針。這些附加ALU支持寄存器之間以及寄存器</p><p>  AVR 結構的方框圖</p><p>  和常數之間的算術和邏輯運算。ALU也可以執(zhí)行單寄存器程序流程通過有/ 無條件的跳轉指令和調用指令來控制,從而直接尋址整個地址空間。大多數指令長度為16 位,亦即每個程序存儲器

56、地址都包含一條16 位或32 位的指令。程序存儲器空間分為兩個區(qū):引導程序區(qū)和應用程序區(qū)。這兩個區(qū)都有專門的鎖定位以實現讀和讀/ 寫保護。用于寫應用程序區(qū)的SPM 指令必須位于引導程序區(qū)。</p><p>  在中斷和調用子程序時返回地址程序計數器(PC) 保存于堆棧之中。堆棧位于通用數據SRAM,故此其深度僅受限于SRAM 的大小。在復位例程里用戶首先要初始化堆棧指針</p><p> 

57、 SP。這個指針位于I/O 空間,可以進行讀寫訪問。數據SRAM 可以通過5 種不同的尋址模</p><p><b>  式進行訪問。</b></p><p>  AVR 存儲器空間為線性的平面結構。</p><p>  AVR 具有一個靈活的中斷模塊??刂萍拇嫫魑挥贗/O 空間。狀態(tài)寄存器里有全局中斷使能</p><p&g

58、t;  位。在程序存儲器起始處有一個中斷向量表,每一個中斷在此都有獨立的中斷向量。各個</p><p>  中斷的優(yōu)先級與其在中斷向量表的位置有關,中斷向量地址越低,優(yōu)先級越高。</p><p>  I/O存儲器空間包含64 個可以直接尋址的地址。映射到數據空間即為寄存器文件之后的地址$20 - $5F。此外,ATmega128 在SRAM 里還有擴展的I/O 空間,位于地址$60 - $

59、FF。</p><p>  但是只能使用ST/STS/STD 和LD/LDS/LDD 指令。</p><p><b>  3 主要的控制器</b></p><p>  (1)算邏輯單元ALU</p><p>  ALU 與32 個通用工作寄存器直接相連。寄存器與寄存器之間、寄存器與立即數之間的ALU 運算只需要一個時鐘周

60、期。ALU 操作分為3 類:算術、邏輯和位操作。此外還提供了支持無/ 有符號數和分數乘法的乘法器。具體請參見指令集。</p><p> ?。?)狀態(tài)寄存器SREG</p><p>  狀態(tài)寄存器包含了最近執(zhí)行的算術指令的結果信息。這些信息可以用來改變程序流程以實現條件操作。狀態(tài)寄存器的內容只有在ALU 運算結束后才會更新。這樣,在多數情況下就不需要專門的比較指令了,從而使系統(tǒng)運行更快速,代

61、碼效率更高。</p><p>  在進入中斷例程時狀態(tài)寄存器不會自動保存;中斷返回時也不會自動恢復。這些工作需要軟件來處理。</p><p>  AVR 中斷寄存器– SREG – 定義如下:</p><p>  ? Bit 7 – I: 全局中斷使能</p><p>  置位時使能全局中斷。單獨的中斷使能由其他獨立的控制寄存器控制。如果I

62、清零,則不</p><p>  論單獨中斷標志置位與否,都不會產生中斷。任意一個中斷發(fā)生后I 清零,而執(zhí)行RETI</p><p>  指令后置位以使能中斷。I 也可以通過SEI 和CLI 指令來置位和清零。</p><p>  ? Bit 6 – T: 位拷貝存儲</p><p>  位拷貝指令BLD 和BST 利用T 作為目的或源地址。B

63、ST 把寄存器的某一位拷貝到T,而</p><p>  BLD 把T 拷貝到寄存器的某一位。</p><p>  ? Bit 5 – H: 半進位標志</p><p>  半進位標志H 表示算術操作發(fā)生了半進位。此標志對于BCD 運算非常有用。</p><p>  ? Bit 4 – S: 符號位, S = N ⊕ V</p>

64、<p>  S 為負數標志N 與2 的補碼溢出標志V 的異或。</p><p>  ? Bit 3 – V: 2 的補碼溢出標志</p><p>  支持2 的補碼運算。</p><p>  ? Bit 2 – N: 負數標志</p><p>  表明算術或邏輯操作結果為負。</p><p>  ? Bit

65、1 – Z: 零標志</p><p>  表明算術或邏輯操作結果為零。</p><p>  ? Bit 0 – C: 進位標志</p><p>  表明算術或邏輯操作發(fā)生了進位。</p><p>  四 外部存儲器的結構與應用</p><p>  1 外部存儲器擴展的原理</p><p> ?。?/p>

66、1)外部存儲器接口</p><p>  ATMmega128比AT90S8535多了很多的功能,內存更大,資源更加豐富。并且ATMmega128與AT90S8535不同,它允許進行片外數據存儲器的擴展,有八位的數據總線,16位的外部地址總線,以及有ALE、RD、WR等組成的控制總線,還有片外尋址的指令,這樣一來就可以對它進行大量的片外資源的擴展。</p><p><b>  接口

67、包括:</b></p><p>  與外部存儲器打交道有:AD7:0:多工的地址總線和數據總線。A15:8:高位地址總線( 位數可配置)。ALE:地址鎖存使能。RD:讀鎖存信號。WR:寫使能信號。</p><p>  外部存儲器接口控制位于3 個寄存器當中, MCU 控制寄存器– MCUCR、外部存儲器控制寄存器A – XMCRA,以及外部存儲器控制寄存器B – XMCRB。&

68、lt;/p><p>  使能XMEM 接口后, XMEM 接口數據方向寄存器按照接口要求配置。XMEM 接口將自動檢測當前訪問的是內部存儲器還是外部存儲器。如果訪問的是外部存儲器, XMEM 接口輸出地址,數據和控制信號。當ALE 產生由高電平到低電平的變化時, AD7:0 出現有效的地址。數據傳輸過程中ALE 保持為低。使能XMEM接口之后,即使訪問內部存儲器也會在地址線,數據線和ALE引腳產生動作,但是RD 和W

69、R 信號不會發(fā)生變化。禁止外部存儲器接口之后,相關引腳就可以使用正常的引腳數據方向設置了。要注意的是,XMEM 接口禁止后內部SRAM 地址以上的存儲器不會映射為內部SRAM。圖一說明了如何利用一個8 位鎖存器將外部SRAM 連接到AVR。</p><p>  (2)地址鎖存要求 </p><p>  由于XRAM 接口的工作速度很高,當系統(tǒng)的工作條件高于8 MHz /4V 和4 MHz

70、/3V</p><p>  時要注意小心選擇地址鎖存器。此時典型的老式74HC 系列鎖存器已經無法滿足要求了。XRAM接口與74AHC系列的鎖存器相兼容。當然,其他滿足時序要求的鎖存器也是可以使用的。地址鎖存器的主要參數為:</p><p>  ? D到Q 的傳輸延遲(tPD)。</p><p>  ? 在G 拉低之前的數據建立時間(tSU)。</p>

71、<p>  ? G拉低之后的數據( 地址) 保持時間(tTH)。</p><p>  XRAM接口的設計出發(fā)點是保證G拉低之后地址信號保持時間最少為th = 5 ns。具體請參考Tables 137~Tables 144“ 外部數據存儲器時序” 中的參數tLAXX_LD/tLLAXX_ST。計算外部器件的訪問時間要求時必須考慮D 到Q 的傳輸延遲tPD。而G 拉低之前的數據建立時間tSU決不能大于地址

72、有效到ALE拉低的時間(tAVLLC)減去PCB的線路延遲時間(與負載電容有關)。</p><p>  2 與外部存儲器相關的寄存器</p><p>  (1)MCU 控制寄存器- MCUCR</p><p>  ? Bit 7 – SRE: 外部SRAM/XMEM 使能</p><p>  SRE 為"1“ 時外部存儲器接口使能。

73、,引腳AD7:0,A15:8,ALE,WR和RD 工作于第二功</p><p>  能,且自動按照要求配置端口方向寄存器。SRE 清零將使外部SRAM 無效,相關端口可</p><p>  以當作普通I/O 口使用。</p><p>  ? Bit 6 – SRW10: 等待狀態(tài)選擇位</p><p>  在常規(guī)模式下,該位與寄存器XMCRA

74、中的SRW11位組合使用。對于ATmega103兼容模式,SRW10寫"1“將使能等待狀態(tài),并如Figure 14所示在讀/寫過程中</p><p><b>  插入一個時鐘周期。</b></p><p> ?。?)外部存儲器控制寄存器A -XMCRA</p><p>  ? Bit 7 – Res: 保留</p>&l

75、t;p>  保留位,讀操作返回值為零。在寫數據時要寫入0 以保證與未來產品的兼容。</p><p>  ? Bit 6..4 – SRL2, SRL1, SRL0: 等待狀態(tài)存儲器區(qū)限制</p><p>  對于不同的外部存儲器地址可以配置不同的等待狀態(tài)。外部存儲器地址空間可以分為兩個區(qū),而且可以具有獨立的等待狀態(tài)設置位。SRL2, SRL1 和SRL0 用來對存儲器地址空間進行分區(qū)

76、,如Table 3 和Figure 11 所示。SRL2,SRL1 和SRL0 的缺省值為0,即整個外部存儲器地址空間為一個大區(qū)。此時等待狀態(tài)通過SRW11 和SRW10 設置。</p><p>  SRL2..0 不同設置對應的分區(qū)限制</p><p>  ? Bit 1 和MCUCR 的Bit 6 – SRW11, SRW10: </p><p>  高地址存儲

77、器區(qū)等待狀態(tài)選擇位SRW11 和SRW10 用來控制外部存儲器高地址區(qū)等待狀態(tài)的數目,如Table 4 所示。</p><p>  ? Bit 3..2 – SRW01, SRW00: </p><p>  低地址存儲器區(qū)等待狀態(tài)選擇位SRW01 和SRW00 用來控制外部存儲器低地址區(qū)等待狀態(tài)的數目,如Table 4 所示。</p><p><b>  

78、等待狀態(tài)</b></p><p>  Note: 1. n = 0 或1 ( 低/ 高地址存儲器區(qū))</p><p>  更進一步的信息請參見Figures 13~Figures 16,以了解SRW 如何影響時序</p><p>  Bit 0 – Res: 保留</p><p>  保留位,讀操作返回值為零。在寫數據時要寫入0

79、以保證與未來產品的兼容。</p><p>  外部存儲器控制寄存器B -XMCRB</p><p>  Bit 7– XMBK: 外部存儲器總線保持功能使能</p><p>  XMBK寫"1“將使能AD7:0口線上的總線保持功能。當此功能使能后AD7:0將保持最后的數據不變,即使XMEM 接口將這些口線設置為三態(tài)。XMBK 為零時總線保持功能禁止。XMB

80、K不受SRE的限制。因此即使禁止了XMEM接口,只要XMBK為"1“,總線保持功能這樣有效。</p><p>  Bit 6..4 – Res: 保留</p><p>  保留位,讀操作返回值為零。在寫數據時要寫入0 以保證與未來產品的兼容。</p><p>  Bit 2..0 – XMM2, XMM1, XMM0: 外部存儲器高位地址屏蔽</p&

81、gt;<p>  在缺省條件下,使能外部存儲器之后所有的端口C 引腳都被用作高位地址。如果系統(tǒng)不需要全部的60KB 外部存儲器地址空間,端口C 的某些引腳可以釋放,用作普通的I/O,如Table 5 所示。另外,如P 32“ 完全使用外部的64KB 存儲器” 說明的那樣,可以利用XMMn 來訪問外部存儲器所有64KB 的位置。</p><p>  使能外部存儲器時將端口C 的引腳釋放,作為普通口線使

82、用</p><p>  3 外部存儲器應用的軟件實現</p><p><b> ?。?)存儲器的擴展</b></p><p>  外部存儲器的擴展采用三總線結構,擴展64K數據存儲器,需要兩片62256芯片;由于Atmega128只有16位數據總線,只能進行64K尋址,考慮到地址總線上還要進行其他的擴展和尋址工作,所以用PB口接一個3-8譯碼器

83、來提供片選信號。所以實際上就把地址總線擴展到19位。</p><p>  擴展的存儲器芯片選用的是62256芯片,它是一個32K×8的CMOS SRAM芯片。它共有28條引出線,包括15根地址線、8根資料線以及3根控制信號線,它們的含義分別為:</p><p>  A0~A14——15根地址信號線。一個存儲芯片上地址線的多少決定了該芯片有多少個存儲單元。15根地址信號線上的地址信

84、號編碼最大為215,即32K。也就是說,芯片的15根地址線上的信號經過芯片的內部譯碼,可以決定選中62256芯片上32K存儲單元中的哪一個。在與系統(tǒng)連接時,這15根地址線通常接到系統(tǒng)地址總線的低15位上,以便CPU能夠尋址芯片上的每個單元。</p><p>  因為選用兩片片外存儲器需要對他們進行統(tǒng)一編址,這時他們共用3-8譯碼器來提供的一個片選信號,然后用還沒有被使用的A15地址線與片選信號組合為兩個新的數據存

85、儲器的片選信號,只要3-8譯碼器提供的片選信號有效時,當A15為0時選中存儲器1,當A15為1時選中存儲器2,這樣當片選信號有效時,兩片存儲器就可以統(tǒng)一尋址了,他們共同的尋址空間是0-64K。</p><p>  D0~D7——8根雙向資料線。對SRAM芯片來講,資料線的根數決定了芯片上每個存儲單元的二進制位數,8根資料線說明62256芯片的每個存儲單元中可存儲8位二進制數,即每個存儲單元有8位。使用時,這8根資

86、料線與系統(tǒng)的數據總線相連。當CPU存取芯片上的某個存儲單元時,讀出和寫入的數據都通過這8根資料線傳送。輸出允許信號。只有當為低電平時,CPU才能夠從芯片中讀出資料。寫允許信號。當/WE為低電平時,允許資料寫入芯片;而當WE/=1,/OE=0時,允許資料從該芯片讀出。</p><p><b> ?。?)實驗調試程序</b></p><p><b>  程序說明

87、:</b></p><p>  片外存儲器的功能就是存儲數據,只要能夠快速、準確、方便的把數據寫入、讀出,并且資源占有少,就是一個成功的片外存儲器擴展。在這里我們只要是檢驗存儲器擴展是否成功,就是要檢驗是否能夠正確的寫入、讀出數據,操作是否便捷,同時看是否影響到其它的工作。</p><p>  把PORT B作為輸出,PORT D 作為輸出,在監(jiān)控方式讀寫RAM時,可以進入實驗

88、機對話窗口,把0x55寫入片外存儲器3000單元,然后讀出地址3000里的數據, 把該數輸送到D口的二極管上顯示出對應的0x55二進制數;再執(zhí)行把0xAA寫入片外存儲器3000單元,然后讀出地址3000里的數據,把該數輸送到D口的二極管上顯示出對應的0xAA二進制數。</p><p>  讀寫數據的選用,本例采用的0x55(01010101)與0xAA(10101010),一般選用這兩個操作數就可以查出數據總線的

89、短路、斷路等,在實際調試用戶電路時十分有效。</p><p>  在執(zhí)行下列程序時,對實驗箱數據進行讀寫,如果PORT D口的發(fā)光二極管閃爍,則表示RAM正常工作。 </p><p>  #INCLUDE<128DEF.INC></p><p>  #INCLUDE<IOM128V.H></p><p>  EQU R

90、AMEND=$10FF ;堆棧指針值</p><p><b>  ORG $0000</b></p><p><b>  IMP RESET</b></p><p><b>  ORG $0046</b></p><p><b>  R

91、ESET:</b></p><p>  LDI R16,HIGH(RAMEND) ;設置堆棧指針高位</p><p>  OUS SPH,R16</p><p>  LDI R16,LOW(RAMEND) ;設置堆棧指針低位</p><p>  OUS SPL,R16</p&g

92、t;<p>  SSS XMCRB,R16</p><p><b>  SER R16</b></p><p>  OUS DDRB,R16 ;PORS B為輸出</p><p>  OUS DDRD,R16 ;PORS D 為輸出</p><p&g

93、t;  OUS PORTB,0X10</p><p>  LDI R24,0X55;把55存到片外存儲器的3000的單元的上</p><p>  LDI HIGH(Z),0X30</p><p>  LDI LOW(Z),0X00</p><p><b>  SS Z,R24</b></p><p&

94、gt;  LD R25,Z ;讀出地址3000里的數據 </p><p>  OUS PORSD,,R25 ;把該數輸送到D口的二極管上</p><p>  CALL DELAY </p><p>  LDI R24,0XAA</p><p>  LD

95、I HIGH(Z),0X30</p><p>  LDI LOW(Z),0X00</p><p>  SS Z,R24 ;把AA存到片外存儲器的3000單元的上</p><p>  LD R25,Z ;讀出地址3000里的數據</p><p>  OUS PORSD,

96、,R25 ;把該數輸送到D口的二極管上 </p><p>  CALL DELAY</p><p><b>  RET</b></p><p>  DELAY: ;延時子程序</p><p>  LDI R1,0XFF</p><

97、p><b>  DELAY1:</b></p><p>  LDI R2,0XFF</p><p><b>  DELAY2:</b></p><p><b>  SUBI R2,1</b></p><p>  BRCC DELAY1</p><p&g

98、t;<b>  SUBI R1,1</b></p><p>  BRCC DELAY1</p><p><b>  RET</b></p><p>  4 外部擴展存儲器全部空間的利用技巧</p><p>  (1)外部擴展32K存儲器</p><p>  在外部擴展32K容

99、量存儲器芯片時,此時不需要連接使用最高位地址線,可以將Portc口的PC7釋放,作為 外部存儲器映射到內部存儲器之后,當訪問頭4,352 字節(jié)時,外部存儲器沒有定址。就好像外部存儲器的頭4,352 字節(jié)不可訪問( 地址0x0000 ~ 0x10FF)。但當外部存儲器小于64 KB 時,例如為32 KB,則通過從0x8000~0x90FF 的定址,很容易對其進行訪問。由于外部存儲器地址位A15 沒有與外部存儲器相連接,地址0x8000~

100、0x90FF 將作為外部存儲器的0x0000 ~ 0x10FF。不推薦對0x90FF 向上尋址,因為這些位置已經被訪問。對于應用程序,這32 KB 外部存儲器為從0x1100~0x90FF 的32KB 地址空間,如Figure 17所示。存儲器配置B參見ATmega103兼容模式,配置A參見非ATmega103 兼容模式。</p><p>  當器件設置為ATmega103 兼容模式。內部地址空間為4,096 字

101、節(jié)。這意味著外部存儲器的頭4,096 字節(jié)可通過地址0x8000~0x8FFF 訪問。對應用程序,外部32 KB 存儲器是地址為0x1000~0x8FFF 的線性空間。</p><p> ?。?)擴展64K存儲器</p><p>  外部存儲器映射到內部存儲器之后,因此在缺省條件下MCU 只能訪問60KB 的外部存儲器( 地址0x0000 ~ 0x10FF 為內部存儲器所保留)。然而,可以

102、利用屏蔽高位地址的方法來訪問整個64KB 的外部存儲器。通過設置端口C 輸出0x00,并釋放最高位,存儲器接口就可以訪問地址0x0000 - 0x1FFF 了</p><p>  五 并行I/O口的原理與應用</p><p>  1 擴展并行I/O口的原理及意義</p><p>  單片機應用系統(tǒng)中的I/O口擴展方法與單片機的I/O口擴展性能有關。在ATMEGE12

103、8應用系統(tǒng)中,擴展的I/O口采取與數據存儲器相同的尋址方法。所有擴展的I/O口或通過擴展I/O口連接的外圍設備均與片外數據存儲器統(tǒng)一編址。任何擴展I/O口,根據地址線的選擇方式不同,占用一個片外RAM地址。利用串行口的移位寄存器工作方式,也可以擴展I/O口,這時擴展的I/O口不占用片外RAM地址。</p><p>  在單片機應用系統(tǒng)中,I/O口的擴展不是目的,而是為外部通道及設備提供一個輸入、輸出的通道。因此,

104、I/O口的擴展總是為了實現某一測控及管理功能而進行的。例如鍵盤、顯示器、驅動器開關控制、開關量測等。這樣,在I/O口擴展時,必須考慮與之相關的外部硬件電路特性,如驅動、電平、干擾等。根據選擇不同的I/O口擴展芯片或外部設備時擴展I/O的操作方法不同,因而應用程序也有不同,如地址、初始化狀態(tài)設置、工作方式選擇等。 </p><p>  2 外部并行I/O口電路的設計與應用</p><p> 

105、 單片機的資源是十分有限的,雖然ATMEGE128是一款資源豐富的單片機,有56個I/O口,但是在比較大的系統(tǒng)中應用還是不夠的。所以還必須對進行擴展。在擴展的I/O口是應當注意合理的利用資源,一方面,要考慮I/O口上的運行速度上的要求,另一方面,要考慮擴展的I/O口所占用的資源。</p><p>  通常擴展的I/O口有兩種方法,一種是:直接把I/O芯片接在I/O口上;另一種是用三總線的方法掛到總線上,這樣擴展的

106、I/O地址和片外存儲器地址統(tǒng)一編址,這樣就可以用訪問片外存儲器的方式來訪問擴展的I/O口。</p><p>  比較上面兩種擴展I/O口的方法,可以看出第一種方法,單片機的I/O只能與擴展的I/O口大交道,不能進行其它的用途,造成了大量的資源浪費,并且在訪問片外擴展I/O口時先需要選地址,然后才能交換數據,這樣至少需要兩條以上的指令才能完成,,所以第一種方法造成了運行速度成倍的下降;而用三總線方法總線上還可以掛其

107、他擴展的芯片,包括片外存儲器等,這樣就充分節(jié)約了單片機的資源,并且對其訪問只要一條片外尋址指令就可以了,訪問速度也比較高。所以從多個方面考慮,第二種方法要比第一種方法要好的多。所以我們擴展的I/O用的是第二種方法。</p><p>  Atmega128單片機應用系統(tǒng)中I/O口擴展芯片和TTL、CMOS鎖存器、緩沖器電路芯片兩大類。通用的I/O芯片選用INTEL公司的芯片,其借口最簡捷可靠,最典型的就是8255。

108、</p><p>  這些實驗為了熟悉I/O口的使用方法,在此基礎之上對8255的控制使用,以Atmega128為代表的AVR單片機,與其他類型的單片機的輸入輸出接口在大體上是一樣的主要的區(qū)是:Atmega128比51系列單片機多了數據寄存器、數據方向積存器、輸入腳地址積存器,所以在利用Atmega128的I/O口進行數據傳輸時就需要多一些工作。以PC0為例說明在第二功能的時候,在I/O口內部電路及工作原理:&l

109、t;/p><p>  當方向寄存器DDRC的第0位置位(DDC0=1)是,PC0口定義為輸出。由PC0口的內部工作原理可見,DDC0的Q端為1,MOS管上截止;同時PORTC0的三態(tài)門打開。PC0引腳的輸出電平取決于C口的數據寄存器PORTC口的第0位(PORTC0)的輸出Q端值,既:DDC0=0(PC0定義為輸出),PORTC0=1時,PC0輸出高電平;PORTC0=0時,PC0輸出低電平。</p>

110、<p>  當DDC0=0時,PC0定義為輸入。PORTC0=0時(上拉MOS管上截止),PC0口做三態(tài)輸入;PORTC0=1時(上拉MOS激活),PC0口作帶上拉電阻輸入。后一種輸入方式可省去鍵盤、開關、繼電器等接口電路的上拉電阻。</p><p>  DDC0是可讀的,用指令IN R16,DDRC,再看R16的第0位;PORTC0輸出Q也是可讀的,用只指令IN R16,PORTC,再看R16的第0位

111、,讀的是鎖存器(PORTC);PIN0是可讀的,用指令IN R16,DDRC,再看R16的第0位,讀的是引腳電平;DDC0,PORTC0都是可寫的(可定義輸入輸出和確定輸出電平的高低);但PINC是不可寫的(引腳電平的高低是外部客觀存在的)。</p><p>  其他的I/O口的在不考慮第二功能的時候,I/O樓的基本輸入輸出的功能是一樣的??删幊掏ㄓ媒涌谛酒?255是一個比較通用的I/O芯片,它不僅使用方便:操作

112、簡單,并且與單片機連接比較方便。8255有三個八位I/O口,有三種工作方式。每一個I/O口的都占用了三個寄存器地址,可以對寄存器進行操作。</p><p>  (1)外部并行I/O口電路調試實驗 </p><p><b>  第一個實驗:</b></p><p>  采用的是方式0,PA,PB位輸出,PB口為輸入。8255 A口接8個LE

113、D發(fā)光二極管,做跑馬燈實驗,首先讓最高位的發(fā)光二極管點亮,延時1秒,然后讓第七位的發(fā)光二極管點亮,延時1秒,讓第六位的發(fā)光二極管點亮,如此輪流發(fā)光。如此就可以檢驗Atmega128與8255的連接是否有問題。</p><p>  D8255 EQU $ 8100 ;8255 狀態(tài)/命令口地址</p><p>  D8255A EQU $ 8200 ;8255

114、PA口地址</p><p>  D8255B EQU $ ;8255 PB 口地址</p><p>  D8255C EQU $ ;8255 PC 口地址</p><p><b>  ORG $0000</b></p><p><b>  JMP START</b></p><p

溫馨提示

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

評論

0/150

提交評論