單片機第06章定時計數器_第1頁
單片機第06章定時計數器_第2頁
單片機第06章定時計數器_第3頁
單片機第06章定時計數器_第4頁
單片機第06章定時計數器_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、2第第6章章定時器計數器定時器計數器沈陽航空航天大學沈陽航空航天大學2本講課程主要內容本講課程主要內容(1)定時)定時/計數器的基本概念計數器的基本概念(2)定時)定時/計數器的編程方法計數器的編程方法(3)定時)定時/計數器編程舉例計數器編程舉例3定時器定時器/計數器計數器兩個兩個16位定時位定時/計數器計數器存放初值的存放初值的SFRT0: TH0、TL0T1: TH1、TL1其它相關的其它相關的SFR:TMOD(工作方式控制寄存器)(工作方式控制寄存器)TCON(控制寄存器)(控制寄存器)定時功能時,每個機器周期定時器加定時功能時,每個機器周期定時器加1計數功能時,在外部相應輸入腳(計數

2、功能時,在外部相應輸入腳(T0和和T1)產生)產生下降沿,計數器加下降沿,計數器加1。46.1 定時計數器的結構框圖定時計數器的結構框圖6.2 定時器的控制字定時器的控制字工作方式控制寄存器工作方式控制寄存器TMOD(89H)GATEC/TM1 M0 GATE C/T M1 M0注意:注意:TMOD不能位尋址不能位尋址控制寄存器控制寄存器TCON (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0復位后兩個寄存器的狀態均為復位后兩個寄存器的狀態均為00H。566.2.1 TMOD:工作方式控制寄存器:工作方式控制寄存器GATE:門控位:門控位GATE1,T0、T1是否工

3、作受外部引腳輸入電平的控制,是否工作受外部引腳輸入電平的控制,INT0引腳控制引腳控制T0運行,運行,INT1引腳控制引腳控制T1運行。運行。可用于測量在可用于測量在INT0或或INT1引腳出現的正脈沖的寬度。引腳出現的正脈沖的寬度。GATE=0,定時,定時/計數器的運行不受外部引腳計數器的運行不受外部引腳INT0或或INT1的控制。的控制。C/T位:計數器模式和定時器模式的選擇位位:計數器模式和定時器模式的選擇位C/T=0,為定時器模式。內部計數器對晶振頻率,為定時器模式。內部計數器對晶振頻率12分頻后的脈沖分頻后的脈沖計數(該脈沖的周期等于機器周期),每個周期計數值加計數(該脈沖的周期等于

4、機器周期),每個周期計數值加1。若若選擇選擇12MHz晶振,則計數頻率為晶振,則計數頻率為1MHz。從計數值便可求得計數從計數值便可求得計數的時間,所以稱為定時器模式;的時間,所以稱為定時器模式;C/T=1,設置為計數器模式,計數器對由引腳,設置為計數器模式,計數器對由引腳T0(P3.4腳)或腳)或T1(P3.5腳)輸入的外部脈沖(負跳變)計數,腳)輸入的外部脈沖(負跳變)計數,允許最高計數頻率允許最高計數頻率為晶振頻率的為晶振頻率的1/24。7工作方式控制寄存器工作方式控制寄存器TMODM1、M0工作方式選擇位工作方式選擇位86.2.2 定時定時/計數器控制寄存器計數器控制寄存器TCONTF

