基于STM32的漢字顯示系統(tǒng)_第1頁
基于STM32的漢字顯示系統(tǒng)_第2頁
基于STM32的漢字顯示系統(tǒng)_第3頁
基于STM32的漢字顯示系統(tǒng)_第4頁
基于STM32的漢字顯示系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、沈陽理工大學(xué)課程設(shè)計(jì)報(bào)告摘 要隨著社會經(jīng)濟(jì)的迅速發(fā)展,如今漢字顯示系統(tǒng)應(yīng)用于各個(gè)領(lǐng)域中。LCD顯示屏的技術(shù)和產(chǎn)業(yè)都取得了長足的發(fā)展,作為重要的現(xiàn)代信息發(fā)布媒體之一,LCD顯示屏在證券交易、金融、交通、體育、廣告等領(lǐng)域被廣泛的應(yīng)用?;赟TM32的LCD顯示可以更好的滿足各種需求,也更便于操作和實(shí)現(xiàn)。漢字顯示系統(tǒng)主要由STM32芯片作為LCD彩色顯示屏的主要核心控制器,并且通過字庫制作軟件制作相應(yīng)的字庫經(jīng)過SD卡將自己所制作的字庫中的漢字在屏幕中依次顯示出來,同時(shí)可以通過按鍵控制,來控制現(xiàn)實(shí)的漢字的暫停,繼續(xù),更新字庫。本系統(tǒng)是利用STM32開發(fā)板配合SD卡實(shí)現(xiàn)將已存入字庫中的漢字完整的顯示在L

2、CD彩色顯示屏上。關(guān)鍵詞: STM32開發(fā)板;LCD彩色顯示屏;開關(guān)目 錄1 引言12 總體設(shè)計(jì)22.1 漢字顯示設(shè)計(jì)分析22.2 漢字顯示的基本原理22.3 系統(tǒng)的結(jié)構(gòu)框圖33 詳細(xì)設(shè)計(jì)43.1 硬件設(shè)計(jì)43.1.1 芯片介紹43.1.2 功能簡介43.2 軟件設(shè)計(jì)83.2.1 錄字軟件83.2.2 主函數(shù)部分93.2.3 硬件部分程序123.2.4 字庫相關(guān)程序143.2.5 FAT系統(tǒng)183.2.6 程序流程圖194 實(shí)驗(yàn)結(jié)果及分析204.1 硬件實(shí)驗(yàn)結(jié)果204.2 結(jié)果分析205 結(jié)論21參考文獻(xiàn)22 221 引言 隨著嵌入式技術(shù)的迅猛發(fā)展,人機(jī)交互界面也越來越顯示出它的重要性。實(shí)際的

3、LCD應(yīng)用中要顯示的漢字一般很有限,并不需要完整的漢字庫,再加上完整字庫在程序中要占用大量空間,因而非完整漢字庫的研究就有了其自身的現(xiàn)實(shí)必要性。本次課程設(shè)計(jì)主要以TFTLCD的LCD顯示模塊,完整的實(shí)現(xiàn)了漢字庫的建立與顯示。TFT-LCD即薄膜晶體管液晶顯示器。其英文全稱為:Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個(gè)象素上都設(shè)置有一個(gè)薄膜晶體管(TFT),可有效地克服非選通時(shí)的串?dāng)_,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。目前,顯示技術(shù)和顯示

4、工業(yè)的發(fā)展迅速。顯示技術(shù)是傳遞視覺的信息技術(shù)。液晶顯示器件LCD是當(dāng)今最有發(fā)展前途的一種平板顯示器件,它具有很多獨(dú)到的優(yōu)異特性。它具有顯示信息多、易于多彩化、體積小、重量輕、功耗低、壽命長、價(jià)格低、無輻射、無污染、接口控制方便等優(yōu)點(diǎn)。2 總體設(shè)計(jì)2.1 漢字顯示設(shè)計(jì)分析 首先,要通過字庫制作軟件建立一個(gè)小的自己設(shè)計(jì)的漢字字庫;其次需要將創(chuàng)建好的字庫文件復(fù)制到SD卡中并將其插入到STM32的開發(fā)板上;最后就是編寫程序,下載程序反復(fù)調(diào)試得出想要的結(jié)果。具體要實(shí)現(xiàn)的目標(biāo)如下:1.更新字庫,即文檔可進(jìn)行變換;2. 初始狀態(tài)顯示本次課設(shè)的基本信息;3.可以將輸出的文字進(jìn)行字體、顏色、大小的變換;4. 可

