1602液晶+DS1302時鐘芯片+DS18B20溫度傳感器匯編源程序 原理圖_第1頁
1602液晶+DS1302時鐘芯片+DS18B20溫度傳感器匯編源程序 原理圖_第2頁
1602液晶+DS1302時鐘芯片+DS18B20溫度傳感器匯編源程序 原理圖_第3頁
1602液晶+DS1302時鐘芯片+DS18B20溫度傳感器匯編源程序 原理圖_第4頁
1602液晶+DS1302時鐘芯片+DS18B20溫度傳感器匯編源程序 原理圖_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、附A: 原理圖附B:匯編源程序; ; 溫度值存放單元 TEMP_ZH EQU 24H ;實時溫度值存放單元 TEMPL EQU 25H ;低溫度值存放單元 TEMPH EQU 26H ;高溫度值存放單元 TEMPHC EQU 29H ;存十位數(shù) BCD碼 TEMPLC EQU 2AH ;存?zhèn)€位數(shù) BCD碼 ;=DS1302通信引腳定義= RST BIT p1.5 SCLK BIT p1.7 IO BIT p1.6;=定義數(shù)據(jù)存儲地址= DS1302_ADDR DATA 30H ;地址寄存器 DS1302_DATA DATA 31H ;數(shù)據(jù)寄存器 TIME_YEAR DATA 32H ;年寄存器

2、 TIME_MONT DATA 33H ;月寄存器 TIME_DAY DATA 34H ;天寄存器 WEEK_DATA DATA 35H ;星期寄存器 HOUR DATA 36H ;小時寄存器 MINTUE DATA 37H ;分鐘寄存器 SECOND DATA 38H ;秒鐘寄存器;=顯示數(shù)據(jù)緩沖地址= YEAR_HBUF DATA 40H YEAR_LBUF DATA 41H MONT_HBUF DATA 42H MONT_LBUF DATA 43H DAY_HBUF DATA 44H DAY_LBUF DATA 45H WEEK_HBUF DATA 46H WEEK_LBUF DATA

3、47H HOUR_HBUF DATA 48H HOUR_LBUF DATA 49H MINTUE_HBUF DATA 4AH MINTUE_LBUF DATA 4BH SECOND_HBUF DATA 4CH SECOND_LBUF DATA 4DH;= X EQU 2FH ;LCD 地址變量 ; ;LCD控制引腳 RS EQU P2.5 RW EQU P2.6 E EQU P2.7 ; DQ EQU p1.0; 主程序 MAIN: ACALL SET_LCD ;LCD初始化設(shè)置子程序 ACALL SET_1302 ;1302初始化 TOOP: ACALL RESET_1820 ;調(diào)用18B2

4、0復(fù)位子程序 ACALL TEMP_BJ ;顯示溫度標(biāo)記"" ACALL MEU_OK ;調(diào)用顯示"OK"信息子程序 TOOP2: ACALL RE_TEMP ;調(diào)用讀取溫度數(shù)據(jù)子程序 ACALL SET_DATA ;調(diào)用處理顯示溫度數(shù)據(jù)子程序 ACALL TEMP_BJ ;顯示溫度標(biāo)記子程序 LCALL RD_DS1302 LCALL DATA_BUF LCALL DISPLAY SJMP TOOP2 ;循環(huán); 讀取溫度數(shù)據(jù)子程序 RE_TEMP: ACALL RESET_1820 ;18B20復(fù)位子程序 MOV A,#0CCH ;跳過ROM匹配 AC

5、ALL WRITE_1820 ;寫入子程序 MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 ACALL WRITE_1820 ;調(diào)寫入子程序 ACALL RESET_1820 ;調(diào)復(fù)位子程序 MOV A,#0CCH ;跳過ROM匹配 ACALL WRITE_1820 ;寫入子程序 MOV A,#0BEH ;發(fā)出讀溫度命令 ACALL WRITE_1820 ;寫入子程序 ACALL READ_1820 ;調(diào)用讀取子程序 RET ; 溫度數(shù)據(jù)處理顯示子程序 SET_DATA: ACALL CONV_TEMP ;處理溫度 BCD 碼子程序 ACALL DISP_BCD ;顯示區(qū) BCD 碼溫度值刷新子程序