5、1位:位:T1計數溢出標志位。當計數溢出標志位。當T1計數溢出時,由硬件置計數溢出時,由硬件置1,申請中斷。,申請中斷。進入中斷服務程序后被硬件自動清進入中斷服務程序后被硬件自動清0。TR1位:位:T1計數運行控制位。由軟件置計數運行控制位。由軟件置1或清或清0。當。當GATE位(位(TMOD.7)0時,若時,若TR1=1,允許,允許T1計數;計數;TR1=0時,時,禁止禁止T1計數。當計數。當GATE位位=1時,時,TR11且且INT1=1時,時,允許允許T1計數。計數。TF0位:位:T0計數溢出標志位,功能同計數溢出標志位,功能同TF1。TR0位:位:T0計數運行控制位,由軟件置計數運行控

6、制位,由軟件置1或清或清0。當。當GATE位(位(TMOD.3)0時,若時,若TR0=1,允許,允許T0計數;計數;TR0=0時,時,禁止禁止T0計數。當計數。當GATE位位=1時,時,TR01且且INT0=1時,允許時,允許T0計數。計數。96.3 定時定時/計數器的計數器的4種工作方式種工作方式方式方式0、方式、方式1(13位、位、16位定時計數方式)位定時計數方式)T1工作于方式工作于方式0的等效框圖(的等效框圖(M1M0=00、01)GATE=0、A=1、TR1=1GATE=1、INT1=1、TR1=1。注意定時器初值與定時時間的不同注意定時器初值與定時時間的不同106.3.1 方式方

7、式0、方式、方式1的說明的說明定時定時/計數器計數器T1工作在方式工作在方式0時,為時,為13位的計數器,由位的計數器,由TL1的低的低5位和位和TH1的的8位所構成。位所構成。TL1低低5位溢出向位溢出向TH1進位,進位,TH1計數溢出置位計數溢出置位TCON中的溢出標志位中的溢出標志位TF1。GATE位的狀態決定定時位的狀態決定定時/計數器運行控制取決于計數器運行控制取決于TR1一個一個條件還是條件還是TR1和和INT1引腳這兩個條件。引腳這兩個條件。當當GATE=0時時,A點電位恒為點電位恒為1,則只要,則只要TR1被置為被置為1,B點點電位即為電位即為1,定時,定時/計數器被控制為允許

8、計數計數器被控制為允許計數(定時定時/計數器計數器的計數控制僅由的計數控制僅由TR1的狀態確定的狀態確定,TR1=1計數,計數,TR1=0停停止計數止計數)。當當GATE=1時,時,B點電位由點電位由INT1輸入的電平和輸入的電平和TR1的狀的狀 態態確定,當確定,當TR1=1,且,且INT1=1時,時,B點電平才為點電平才為1,才允許,才允許定時器定時器/計數器計數計數器計數(計數控制由計數控制由TR1和和INT1二個條件控制二個條件控制)。方式方式1時,時,TL1的的8位都參與計數,因而屬于位都參與計數,因而屬于16位位定時定時/計數計數器。其控制方式,等效電路與方式器。其控制方式,等效電

9、路與方式0完全完全相同。相同。116.3.2 方式方式2(常數自動重裝入常數自動重裝入)T1工作于方式工作于方式2的等效圖的等效圖12方式方式2的說明的說明TL1作為計數器,當作為計數器,當TL1計數溢出時,在計數溢出時,在置置1溢出標志溢出標志TF1的同的同時,還自動的將時,還自動的將TH1中的常數送至中的常數送至TL1,使使TL1從初值開始重從初值開始重新計數。新計數。13這種工作方式可以省去用戶軟件中重裝常數這種工作方式可以省去用戶軟件中重裝常數的程序,簡化定時常數的計算方法(確定計數初的程序,簡化定時常數的計算方法(確定計數初值),可以相當精確的確定定時時間值),可以相當精確的確定定時

10、時間。例如:波特率發生器例如:波特率發生器146.3.3 方式方式3(T0具有)具有)T0工作于方式工作于方式3時,分為時,分為2個獨立的個獨立的8位計位計數器:數器:TL0、TH0。TL0使用使用T0的狀態控制位的狀態控制位C/T, GATE,TR0, INT0,而,而TH0被固定為一個被固定為一個8位定時器位定時器(不能作外部計數方式),并使用定時器(不能作外部計數方式),并使用定時器T1的的狀態控制位狀態控制位TR1和和TF1,同時占用定時器,同時占用定時器T1的的中斷源。中斷源。此時,定時此時,定時/計數器計數器T1可為方式可為方式0、方式、方式1和方式和方式2,作為串行口的波特率發生

11、器。,作為串行口的波特率發生器。15工作于方式工作于方式3的的T016T0工作于方式工作于方式3時的時的T117定時器的工作方式(總結)定時器的工作方式(總結)方式方式0:13位定時計數器位定時計數器 注意:注意:TLx的低的低5位和位和THx共同組成共同組成方式方式1: 16位定時計數器位定時計數器方式方式2: 自動重裝入的自動重裝入的8位定時計數器位定時計數器 溢出后溢出后TFx=1,同時由,同時由THxTLx方式方式3:T0成為兩個獨立的成為兩個獨立的8位計數器位計數器 TL0作為定時計數器;作為定時計數器;TH0僅作定時器用僅作定時器用 TL0的控制用原的控制用原T0的,的,TH0占用

12、原占用原T1的控制位的控制位TR1和和TF1,同,同時占用定時器時占用定時器T1的中斷源的中斷源 此時,此時,T1可工作于方式可工作于方式02,溢出時送串行口,經常作為串,溢出時送串行口,經常作為串行口波特率發生器行口波特率發生器186.4 定時定時/計數器的輸入信號計數器的輸入信號工作于定時器方式:工作于定時器方式:對內部時鐘信號計數,內部時鐘信對內部時鐘信號計數,內部時鐘信號的頻率為時鐘振蕩頻率的號的頻率為時鐘振蕩頻率的1/12,即每個機器周期計數值,即每個機器周期計數值加加1。例:采用例:采用12MHz頻率的晶體時,每頻率的晶體時,每1微微秒計數值將加秒計數值將加1。由于定時的精度決定于

13、輸入脈沖的周期,因此由于定時的精度決定于輸入脈沖的周期,因此當需要高分辨率的定時時,應盡量選用頻率較高的晶當需要高分辨率的定時時,應盡量選用頻率較高的晶體(體(MCS51最高為最高為12MHz)。)。19定時定時/計數器的輸入信號計數器的輸入信號工作于計數器方式:當定時工作于計數器方式:當定時/計數器用作計數器時,計數脈計數器用作計數器時,計數脈沖來自外部輸入引腳沖來自外部輸入引腳T0或或T1。當輸入信號產生由。當輸入信號產生由1至至0的跳變(即下跳變)時,計數器的值增的跳變(即下跳變)時,計數器的值增1。需要注意:每個機器周期的需要注意:每個機器周期的S5P2期間,對外部輸入進行采期間,對外

14、部輸入進行采樣。如在第一個周期中采得的值為樣。如在第一個周期中采得的值為1,而在下一個周期,而在下一個周期中采得的值為中采得的值為0,則計數器加,則計數器加1。由于確認一次下跳變至。由于確認一次下跳變至少要用兩個機器周期,即少要用兩個機器周期,即24個振蕩周期,因此外部輸入個振蕩周期,因此外部輸入的計數脈沖的最高頻率為振蕩器頻率的的計數脈沖的最高頻率為振蕩器頻率的1/24,同時輸入,同時輸入信號的高、低電平保持一個機器周期以上。信號的高、低電平保持一個機器周期以上。例如:選用例如:選用6MHz頻率的晶體,允許輸入的脈沖頻率為頻率的晶體,允許輸入的脈沖頻率為 250kHz;如果選用如果選用12M

15、Hz頻率的晶體,則可輸入頻率的晶體,則可輸入500kHz的外部脈沖的外部脈沖。20定時定時/計數器的輸入信號計數器的輸入信號理想的計數器輸入信號:脈沖信號的高、低電平至理想的計數器輸入信號:脈沖信號的高、低電平至少要各保持一個機器周期以上,確保電平在變化之少要各保持一個機器周期以上,確保電平在變化之前能被采樣一次。前能被采樣一次。216.5 定時器定時器/計數器的編程計數器的編程初始化初始化1 根據要求給方式寄存器根據要求給方式寄存器TMOD送一個方式控制送一個方式控制字,以設定定時器的工作方式;字,以設定定時器的工作方式;2 根據需要給根據需要給TH和和TL選送初值,以確定需要的選送初值,以

16、確定需要的定時時間或計數的初值;定時時間或計數的初值;3 根據需要給中斷允許寄存器根據需要給中斷允許寄存器IE送中斷控制字,送中斷控制字,以開放相應的中斷和設定中斷優先級;以開放相應的中斷和設定中斷優先級;也可用查詢方式來響應定時器。也可用查詢方式來響應定時器。4 給給TCON送命令字以啟動或禁止定時送命令字以啟動或禁止定時/計數器的計數器的運行。運行。22定時器定時器/計數器的編程計數器的編程6.5.1 初值的計算初值的計算計數器初值計數器初值:設計數模值為設計數模值為M,所需的計數值為,所需的計數值為C,計數初值設,計數初值設定為定為TC,則:,則:TC = M -C (M=213,216

17、,28)定時器初值定時器初值:定時器的模值為定時器的模值為M,需要的定時時間為,需要的定時時間為T, 定時器定時器的初值的初值TC為:為:TC=M-T/t機器周期機器周期23幾種工作方式的最大定時時間幾種工作方式的最大定時時間若定時器初值為若定時器初值為0,則定時時間為最大,設,則定時時間為最大,設fOSC=12MHz,幾種工作方式下的最大定時,幾種工作方式下的最大定時時間為:時間為:方式方式0: TMAX=8.192ms;方式方式1: TMAX=65.536ms;方式方式2、3: TMAX=0.256ms;24初值的計算:初值的計算:fOSC=12MHz,試計算定時時間試計算定時時間2ms所

18、需的定時器所需的定時器的初值的初值.方式方式2、方式、方式3 Tmax=0.256ms,所以必須將工,所以必須將工作方式設在方式作方式設在方式0或方式或方式1:方式方式0:TC=213-2ms/1us=6192=1830HTH0=18H , TL0=30H方式方式1:TC=216-2ms/1us =63536=F830HTH0=F8H , TL0=30H256.5.2 編程方式編程方式采用查詢方式:程序一直檢測采用查詢方式:程序一直檢測TF0(TF1),若若TF01(TF1=1),說明定時時間到或計滿,說明定時時間到或計滿數,需要軟件清除溢出標志位數,需要軟件清除溢出標志位TFx。采用中斷方式

19、:程序初始化時,設置定時器采用中斷方式:程序初始化時,設置定時器溢出中斷允許后,內部硬件自動檢測到溢出中斷允許后,內部硬件自動檢測到TF01(TF1=1)時,自動響應中斷,進入中斷時,自動響應中斷,進入中斷服務程序。由硬件自動清除服務程序。由硬件自動清除TFx。266.6 定時計數器的應用舉例定時計數器的應用舉例例例1 選用選用T1方式方式0產生產生500us的定時,在的定時,在P1.1輸出周期為輸出周期為1ms的方波的方波; FOSC=6MHz注意注意:T0不用時的處理不用時的處理,一般設為方式一般設為方式0,禁止禁止進入方式進入方式3.初值計算初值計算: TC = 213 - 500us

20、/2us,TC=7942TC=7942D=1F06H13位方式下,計數初值為位方式下,計數初值為F806H6.6.1:方式:方式0的應用的應用27主程序主程序Begin:MOVTMOD,#0MOVMOVSETBTL1,#06HTH1,#0F8HTR1Loop: JBCTF1,PF0SJMPLOOPPF0: MOVTL1,#06HMOVCPLAJMPTH1,#0F8HP1.1LOOP6.6.2 T0計數、計數、T1定時工作于方式定時工作于方式2從從P3.4 T0輸入低頻脈沖輸入低頻脈沖,要求該脈沖每發生一次跳要求該脈沖每發生一次跳變時由變時由P1.0輸出一個輸出一個500us的負脈沖的負脈沖,與

21、此同時由與此同時由P1.1輸出一個寬為輸出一個寬為1ms的正脈沖(的正脈沖(6MHz晶振)。晶振)。先設先設T0為計數方式,工作于方式為計數方式,工作于方式2,初值設為,初值設為0FFH,即加即加1即刻產生溢出。當外部輸入一個負跳變脈沖時,即刻產生溢出。當外部輸入一個負跳變脈沖時,計數加計數加1,并產生溢出并產生溢出,TF0=1;引起引起CPU的的T0中斷。中斷。中斷服務程序內,對定時器中斷服務程序內,對定時器T1設定初值,設定初值,T1也工作也工作于方式于方式2。28296.6.3 含中斷的定時/計數器響應程ORG 0HSJMP BEGINORG 000BHAJMP TT1ORG 0030H

22、BEGIN:MOV TMOD,#26H MOV TH0,#0FFHMOVTL0,#0FFHCLR P1.1Setb ET0 ;允許T0中斷Setb EA ;CPU開中斷SETB P1.0SETB TR0SJMP $序工作于方式2的定時/計數器中斷服務程序ORG300HTT1:MOVMOVSETBCLRSETBTH1,#06HTL1,#06HP1.1P1.0TR1DEL2:JBC TF1,RP1SJMP DEL230RP1:SETB P1.0DEL3:RP2:JBC TF1,RP2SJMP DEL3CLR P1.1CLR TR1RETI例例假設假設系統時鐘為系統時鐘為6MHz6MHz,編寫定時器

23、,編寫定時器T0T0產生產生1 1秒定時秒定時的程序。的程序。(1)T0工作方式的確定工作方式的確定定時時間較長,采用哪一種工作方式?定時時間較長,采用哪一種工作方式?由各種工作方式的特性,可計算出:由各種工作方式的特性,可計算出:方式方式0 0最長可定時最長可定時16.384ms16.384ms;方式方式1 1最長可定時最長可定時131.072ms131.072ms; ;方式方式2 2最長可定時最長可定時512 s512 s。選方式選方式1 1,每隔,每隔100ms100ms中斷一次,中斷中斷一次,中斷1010次為次為1s1s。316.6.4 長定時時間的產生長定時時間的產生32(2 2)計

24、算計數初值)計算計數初值因為:因為: -100 -100* * /2=15536=3CB0H /2=15536=3CB0H因此:因此:TH0=3CHTH0=3CH,TL0=B0HTL0=B0H(3 3)1010次計數的實現次計數的實現采用循環程序法。采用循環程序法。(4 4)程序設計)程序設計參考程序參考程序 : :16231033ORGORG0000H0000HRESETRESET: LJMPLJMPORGORGLJMPLJMPORGORGMAINMAIN: MOVMOVMOVMOVMOVMOVMOVMOVMOVMOVSETBSETBMAINMAIN000BH000BHIT0PIT0P100