5、對顯示過的漢字進(jìn)行計(jì)數(shù);5. 顯示顯每個(gè)漢字所對應(yīng)的內(nèi)存字節(jié);6. 在運(yùn)行過程中可實(shí)現(xiàn)暫停、繼續(xù)、變速等功能。7. 每顯示一個(gè)漢字后,LED0 小燈會閃爍提示一下。2.2 漢字顯示的基本原理漢字在液晶上的顯示其實(shí)就是一些點(diǎn)的顯示與不顯示,這就相當(dāng)于我們的筆一樣,有筆經(jīng)過的地方就畫出來,沒經(jīng)過的地方就不畫,所以只要知道了一個(gè)漢字點(diǎn)陣的生成方法,那么我們在程序里面就可以把這個(gè)點(diǎn)陣數(shù)據(jù)解析成一個(gè)漢字。首先需要用字庫制作軟件制作一個(gè)GBK字庫,將制作好的字庫放在SD卡里面,然后通過SD卡,將字庫文件復(fù)制到W25X16里,這樣,W25X16就相當(dāng)于一款漢字字庫芯片了,從而使STM32芯片讀取其中的數(shù)據(jù)顯

6、示到LCD顯示屏上。2.3 系統(tǒng)的結(jié)構(gòu)框圖按鍵控制暫停繼續(xù)更新字庫顯示調(diào)速STM32F103RB芯片 SD卡創(chuàng)建字庫在LCD上顯示漢字 圖2.1 系統(tǒng)結(jié)構(gòu)框圖3 詳細(xì)設(shè)計(jì)3.1 硬件設(shè)計(jì)3.1.1 芯片介紹STM32開發(fā)板主要采用STM32F103RBT6作為MCU,STM32F103的型號眾多,我們選擇這款的原因是看重其性價(jià)比,作為一款低端開發(fā)板,選擇STM32F103RBT6是最佳的選擇。128K FLASH、20K SRAM、2個(gè)SPI、3個(gè)串口、1個(gè)USB、1個(gè)CAN、2個(gè)12位的ADC、RTC、51個(gè)可用IO腳,這樣的配置無論放到哪里都是很不錯(cuò)的了,更重要的是其價(jià)格,不到13元的批量

7、價(jià),足以秒殺很多其他芯片了,所以我們選擇了它作為我們的主芯片。3.1.2 功能簡介開機(jī)的時(shí)候先檢測 W25X16中是否已經(jīng)存在字庫,如果存在,則按次序顯示漢字。如果沒有,則檢測 SD卡和文件系統(tǒng),并查找 SYSTEM 文件夾下的FONT 文件夾,在該文件夾內(nèi)查找UNI2GBK.SYS和GBK16.FON。在檢測到這些文件之后,就開始更新字庫,更新完畢才開始顯示漢字。每顯示一個(gè)漢字LED0 小燈會閃爍一下。WK_UP按鍵調(diào)整顯示漢字的速度;key1控制繼續(xù)和暫停;key0更新SD卡。所要用到的硬件資源如下: 1)STM32F103RBT6。 2)外部LED0。 3)TFTLCD 液晶模塊。 4)

8、按鍵WK_UP、key1、key0。 5)W25X16。 6) SD卡。1、 STM32的簡單介紹圖3.1 STM32原理圖選擇STM32F103RBT6 作為MCU,原因是其性價(jià)比高,128K FLASH、20K SRAM、2 個(gè)SPI、3 個(gè)串口、1 個(gè)USB、1 個(gè)CAN、2 個(gè)12 位的ADC、RTC、51 個(gè)可用IO 腳,所以我們選擇了它作為我們的主芯片。2、 外部LED0圖3.2 外部LED0原理圖其中PWR 是系統(tǒng)電源指示燈,為藍(lán)色。LED0 和LED1 分別接在PA8 和PD2 上,PA8 還可以通過TIM1 的通道1 的PWM 輸出來控制DS0 的亮度。3、 TFTLCD 液