6、 ACALL CONV ;LCD顯示子程序 RET; 處理溫度 BCD 碼子程序 CONV_TEMP: MOV A,TEMPH ;判溫度是否零下 ANL A,#80H JZ TC1 ;溫度零轉(zhuǎn)TC1處 CLR C ;C=0 MOV A,TEMPL ;二進制數(shù)求補(雙字節(jié)) CPL A ;取反加1 ADD A,#01H MOV TEMPL,A MOV A,TEMPH CPL A ADDC A,#00H MOV TEMPH,A JMP TC2 ; TC1: MOV TEMPHC,#0AH TC2: MOV A,TEMPHC SWAP A ;高、低位交換 MOV TEMPHC,A MOV A,TEM

7、PL ANL A,#0FH ;乘0.0625 MOV DPTR,#DOTTAB MOVC A,A+DPTR MOV TEMPLC,A ;TEMPLC LOW=小數(shù)部分 BCD; MOV A,TEMPL ;整數(shù)部分 ANL A,#0F0H ;取出高四位 SWAP A ;高、低位交換 MOV TEMPL,A MOV A,TEMPH ANL A,#0FH ;取出低四位 SWAP A ;高、低位交換 ORL A,TEMPL ;重新組合 MOV TEMP_ZH,A LCALL HEX2BCD1 MOV TEMPL,A ANL A,#0F0H ;取出高四位 SWAP A ;高、低位交換 ORL A,TEM

8、PHC ;TEMPHC LOW = 十位數(shù) BCD MOV TEMPHC,A MOV A,TEMPL ANL A,#0FH ;取出低四位 SWAP A ;高、低位交換 ORL A,TEMPLC ;TEMPLC HI = 個位數(shù) BCD MOV TEMPLC,A MOV A,R4 JZ TC3 ANL A,#0FH ;取出低四位 SWAP A ;高、低位交換 MOV R4,A MOV A,TEMPHC ;TEMPHC HI = 百位數(shù) BCD ANL A,#0FH ;取出低四位 ORL A,R4 MOV TEMPHC,A TC3: RET; HEX2BCD1: MOV B,#064H ;十六進制

9、-> BCD DIV AB ;B= A % 100 MOV R4,A ;R4 = 百位數(shù) MOV A,#0AH XCH A,B DIV AB ;B = A % B SWAP A ;高、低位交換 ORL A,B RET ; ; 小數(shù)部分碼表 DOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H DB 05H,05H,06H,06H,07H,08H,08H,09H; 顯示區(qū)BCD 碼溫度值刷新子程序 DISP_BCD: MOV A,TEMPLC ;個位數(shù)BCD碼送入A ANL A,#0FH ;取低位碼 MOV 70H,A ;小數(shù)位 MOV A,TEMPLC S

10、WAP A ;高、低位交換 ANL A,#0FH ;取結(jié)果數(shù)的高位 MOV 71H,A ;個位 MOV A,TEMPHC ANL A,#0FH ;取低位碼 MOV 72H,A ;十位 MOV A,TEMPHC SWAP A ;高、低位交換 ANL A,#0FH ;取結(jié)果數(shù)的高位 MOV 73H,A ;百位 MOV A,TEMPHC ANL A,#0F0H ;取低位碼 CJNE A,#010H,DI0 JMP DI2 ; DI0: MOV A,TEMPHC ANL A,#0FH ;取低位碼 JNZ DI2 ;十位數(shù)是0 MOV A,TEMPHC SWAP A ;高、低位交換 ANL A,#0FH

11、 ;取結(jié)果數(shù)的高位 MOV 73H,#0AH ;符號位不顯示 MOV 72H,A ;十位數(shù)顯示符號 DI2: RET;=;=讀1302子程序=RD_DS1302: MOV DS1302_ADDR,#8DH ;讀DS1302中的年 LCALL READ ;調(diào)用讀DS1302子程序 MOV TIME_YEAR, DS1302_DATA ;把讀出的年數(shù)據(jù)存入年寄存器中 MOV DS1302_ADDR,#8BH ;讀DS1302中的星期 LCALL READ MOV WEEK_DATA, DS1302_DATA ;把讀出的星期數(shù)據(jù)存入星期寄存器中 MOV DS1302_ADDR,#89H ;讀DS13

12、02中的月 LCALL READ MOV TIME_MONT, DS1302_DATA ;把讀出的月數(shù)據(jù)存入月寄存器中 MOV DS1302_ADDR,#87H ;讀DS1302中的天 LCALL READ MOV TIME_DAY, DS1302_DATA ;把讀出的天數(shù)據(jù)存入天寄存器中 MOV DS1302_ADDR,#85H ;讀DS1302中的小時 LCALL READ MOV HOUR, DS1302_DATA ;把讀出的天數(shù)據(jù)存入小時寄存器中 MOV DS1302_ADDR,#83H ;讀DS1302中的分鐘 LCALL READ MOV MINTUE, DS1302_DATA ;