25、0H1000HSP,#60HSP,#60HB,#0AHB,#0AHTMOD,#01HTMOD,#01HTL0,#0B0HTL0,#0B0HTH0,#3CHTH0,#3CHTR0TR0;上電,轉主程序入口;上電,轉主程序入口MAINMAIN;T0T0的中斷入口的中斷入口;轉;轉T0T0中斷處理程序中斷處理程序IT0PIT0P;設堆棧指針;設堆棧指針;設循環次數;設循環次數1010次次;設;設T0T0工作在方式工作在方式1 1;給;給T0T0設初值設初值;啟動;啟動T0T0SETBSETB ET0ET0 ;允許;允許T0T0中斷中斷SETBSETB EAEA ;CPUCPU開放中斷開放中斷HERE

26、HERE: SJMPSJMP HEREHERE ;等待中斷;等待中斷ITOPITOP: MOVMOV TL0,#0B0HTL0,#0B0H ;T0T0中斷子程序,重裝初值中斷子程序,重裝初值MOVMOV TH0,#3CHTH0,#3CH ;DJNZDJNZ B B,LOOPLOOPCLRCLR TR0TR0 ;1s1s定時時間到,停止定時時間到,停止T0T0工作工作LOOPLOOP: RETIRETI346.6.5 門控位的應用門控位的應用利用利用GATE位可實現:外部輸入正脈沖對定時位可實現:外部輸入正脈沖對定時計數器控制。利用這個特性,可測量輸入計數器控制。利用這個特性,可測量輸入脈沖的寬