9、晶模塊圖3.3 TFTLCD 液晶顯示原理圖TFT_LCD 是一個(gè)通用的液晶模塊接口。OLED 是一個(gè)給OLED 顯示模塊供電的接口,它和TFT_LCD 拼接在一起。當(dāng)使用2.4/2.8的LCD 時(shí),我們接到TFT_LCD 上就可以了,而當(dāng)我們使用ALIENTEK的OLED 模塊時(shí),則接OLED 排陣做電源,同時(shí)會連接到TFT_LCD 上的部分管腳,從而實(shí)現(xiàn)OLED 與MCU 的連接。4、 按鍵圖3.4 按鍵輸入原理圖KEY0 和KEY1 用作普通按鍵輸入,分別連接在PA13 和PA15 上,他們都連接在了JTAG相關(guān)的引腳上(KEY0 還連接在SWDIO 上),KEY0 和KEY1 還和PS

10、/2 的DAT 和CLK 線共用,他們都通過JTAG 的上拉電阻來提供上拉。 WK_UP 按鍵連接到PA0(STM32 的WKUP 引腳),它除了可以用作普通輸入按鍵外,還可以用作STM32 的喚醒輸入。這個(gè)按鍵是高電平觸發(fā)的。5、 W25X16圖3.5 25X16原理圖這是ALIENTEK MiniSTM32 開發(fā)板板載的一顆 FLASH芯片,型號為W25X16。這顆芯片的容量為16M bit,也就是 2M字節(jié),容量和AT45DB161 一樣。適合存儲不常修改的數(shù)據(jù),比如字庫等。6、 SD 卡圖3.6 SD卡部分原理圖插入SD 卡可以外擴(kuò)大容量存儲設(shè)備,可以用來記錄數(shù)據(jù)。SD 卡我們使用的是

11、SPI 模式通信,SD 卡的SPI 接口連接到STM32 的SPI1 上,SD_CS 接在PA3 上。3.2 軟件設(shè)計(jì)漢字顯示系統(tǒng)需要有STM32開發(fā)板配合SD卡使用,因此其程序需要分為以下幾個(gè)文件夾,用來讀取SD卡上的字庫和UNICODE到GBK的轉(zhuǎn)換碼表的FAT系統(tǒng)文件,硬件組成文件HARDWARE系統(tǒng)文,漢字字庫存儲,及讀取相應(yīng)的文件TEXT文件,以及存放主程序文件USER文件件,和STM32的系統(tǒng)文件。3.2.1 錄字軟件雙擊如圖所示的軟件,進(jìn)入主界面,如圖3.7。選擇中文>小字庫>開始輸入文本>創(chuàng)建>確定,如圖3.8。完成后,將生成的文件拷入SD卡中。圖3.7