13、把讀出的天數(shù)據(jù)存入分鐘寄存器中 MOV DS1302_ADDR,#81H ;讀DS1302中的秒鐘 LCALL READ MOV SECOND, DS1302_DATA ;把讀出的天數(shù)據(jù)存入秒鐘寄存器中 RET;=按鍵子程序=;=數(shù)據(jù)分離后送顯示緩存=DATA_BUF: MOV R0,TIME_YEAR ;年數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE ;調(diào)用數(shù)據(jù)分離子程序 MOV YEAR_HBUF,R1 MOV YEAR_LBUF,R2 MOV R0,TIME_MONT ;月數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE MOV MONT_HBUF,R1 MOV MONT_LBUF,R2

14、 MOV R0,TIME_DAY ;日數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE MOV DAY_HBUF,R1 MOV DAY_LBUF,R2 MOV R0,WEEK_DATA ;星期數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE MOV WEEK_HBUF,R1 MOV WEEK_LBUF,R2 MOV R0,HOUR ;小時數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE MOV HOUR_HBUF,R1 MOV HOUR_LBUF,R2 MOV R0,MINTUE ;分鐘數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE MOV MINTUE_HBUF,R1 MOV MINTUE_LBU

15、F,R2 MOV R0,SECOND ;秒鐘數(shù)據(jù)分離,送顯示緩存 LCALL DIVIDE MOV SECOND_HBUF,R1 MOV SECOND_LBUF,R2 RET ;=日歷顯示子程序=;=年顯示=DISPLAY: MOV A,#10000001B ;設(shè)定年第1位的顯示地址為第1行,第1列 LCALL WR_COMM ;調(diào)用寫指令到液晶子程序 MOV A, #32H ;數(shù)字2的ASCII碼 LCALL WR_DATA ;調(diào)用寫 數(shù)據(jù)到液晶子程序 MOV A,#10000010B ;設(shè)定年第2位的顯示地址為第1行,第2列 LCALL WR_COMM MOV A, #30H ;數(shù)字0的A

16、SCII碼 LCALL WR_DATA MOV A,#10000011B ;設(shè)定年第3位的顯示地址為第1行,第3列 LCALL WR_COMM MOV A, YEAR_LBUF ;年的低位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA MOV A,#10000100B ;設(shè)定年第4位的顯示地址為第1行,第4列 LCALL WR_COMM MOV A, YEAR_HBUF ;年的高位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA; =斜線顯示= MOV A,#10000101B ;設(shè)定斜線的顯示地址為第1行,第5

17、列 LCALL WR_COMM MOV A,#2FH ;斜線的ASCII碼 LCALL WR_DATA;=顯示月= MOV A,#10000110B ;設(shè)定月第1位的顯示地址為第1行,第6列 LCALL WR_COMM MOV A, MONT_LBUF ;月的低位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA MOV A,#10000111B ;設(shè)定月第2位的顯示地址為第1行,第7列 LCALL WR_COMM MOV A, MONT_HBUF ;月的高位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA ;=斜線

18、顯示= MOV A,#10001000B ;設(shè)定斜線的顯示地址為第1行,第8列 LCALL WR_COMM MOV A,#2FH ;斜線的ASCII碼 LCALL WR_DATA;=天顯示= MOV A,#10001001B ;設(shè)定天第1位的顯示地址為第1行,第9列 LCALL WR_COMM MOV A, DAY_LBUF ;天的低位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA MOV A,#10001010B ;設(shè)定天第2位的顯示地址為第1行,第10列 LCALL WR_COMM MOV A, DAY_HBUF ;天的高位緩存數(shù)據(jù) ADD A,#

19、30H ;加30H修正取ASCII碼 LCALL WR_DATA;=星期顯示= MOV A,#10001111B ;設(shè)定星期第2位的顯示地址為第1行,第13列 LCALL WR_COMM MOV A, WEEK_DATA ;星期的高位緩存數(shù)據(jù) SUBB A,#1 ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA;=小時顯示= MOV A,#11000000B ;設(shè)定小時第1位的顯示地址為第2行,第0列 LCALL WR_COMM MOV A, HOUR_LBUF ;小時的低位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA

20、MOV A,#11000001B ;設(shè)定小時第2位的顯示地址為第2行,第1列 LCALL WR_COMM MOV A, HOUR_HBUF ;小時的高位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA;= 冒號的顯示= MOV A,#11000010B ;設(shè)定冒號的顯示地址為第2行,第2列 LCALL WR_COMM MOV A, #3AH ;冒號的ASCII碼 LCALL WR_DATA;= 分鐘顯示= MOV A,#11000011B ;設(shè)定分鐘第1位的顯示地址為第2行,第3列 LCALL WR_COMM MOV A, MINTUE_LBUF ;分鐘

21、的低位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA MOV A,#11000100B ;設(shè)定分鐘第2位的顯示地址為第2行,第4列 LCALL WR_COMM MOV A, MINTUE_HBUF ;分鐘的高位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA;= 冒號的顯示= MOV A,#11000101B ;設(shè)定冒號的顯示地址為第2行,第5列 LCALL WR_COMM MOV A, #3AH ;冒號的ASCII碼 LCALL WR_DATA;= 秒鐘顯示= MOV A,#11000110B ;設(shè)定秒鐘第1位

22、的顯示地址為第2行,第6列 LCALL WR_COMM MOV A, SECOND_LBUF ;秒鐘的低位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA MOV A,#11000111B ;設(shè)定秒鐘第2位的顯示地址為第2行,第7列 LCALL WR_COMM MOV A, SECOND_HBUF ;秒鐘的高位緩存數(shù)據(jù) ADD A,#30H ;加30H修正取ASCII碼 LCALL WR_DATA RET ; DS18B20復(fù)位初始化子程序 RESET_1820: ;復(fù)位(有具體的時序要求) SETB DQ NOP CLR DQ ;主機發(fā)出延時537微秒

23、的復(fù)位低脈沖 MOV R1,#3 DLY: MOV R0,#107 DJNZ R0,$ DJNZ R1,DLY ; ;然后拉高數(shù)據(jù)線 SETB DQ NOP NOP NOP ; ;等待DS18B20回應(yīng) MOV R0,#25H T2: JNB DQ ,T5 DJNZ R0, T2 ; ;時序要求延時一段時間 T5: MOV R0,#117 T6: DJNZ R0,T6 ; T7: SETB DQ RET ;= ;=DS1302初始化=SET_1302: MOV DS1302_ADDR, #8EH ;寫DS1302控制指令 MOV DS1302_DATA, #00H ;寫數(shù)據(jù)到DS1302的8E

24、控制寄存器中,允許對其進行寫操作 LCALL WRITE ;調(diào)用寫DS1302子程序 MOV DS1302_ADDR, #90H ;寫DS1302控制指令 MOV DS1302_DATA,#0A6H ;寫數(shù)據(jù)到DS1302的90控制寄存器中,對電池涓流充電,充電電流為1.1mA LCALL WRITE ;調(diào)用寫DS1302子程序 RET;=查詢忙碌標(biāo)志=CHECK_BUSY: PUSH ACCBUSY_LOOP: CLR E SETB RW CLR RS SETB E MOV A, p0 JB p0.7,BUSY_LOOP POP ACC LCALL DEL RET;-;=延時程序= DEL:

25、 MOV R6,#5 L1: MOV R7,#248 DJNZ R7,$ DJNZ R6,L1 RET ; 寫入DS18B20子程序 ;寫入DS18B20(有具體的時序要求) WRITE_1820: MOV R2,#8 ;一共8位數(shù)據(jù) CLR C ;C=0 WR1: CLR DQ ;總線低位,開始寫入 MOV R3,#6 DJNZ R3,$ ;保持16微秒以上 RRC A ;把字節(jié)DATA分成8個BIT環(huán)移給C MOV DQ, C ;寫入一個BIT MOV R3,#23 DJNZ R3,$ ;等待 SETB DQ ;重新釋放總線 NOP DJNZ R2,WR1 ;寫入下一個BIT SETB D

26、Q ;釋放總線 RET ; 讀出DS18B20子程序 ;將溫度值從DS18B20中讀出(有具體的時序要求) READ_1820: MOV R4,#4 MOV R1,#TEMPL ;存入25H、26H、27H、28H RE0: MOV R2,#8 ;數(shù)據(jù)一共有8位 RE1: CLR C SETB DQ NOP NOP CLR DQ ;讀前總線保持為低位 NOP NOP NOP SETB DQ ;總線釋放 ; MOV R3,#9 DJNZ R3,$ ;延時18微妙 MOV C, DQ ;從總線讀到一個BIT ; MOV R3,#23 ; DJNZ R3,$ ;等待50微秒 RRC A ;把讀得的位

