版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要隨著全球經(jīng)濟(jì)的不斷增長(zhǎng)和移動(dòng)通信技術(shù)的不斷發(fā)展,數(shù)字媒體設(shè)備也不斷的在進(jìn)步發(fā)展。人們可以使用他們的智能手機(jī)來更好地豐富他們的生活。手機(jī)應(yīng)用是提高性能和改善用戶體驗(yàn)的主要來源。這同時(shí)改變了我們的生活方式,是時(shí)代進(jìn)步的象征。在我們的日常生活中,看視頻、聽音樂都是常見的釋放壓力的方式。為了滿足人們的娛樂休閑需求,隨著手機(jī)軟件的功能提高,播放器應(yīng)運(yùn)而生。既然有著龐大的市場(chǎng)需求,這便激發(fā)了我們?nèi)ラ_發(fā)一款性能優(yōu)良,并且滿足用戶基本要求的多功能播放器。本課題研究的是基于STM32多功能播放器的應(yīng)用界面設(shè)計(jì)。本次課程設(shè)計(jì)基本上是在STM32F767上,使用MDK5代碼編輯軟件,利用C語言編譯代碼,通過FMC/LTDC接口連接LCD液晶屏,采用微處理器外掛SPI接口Flash存儲(chǔ)字庫信息,讀取SD卡圖片文件,通過STM32F767解碼并顯示,完成基于ARM處理器顯示系統(tǒng)的硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)。本論文將圍繞播放器應(yīng)用界面系統(tǒng),討論其的研究背景、現(xiàn)狀以及意義;播放器應(yīng)用界面的設(shè)計(jì)思路和方法、實(shí)際操作步驟和過程,以及最終實(shí)現(xiàn)結(jié)果與總結(jié)。關(guān)鍵詞:播放器應(yīng)用界面;STM32F767;C語言;LCD英文題目AbstractWiththecontinuousgrowthofglobaleconomyandthegeneralProgressofmobilecorrespondtechnique,digitalmediaequipmentisalsoconstantlyinprogress.Peoplecanusetheirsmartphonestobetterenrichtheirlives.Mobileapplicationsarethemainsourceofimprovingperformanceandconsumerexperience.Atthesametime,ithaschangedourwayoflifeandisasymboloftheprogressofthetimes.Inourdailylife,watchingvideoandlisteningtomusicarecommonwaystoreleasepressure.Inordertomeettheneedsofpeople'sentertainmentandleisure,withtheimprovementofthefunctionofmobilesoftware,themusicplayercameintobeing.Sincethereisahugemarketdemand,thishasinspiredustodevelopamultifunctionplayerwithexcellentperformanceandsatisfyingthebasicrequirementsofusers.ThisprojectisbasedonSTM32multi-functionplayerapplicationinterfacedesign.Thiscoursedesignisbasicallybasedonstm32f767,usingmdk5codeeditingsoftware,Clanguagetocompilecode,FMC/ltdcinterfacetoconnectLCDscreen,usingSPIinterfaceflashmemoryinformation,readingSDcardpicturefiles,decodinganddisplayingthroughstm32f767,completingthehardwarecircuitdesignandsoftwareprogramdesignbasedonARMprocessordisplaysystem.Thispaperwillfocusontheapplicationinterfacesystemofplayer,anddiscussitsresearchbackdrop,currentsituationandsignificance;theprojectthinkingsandmeansoftheplayerapplicationinterface,hands-onstepsandprocesses,aswellasthefinalimplementationresultsandsummary.Keywords:Playerapplicationinterface;STM32F767;C;LCD
目錄1前言 11.1本設(shè)計(jì)背景及意義 11.2本設(shè)計(jì)研究現(xiàn)狀 11.3本設(shè)計(jì)主要研究?jī)?nèi)容 12本設(shè)計(jì) 22.1設(shè)計(jì)原理 22.2硬件設(shè)計(jì) 22.2.1MCU 22.2.2LCD液晶屏 32.2.3觸摸屏 92.3軟件設(shè)計(jì) 122.3.1LCD觸摸屏驅(qū)動(dòng) 122.3.2圖文顯示 142.3.3輸入法 173結(jié)論 21參考文獻(xiàn) 22致謝 23附錄 24.2硬件設(shè)計(jì)2.2.1MCU這里使用的芯片是STM32F767IGT6,其使用六級(jí)流水線,其有JPEG編解碼器,并且有512KBSRAM、1024KBFLASH、兩個(gè)32位定時(shí)器、十三個(gè)16位定時(shí)器、兩個(gè)DMA控制器(共十六個(gè)通道)、一個(gè)QSPI接口、六個(gè)SPI、四個(gè)IIC、兩個(gè)SAI、兩個(gè)USB(支持HOST或SLAVE)、八個(gè)串口、三個(gè)12位ADC、一個(gè)FMC接口、一個(gè)TFT-LCD控制器(LTDC)、兩個(gè)SDMMC接口、一個(gè)隨機(jī)數(shù)生成器和140個(gè)常用IO口,這個(gè)芯片的主頻達(dá)到216Mhz,能支持多種應(yīng)用開發(fā)。以下是MCU原理圖的部分內(nèi)容:圖2-1圖2-2儲(chǔ)備部分電源:引腳VBAT的供電使用外部電源VCC3.3與紐扣電池CR1220一起供電的方法,使用VCC3.3的時(shí)候,則VBAT不用CR1220供電。若不使用VCC3.3,就用CR1220來供電。所以,VBAT一直都是有電的,能確保RTC的走時(shí)和儲(chǔ)備寄存器的信息不會(huì)走丟。2,原理圖中的電阻R8與電阻R9為了分開MCU區(qū)域與外部電路,主要目的是為了以后的生產(chǎn)工作,假如3.3V電源短路,可以斷開這兩個(gè)電阻,來確定是MCU部分短路,還是外部短路,方便開發(fā)以及維護(hù)。3,PDR_ON引腳,用于復(fù)位控制等,一般接VCC即可。2.2.2LCD液晶屏液晶薄膜晶體管顯示器(TFT-LCD),俗稱叫做液晶真彩顯示器。這個(gè)液晶顯示屏每個(gè)像素為單位,都對(duì)應(yīng)一個(gè)薄膜晶體管(TFT)。這樣對(duì)非選通時(shí)的克服串?dāng)_非常有用,讓液晶顯示屏的靜態(tài)特性和掃描線的數(shù)量沒有聯(lián)系,所以圖像質(zhì)量有很大的提升。實(shí)際上RGBLCD也是TFT-LCD,但是它們接口有所不同。(1)RGBLCD的信號(hào)線如表2-1:表2-1一般的RGB屏都有如表所示的信號(hào)線,有24根顏色數(shù)據(jù)線(RGB各站8根,即RGB888格式),這樣可以表示最多1600W色,DE、VS、HS和DCLK,用于控制數(shù)據(jù)傳輸。(2)RGBLCD的驅(qū)動(dòng)模式一般RGB屏有DE與HV這兩種驅(qū)動(dòng)模式。使用DE模式時(shí),如果DE信號(hào)為高或者低,則數(shù)據(jù)有效。而使用HV模式時(shí),則通過行和場(chǎng)的同步,來表示掃描的行和列。這兩個(gè)模式的行進(jìn)行掃描的時(shí)序圖(以800*480的LCD面板為例),如下所示:圖2-3從圖2-3中可以看出,DE和HV模式,時(shí)序基本一樣,DEN模式需要提供DE信號(hào)(DEN),而HV模式,則無需DE信號(hào)。圖中的HSD即HS信號(hào),用于行同步,注意:在DE模式下面,是可以不用HS信號(hào)的,即不接HS信號(hào),液晶照樣可以正常工作。圖中的thpw為水平同步有效信號(hào)脈寬,用于表示一行數(shù)據(jù)的開始;thb為水平后廊,表示從水平有效信號(hào)開始,到有效數(shù)據(jù)輸出之間的像素時(shí)鐘個(gè)數(shù);thfp為水平前廊,表示從這一行信號(hào)完成,再到下一個(gè)同步水平信號(hào)開始之間的像素時(shí)鐘數(shù)量;這幾個(gè)時(shí)間非常重要,在配置LTDC的時(shí)候,需要根據(jù)LCD的數(shù)據(jù)手冊(cè),進(jìn)行正確的設(shè)置。圖2-3僅是一行數(shù)據(jù)的掃描,輸出800個(gè)像素點(diǎn)數(shù)據(jù),而液晶面板總共有480行,這就還需要一個(gè)垂直掃描時(shí)序圖,如圖所示:圖2-4圖中的VSD就是垂直同步的信號(hào),HSD就是水平同步的信號(hào),DE為數(shù)據(jù)使能信號(hào)。由圖2-4知,一個(gè)垂直掃描,剛好就是480個(gè)有效的DE脈沖信號(hào),每一個(gè)DE時(shí)鐘周期,掃描一行,總共掃描480行,完成一幀數(shù)據(jù)的顯示。這就是800*480的LCD面板掃描時(shí)序,其他分辨率的LCD面板,時(shí)序類似。圖中的tvpw是垂直同步的有效信號(hào)脈寬,用于表示一幀數(shù)據(jù)的開始;tvb是垂直后廊,表示垂直同步信號(hào)后面的無效行數(shù);tvfp是垂直前廊,表示一幀數(shù)據(jù)輸出結(jié)束后,到下一個(gè)垂直同步信號(hào)開始之前的無效行數(shù);這幾個(gè)時(shí)間同樣在配置LTDC的時(shí)候,需要進(jìn)行設(shè)置。(3)模塊的接口原理圖如圖2-5:圖2-5圖中J1就是對(duì)外接口,這是個(gè)40PIN的FPC座。該接口非常完善,支持了RGB888格式,而且可使用DE和HV兩種模式,以及(電阻/電容)觸摸屏和背光調(diào)控。一般情況下,電阻R1和電阻R6接在一起,設(shè)置LCD_LR和LCD_UD,判定LCD的掃描方向,是從上到下(橫屏),從左到右(豎屏)。而LCD_R7/G7/B7則用來定義LCD的ID,因?yàn)镽GBLCD并沒讀寫寄存器,就是沒有平常所說的ID。這里我們通過在模塊上面,控制R7/G7/B7的上/下拉,來設(shè)置LCD模塊的ID,使得MCU可以判別當(dāng)前LCD模塊的型號(hào)和相關(guān)參數(shù),另程序可以兼容不同類型的LCD屏。(4)TFT-LCD控制器STM32F767芯片的TFT-LCD控制器,為L(zhǎng)TDC。這里采用LTDC控制器,使STM32F767得以直接與RGBLCD屏外接,進(jìn)行液晶屏驅(qū)動(dòng)。下面介紹LTDC控制器的內(nèi)部元素,其框圖如圖:圖2-6①信號(hào)線這里就包含了我們前面提到的RGBLCD驅(qū)動(dòng)所需要的所有信號(hào)線,這些信號(hào)線通過STM32F767核心板板載的LCD接口引出,其信號(hào)說明和IO連接關(guān)系,見表:LTDC信號(hào)線對(duì)應(yīng)IO說明LCD_CLKPG7像素時(shí)鐘輸出LCD_HSYNCPI10水平同步LCD_VSYNCPI9垂直同步LCD_DEPE10數(shù)據(jù)使能LCD_R[7:3]PG6、PH12、PH11、PH10、PH9紅色數(shù)據(jù)線,LCD_R[2:0]未用到LCD_G[7:3]PI2、PI1、PI0、PH15、PH14、PH13綠色數(shù)據(jù)線,LCD_G[1:0]未用到LCD_B[7:3]PI7、PI6、PI5、PI4、PG11藍(lán)色數(shù)據(jù)線,LCD_B[2:0]未用到表2-2LTDC控制器一共有二十四位的數(shù)據(jù)線,可采用RGB888格式。但是使用RGB565顏色格式不僅可以減少IO口浪費(fèi),還能加快圖片顯示速度,所以,我們只用到16個(gè)IO口。當(dāng)使用RGB565格式的時(shí)候,LCD面板的數(shù)據(jù)線,必須連接到LTDC數(shù)據(jù)線上的MSB,即:LTDC的LCD_R[7:3]連到RGBLCD的R[7:3],LTDC的LCD_G[7:2]連到RGBLCD的G[7:2],LTDC的LCD_B[7:3]連到RGBLCD的B[7:3],這樣,RGB數(shù)據(jù)線分別是5:6:5,即RGB565格式。表中對(duì)應(yīng)IO就是我們STM32F767核心板上面,LCD接口所連接的IO。②圖像處理單元此部分先從AHB接口獲取顯存中的圖像數(shù)據(jù),然后經(jīng)過層FIFO(有2個(gè),對(duì)應(yīng)2個(gè)層)緩存,每個(gè)層FIFO具有64*32位存儲(chǔ)深度,然后經(jīng)過像素格式的轉(zhuǎn)換器(PFC),把從層的所選輸入像素格式變?yōu)锳RGB8888格式,再通過混合單元,把兩層數(shù)據(jù)合在一起,得到單層該顯示的數(shù)據(jù),最后經(jīng)過抖動(dòng)單元處理(可選)后,輸出給LCD顯示。這里的ARGB8888,即帶8位透明通道,即最高8位為透明通道參數(shù),表示透明度,值越大,則約不透明,值越小,越透明。比如A=255時(shí),表示完全不透明,而A=0時(shí),表示完全透明。RGB888就表示R、G、B各8位,可表示的顏色深度為1600W色。這LTDC控制器一共有三層:第一、二層以及背景層,其中,背景層只可以是純色(即單色),而第一層和第二層都可以用來顯示信息,混合單元會(huì)將三個(gè)層混合起來,進(jìn)行顯示。從圖中可以看出,第二層位于最頂端,背景層位于最低端,混合單元首先將第一層與背景層進(jìn)行混合,隨后,第二層與第一層和第二層的混合顏色結(jié)果再次混合,完成混合后,送給LCD顯示。③AHB接口由于LTDC驅(qū)動(dòng)RGBLCD的時(shí)候,需要有很多內(nèi)存來做顯存,比如一個(gè)800*480的屏幕,按一般的16位RGB565模式,一個(gè)像素需要2個(gè)字節(jié)的內(nèi)存,總共需要:800*480*2=768K字節(jié)內(nèi)存,STM32內(nèi)部是沒有這么多內(nèi)存的,所以必須借助外部SDRAM,而SDRAM是掛在AHB總線上的,LTDC的AHB接口,就是用來將顯存數(shù)據(jù),從SDRAM存儲(chǔ)器傳輸?shù)紽IFO里面。④配置和狀態(tài)寄存器此部分就是LTDC控制器的各種狀態(tài)寄存器以及配置寄存器,用于控制整個(gè)LTDC的執(zhí)行參數(shù),主要有:各信號(hào)的有效電平、垂直/水平同步時(shí)間參數(shù)、像素格式、數(shù)據(jù)使能等等。⑤時(shí)鐘域LTDC有三種時(shí)鐘域:APB2時(shí)鐘域(PCLK2)、AHB時(shí)鐘域(HCLK)和像素時(shí)鐘域(LCD_CLK),AHB時(shí)鐘域用在AHB接口的驅(qū)動(dòng),讀取存儲(chǔ)器的數(shù)據(jù)至FIFO里面;APB2時(shí)鐘域用在配置寄存器;像素時(shí)鐘域用在生成LCD接口信號(hào),其輸出應(yīng)按照LCD屏的需求進(jìn)行設(shè)定。2.2.3觸摸屏現(xiàn)在最常見的幾種觸摸屏有:電阻式與電容式屏。電阻式觸摸屏在iphone還沒有出來的時(shí)候,市面上基本采用電阻式的觸摸屏,它通過壓力感應(yīng)對(duì)接觸的位置進(jìn)行判斷,點(diǎn)擊的時(shí)候需要直接接觸,然后電阻值變化來確定按下的位置。電阻薄膜屏是電阻觸摸屏中主要的部分,它與顯示器表面能很好的融合,是多層薄膜復(fù)合而成。其底層是一層硬化處理的平板或水玉,它的內(nèi)表面鑲上一層無色的氧化金屬,有可通電電阻的效果,則鑲上的是導(dǎo)電層。其頂層是一層外表面防摩擦且光滑的硬塑料平板,它的內(nèi)表面是鑲上一導(dǎo)電層。底層和頂層中間隔著很多極小的無色點(diǎn)把它們得以絕緣。用手點(diǎn)擊觸摸屏?xí)r,兩層通電電阻在壓力下連接了起來,阻值有了改變,橫坐標(biāo)和縱坐標(biāo)上都有新的數(shù)據(jù),接著被送到控制器。這個(gè)控制器接收到這一新數(shù)據(jù),然后計(jì)算出橫坐標(biāo)和縱坐標(biāo),最后通過得到新坐標(biāo)模擬光標(biāo)的樣式工作。以上就是電阻式觸摸屏最基礎(chǔ)的技術(shù)原理。電阻式屏的優(yōu)點(diǎn):成本較低、精確度較高、抗擾力較強(qiáng)、平穩(wěn)性較好。電阻式屏的缺點(diǎn):防損困難、透光性較差、不能多指操作。電容式觸摸屏目前基本所有觸摸屏的設(shè)備都是使用電容屏,其工作原理是通過人體感應(yīng)進(jìn)行觸點(diǎn)檢測(cè)控制,不用直接接觸或者只要輕微接觸,然后檢測(cè)感應(yīng)電流來確定觸摸位置。電容式觸摸屏有以下兩種類型:表面電容式電容觸摸屏該觸摸屏的技術(shù)原理是使用ITO(銦錫氧化物,是一種無色的導(dǎo)電物質(zhì))導(dǎo)電膜,利用電場(chǎng)感應(yīng)方式感測(cè)屏幕表面的觸摸行為進(jìn)行。不過這種類型的觸摸屏具有一定的缺陷,它和電阻屏相同,不能進(jìn)行多指操作。2、投射式電容觸摸屏該觸摸屏的技術(shù)原理是傳感器通過觸摸屏電極發(fā)射出靜電場(chǎng)線。一般用于投射電容傳感技術(shù)的電容類型有兩種:自我電容和交互電容。自我電容,我們又把它叫作絕對(duì)電容,是使用最常見的一種工具,它是指地和ITO電極組成的電容。在水玉表面的縱向和橫向覆蓋著用ITO生產(chǎn)的掃描電極,兩組電極與地就成為了一個(gè)電容的兩端。當(dāng)我們的手指或用觸摸筆點(diǎn)擊的時(shí)候,電路中會(huì)新產(chǎn)生一個(gè)并聯(lián)電容,使得觸摸點(diǎn)縱橫線上的電容量有所改變。通過IC重復(fù)掃描縱向和橫向電極,然后由掃描前后的電容值變化可以測(cè)出點(diǎn)擊的坐標(biāo)。筆記本電腦中就是使用了這種工具,其觸摸輸入板通過縱橫線上的感應(yīng)電極陣型組成一個(gè)感應(yīng)區(qū)域,當(dāng)我們用手貼近觸摸輸入板時(shí),手指和感應(yīng)電極之間會(huì)產(chǎn)生一個(gè)極小的電荷。運(yùn)用特定的式子計(jì)算從縱橫線傳感器的得到數(shù)據(jù)來確定點(diǎn)擊的坐標(biāo)。交互電容,我們又把它叫作跨越電容。它是在水玉表面的x方向和y方向的掃描電極的交接點(diǎn)構(gòu)成電容,這種電容通過掃描每每一處的交接點(diǎn)的電容量變化,來確定觸摸點(diǎn)的坐標(biāo)。當(dāng)我們用手指或用觸摸筆點(diǎn)擊,耦合中的相鄰電極會(huì)受到影響,從而使交接點(diǎn)的電容量發(fā)生變化。交互電容是檢測(cè)到每一處交接點(diǎn)的電容量變化,而自我電容是檢測(cè)縱橫線上端點(diǎn)的電容量變化,所以前者進(jìn)行掃描的時(shí)間比自我電容的時(shí)間相對(duì)來說更久。現(xiàn)在基本所有觸摸屏設(shè)備使用交互電容為工具。投射式電容觸摸屏檢測(cè)觸摸的元素是橫縱兩組電極形成的感應(yīng)陣型。通過兩組垂直交叉的電極陣型,可以測(cè)出以每格為單位的感應(yīng)區(qū)域的電容值變化,如下所示:圖2-7圖2-7中的電極,現(xiàn)實(shí)是無色的。無色電極電容屏的分辨率、精確度與X、Y軸的通道數(shù)成正比例關(guān)系,通道數(shù)越多,分辨率越高,精確度越高。以上就是電容式觸摸屏最基礎(chǔ)的技術(shù)原理。電容式屏的優(yōu)點(diǎn):可多指操作、觸感較好、不用校準(zhǔn)、透光性較強(qiáng)。電容式屏的缺點(diǎn):價(jià)格較高、精確度較低、抗擾力不好。自帶電阻觸摸的LCD液晶屏一共有五個(gè)引腳和STM32F767相對(duì)應(yīng),接口原理圖如下所示:圖2-8從圖中看出,T_MOSI、T_MISO、T_SCK、T_CS和T_PEN分別連在STM32F767的:PI3、PG3、PH6、PI8和PH7上。若是自帶電容觸摸的LCD液晶屏,使用的引腳和上圖電阻式屏的類似,分別是:T_CS(CT_RST)、T_PEN(CT_INT)、T_MOSI(CT_SDA)和T_CLK(CT_SCL)。CT_INT表示中斷輸出信號(hào)、CT_RST表示復(fù)位信號(hào)、CT_SCL與CT_SDA表示IIC的SCL與SDA信號(hào)。由于OTT2001A/FT5206/FT5426沒有使用中斷輸出信號(hào)(CT_INT),則只有三個(gè)接口與STM32F767相對(duì)應(yīng),但是GT9147中還要使用CT_INT作為IIC地址配置,則有四個(gè)接口與其對(duì)應(yīng)。
2.3軟件設(shè)計(jì)2.3.1LCD觸摸屏驅(qū)動(dòng)LCD_R7/G7/B7的設(shè)置關(guān)系如表所示:表3-1例如ATK-7016模塊,就設(shè)置M2:M0=010即可。這樣,我們?cè)诔绦蚶锩?,讀取LCD_R7/G7/B7,得到M0:M2的值,從而判斷RGBLCD模塊的型號(hào),并執(zhí)行不同的配置,即可實(shí)現(xiàn)不同LCD模塊的兼容。1.實(shí)現(xiàn)LTDC驅(qū)動(dòng)RGBLCD,要對(duì)LTDC進(jìn)行的設(shè)置,有以下步驟:1)先使能LTDC時(shí)鐘,然后設(shè)置LTDC各種IO口及使能其時(shí)鐘第一步,得開啟LTDC時(shí)鐘,然后需要把LCD_R/G/B數(shù)據(jù)線、LCD_HSYNC和LCD_VSYNC等各種IO口,所有都設(shè)置為復(fù)用輸出,并且使能各IO組的時(shí)鐘。2)配置LCD_CLK時(shí)鐘配置LCD的像素時(shí)鐘,根據(jù)LCD的面板參數(shù)進(jìn)行設(shè)置,LCD_CLK由PLLSA進(jìn)行配置。3)設(shè)置RGBLCD的相關(guān)參數(shù),并使能LTDC這一步,我們需要完成對(duì)LCD面板參數(shù)的配置,包括:LTDC使能、時(shí)鐘極性、HSW、VSW、HBP、HFP、VBP和VFP等,通過LTDC_GCR、LTDC_SSCR、LTDC_BPCR、LTDC_AWCR和LTDC_TWCR等寄存器配置。4)設(shè)置LTDC層參數(shù)。此步,我們需要設(shè)置LTDC某一層的相關(guān)參數(shù),包括:幀緩存首地址、顏色格式、混合系數(shù)和層默認(rèn)顏色等。通過LTDC_LxCFBAR、LTDC_LxPFCR、LTDC_LxCACR、LTDC_LxDCCR和LTDC_LxBFCR等寄存器配置。5)設(shè)置LTDC層窗口,并使能層。這一步,完成對(duì)LTDC某個(gè)層的顯示窗口設(shè)置(一般設(shè)置為整層顯示,不開窗),通過LTDC_LxWHPCR、LTDC_LxWVPCR、LTDC_LxCFBLR和LTDC_LxCFBLNR等寄存器配置。層使能通過配置LTDC_LxCR寄存器的最低位實(shí)現(xiàn),使能層以后,RGBLCD就可以正常工作了。觸摸屏驅(qū)動(dòng)這里使用IC作為驅(qū)動(dòng),觸摸時(shí)對(duì)電容進(jìn)行檢測(cè),然后觸摸的數(shù)據(jù)從接口IIC中輸出。ALIENTEK中4.3寸的電容觸摸LCD屏的IC驅(qū)動(dòng)是OTT2001A或者GT9147,其結(jié)構(gòu)為十七個(gè)驅(qū)動(dòng)通道和十個(gè)感應(yīng)通道。ALIENTEK中7寸的電容觸摸LCD屏的IC驅(qū)動(dòng)是FT5426或者FT5206,其結(jié)構(gòu)為二十八個(gè)驅(qū)動(dòng)通道和十五個(gè)感應(yīng)通道。我們以GT9147的驅(qū)動(dòng)為例,列出以下幾個(gè)主要的寄存器:第一個(gè)寄存器是用來控制命令,不一樣的值對(duì)應(yīng)不一樣的操作,但是經(jīng)常寫入的值有兩個(gè),0或者2。當(dāng)我們寫入2時(shí),就可以進(jìn)行軟復(fù)位,一般在硬復(fù)位之后都要執(zhí)行軟復(fù)位。當(dāng)我們寫入0時(shí),就會(huì)結(jié)束軟復(fù)位,然后進(jìn)行坐標(biāo)信息的讀取。第二組寄存器用來進(jìn)行參數(shù)配置,一般我們使用廠家提供的默認(rèn)配置就可以了,這組有186個(gè)寄存器。因?yàn)閮?nèi)部FLASH可以存儲(chǔ)參數(shù)信息,所以不用每次開機(jī)都要初始化參數(shù)配置。以下是介紹幾個(gè)重要的寄存器:1,0X8100位寄存器寫入的值有兩個(gè),1或者0,寫入1時(shí),參數(shù)配置保存至本地;寫入0時(shí),參數(shù)配置不保存至本地。2,0X80FF位寄存器用來保存校驗(yàn)和,令0X8047至0X80FF的全部數(shù)據(jù)加起來值為零。3,0X8047位寄存器用來設(shè)定文件的版本號(hào),GT9147本地存儲(chǔ)的版本號(hào)一定要小于或者等于程序?qū)懭氲陌姹咎?hào),否則不能正常更新。第三組寄存器用來存儲(chǔ)產(chǎn)品的ID,一共有四個(gè)。假如是GT9147,那么從寄存器組讀出的是:9,1,4,7這4個(gè)ASCII碼字符。所以,讀出這組寄存器的值就可以確定LCD屏的IC驅(qū)動(dòng)是GT9147還是OTT2001A,然后運(yùn)行相對(duì)應(yīng)的初始化函數(shù)。第四個(gè)寄存器用來表示狀態(tài),該寄存器各位描述如表所示:表3-2一般情況下只讀取最低4位與最高位的數(shù)值就可以,最高位指的是buffer參數(shù),當(dāng)有觸摸坐標(biāo)信息返回的話,buffer參數(shù)值為1。最低4位指的是有幾個(gè)觸摸坐標(biāo)信息返回,最多只能進(jìn)行五指操作,返回5;最少是沒有觸摸點(diǎn),返回0。值得注意的是,在有效讀取之后,需要將最高位的值重新置零,不然不能成功讀取下一次的信息。第五組寄存器用來保存坐標(biāo)信息,一共三十個(gè),分為五組,每六個(gè)寄存器為一個(gè)單位對(duì)信息進(jìn)行保存,下面是某一觸點(diǎn)的一個(gè)單位的信息,如表3-3所示:表3-3由上圖可知,先讀出0X8150至0X8153中的數(shù)據(jù),再進(jìn)行組合得到觸點(diǎn)1的x和y坐標(biāo)。另外幾個(gè)觸點(diǎn)的坐標(biāo)寄存器是:0X8170、0X8168、0X8160和0X8158等開頭的,共十六個(gè),對(duì)應(yīng)觸點(diǎn)2至5的坐標(biāo)數(shù)據(jù)。因?yàn)镚T9147的寄存器可以進(jìn)行地址自增,所以只寫入各寄存器組的首地址,就可以連續(xù)地讀取數(shù)據(jù),使得讀取的速率大大提升??刂朴|摸屏的核心思想是獲取觸點(diǎn)坐標(biāo),以上是GT9147獲取坐標(biāo)的寄存器。使用GT9147的時(shí)候,先要進(jìn)行初始化:硬復(fù)位并延時(shí)10ms->停止硬復(fù)位->設(shè)定IIC地址并延時(shí)100ms->進(jìn)行軟復(fù)位->更新參數(shù)信息(此步可?。?>停止軟復(fù)位。然后,我們通過讀取狀態(tài)寄存器的最高位值,可以知道有沒有返回觸點(diǎn)坐標(biāo)信息,若是有,就讀取第五組的寄存器,最終取得觸點(diǎn)的坐標(biāo)信息。2.3.2圖文顯示1.我們使用較多的中文內(nèi)碼的系統(tǒng)有GBK,GB13000,GB2312等等,這個(gè)GB2312內(nèi)碼只擁有幾千個(gè)漢字,需求往往不足。這個(gè)GBK不但可以兼容GB2312,而且可以輸出繁體字,擁有2萬多個(gè)漢字,完全可以滿足一般的開發(fā)需求。中文字體在屏幕上的顯示實(shí)際上就是該輸出的像素點(diǎn)為特定顏色,不輸出的像素點(diǎn)為背景顏色。這好比如我們使用畫筆時(shí),當(dāng)筆頭觸碰的地方就顯示出來,沒觸碰到的地方就不顯示。我們輸出12*12的漢字時(shí),假設(shè)其取模方向?yàn)閺纳系较?,從左到右的方向取模,且高位在前,那么其取模原理如圖所示:圖3-1我們?nèi)∧5臅r(shí)候,從最左上方的點(diǎn)開始?。◤纳系较拢瑥淖蟮接遥?,且高位在前(bit7在表示第一個(gè)位),那么第一個(gè)字節(jié)就是:0X11(1,表示淺藍(lán)色的點(diǎn),即要畫出來的點(diǎn),0則表示不要畫出來),第二個(gè)字節(jié)是:0X10,第三個(gè)字節(jié)(到第二列了,每列2個(gè)字節(jié))是:0X1E……,依次類推,一個(gè)12*12的漢字,總共有12列,每列2個(gè)字節(jié),總共需要24個(gè)字節(jié)來表示。在顯示的時(shí)候,我們只需要讀取這個(gè)漢字的點(diǎn)陣數(shù)據(jù)(12*12字體,一個(gè)漢字的點(diǎn)陣數(shù)據(jù)為24個(gè)字節(jié)),然后將這些數(shù)據(jù),按取模方式,反向解析出來(坐標(biāo)要處理好),每個(gè)字節(jié),是1的位,就畫出來,不是1的位,就忽略。我們想要輸出文字,第一就是要得到文字的點(diǎn)陣信息,得到一個(gè)文字的信息,然后就能推及一個(gè)文字庫了。文字以內(nèi)碼的格式保存在不同類型的文件里,而不是以點(diǎn)陣信息的格式保存(因?yàn)檫@樣會(huì)大大地浪費(fèi)了內(nèi)存)。每個(gè)文字都有與其相對(duì)應(yīng)的內(nèi)碼,得到了文字內(nèi)碼,然后從文字庫里面搜索該文字的點(diǎn)陣信息,最后通過屏幕輸出。單片機(jī)要顯示文字的過程是:中文內(nèi)碼(GBK/GB2312)->搜索點(diǎn)陣庫->解碼->輸出。圖片的輸出過程與文字類似,這里我們先來看看圖片解碼。人們開發(fā)出許多不同格式的圖片,而經(jīng)常使用的有兩種模式:靜態(tài)模式和動(dòng)態(tài)模式。靜態(tài)模式的格式有:BMP與JPG(或JPEG)等,動(dòng)態(tài)模式的格式有GIF等。這里介紹一下JPG或JPEG的解碼過程,其他格式的圖片解碼過程類似,步驟為以下幾點(diǎn):1)首先讀取文件頭里面的數(shù)據(jù)JPG或JPEG格式圖片信息的兩大部分是圖像數(shù)據(jù)以及文件頭,然而文件頭里存儲(chǔ)了圖片的長(zhǎng)寬、版本、哈夫曼表、量化表、采樣因子等主要數(shù)據(jù)。所以一定要在解碼之前先讀取文件頭數(shù)據(jù),供給圖片信息解碼的時(shí)候使用。2)然后讀出圖片數(shù)據(jù)流中的一個(gè)最小編碼單元,并且提取出里面的每種顏色量單元。3)使顏色分量單元由數(shù)據(jù)流變化成矩陣數(shù)據(jù)采用文件頭里面的哈夫曼表,將分離開的每個(gè)顏色分量單元進(jìn)行解碼,使它變化成8×8的數(shù)據(jù)矩陣。4)8×8的數(shù)據(jù)矩陣再次解碼這次的解碼程序的單位為8×8的數(shù)據(jù)矩陣,有反向離散余弦變換、隔行正負(fù)糾正、反Zig-zag編碼、采用文件頭里面的量化表反量化數(shù)據(jù)、相鄰矩陣的直流系數(shù)差分解碼等5個(gè)過程,最后得到的還是一個(gè)8×8的數(shù)據(jù)矩陣。5)由顏色系統(tǒng)YCrCb轉(zhuǎn)換成RGB用一個(gè)最小編碼單元的每種顏色分量單元解碼數(shù)據(jù)并合在一起,再使圖片顏色系統(tǒng)由YCrCb轉(zhuǎn)換成RGB。6)排序并合所有最小編碼單元的解碼數(shù)據(jù)一直讀取數(shù)據(jù)流中的最小編碼單元并且對(duì)它進(jìn)行解碼,到讀取出全部最小編碼單元,將每個(gè)最小編碼單元解碼后的數(shù)據(jù)有序排列成一個(gè)圖片。2.在文字顯示中,Get_HzMat子函數(shù)用來取得GBK碼匹配的中文字庫,先用外部flash搜索字庫,接著返回匹配的點(diǎn)陣數(shù)據(jù)。Show_Font子函數(shù)用來在規(guī)定坐標(biāo)輸出一個(gè)規(guī)定大小的文字,使用的方法和LCD_ShowChar中使用的方法相同,也是畫點(diǎn)輸出。在圖片顯示中,piclib_init子函數(shù),這個(gè)函數(shù)用來對(duì)圖片進(jìn)行解碼時(shí)所需數(shù)據(jù)初始化,其中_pic_info和_pic_phy都是結(jié)構(gòu)體,前者用于圖片放大或者縮小,后者用于處理LCD底層的接口子函數(shù)。pic_memalloc子函數(shù)和pic_memfree子函數(shù)分別用來給圖片解碼時(shí),執(zhí)行內(nèi)存的申請(qǐng)和釋放,使用mymalloc與myfreee配合執(zhí)行。is_element_ok子函數(shù),這個(gè)函數(shù)用來斷定某個(gè)點(diǎn)能不能輸出,在放大或者縮小圖片的時(shí)候都要調(diào)用此函數(shù)。ai_draw_init子函數(shù),這個(gè)函數(shù)用來使圖片在規(guī)定區(qū)域內(nèi)居中顯示,實(shí)際上就是設(shè)定圖片起始坐標(biāo)以及長(zhǎng)度寬度。piclib_alpha_blend子函數(shù),這個(gè)函數(shù)用來使圖片有虛幻的半透明效果,可以用于分辨率較小的BMP格式圖片輸出。ai_load_picfile子函數(shù),這個(gè)函數(shù)是進(jìn)行圖片輸出的外部接口,利用此函數(shù),能夠顯示出不同格式圖片。此函數(shù)通過參數(shù)中文件名的后綴選擇對(duì)應(yīng)的解碼格式,然后運(yùn)行包含各種格式的解碼程序,最后在LCD中顯示圖片。2.3.3輸入法手寫輸入法因?yàn)楣P記本電腦和觸屏手機(jī)等各種移動(dòng)設(shè)備的發(fā)展,手寫輸入法成為人們?cè)谠O(shè)備通訊中頻繁使用方式。手寫輸入法的核心技術(shù)是手寫識(shí)別,它可以給用戶一種很便利、很自然、的感官體驗(yàn),直接用手輸入文字,操作簡(jiǎn)單,比鼠標(biāo)和鍵盤更有立體感。手寫和圖像以及語音等等各種有識(shí)別功能的系統(tǒng),都有兩個(gè)過程:訓(xùn)練學(xué)習(xí)和識(shí)別過程。如圖所示:圖3-2圖上右側(cè)虛線包圍的就是訓(xùn)練學(xué)習(xí)過程,此過程第一步是利用機(jī)器收取足夠的數(shù)據(jù)樣本。樣本種類是0至9,a至z,A至Z,一共六十二種。每種類收取5到10個(gè)樣本左右,收取的數(shù)量越多,識(shí)別效果越好。給所有收集到的樣本提取方向特征,得到的特征維數(shù)是512維,然而STM32芯片的運(yùn)算量與樣本庫的保存容量不足以支撐,所以使用LDA線性判決分析的算法進(jìn)行降維。線性判決分析的運(yùn)算原理是設(shè)定全部的樣本服從高斯分布,將高維映射到低維,從而使各個(gè)樣本之間的距離值最大。在識(shí)別過程中,第一步是收取觸摸屏輸寫的規(guī)律畫線,第二步是執(zhí)行預(yù)處理操作,此操作重要的過程為歸一化以及重采樣處理。所謂重采樣,就是在用戶使用不一樣的輸入設(shè)備或者不一樣的輸入處理程序,收集到不一樣規(guī)律畫線序列,然而想要得到最好的識(shí)別效果,必須對(duì)識(shí)別輸入的樣本與訓(xùn)練的樣本執(zhí)行重采樣操作,此重采樣是指對(duì)輸入的序列執(zhí)行隔點(diǎn)重采樣。所謂歸一化,就是在用戶書寫風(fēng)格不一樣以及采樣分辨率有所異同時(shí),收集到不一樣太小的字體,所以對(duì)輸入的畫線執(zhí)行歸一化操作,此歸一化是指通過線性縮放的算法將樣本變成64*64像素。第三步就是使用傳統(tǒng)的八方向特征采集方法。這個(gè)八方向特征的第一步是利用預(yù)處完后的64*64像素輸入樣本切割為8*8的像素樣本,第二步是計(jì)算所有8*8的像素樣本每個(gè)方向的點(diǎn)數(shù)。例如一個(gè)8*8的像素樣本里面有八個(gè)點(diǎn),里面八個(gè)方向的點(diǎn)是:3、1、2、5、4、3、2、3,可以推出這個(gè)像素樣本的八個(gè)特征向量為[0.3,0.1,0.2,0.5,0.4,0.3,0.2,0.3]。一共有64個(gè)8*8的像素樣本,所以一個(gè)64*64像素樣本特征是64*8=512維。與訓(xùn)練學(xué)習(xí)過程相同,識(shí)別過程也是要執(zhí)行LDA降維算法,經(jīng)過計(jì)算轉(zhuǎn)化成64維特征。此轉(zhuǎn)化過程是指在訓(xùn)練模板的時(shí)候計(jì)算得出一個(gè)512*64維的矩陣,然后采用矩陣乘法運(yùn)算法則得出64維的最終特征值。最后一步是用64維特征分別與模板中的特征求出距離差,其距離差值最小的就是這次輸入的識(shí)別度最高的輸出。以下是使用手寫數(shù)字字母識(shí)別庫進(jìn)行數(shù)字字母識(shí)別的過程:1)使用alientek_ncr_init子函數(shù),初始化識(shí)別程序此子函數(shù)為識(shí)別器的初始化函數(shù),使用手寫識(shí)別功能時(shí),先執(zhí)行此函數(shù)。收集輸入的點(diǎn)陣坐標(biāo)此過程,利用觸摸屏收集輸入軌跡點(diǎn)陣數(shù)據(jù),再將其保存在某個(gè)緩存區(qū)里面。若是收集的點(diǎn)陣數(shù)據(jù)太少,識(shí)別程序會(huì)跳出異常,至少輸入兩個(gè)不一樣坐標(biāo)的點(diǎn)陣坐標(biāo)。若是收集的輸入點(diǎn)陣數(shù)據(jù)太多,識(shí)別程序也會(huì)異常,太多數(shù)據(jù)導(dǎo)致內(nèi)存不足,其規(guī)定的輸入點(diǎn)數(shù)范圍是:100至200個(gè)。3)使用alientek_ncr子函數(shù),計(jì)算識(shí)別輸出結(jié)果.我們使用alientek_ncr子函數(shù),就可以算出點(diǎn)陣的識(shí)別輸出結(jié)果,然后將輸出結(jié)果寫到result參數(shù)上,使用ASCII碼格式保存。4)使用alientek_ncr_stop子函數(shù),終止識(shí)別.假如不用再次識(shí)別,可以使用alientek_ncr_stop子函數(shù),關(guān)閉識(shí)別器。若還想再次識(shí)別,重復(fù)第二點(diǎn)和第三點(diǎn)就可以了。T9中文拼音輸入法除了上面的手寫輸入法,觸摸屏還有很多鍵盤輸入法,例如筆畫輸入法、五筆輸入法、拼音輸入法。這里,拼音輸入法是人們使用最頻繁的,根據(jù)鍵盤的模式,其有全拼和雙拼這兩種輸入。然而,在移動(dòng)設(shè)備中使用最多的可以歸算為T9拼音輸入法了。該輸入法又稱作智能輸入法,能夠輸出近一萬字。該輸入法的開發(fā)商是來自美國(guó)的一家軟件公司,其名為特捷通訊。T9輸入法在很早之前就為較小移動(dòng)設(shè)備開發(fā)了文字輸入,基本上是所有智能手機(jī)文字輸入必備的一種方式。9鍵文字輸入法鍵盤,如圖3-3:圖3-3在9鍵文字輸入法鍵盤中,T9輸入法和以往的輸入法有所不同。當(dāng)我們?cè)趯憽爸袊?guó)”這兩個(gè)字的時(shí)候,以往的輸入法按鍵方法是,首先按四次九,輸入字母z;再按兩次四,輸入字母h;再按三次六,輸入字母o;再按兩次六,輸入字母n;最后按一次四,輸入字母g。所以,只輸寫“中”字,就得按鍵十二次。但是使用T9輸入法,當(dāng)我們?cè)趯憽爸小弊值臅r(shí)候,只要按下:9、4、6、6、4,就可以完成“中”字的輸入。除了以上的優(yōu)勢(shì),實(shí)際上T9拼音輸入法還可以進(jìn)行詞語關(guān)聯(lián),提供后面連接的詞語給予用戶選擇,但是由于某些因素影響,這里沒有實(shí)現(xiàn)聯(lián)想功能。我們進(jìn)行T9拼音輸入有如下幾步:1)輸入拼音數(shù)字串這里使用的T9拼音輸入法的關(guān)鍵點(diǎn)是匹配用戶輸入的拼音數(shù)字串,則先要輸入。2)在拼音索引表中搜索與輸入數(shù)字串相關(guān)的項(xiàng),并保留然后利用輸入的字符串在拼音索引表中搜索全部相關(guān)的項(xiàng),若是有完全相關(guān)的項(xiàng),則全部保留,若是沒有完全相關(guān)的項(xiàng),就保留相關(guān)度最高的一項(xiàng)即可。3)列出相關(guān)表單中全部對(duì)應(yīng)的漢字,給予用戶選擇把相關(guān)項(xiàng)的拼音和可能組成的漢字列出來,給予用戶選擇。若是相關(guān)項(xiàng)不只一個(gè),就是數(shù)字串匹配的拼音有多個(gè)時(shí),用戶得先選出正確的拼音。4)用戶選出相關(guān)項(xiàng),并且選出正確的漢字.由用戶選出實(shí)際想要輸入的拼音與漢字,完成這次的操作。
3結(jié)論本文通過系統(tǒng)的設(shè)計(jì)和開發(fā),得出以下的結(jié)論:1.我們想要熟練新的一門計(jì)算機(jī)語言,不僅僅只是熟練理論知識(shí)就可以了。在本次設(shè)計(jì)的過程中,我碰到了很多意想不到的問題,這時(shí)我才意識(shí)到只有經(jīng)過實(shí)踐操作累積經(jīng)驗(yàn),然后總結(jié)提升自己的硬實(shí)力,才會(huì)寫出更好的程序。2.開發(fā)項(xiàng)目需要的不僅僅是技術(shù),比如這一次實(shí)踐中,有時(shí)候技術(shù)方面并沒太大的問題,卻因?yàn)槿鄙俳?jīng)驗(yàn),容易大意造成一些小錯(cuò)誤,從而增加了開發(fā)時(shí)長(zhǎng)。3.本次的畢業(yè)設(shè)計(jì),我參考了關(guān)于這方面的很多例子,吸收了其他系統(tǒng)的一些優(yōu)點(diǎn),來改進(jìn)自己的設(shè)計(jì),但還有許多不足,有待進(jìn)一步學(xué)習(xí)。本文中雖然只是實(shí)現(xiàn)了要求的基本功能,但經(jīng)過后續(xù)的優(yōu)化改進(jìn),功能還會(huì)更加強(qiáng)大的。在充實(shí)的日子里時(shí)光似箭,很快地飛走了,我們的畢業(yè)設(shè)計(jì)開始了倒計(jì)時(shí)。開始的時(shí)候一無所知,相當(dāng)迷惘,必須一點(diǎn)點(diǎn)的去了解掌握相關(guān)的技術(shù)原理,然后慢慢地開始著手開發(fā),直到現(xiàn)在終于完成了本次設(shè)計(jì)。我們是在學(xué)習(xí)的過程中慢慢的完成的,每一步對(duì)我們來說都是意義非凡的一次成長(zhǎng)。我們的項(xiàng)目是設(shè)計(jì)一個(gè)基于STM32多功能播放器的應(yīng)用界面系統(tǒng)。我們選擇了用C語言來實(shí)現(xiàn)它,為了盡快熟悉C語言及其開發(fā)環(huán)境,我選擇在學(xué)習(xí)了C官方文檔以及看別人總結(jié)的文章后的基礎(chǔ)上,利用網(wǎng)課自己動(dòng)手來做一些小的程序,加快我學(xué)習(xí)的進(jìn)度。在自己?jiǎn)为?dú)完成一個(gè)小游戲的程序制作后,以及在已經(jīng)掌握了設(shè)計(jì)所需的基本技術(shù)后,就開始準(zhǔn)備著手進(jìn)行項(xiàng)目。首先著手做的是硬件驅(qū)動(dòng),代碼編寫完成后進(jìn)行測(cè)試;再接著做界面功能,同樣的代碼編寫完成后進(jìn)行測(cè)試;最后再將全部整合在一起,完成整個(gè)系統(tǒng)的設(shè)計(jì)。總之,通過這幾個(gè)月的時(shí)間,讓我感受到畢業(yè)設(shè)計(jì)真的很有意義。讓我們每一個(gè)學(xué)生都必須使盡渾身解數(shù),運(yùn)用大學(xué)四年累積下來的知識(shí)來克服困難,以及考驗(yàn)我們的實(shí)際動(dòng)手操作能力。這些都讓我從中受益良多,提高了我本身的知識(shí)積累和經(jīng)驗(yàn)以及如何為一個(gè)團(tuán)隊(duì)做出自己的貢獻(xiàn)。這次畢業(yè)設(shè)計(jì)注定是難忘的一次經(jīng)歷,我相信它會(huì)為我即將開展的工作打下了良好的基礎(chǔ)。參考文獻(xiàn)[1]李寧著.基于MDK的STM32處理器開發(fā)應(yīng)用[M].1版.北京航空航天大學(xué)出版社.2008.
[2]楊玉琴.李亞寧.觸摸屏技術(shù)研究及市場(chǎng)進(jìn)展[J].信息記錄材料.2012.01期[3]邸興等.基于STM32的便攜式人機(jī)界面系統(tǒng).電子工程設(shè)計(jì).2011.05期[4]羅從難.嵌入式系統(tǒng)圖形用戶界面的設(shè)計(jì)和實(shí)現(xiàn)[學(xué)位論文]碩士.[5]便攜式MP3播放器的設(shè)計(jì)[J].楊心懷,周潔.電子技術(shù)應(yīng)用.2003(02)[6]基于C51單片機(jī)的MP3播放器的設(shè)計(jì)與實(shí)現(xiàn)[J].嚴(yán)蕓.長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào).2006(03)[7]盛珣華.單片機(jī)原理與應(yīng)用[J].華中科技大學(xué)出版社.2014.[8]胡漢才.單片機(jī)原理及其接口技術(shù)[M](第2版).北京:清華大學(xué)出版社.2004:49——77[9]韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2004[10]譚浩強(qiáng).C語言設(shè)計(jì)[M](第三版).北京:清華大學(xué)出版社.2005:37-65[11]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社.1991[12]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995
謝辭從大學(xué)到現(xiàn)在,從論文開始到圓滿完成,我滿懷欣喜,回想求學(xué)之路,快樂而艱辛,在這本科生涯即將結(jié)束之際,我要由衷的感謝我的父母,感謝我的老師,感謝我的朋友。一路以來,你們給予了我無數(shù)的幫助和關(guān)懷,一路以來,你們辛苦了,謝謝你們。本設(shè)計(jì)是在蘇秉華老師的指導(dǎo)下才得以完成的,蘇老師不辭辛苦,細(xì)心指導(dǎo),從最開始的課題選取,然后到開題報(bào)告、中期報(bào)告的督促,還有對(duì)軟硬件的具體設(shè)計(jì)和調(diào)試,毫無疑問都體現(xiàn)了蘇老師對(duì)學(xué)生的關(guān)懷,對(duì)學(xué)生論文負(fù)責(zé)認(rèn)真的態(tài)度,在四年的大學(xué)生涯中,無時(shí)無刻都能感受到導(dǎo)師對(duì)教學(xué)工作的熱情,這對(duì)我將來踏入社會(huì)工作幫助。在此通過寥寥數(shù)語,向蘇秉華老師致敬,謝謝蘇老師。另外,我還要向所有教過我的大學(xué)老師說聲謝謝。正因?yàn)橛兴麄兊膶I(yè)教學(xué)指導(dǎo),我才可以順利完成這篇論文,順利畢業(yè)。同時(shí),也感謝四年來和我一起努力奮斗的同學(xué)。畢業(yè)意味著分離,未來的路還很長(zhǎng),但我不會(huì)忘記我們之間的友誼,不會(huì)忘記他們教給我的知識(shí)以及做人處事方法。我會(huì)學(xué)以致用,努力學(xué)習(xí),踏實(shí)做事,認(rèn)真做人。恩情似海,永生難忘!衷心祝愿各位老師身體健康,工作順利,生活幸福美滿!祝朋友們心想事成,畢業(yè)快樂!附錄附錄1程序源代碼text.c //code字符指針開始//從字庫中查找出字模//code字符串的開始地址,GBK碼//mat數(shù)據(jù)存放地址(size/8+((size%8)?1:0))*(size)bytes大小 //size:字體大小voidGet_HzMat(unsignedchar*code,unsignedchar*mat,u8size){ unsignedcharqh,ql; unsignedchari; unsignedlongfoffset; u8csize=(size/8+((size%8)?1:0))*(size);//得到字體一個(gè)字符對(duì)應(yīng)點(diǎn)陣集所占的字節(jié)數(shù) qh=*code; ql=*(++code); if(qh<0x81||ql<0x40||ql==0xff||qh==0xff)//非常用漢字 { for(i=0;i<csize;i++)*mat++=0x00;//填充滿格 return;//結(jié)束訪問 } if(ql<0x7f)ql-=0x40;//注意! elseql-=0x41; qh-=0x81; foffset=((unsignedlong)190*qh+ql)*csize; //得到字庫中的字節(jié)偏移量 switch(size) { case12: W25QXX_Read(mat,foffset+ftinfo.f12addr,csize); break; case16: W25QXX_Read(mat,foffset+ftinfo.f16addr,csize); break; case24: W25QXX_Read(mat,foffset+ftinfo.f24addr,csize); break; case32: W25QXX_Read(mat,foffset+ftinfo.f32addr,csize); break; } }//顯示一個(gè)指定大小的漢字//x,y:漢字的坐標(biāo)//font:漢字GBK碼//size:字體大小//mode:0,正常顯示,1,疊加顯示 voidShow_Font(u16x,u16y,u8*font,u8size,u8mode){ u8temp,t,t1; u16y0=y; u8dzk[128]; u8csize=(size/8+((size%8)?1:0))*(size); //得到字體一個(gè)字符對(duì)應(yīng)點(diǎn)陣集所占的字節(jié)數(shù) if(size!=12&&size!=16&&size!=24&&size!=32)return; //不支持的size Get_HzMat(font,dzk,size); //得到相應(yīng)大小的點(diǎn)陣數(shù)據(jù) for(t=0;t<csize;t++) { temp=dzk[t]; //得到點(diǎn)陣數(shù)據(jù) for(t1=0;t1<8;t1++) { if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR); elseif(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR); temp<<=1; y++; if((y-y0)==size) { y=y0; x++; break; } } }}Picture.cexternu32*ltdc_framebuf[2]; //LTDCLCD幀緩存數(shù)組指針,必須指向?qū)?yīng)大小的內(nèi)存區(qū)域_pic_infopicinfo; //圖片信息_pic_phypic_phy; //圖片顯示物理接口 ////////////////////////////////////////////////////////////////////////////畫圖初始化,在畫圖之前,必須先調(diào)用此函數(shù)//指定畫點(diǎn)/讀點(diǎn)voidpiclib_init(void){ pic_phy.read_point=LCD_ReadPoint; //讀點(diǎn)函數(shù)實(shí)現(xiàn),僅BMP需要 pic_phy.draw_point=LCD_Fast_DrawPoint; //畫點(diǎn)函數(shù)實(shí)現(xiàn) pic_phy.fill=LCD_Fill; //填充函數(shù)實(shí)現(xiàn),僅GIF需要 pic_phy.draw_hline=piclib_draw_hline; //畫線函數(shù)實(shí)現(xiàn),僅GIF需要 pic_phy.fillcolor=piclib_fill_color; //顏色填充函數(shù)實(shí)現(xiàn),僅TJPGD需要 picinfo.lcdwidth=lcddev.width; //得到LCD的寬度像素 picinfo.lcdheight=lcddev.height;//得到LCD的高度像素 picinfo.ImgWidth=0; //初始化寬度為0 picinfo.ImgHeight=0;//初始化高度為0 picinfo.Div_Fac=0; //初始化縮放系數(shù)為0 picinfo.S_Height=0; //初始化設(shè)定的高度為0 picinfo.S_Width=0; //初始化設(shè)定的寬度為0 picinfo.S_XOFF=0; //初始化x軸的偏移量為0 picinfo.S_YOFF=0; //初始化y軸的偏移量為0 picinfo.staticx=0; //初始化當(dāng)前顯示到的x坐標(biāo)為0 picinfo.staticy=0; //初始化當(dāng)前顯示到的y坐標(biāo)為0}//快速ALPHABLENDING算法.//src:源顏色//dst:目標(biāo)顏色//alpha:透明程度(0~32)//返回值:混合后的顏色.u16piclib_alpha_blend(u16src,u16dst,u8alpha){ u32src2; u32dst2; //Convertto32bit|GGGGGGRRRRRBBBBB| src2=((src<<16)|src)&0x07E0F81F; dst2=((dst<<16)|dst)&0x07E0F81F; //PerformblendingR:G:Bwithalphainrange0..32 //Notethatthereasonthatalphamaynotexceed32isthatthereareonly //5bitsofspacebetweeneachR:G:Bvalue,anyhighervaluewilloverflow //intothenextcomponentanddeliveruglyresult. dst2=((((dst2-src2)*alpha)>>5)+src2)&0x07E0F81F; return(dst2>>16)|dst2;}//初始化智能畫點(diǎn)//內(nèi)部調(diào)用voidai_draw_init(void){ floattemp,temp1; temp=(float)picinfo.S_Width/picinfo.ImgWidth; temp1=(float)picinfo.S_Height/picinfo.ImgHeight; if(temp<temp1)temp1=temp;//取較小的那個(gè) if(temp1>1)temp1=1; //使圖片處于所給區(qū)域的中間 picinfo.S_XOFF+=(picinfo.S_Width-temp1*picinfo.ImgWidth)/2; picinfo.S_YOFF+=(picinfo.S_Height-temp1*picinfo.ImgHeight)/2; temp1*=8192;//擴(kuò)大8192倍 picinfo.Div_Fac=temp1; picinfo.staticx=0xffff; picinfo.staticy=0xffff;//放到一個(gè)不可能的值上面 }//判斷這個(gè)像素是否可以顯示//(x,y):像素原始坐標(biāo)//chg:功能變量.//返回值:0,不需要顯示.1,需要顯示u8is_element_ok(u16x,u16y,u8chg){ if(x!=picinfo.staticx||y!=picinfo.staticy) { if(chg==1) { picinfo.staticx=x; picinfo.staticy=y; } return1; }elsereturn0;}//智能畫圖//FileName:要顯示的圖片文件BMP/JPG/JPEG/GIF//x,y,width,height:坐標(biāo)及顯示區(qū)域尺寸//fast:使能jpeg/jpg小圖片(圖片尺寸小于等于液晶分辨率)快速解碼,0,不使能;1,使能.//圖片在開始和結(jié)束的坐標(biāo)點(diǎn)范圍內(nèi)顯示u8ai_load_picfile(constu8*filename,u16x,u16y,u16width,u16height,u8fast){ u8 res;//返回值 u8temp; if((x+width)>picinfo.lcdwidth)returnPIC_WINDOW_ERR; //x坐標(biāo)超范圍了. if((y+height)>picinfo.lcdheight)returnPIC_WINDOW_ERR; //y坐標(biāo)超范圍了. //得到顯示方框大小 if(width==0||height==0)returnPIC_WINDOW_ERR; //窗口設(shè)定錯(cuò)誤 picinfo.S_Height=height; picinfo.S_Width=width; //顯示區(qū)域無效 if(picinfo.S_Height==0||picinfo.S_Width==0) { picinfo.S_Height=lcddev.height; picinfo.S_Width=lcddev.width; returnFALSE; } if(pic_phy.fillcolor==NULL)fast=0;//顏色填充函數(shù)未實(shí)現(xiàn),不能快速顯示 //顯示的開始坐標(biāo)點(diǎn) picinfo.S_YOFF=y; picinfo.S_XOFF=x; //文件名傳遞 temp=f_typetell((u8*)filename); //得到文件的類型 switch(temp) { caseT_BMP: res=stdbmp_decode(filename); //解碼bmp break; caseT_JPG: caseT_JPEG: res=jpg_decode(filename,fast); //解碼JPG/JPEG break; caseT_GIF: res=gif_decode(filename,x,y,width,height); //解碼gif break; default: res=PIC_FORMAT_ERR; //非圖片格式!!! break; } returnres;}//動(dòng)態(tài)分配內(nèi)存void*pic_memalloc(u32size) { return(void*)mymalloc(SRAMIN,size);}//釋放內(nèi)存voidpic_memfree(void*mf) { myfree(SRAMIN,mf);}
怎樣提高電腦系統(tǒng)運(yùn)行速度WindowsXP的啟動(dòng)速度比Windows2000要快30%左右,但相對(duì)于Windows98仍然要慢了不少,不過,我們可以通過優(yōu)化設(shè)置,來大大提高WindowsXP的啟動(dòng)速度。加快系統(tǒng)啟動(dòng)速度主要有以下方法:盡量減少系統(tǒng)在啟動(dòng)時(shí)加載的程序與服務(wù);對(duì)磁盤及CPU等硬件進(jìn)行優(yōu)化設(shè)置;修改默認(rèn)設(shè)置,減少啟動(dòng)等待時(shí)間等。這些方法大部分既可減少系統(tǒng)啟動(dòng)的時(shí)間,又可以節(jié)省系統(tǒng)資源,加快電腦運(yùn)行速度。1.加快系統(tǒng)啟動(dòng)速度WindowsXP的啟動(dòng)速度比Windows2000要快30%左右,但相對(duì)于Windows98仍然要慢了不少,不過,我們可以通過優(yōu)化設(shè)置,來大大提高WindowsXP的啟動(dòng)速度。加快系統(tǒng)啟動(dòng)速度主要有以下方法:盡量減少系統(tǒng)在啟動(dòng)時(shí)加載的程序與服務(wù);對(duì)磁盤及CPU等硬件進(jìn)行優(yōu)化設(shè)置;修改默認(rèn)設(shè)置,減少啟動(dòng)等待時(shí)間等。這些方法大部分既可減少系統(tǒng)啟動(dòng)的時(shí)間,又可以節(jié)省系統(tǒng)資源,加快電腦運(yùn)行速度。(1)MsconfigWindowsXP的啟動(dòng)速度在系統(tǒng)安裝初期還比較快,但隨著安裝的軟件不斷增多,系統(tǒng)的啟動(dòng)速度會(huì)越來越慢,這是由于許多軟件把自己加在了啟動(dòng)程序中,這樣開機(jī)即需運(yùn)行,大大降低了啟動(dòng)速度,而且也占用了大量的系統(tǒng)資源。對(duì)于這樣一些程序,我們可以通過系統(tǒng)配置實(shí)用程序Msconfig將它們從啟動(dòng)組中排除出去。選擇“開始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對(duì)話框中鍵入“Msconfig”,回車后會(huì)彈出“系統(tǒng)配置實(shí)用程序”對(duì)話框,選擇其中的“啟動(dòng)”選項(xiàng)卡(如圖1),該選項(xiàng)卡中列出了系統(tǒng)啟動(dòng)時(shí)加載的項(xiàng)目及來源,仔細(xì)查看每個(gè)項(xiàng)目是否需要自動(dòng)加載,否則清除項(xiàng)目前的復(fù)選框,加載的項(xiàng)目越少,啟動(dòng)的速度就越快。設(shè)置完成后需要重新啟動(dòng)方能生效。(2)BootvisBootvis是微軟提供的一個(gè)啟動(dòng)優(yōu)化工具,可提高WindowsXP的啟動(dòng)速度。用BootVis提升WindowsXP的啟動(dòng)速度必須按照正確的順序進(jìn)行操作,否則將不會(huì)起到提速的效果。其正確的操作方法如下:?jiǎn)?dòng)Bootvis,從其主窗口(如圖2)中選擇“工具”菜單下的“選項(xiàng)”命令,在“符號(hào)路徑”處鍵入Bootvis的安裝路徑,如“C:\ProgramFiles\Bootvis”,單擊“保存”退出。從“跟蹤”菜單中選擇“下次引導(dǎo)”命令,會(huì)彈出“重復(fù)跟蹤”對(duì)話框,單擊“確定”按鈕,BootVis將引導(dǎo)WindowsXP重新啟動(dòng),默認(rèn)的重新啟動(dòng)時(shí)間是10秒。系統(tǒng)重新啟動(dòng)后,BootVis自動(dòng)開始運(yùn)行并記錄啟動(dòng)進(jìn)程,生成啟動(dòng)進(jìn)程的相關(guān)BIN文件,并把這個(gè)記錄文件自動(dòng)命名為TRACE_BOOT_1_1。程序記錄完啟動(dòng)進(jìn)程文件后,會(huì)重新啟動(dòng)BootVis主界面,在“文件”菜單中選擇剛剛生成的啟動(dòng)進(jìn)程文件“TRACE_BOOT_1_1”。窗口中即會(huì)出現(xiàn)“CPU>使用”、“磁盤I/O”、“磁盤使用”、“驅(qū)動(dòng)程序延遲”等幾項(xiàng)具體圖例供我們分析,不過最好還是讓BootVis程序來自動(dòng)進(jìn)行分析:從“跟蹤”菜單中選擇“系統(tǒng)優(yōu)化”命令,程序會(huì)再次重新啟動(dòng)計(jì)算機(jī),并分析啟動(dòng)進(jìn)程文件,從而使計(jì)算機(jī)啟動(dòng)得更快。(3)禁用多余的服務(wù)WindowsXP在啟動(dòng)時(shí)會(huì)有眾多程序或服務(wù)被調(diào)入到系統(tǒng)的內(nèi)存中,它們往往用來控制Windows系統(tǒng)的硬件設(shè)備、內(nèi)存、文件管理或者其他重要的系統(tǒng)功能。但這些服務(wù)有很多對(duì)我們用途不大甚至根本沒有用,它們的存在會(huì)占用內(nèi)存和系統(tǒng)資源,所以應(yīng)該將它們禁用,這樣最多可以節(jié)省70MB的內(nèi)存空間,系統(tǒng)速度自然也會(huì)有很大的提高。選擇“開始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對(duì)話框鍵入“services.msc”后回車,即可打開“服務(wù)”窗口。窗口的服務(wù)列表中列出了系統(tǒng)提供的所有服務(wù)的名稱、狀態(tài)及啟動(dòng)類型。要修改某個(gè)服務(wù),可從列表雙擊它,會(huì)彈出它的屬性對(duì)話框(如圖3),你可從“常規(guī)”選項(xiàng)卡對(duì)服務(wù)進(jìn)行修改,通過單擊“啟動(dòng)”、“停止”、“暫?!?、“恢復(fù)”四個(gè)按鈕來修改服務(wù)的狀態(tài),并可從“啟動(dòng)類型”下拉列表中修改啟動(dòng)類型,啟動(dòng)類型有“自動(dòng)”、“手動(dòng)”、“已禁用”三種。如果要禁止某個(gè)服務(wù)在啟動(dòng)自動(dòng)加載,可將其啟動(dòng)類型改為“已禁用”。WindowsXP提供的所有服務(wù)有36個(gè)默認(rèn)是自動(dòng)啟動(dòng)的,實(shí)際上,其中只有8個(gè)是必須保留的(見下表),其他的則可根據(jù)自己的需要進(jìn)行設(shè)置,每種服務(wù)的作用在軟件中有提示。4)修改注冊(cè)表來減少預(yù)讀取,減少進(jìn)度條等待時(shí)間WindowsXP在啟動(dòng)過程中會(huì)出現(xiàn)一個(gè)進(jìn)度條,我們可以通過修改注冊(cè)表,讓進(jìn)度條只跑一圈就進(jìn)入登錄畫面。選擇“開始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對(duì)話框鍵入“regedit”命令后回車,即可啟動(dòng)注冊(cè)表編輯器,在注冊(cè)表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,選擇其下的EnablePrefetcher鍵,把它的鍵值改為“1”即可。(5)減少開機(jī)磁盤掃描等待時(shí)間當(dāng)Windows日志中記錄有非正常關(guān)機(jī)、死機(jī)引起的重新啟動(dòng),系統(tǒng)就會(huì)自動(dòng)在啟動(dòng)的時(shí)候運(yùn)行磁盤掃描程序。在默認(rèn)情況下,掃描每個(gè)分區(qū)前會(huì)等待10秒鐘,如果每個(gè)分區(qū)都要等上10秒才能開始進(jìn)行掃描,再加上掃描本身需要的時(shí)間,會(huì)耗費(fèi)相當(dāng)長(zhǎng)的時(shí)間才能完成啟動(dòng)過程。對(duì)于這種情況我們可以設(shè)置取消磁盤掃描的等待時(shí)間,甚至禁止對(duì)某個(gè)磁盤分區(qū)進(jìn)行掃描。選擇“開始→運(yùn)行”,在運(yùn)行對(duì)話框中鍵入“chkntfs/t:0”,即可將磁盤掃描等待時(shí)間設(shè)置為0;如果要在計(jì)算機(jī)啟動(dòng)時(shí)忽略掃描某個(gè)分區(qū),比如C盤,可以輸入“chkntfs/xc:”命令;如果要恢復(fù)對(duì)C盤的掃描,可使用“chkntfs/dc:”命令,即可還原所有chkntfs默認(rèn)設(shè)置,除了自動(dòng)文件檢查的倒計(jì)時(shí)之外。2.提高系統(tǒng)運(yùn)行速度提升系統(tǒng)運(yùn)行速度的思路與加快啟動(dòng)的速度類似:盡量?jī)?yōu)化軟硬件設(shè)置,減輕系統(tǒng)負(fù)擔(dān)。以下是一些常用的優(yōu)化手段。(1)設(shè)置處理器二級(jí)緩存容量WindowsXP無法自動(dòng)檢測(cè)處理器的二級(jí)緩存容量,需要我們自己在注冊(cè)表中手動(dòng)設(shè)置,首先打開注冊(cè)表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,選擇其下的“SecondLevelDataCache”,根據(jù)自己所用的處理器設(shè)置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系統(tǒng)緩存同樣也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”鍵值從0改為1,WindowsXP就會(huì)把除了4M之外的系統(tǒng)內(nèi)存全部分配到文件系統(tǒng)緩存中,這樣XP的內(nèi)核能夠在內(nèi)存中運(yùn)行,大大提高系統(tǒng)速度。通常來說,該優(yōu)化會(huì)使系統(tǒng)性能得到相當(dāng)?shù)奶嵘灿锌赡軙?huì)使某些應(yīng)用程序性能降低。需要注意的是必須有256M以上的內(nèi)存,激活LargeSystemCache才可起到正面的作用,否則不要輕易改動(dòng)它。(3)改進(jìn)輸入/輸出性能這個(gè)優(yōu)化能夠提升系統(tǒng)進(jìn)行大容量文件傳輸時(shí)的性能,不過這只對(duì)服務(wù)器用戶才有實(shí)在意義。我們可在中新建一個(gè)DWORD(雙字節(jié)值)鍵值,命名為IOPageLockLimit。一般情況下把數(shù)據(jù)設(shè)置8~16MB之間性能最好,要記住這個(gè)值是用字節(jié)來計(jì)算的,例如你要分配10MB的話,就是10×?1024×1024,也就是10485760。這里的優(yōu)化也需要你的機(jī)器擁有大于256M的內(nèi)存。(4)禁用內(nèi)存頁面調(diào)度在正常情況下,XP會(huì)把內(nèi)存中的片斷寫入硬盤,我們可以阻止它這樣做,讓數(shù)據(jù)保留在內(nèi)存中,從而提升系統(tǒng)性能。在注冊(cè)表中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”下的“DisablePagingExecutive”鍵,把它的值從0改為1即可禁止內(nèi)存頁面調(diào)度了。(5)關(guān)閉自動(dòng)重新啟動(dòng)功能當(dāng)WindowsXP遇到嚴(yán)重問題時(shí)便會(huì)突然重新開機(jī),可從注冊(cè)表將此功能取消。打開注冊(cè)表編輯器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”將AutoReboot鍵的Dword值更改為0,重新啟動(dòng)后設(shè)置即可生效。(6)改變視覺效果WindowsXP在默認(rèn)情況下啟用了幾乎所有的視覺效果,如淡入淡出、在菜單下顯示陰影。這些視覺效果雖然漂亮,但對(duì)系統(tǒng)性能會(huì)有一定的影響,有時(shí)甚至造成應(yīng)用軟件在運(yùn)行時(shí)出現(xiàn)停頓。一般情況下建議少用或者取消這些視覺效果。選擇桌面上“我的電腦”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“屬性”命令,打開“系統(tǒng)屬性”對(duì)話框。選擇“高級(jí)”選項(xiàng)卡,在其中的“性能”欄中單擊“設(shè)置”按鈕,會(huì)彈出“性能選項(xiàng)”對(duì)話框(如圖4),可選擇“調(diào)整為最佳性能”單選框來關(guān)閉所有的視覺效果,也可選擇“自定義”然后選擇自己需要的視覺效果。(7)合理設(shè)置頁面虛擬內(nèi)存同樣也是在“性能選項(xiàng)”對(duì)話框中,選擇“高級(jí)”選項(xiàng)卡,在其中的“虛擬內(nèi)存”欄中單擊“更改”按鈕,接下來選擇虛擬內(nèi)存為“自定義大小”,然后設(shè)置其數(shù)值。一般情況下,把虛擬設(shè)為不小于256M,不大于382M比較合適,而且最大值和最小值最好一樣。(8)修改外觀方案WindowsXP默認(rèn)的外觀方案雖然漂亮,但對(duì)系統(tǒng)資源的占用也多,可將其改為經(jīng)典外觀以獲得更好的性能。在桌面空白位置單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“屬性”命令,會(huì)打開“顯示屬性”對(duì)話框,在“主題”選項(xiàng)卡選擇主題為“Windows經(jīng)典”,即可將外觀修改為更為經(jīng)濟(jì)的Windows經(jīng)典外觀。(9)取消XP對(duì)ZIP支持WindowsXP在默認(rèn)情況下打開了對(duì)zip文件支持,這要占用一定的系統(tǒng)資源,可選擇“開始→運(yùn)行”,在“運(yùn)行”對(duì)話框中鍵入“regsvr32/uzipfldr.dll”,回車確認(rèn)即可取消XP對(duì)ZIP解壓縮的支持,從而節(jié)省系統(tǒng)資源。(10)關(guān)閉Dr.WatsonDr.Watson是WindowsXP的一個(gè)崩潰分析工具,它會(huì)在應(yīng)用程序崩潰的時(shí)候自動(dòng)彈出,并且在默認(rèn)情況下,它會(huì)將與出錯(cuò)有關(guān)的內(nèi)存保存為DUMP文件以供程序員分析。不過,記錄DUMP文件對(duì)普通用戶則毫無幫助,反而會(huì)帶來很大的不便:由于Dr.Watson在應(yīng)用程序崩潰時(shí)會(huì)對(duì)內(nèi)存進(jìn)行DUMP記錄,將出現(xiàn)長(zhǎng)時(shí)間硬盤讀寫操作,要很長(zhǎng)一斷時(shí)間程序才能關(guān)閉,并且DUMP文件還會(huì)占用大量磁盤空間。要關(guān)閉Dr.Watson可打開注冊(cè)表編輯器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug”分支,雙擊其下的Auto鍵值名稱,將其“數(shù)值數(shù)據(jù)”改為0,最后按F5刷新使設(shè)置生效,這樣就取消它的運(yùn)行了。同樣,我們可以把所有具備調(diào)試功能的選項(xiàng)取消,比如藍(lán)屏?xí)r出現(xiàn)的memory.dmp,可在“系統(tǒng)屬性”對(duì)話框中選擇“高級(jí)”選項(xiàng)卡,單擊“啟動(dòng)和故障恢復(fù)”欄中的“設(shè)置”按鈕,并在彈出的“啟動(dòng)和故障恢復(fù)”對(duì)話框中選擇“寫入調(diào)試信息”為“無”(如圖5)。(11)啟動(dòng)硬盤/光驅(qū)DMA模式打開“系統(tǒng)屬性”對(duì)話框,選擇“硬件”選擇卡中的“設(shè)備管理器”按鈕,打開“設(shè)備管理器”窗口,在設(shè)備列表中選擇“IDEATA/ATAPI控制器”,雙擊“主要IDE通道”或“次要IDE通過”,在其屬性對(duì)話框的“高級(jí)設(shè)置”選項(xiàng)卡中檢查DMA模式是否已啟動(dòng),一般來說如果設(shè)備支持,系統(tǒng)就會(huì)自動(dòng)打開DMA功能,如果沒有打開可將“傳輸模式”設(shè)為“DMA(若可用)”。(12)關(guān)掉不用的設(shè)備WindowsXP總是盡可能為電腦的所有設(shè)備安裝驅(qū)動(dòng)程序并進(jìn)行管理,這不僅會(huì)減慢系統(tǒng)啟動(dòng)的速度,同時(shí)也造成了系統(tǒng)資源的大量占用。針對(duì)這一情況,你可在設(shè)備管理器中,將PCMCIA卡、調(diào)制解調(diào)器、紅外線設(shè)備、打印機(jī)端口(LPT1)或者串口(C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 異丙安替比林相關(guān)行業(yè)投資方案
- 人教版八年級(jí)歷史與社會(huì)上冊(cè)說課稿2.3日本的大化改新
- 人教版七年級(jí)上冊(cè)第二單元第二課自然環(huán)境說課稿5
- 2025年素拓部工作個(gè)人計(jì)劃 素拓部的工作
- 2025年外貿(mào)業(yè)務(wù)員個(gè)人工作計(jì)劃
- 博物館展覽設(shè)計(jì)師工作總結(jié)
- 機(jī)械行業(yè)銷售代表工作總結(jié)
- 神經(jīng)內(nèi)科護(hù)士工作感受
- Unit 4 Space Exploration Reading for Writing 說課稿-2023-2024學(xué)年高中英語人教版(2019)必修第三冊(cè)
- 酒店資源利用效率提升
- 國(guó)家開放大學(xué)1116《機(jī)電控制工程基礎(chǔ)》
- 程琳-職業(yè)生涯分析與規(guī)劃
- 仁愛英語九年級(jí)總復(fù)習(xí)教案
- 心電圖基本知識(shí)PPT
- GB/T 5130-1997電氣用熱固性樹脂工業(yè)硬質(zhì)層壓板試驗(yàn)方法
- FZ/T 01041-2014絨毛織物絨毛長(zhǎng)度和絨毛高度的測(cè)定
- 中小學(xué)食材配送中心項(xiàng)目建設(shè)可行性研究報(bào)告
- 人體解剖上肢血管
- 精品解析浙教版科學(xué) 九年級(jí)上冊(cè) 3.43 簡(jiǎn)單機(jī)械之機(jī)械效率 同步練習(xí)
- 夸美紐斯-大教學(xué)論-文本細(xì)讀
- 日立多聯(lián)機(jī)系統(tǒng)調(diào)試培訓(xùn)教材
評(píng)論
0/150
提交評(píng)論