12、 點(diǎn)陣字庫生成器圖3.8 創(chuàng)建字庫3.2.2 主函數(shù)部分int main(void)u32 fontcnt; u8 i,j; u16 fx,fy;u8 fontx2; u8 key; u16 t,ts;Stm32_Clock_Init(9); delay_init(72);uart_init(72,9600); LCD_Init(); KEY_Init(); LED_Init();SPI_Flash_Init();if(Font_Init()UPD:POINT_COLOR=BLACK;LCD_Clear(WHITE);LCD_ShowString(60,50," STM32 &quo

13、t;);LCD_ShowString(60,70,"Font Updating.");SD_Initialize(); while(FAT_Init() LCD_ShowString(60,90,"FAT SYS ERROR"); i= SD_Initialize();if(i)LCD_ShowString(60,110,"SD_CARD ERROR"); delay_ms(500);LCD_Fill(60,90,240,126,WHITE);delay_ms(500); LED0=!LED0; LED1=!LED1; while(U

14、pdate_Font()!=0) LCD_ShowString(60,110,"SYSTEM FILE LOST");delay_ms(500);LCD_ShowString(60,130,"Please Check.");delay_ms(500); LED0=!LED0; LED1=!LED1; ; LCD_Clear(WHITE); RESET:LCD_Clear(WHITE);POINT_COLOR=RED;Show_Str(5,5,"電子系統(tǒng)設(shè)計(jì)",16,0);Show_Str(140,5,"漢字顯示系統(tǒng)"

15、;,16,0); POINT_COLOR=BLUE; Show_Str(10,40,"內(nèi)碼:高字節(jié) ",16,0);Show_Str(130,40,"低字節(jié)",16,0);Show_Str(10,60,"對應(yīng)漢字",16,0);Show_Str(130,60,"計(jì)數(shù)器",16,0);Show_Str(60,270," 張政 馬舒陽 劉佳萍 ",16,0);Show_Str(90,290," 2015年7月9日",16,0);POINT_COLOR=BLACK;fx=15; f

16、y=80; ts=600;while(1)fontcnt=0;for(i=0x81;i<0xp;i+)fontx0=i; LCD_ShowNum(100,40,i,3,16);for(j=0x40;j<0xfe;j+) if(j=0x7f)continue;fontcnt+;LCD_ShowNum(210,40,j,3,16);LCD_ShowNum(190,60,fontcnt,5,16); fontx1=j; fx+=15;if(fx>=220) fx=5;fy+=20; if(fy>130) POINT_COLOR=RED;while(1)key=KEY_Scan

17、();if(key=1)goto UPD;if(key=2)goto RESET;LCD_ShowString(60,190,"Show Over");delay_ms(500);LCD_ShowString(60,210,"Please Check.");delay_ms(500);LCD_Fill(60,210,220,230,WHITE); Show_Font(100,60,fontx,16,0);Show_Font(fx,fy,fontx,16,0); t=ts;while(t-) delay_ms(1);key=KEY_Scan();if(ke

18、y=1)goto UPD;else if(key=2)while(1) key=KEY_Scan();if(key=1)goto UPD;if(key=2) break; break; else if(key=3) if(ts=600) ts=200;else ts=600; LED0=!LED0; 3.2.3 硬件部分程序void KEY_Init(void) / 鍵盤相應(yīng)程序RCC->APB2ENR|=1<<2; GPIOA->CRL&=0XFFFFFFF0; GPIOA->CRL|=0X00000008; GPIOA->CRH&=0X0

19、F0FFFFF; GPIOA->CRH|=0X80800000; GPIOA->ODR|=1<<13; GPIOA->ODR|=1<<15; u8 KEY_Scan(void) static u8 key_up=1; JTAG_Set(JTAG_SWD_DISABLE);if(key_up&&(KEY0=0|KEY1=0|KEY2=1) delay_ms(10); key_up=0;if(KEY0=0) JTAG_Set(SWD_ENABLE);return 1; else if(KEY1=0)JTAG_Set(SWD_ENABLE);

20、 return 2;else if(KEY2=1)JTAG_Set(SWD_ENABLE); return 3; else if (KEY0=1&&KEY1=1&&KEY2=0) key_up=1; JTAG_Set(SWD_ENABLE); return 0;void LED_Init(void) / led相應(yīng)程序 RCC->APB2ENR|=1<<2; RCC->APB2ENR|=1<<5; GPIOA->CRH&=0XFFFFFFF0; GPIOA->CRH|=0X00000003; GPIOA-&

21、gt;ODR|=1<<8; GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL|=0X00000300;GPIOD->ODR|=1<<2; void SPIx_Init(void) /SD卡驅(qū)動(dòng)程序RCC->APB2ENR|=1<<2; RCC->APB2ENR|=1<<12; GPIOA->CRL&=0X000FFFFF; GPIOA->CRL|=0XBBB00000; GPIOA->ODR|=0X7<<5; SPI1->CR1|=0<<

22、;10; SPI1->CR1|=1<<9; SPI1->CR1|=1<<8; SPI1->CR1|=1<<2; SPI1->CR1|=0<<11; SPI1->CR1|=1<<1; SPI1->CR1|=1<<0; SPI1->CR1|=7<<3; SPI1->CR1|=0<<7; SPI1->CR1|=1<<6; SPIx_ReadWriteByte(0xff); void SPIx_SetSpeed(u8 SpeedSet) SP

23、I1->CR1&=0XFFC7;switch(SpeedSet) case SPI_SPEED_2: SPI1->CR1|=0<<3; break;case SPI_SPEED_4: SPI1->CR1|=1<<3; break;case SPI_SPEED_8: SPI1->CR1|=2<<3; break;case SPI_SPEED_16: SPI1->CR1|=3<<3; break;case SPI_SPEED_256: SPI1->CR1|=7<<3; break; SPI1-&

24、gt;CR1|=1<<6; u8 SPIx_ReadWriteByte(u8 TxData)u8 retry=0; while(SPI1->SR&1<<1)=0) retry+; if(retry>200)return 0; SPI1->DR=TxData; retry=0;while(SPI1->SR&1<<0)=0) retry+; if(retry>200)return 0; return SPI1->DR; 3.2.4 字庫相關(guān)程序u32 FONT16ADDR ; u32 FONT12ADDR ;u

25、32 UNI2GBKADDR; #ifdef EN_UPDATE_FONTu8 temp512; u8 Update_Font(void) u32 fcluster=0; u32 i; u32 tempsys2; float prog; u8 t; FileInfoStruct FileTemp; if(FAT32_Enable) fcluster=FirstDirClust;else fcluster=0; FileTemp=F_Search (fcluster, (unsigned char *) folder0, T_FILE);if(FileTemp.F_StartCluster=0)

26、 return 1; FileTemp=F_Search(FileTemp.F_StartCluster, (unsigned char*)folder1, T_FILE);if(FileTemp.F_StartCluster=0) return 2; fcluster=FileTemp.F_StartCluster; FileTemp=F_Search (fcluster, (unsigned char *) sysfile2, T_SYS); if(FileTemp.F_StartCluster=0) return 3; LCD_ShowString (20,90,"Write

27、UNI2GBK to FLASH.");LCD_ShowString (108,110,"%");F_Open(&FileTemp);i=0; while (F_Read (&FileTemp,temp) )if (i<FileTemp.F_Size) SPI_Flash_Write (temp,i+100000,512) ; i+=512;prog=(float)i/FileTemp.F_Size; prog*=100;if(t!=prog) t=prog; if(t>100) t=100;LCD_ShowNum(84,110,t,3

28、,16); UNI2GBKADDR = 100000;tempsys0 = UNI2GBKADDR;tempsys1 = FileTemp.F_Size; SPI_Flash_Write(u8*)tempsys,0,8); delay_ms(1000); FONT16ADDR = FileTemp.F_Size+UNI2GBKADDR;FileTemp = F_Search(fcluster, (unsigned char*)sysfile0 , T_FON); if (FileTemp.F_StartCluste r= 0) return 4;LCD_ShowString (20,90,&q

29、uot;Write FONT16 to FLASH. ");F_Open(&FileTemp);i=0; while(F_Read(&FileTemp,temp) if(i<FileTemp.F_Size) SPI_Flash_Write(temp,i+FONT16ADDR,512);i+=512; prog = (float)i/FileTemp.F_Size; prog* = 100; if(t!=prog) t=prog;if(t>100)t=100; LCD_ShowNum(84,110,t,3,16); tempsys0=FONT16ADDR;t

30、empsys1=FileTemp.F_Size;SPI_Flash_Write(u8*)tempsys,8,8);delay_ms(1000);FONT12ADDR = FileTemp.F_Size+FONT16ADDR;t=0XAA; SPI_Flash_Write(&t,24,1); LCD_ShowString (20, 90," Font Update Successed ") ; return 0; #endif u8 Font_Init(void) u32 tempsys2; u8 fontok=0 ; SPI_Flash_Read(&font

