freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的sd卡數(shù)據(jù)操作設(shè)計(jì)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-09-02 08:51 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開(kāi)始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開(kāi)始執(zhí)行。單片機(jī)復(fù)位電路如圖32所示。圖32 89S51最小系統(tǒng)圖(2)復(fù)位電路的工作原理在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動(dòng)的時(shí)候復(fù)位一次,當(dāng)按鍵按下的時(shí)候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會(huì)復(fù)位,所以可以通過(guò)按鍵的斷開(kāi)和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位。在電路圖中,電容的大小是10uF,電阻的大小是10k。所以根據(jù)公式,(單片機(jī)的電源是5V,),需要的時(shí)間是10K*10UF=。,電容兩端的電壓時(shí)在0~。這個(gè)時(shí)候10K電阻兩端的電壓為從5~(串聯(lián)電路各處電壓之和為總電壓)。,RST引腳所接收到的電壓是5V~。,單片機(jī)系統(tǒng)自動(dòng)復(fù)位()。,電容C兩端的電壓持續(xù)充電為5V,這時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開(kāi)關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過(guò)程中,電容開(kāi)始釋放之前充的電量。隨著時(shí)間的推移,從 。根據(jù)串聯(lián)電路電壓為各處之和,甚至更大,所以RST引腳又接收到高電平,單片機(jī)系統(tǒng)自動(dòng)復(fù)位。 sd卡內(nèi)部結(jié)構(gòu)和工作原理SD卡(Secure Digital Memory Card)是一種為滿足安全性、容量、性能和使用環(huán)境等各方面的需求而設(shè)計(jì)的一種新型存儲(chǔ)器件,SD卡允許在兩種模式下工作,即SD模式和SPI模式,本系統(tǒng)采用SPI模式。本小節(jié)僅簡(jiǎn)要介紹在SPI模式下,STM32處理器如何讀寫(xiě)SD卡,如果讀者如希望詳細(xì)了解SD卡,可以參考相關(guān)資料。 SD卡內(nèi)部結(jié)構(gòu)圖33 SD卡內(nèi)部圖 sd卡引腳及功能圖34 sd卡管腳圖SD卡主要引腳和功能為:CLK:時(shí)鐘信號(hào),每個(gè)時(shí)鐘周期傳輸一個(gè)命令或數(shù)據(jù)位,頻率可在0~25MHz之間變化,SD卡的總線管理器可以不受任何限制的自由產(chǎn)生0~25MHz的頻率;CMD:雙向命令和回復(fù)線,命令是一次主機(jī)到從卡操作的開(kāi)始,命令可以是從主機(jī)到單卡尋址,也可以是到所有卡;回復(fù)是對(duì)之前命令的回答,回復(fù)可以來(lái)自單卡或所有卡;DAT0~3:數(shù)據(jù)線,數(shù)據(jù)可以從卡傳向主機(jī)也可以從主機(jī)傳向卡。SD卡以命令形式來(lái)控制SD卡的讀寫(xiě)等操作??筛鶕?jù)命令對(duì)多塊或單塊進(jìn)行讀寫(xiě)操作。在SPI模式下其命令由6個(gè)字節(jié)構(gòu)成,其中高位在前。SD卡命令的格式如表1所示,其中相關(guān)參數(shù)可以查閱SD卡規(guī)范。一般我們用單片機(jī)操作SD卡時(shí),都不需要對(duì)FAT分區(qū)表信息做處理,原因如下:1)、操作FAT分區(qū)表要增加程序代碼量、增加SRAM的消耗,對(duì)于便攜應(yīng)用來(lái)說(shuō)代碼大小和占用SRAM的多少至關(guān)重要。2)、即使我們對(duì)FAT分區(qū)表不做任何了解,實(shí)際上我們一樣可以向SD卡上寫(xiě)入數(shù)據(jù),這就表明使用FAT對(duì)我們做數(shù)據(jù)存儲(chǔ)應(yīng)用來(lái)說(shuō)如同雞肋。3)、耗費(fèi)大量經(jīng)歷和時(shí)間去了解FAT分區(qū)表對(duì)于我們做嵌入式軟件開(kāi)發(fā)的人來(lái)說(shuō)有些得不償失。4)、SD卡支持兩種操作模式,SD模式和SPI模式,SPI模式做SD數(shù)據(jù)操作時(shí)根本不需要知道FAT,這時(shí)候SD卡對(duì)于我們來(lái)說(shuō)實(shí)際上就是個(gè)大的、快速的、方便的、容量可變的外部存儲(chǔ)器。基于以上原因,一般情況下對(duì)SD卡的操作只需要了解SPI通訊就可以了,而現(xiàn)在大部分單片機(jī)都有SPI接口,那么操作SD卡易如反掌。 單片機(jī)與sd卡鏈接應(yīng)用AT89S51讀寫(xiě)SD卡有兩點(diǎn)需要注意。首先,需要尋找一個(gè)實(shí)現(xiàn)AT89S51單片機(jī)與SD卡通訊的解決方案;其次,SD卡所能接受的邏輯電平與AT89S51提供的邏輯電平不匹配,需要解決電平匹配問(wèn)題SD卡有兩個(gè)可選的通訊協(xié)議:SD模式和SPI模式。SD模式是SD卡標(biāo)準(zhǔn)的讀寫(xiě)方式,但是在選用SD模式時(shí),往往需要選擇帶有SD卡控制器接口的MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫(xiě)。然而,AT89S51單片機(jī)沒(méi)有集成SD卡控制器接口,若選用SD模式通訊就無(wú)形中增加了產(chǎn)品的硬件成本。在SD卡數(shù)據(jù)讀寫(xiě)時(shí)間要求不是很?chē)?yán)格的情況下,選用SPI模式可以說(shuō)是一種最佳的解決方案。因?yàn)樵赟PI模式下,通過(guò)四條線就可以完成所有的數(shù)據(jù)交換,并且目前市場(chǎng)上很多MCU都集成有現(xiàn)成的SPI接口電路,采用SPI模式對(duì)SD卡進(jìn)行讀寫(xiě)操作可大大簡(jiǎn)化硬件電路的設(shè)計(jì)。雖然AT89S51不帶SD卡硬件控制器,也沒(méi)有現(xiàn)成的SPI接口模塊,但是可以用軟件模擬出SPI總線時(shí)序。本文用SPI總線模式讀寫(xiě)SD卡。 TTL電平標(biāo)準(zhǔn),而控制芯片AT89S51的邏輯電平為5V CMOS電平標(biāo)準(zhǔn)。因此,它們之間不能直接相連,否則會(huì)有燒毀SD卡的可能。出于對(duì)安全工作的考慮,有必要解決電平匹配問(wèn)題。要解決這一問(wèn)題,最根本的就是解決邏輯器件接口的電平兼容問(wèn)題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識(shí)別為低電平的最高電壓值。一般來(lái)說(shuō),通用的電平轉(zhuǎn)換方案是采用類(lèi)似SN74ALVC4245的專(zhuān)用電平轉(zhuǎn)換芯片,這類(lèi)芯片不僅可以用作升壓和降壓,而且允許兩邊電源不同步。但是,這個(gè)方案代價(jià)相對(duì)昂貴,而且一般的專(zhuān)用電平轉(zhuǎn)換芯片都是同時(shí)轉(zhuǎn)換8路、16路或者更多路數(shù)的電平,相對(duì)本系統(tǒng)僅僅需要轉(zhuǎn)換3路來(lái)說(shuō)是一種資源的浪費(fèi)??紤]到SD卡在SPI協(xié)議的工作模式下,通訊都是單向的,于是在單片機(jī)向SD卡傳輸數(shù)據(jù)時(shí)采用晶體管加上拉電阻法的方案,基本電路如圖36所示。而在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平兼容原則,既經(jīng)濟(jì)又實(shí)用。 圖35 電平轉(zhuǎn)換電路這個(gè)方案需要雙電源供電(一個(gè)5V電源、)。SD卡提供9Pin的引腳接口便于外圍電路對(duì)其進(jìn)行操作,9Pin的引腳隨工作模式的不同有所差異。在SPI模式下,引腳1(DAT3)作為SPI片選線CS 用,引腳2(CMD)用作SPI總線的數(shù)據(jù)輸出線MOSI,而引腳7(DAT0)為數(shù)據(jù)輸入線MISO,引腳5用作時(shí)鐘線(CLK)。除電源和地,保留引腳可懸空。本文中控制SD卡的MCU是ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī)AT89S51,內(nèi)含8K字節(jié)的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器和256字節(jié)的隨機(jī)存儲(chǔ)數(shù)據(jù)存儲(chǔ)器。由于AT89S51只有256字節(jié)的數(shù)據(jù)存儲(chǔ)器,而SD卡的數(shù)據(jù)寫(xiě)入是以塊為單位,每塊為512字節(jié),所以需要在單片機(jī)最小系統(tǒng)上增加一片RAM。本系統(tǒng)中RAM選用存儲(chǔ)器芯片HM62256,容量為32K。對(duì)RAM進(jìn)行讀寫(xiě)時(shí),鎖存器把低8位地址鎖存,與P2口的8位地址數(shù)據(jù)構(gòu)成16位地址空間,從而可使SD卡一次讀寫(xiě)512字節(jié)的塊操作。4 軟件設(shè)計(jì) 軟件設(shè)計(jì)目標(biāo)最終能實(shí)現(xiàn)同時(shí)將四路模擬電壓(05V)進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為十進(jìn)制有效數(shù)字3位;要求每秒鐘轉(zhuǎn)換一次,并將結(jié)果轉(zhuǎn)換為ASCII碼形式;、。采集實(shí)時(shí)的4個(gè)通道電壓值顯示在TFT彩屏上;按S1按鍵進(jìn)行采集及存儲(chǔ),再按S1按鍵暫停采集及存儲(chǔ),按S2鍵清除SD卡中的內(nèi)容;按S按鍵系統(tǒng)進(jìn)行復(fù)位。 設(shè)計(jì)環(huán)境Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面介紹Keil C51開(kāi)發(fā)系統(tǒng)各部分功能和使用。Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的整體結(jié)構(gòu):Uvision 與Ishell分別是C51 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ),目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。 ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如EPROM中。 系統(tǒng)軟件設(shè)計(jì)設(shè)計(jì)主要在Keil環(huán)境下進(jìn)行編程。 SD卡初始化對(duì)SD卡進(jìn)行初始化,初始化的過(guò)程中設(shè)置SD卡工作在SPI模式,其流程圖如圖41所示。在復(fù)位成功之后可以通過(guò)CMD55和ACMD41判斷當(dāng)前電壓是否在工作范圍內(nèi)。主機(jī)還可以繼續(xù)通過(guò)CMD10讀取SD卡的CID寄存器,通過(guò)CMD16設(shè)置數(shù)據(jù)Block長(zhǎng)度,通過(guò)CMD9讀取卡的CSD寄存器。從CSD寄存器中,主機(jī)可獲知卡容量,支持的命令集等重要參數(shù)。圖41 SD卡初始化流程圖 數(shù)據(jù)塊的讀寫(xiě)完成SD卡的初始化之后即可進(jìn)行它的讀寫(xiě)操作。SD卡的讀寫(xiě)操作都是通過(guò)發(fā)送SD卡命令完成的。SPI總線模式支持單塊(CMD24)和多塊(CMD25)寫(xiě)操作,多塊操作是指從指定位置開(kāi)始寫(xiě)下去,直到SD卡收到一個(gè)停止命令CMD12才停止。單塊寫(xiě)操作的數(shù)據(jù)塊長(zhǎng)度只能是512字節(jié)。單塊寫(xiě)入時(shí),命令為為CMD24,當(dāng)應(yīng)答為0時(shí)說(shuō)明可以寫(xiě)入數(shù)據(jù),大小為512字節(jié)。SD對(duì)每個(gè)發(fā)送給自己的數(shù)據(jù)塊都通過(guò)一個(gè)應(yīng)答命令確認(rèn),它為1個(gè)字節(jié)長(zhǎng),當(dāng)?shù)?位為00101時(shí),表明數(shù)據(jù)塊被正確寫(xiě)入SD卡??梢?jiàn),讀寫(xiě)SD卡的操作都是在初始化后基于SD卡命令和響應(yīng)完成操作的,寫(xiě)SD卡的程序流程圖如圖42所示。 圖42寫(xiě)SD卡流程圖① 寫(xiě)單塊1):發(fā)送命令CMD24;2):接收R1響應(yīng);3):發(fā)送Data Tokens (Single Block Write: Oxfe);4):發(fā)送一個(gè)block(一般為512個(gè)字節(jié));5):發(fā)送兩個(gè)CRC16碼;6):循環(huán)接收數(shù)據(jù),等待寫(xiě)完成,直到寫(xiě)完成接收到0xff。② 寫(xiě)多塊1):發(fā)送命令CMD25;2):接收R1b響應(yīng);3):發(fā)送Data Tokens (Single Block Write: 0xfe);4):發(fā)送一個(gè)block(一般為512個(gè)字節(jié);5):發(fā)送兩個(gè)字節(jié)CRC16碼;6):循環(huán)接收數(shù)據(jù),等待寫(xiě)完成,直到寫(xiě)完成接收到0xff;7):重復(fù)步驟3,繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)包,直到所有數(shù)據(jù)包發(fā)送完成,至步驟8繼續(xù);8):發(fā)送命令CMD12,數(shù)據(jù)傳輸結(jié)束;9):接受R1b相應(yīng)。在需要讀取SD卡中數(shù)據(jù)的時(shí)候,讀SD卡的命令字為CMD17,接收正確的第一個(gè)響應(yīng)命令字節(jié)為0xFE,隨后是512個(gè)字節(jié)的用戶數(shù)據(jù)塊,最后為2個(gè)字節(jié)的CRC驗(yàn)證碼。讀SD卡的程序流程圖如圖43所示。圖43
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1