27、值環(huán)移給A DJNZ R2,RE1 ;讀下一個BIT MOV R1,A INC R1 ; R1內(nèi)數(shù)據(jù)遞增 DJNZ R4,RE0 RET ; LCD 1602 顯示程序 ;初始化設(shè)置 SET_LCD: CLR E CALL INIT_LCD ;初始化 LCD CALL STORE_DATA ;將自定義字符存入LCD的CGRAM RET; LCD 初始化子程序 INIT_LCD: MOV A,#38H ;設(shè)置8位、2行、5x7點陣 ACALL WR_COMM ; 調(diào)用寫指令子程序 ACALL DELAY1 ;調(diào)用延時子程序 MOV A,#0CH ;開顯示,光標(biāo)不閃爍 ACALL WR_COMM

28、;調(diào)用寫指令子程序 ; ACALL DELAY1 ;調(diào)用延時子程序 MOV A,#01H ;清除 LCD 顯示屏 ACALL WR_COMM ;調(diào)用寫指令子程序 ; ACALL DELAY1 ;調(diào)用延時子程序 RET ; 顯示溫度標(biāo)記子程序 TEMP_BJ: MOV A, #0CEH ;設(shè)定第二行起始地址 ACALL WR_COMM ;調(diào)用寫指令子程序 MOV DPTR,#BJ ;存代碼表 MOV R1 ,#0 ;使指針指到表中第一個碼 MOV R0 ,#2 ;取碼次數(shù) Tp0: MOV A,R1 ;A為0 MOVC A,A+DPTR ;取碼 ACALL WR_DATA ;調(diào)用寫數(shù)據(jù)子程序 I

29、NC R1 ;R1值加1 DJNZ R0,Tp0 ;判斷是否將代碼讀取完? RET ; BJ: ;代碼表 DB 00H,"C" ; 自定義字符子程序 ;將自定義字符寫入LCD1602的CGRAM中 STORE_DATA: MOV A,#40H ;指定CG RAM起始地址 ACALL WR_COMM ;將指令寫入LCD MOV R2,#08H ;圖形數(shù)據(jù)長度8個字節(jié) MOV DPTR,#TAB ;存代碼表 MOV R3,#00H ;使指針指到表中第一個碼 S_D: MOV A,R3 ;A為0 MOVC A,A+DPTR ;讀取表代碼 ACALL WR_DATA ;調(diào)用寫入數(shù)據(jù)

30、指令 INC R3 ;R3值加1 DJNZ R2, S_D ;判斷是否將代碼讀取完? RET ; ; TAB: ;代碼表 DB 0CH,12H,12H,0CH DB 00H,00H,00H,00H ; 顯示"OK"信息子程序 MEU_OK: MOV DPTR,#M_OK1 ;指針指到顯示消息 MOV A,#1 ;顯示在第一行 ACALL LCD_PRINT ;LCD顯示 MOV DPTR,#M_OK2 ;指針指到顯示消息 MOV A,#2 ;顯示在第一行 ACALL LCD_PRINT ;LCD顯示 RET ; M_OK1: DB " - - WK: "

31、 ,0 M_OK2: DB " - - ",0 ; 菜單顯示子程序 ;在LCD的第一行或第二行顯示字符 LCD_PRINT: CJNE A,#1,LINE2 ;判斷是否為第一行 LINE1: ACALL CLR_LINE ;清除該行字符數(shù)據(jù) MOV A,#80H ;設(shè)置 LCD 的第一行地址 ACALL WR_COMM ;寫入命令 JMP FILL LINE2: ACALL CLR_LINE ;清除該行字符數(shù)據(jù) MOV A,#0C0H ;設(shè)置 LCD 的第二行地址 ACALL WR_COMM FILL: CLR A ;填入字符 MOVC A,A+DPTR ;由消息區(qū)取出字符 CJNE A,#0,LC1 ;判斷是否為結(jié)束碼 RET LC1: ACALL WR_DATA ;寫入數(shù)據(jù) INC DPTR ;指針加1 JMP FILL ;繼續(xù)填入字符 RET; LCD顯示子程序 CONV: MOV A,73H ;加載百位數(shù)據(jù) MOV X,#9 ;設(shè)置位置 CJNE A,#1,CO1 JMP CO2 CO1: MOV A,#" " MOV B,X ACALL LCDP2 JMP CO3 CO2

溫馨提示

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

評論

0/150

提交評論