31、ok,24,1) ; if(fontok!=0XAA) return 1; SPI_Flash_Read(u8*)tempsys,0,8) ; UNI2GBKADDR=tempsys0; SPI_Flash_Read(u8*)tempsys,8,8) ; FONT16ADDR=tempsys0; SPI_Flash_Read(u8*)tempsys,16,8) ; FONT12ADDR=tempsys0; return 0; /獲取字庫資源信息void Get_HzMat(unsigned char *code,unsigned char *mat,u8 size) unsigned char

32、 qh,ql; unsigned char i; unsigned long foffset;qh=*code;ql=*(+code);if(qh<0x81|ql<0x40|ql=0xff|qh=0xff) for(i=0;i<(size*2);i+)*mat+=0x00;return; if(ql<0x7f)ql-=0x40; else ql-=0x41; qh-=0x81; foffset=(unsigned long)190*qh+ql)*(size*2);if(size=16)SPI_Flash_Read(mat,foffset+FONT16ADDR,32);e

33、lse SPI_Flash_Read(mat,foffset+FONT12ADDR,24); void Show_Font(u16 x,u16 y,u8 *font,u8 size,u8 mode) u8 temp,t,t1; u16 y0=y; u8 dzk32; u16 tempcolor; Get_HzMat(font,dzk,size);if(mode=0)for(t=0;t<size*2;t+) temp=dzkt; for(t1=0;t1<8;t1+) if(temp&0x80) LCD_DrawPoint(x,y); else tempcolor=POINT_