27、度。脈沖的寬度。如:利用如:利用T1門控位測試門控位測試INT1引腳上出現的正引腳上出現的正脈沖的寬度,并以周期數顯示。脈沖的寬度,并以周期數顯示。35測量原理測量原理程序清單程序清單ST:MOV TMOD, #90HMOV TL1,#00HMOV TH1,#00HWAIT1:JB P3.3,WAIT1;等待;等待INT1為為0SETB TR1WAIT2:JNB P3.3, WAIT2;等待;等待INT1為為1WAIT3:JB P3.3 ,WAIT3;等待;等待INT1為為0CLR TR1MOV 20H,TL1MOV 21H,TH1366.6.66.6.6實時時鐘的設計實時時鐘的設計1 1實時

28、時鐘實現的基本思想實時時鐘實現的基本思想如何獲得如何獲得1 1秒的定時,秒的定時,可把可把定時時間定為定時時間定為100ms100ms,采,采用中斷方式進行溢出次數的累計,計滿用中斷方式進行溢出次數的累計,計滿1010次,即得次,即得到秒計時。到秒計時。片內片內RAMRAM中規定中規定3 3個單元個單元作作為秒、分、時單元為秒、分、時單元,具體,具體安排如下:安排如下:42H42H:“秒秒”單元單元 ;41H41H:“分分”單元;單元;40H40H:“時時”單元單元從秒到分,從分到時是通過軟件累加并進行比較的從秒到分,從分到時是通過軟件累加并進行比較的方法來實現的。方法來實現的。37382 2