34、COLOR; POINT_COLOR=BACK_COLOR; LCD_DrawPoint(x,y); POINT_COLOR=tempcolor; temp<<=1; y+; if(y-y0)=size)y=y0;x+;break; else for (t=0; t<size*2; t+) temp=dzkt; for(t1=0;t1<8;t1+) if(temp&0x80) LCD_DrawPoint(x,y); temp<<=1; y+; if(y-y0)=size) y=y0;x+;break; void Show_Str(u16 x,u16

35、y,u8*str,u8 size,u8 mode) u8 bHz=0; while(*str!=0) if(!bHz) if(*str>0x80)bHz=1; else if(x>(LCD_W-size/2) y+=size; x=0 ; if (y>(LCD_H-size) break; if (*str=13) y+=size;x=0;str+; else LCD_ShowChar(x,y,*str,size,mode); str+; x+=size/2; else bHz=0; if(x>(LCD_W-size) y+=size;x=0; if(y>(LCD

36、_H-size)break; Show_Font(x,y,str,size,mode); str+=2; x+=size; u16 my_strlen(u8*str) u16 len=0; while(*str!='0') str+; len+; return len; void my_stradd( u8*str1, u8*str2 )while(*str1!='0')str1+; while(*str2!='0')*str1=*str2;str2+;str1+;*str1='0' void Show_Str_Mid(u16 x

37、,u16 y,u8*str,u8 size,u8 len) u16 strlenth=0;strlenth=my_strlen(str);strlenth*=size/2;if(strlenth>len)Show_Str(x,y,str,size,1);else strlenth=(len-strlenth)/2;Show_Str(strlenth+x,y,str,size,1); 3.2.5 FAT系統(tǒng)/用來讀取SD卡上的字庫FAT系統(tǒng)相關(guān)程序:DWORD FirstDirClust; DWORD FirstDataSector;WORD BytesPerSector; DWORD F

38、ATsectors;WORD SectorsPerClust; DWORD FirstFATSector;DWORD FirstDirSector; fat32DWORD RootDirSectors;DWORD RootDirCount;BYTE FAT32_Enable;DWORD Cur_Dir_Cluster; FAT_TABLE FAT_TAB; FileInfoStruct F_Info3; u8 fat_buffer512;u8 LongNameBuffer MAX_LONG_NAME_SIZE; BOOL LongNameFlag = 0;const unsigned char *filetype23= "MP1","MP2","MP3","

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論