29、程序設計程序設計(1 1)主程序的設計)主程序的設計39(2 2)中斷服務程序的設計)中斷服務程序的設計中斷服務程序的主要功能是實現秒、分、時的計時處中斷服務程序的主要功能是實現秒、分、時的計時處理。參考程序略。理。參考程序略。6.6.76.6.7 運行中讀定時器運行中讀定時器/ /計數器計數器在讀取運行中的定時器在讀取運行中的定時器/ /計數器時,計數器時,需注意:若恰好出需注意:若恰好出現現TLXTLX溢出向溢出向THXTHX進位的情況,則讀得的(進位的情況,則讀得的(TLXTLX)值就)值就完全不對。完全不對。同樣,先讀(同樣,先讀(THXTHX)再讀()再讀(TLXTLX)也可能)也可

30、能出錯。出錯。方法:先讀(方法:先讀(THXTHX),后讀(),后讀(TLXTLX),再讀(),再讀(THXTHX)。若)。若兩次讀得(兩次讀得(THXTHX)相同,則讀的內容正確。)相同,則讀的內容正確。若前后兩若前后兩次讀的(次讀的(THXTHX)有變化,則再重復上述過程,這次重)有變化,則再重復上述過程,這次重復讀得的內容就應是正確的。下面是有關的程序,復讀得的內容就應是正確的。下面是有關的程序,讀得的(讀得的(TH0TH0)和()和(TL0TL0)放置在)放置在R1R1和和R0R0內。內。40RDTIME:MOVRDTIME:MOVMOVMOVCJNECJNEMOVMOVA,TH0A,

31、TH0 ;讀(;讀(TH0TH0)R0,TL0R0,TL0 ;讀(;讀(TL0TL0)A,TH0,RDTIMEA,TH0,RDTIME;比較;比較2 2次讀得的(次讀得的(TH0TH0);不相等則重復讀;不相等則重復讀R1,AR1,A ;(;(TH0TH0)送入)送入R1R1中中RETRET4142習題習題1. 如果采用的晶振的頻率為如果采用的晶振的頻率為3MHz,定時器,定時器/計數器工作在方式計數器工作在方式0、1、2下,其最大的定時時間各為多少?下,其最大的定時時間各為多少?答:方式答:方式0下,其最大的定時時間為下,其最大的定時時間為32.768ms; 方式方式1下,其最大的定時時間為下,其最大的定時時間為262.144ms; 方式方式2下,其最大的定時時間為下,其最大的定時時間為1.024ms;2. 定時器定時器/計數器用作定時器時,其計數脈沖由誰提供?定時時間與哪些計數器用作定時器時,其計數脈沖由誰提供?定時時間與哪些因素有關?因

溫馨提示

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

評論

0/150

提交評論