亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

多目標(biāo)(biāo)跟蹤

  • 多路電壓采集系統(tǒng)

    多路電壓采集系統(tǒng)一、實(shí)驗(yàn)?zāi)康模保煜た删幊绦酒珹DC0809,8253的工作過程,掌握它們的編程方法。2.加深對所學(xué)知識的理解并學(xué)會應(yīng)用所學(xué)的知識,達(dá)到在應(yīng)用中掌握知識的目的。 二、實(shí)驗(yàn)內(nèi)容與要求1.基本要求通過一個A/D轉(zhuǎn)換器循環(huán)采樣4路模擬電壓,每隔一定時間去采樣一次,一次按順序采樣4路信號。A/D轉(zhuǎn)換器芯片AD0809將采樣到的模擬信號轉(zhuǎn)換為數(shù)字信號,轉(zhuǎn)換完成后,CPU讀取數(shù)據(jù)轉(zhuǎn)換結(jié)果,并將結(jié)果送入外設(shè)即CRT/LED顯示,顯示包括電壓路數(shù)和數(shù)據(jù)值。2. 提高要求 (1) 可以實(shí)現(xiàn)循環(huán)采集和選擇采集2種方式。(2)在CRT上繪制電壓變化曲線。 三、實(shí)驗(yàn)報告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡要說明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(包括遇到的問題及解決的方法) 四、總體設(shè)計(jì)設(shè)計(jì)思路如下:1) 4路模擬電壓信號通過4個電位器提供0-5V的電壓信號。2) 選擇ADC0809芯片作為A/D轉(zhuǎn)換器,4路輸入信號分別接到ADC0809的IN0—IN4通道,每隔一定的時間采樣一次,采完一路采集下一路,4路電壓循環(huán)采集。3) 利用3個LED數(shù)碼管顯示數(shù)據(jù),1個數(shù)碼管用來顯示輸入電壓路數(shù),3個數(shù)碼管用來顯示電壓采樣值。4) 延時由8253定時/計(jì)數(shù)器來實(shí)現(xiàn)。 五、硬件電路設(shè)計(jì)根據(jù)設(shè)計(jì)思路,硬件主要利用了微機(jī)實(shí)驗(yàn)平臺上的ADC0809模數(shù)轉(zhuǎn)換器、8253定時/計(jì)數(shù)器以及LED顯示輸出等模塊。電路原理圖如下:1.基本接口實(shí)驗(yàn)板部分1) 電位計(jì)模塊,4個電位計(jì)輸出4路1-5V的電壓信號。2) ADC0809模數(shù)轉(zhuǎn)換器,將4路電壓信號接到IN0-IN3,ADD_A、ADD_B、ADD_C分別接A0、A1、A2,CS_AD接CS0時,4個采樣通道對應(yīng)的地址分別為280H—283H。3) 延時模塊,8253和8255組成延時電路。8255的PA0接到8253的OUT0,程序中查詢計(jì)數(shù)是否結(jié)束。硬件電路圖如圖1所示。 圖1 基本實(shí)驗(yàn)板上的電路圖實(shí)驗(yàn)板上的LED顯示部分實(shí)驗(yàn)板上主要用到了LED數(shù)碼管顯示電路,插孔CS1用于數(shù)碼管段碼的輸出選通,插孔CS2用于數(shù)碼管位選信號的輸出選通。電路圖如圖2所示。

    標(biāo)簽: 多路 電壓采集

    上傳時間: 2013-11-06

    上傳用戶:sunchao524

  • 單片機(jī)系統(tǒng)常用軟件抗干擾措施

    單片機(jī)系統(tǒng)常用軟件抗干擾措施:可靠性設(shè)計(jì)是一項(xiàng)系統(tǒng)工程,單片機(jī)系統(tǒng)的可靠性必須從軟件、硬件以及結(jié)構(gòu)設(shè)計(jì)等方面全面考慮。硬件系統(tǒng)的可靠性設(shè)計(jì)是單片機(jī)系統(tǒng)可靠性的根本,而軟件系統(tǒng)的可靠性設(shè)計(jì)起到抑制外來干擾的作用。軟件系統(tǒng)的可靠性設(shè)計(jì)的主要方法有:開機(jī)自檢、軟件陷阱(進(jìn)行程序“跑飛”檢測)、設(shè)置程序運(yùn)行狀態(tài)標(biāo)記、輸出端口刷新、輸入多次采樣、軟件“看門狗”等。通過軟件系統(tǒng)的可靠性設(shè)計(jì),達(dá)到最大限度地降低干擾對系統(tǒng)工作的影響,確保單片機(jī)及時發(fā)現(xiàn)因干擾導(dǎo)致程序出現(xiàn)的錯誤,并使系統(tǒng)恢復(fù)到正常工作狀態(tài)或及時報警的目的。一、開機(jī)自檢開機(jī)后首先對單片機(jī)系統(tǒng)的硬件及軟件狀態(tài)進(jìn)行檢測,一旦發(fā)現(xiàn)不正常,就進(jìn)行相應(yīng)的處理。開機(jī)自檢程序通常包括對RAM、ROM、I/O口狀態(tài)等的檢測。1 檢測RAM檢查RAM讀寫是否正常,實(shí)際操作是向RAM單元寫“00H”,讀出也應(yīng)為“00H”,再向其寫“FFH”,讀出也應(yīng)為“FFH”。如果RAM單元讀寫出錯,應(yīng)給出RAM出錯提示(聲光或其它形式),等待處理。2 檢查ROM單元的內(nèi)容對ROM單元的檢測主要是檢查ROM單元的內(nèi)容的校驗(yàn)和。所謂ROM的校驗(yàn)和是將ROM的內(nèi)容逐一相加后得到一個數(shù)值,該值便稱校驗(yàn)和。ROM單元存儲的是程序、常數(shù)和表格。一旦程序編寫完成,ROM中的內(nèi)容就確定了,其校驗(yàn)和也就是唯一的。若ROM校驗(yàn)和出錯,應(yīng)給出ROM出錯提示(聲光或其它形式),等待處理。3 檢查I/O口狀態(tài)首先確定系統(tǒng)的I/O口在待機(jī)狀態(tài)應(yīng)處的狀態(tài),然后檢測單片機(jī)的I/O口在待機(jī)狀態(tài)下的狀態(tài)是否正常(如是否有短路或開路現(xiàn)象等)。若不正常,應(yīng)給出出錯提示(聲光或其它形式),等待處理。4 其它接口電路檢測除了對上述單片機(jī)內(nèi)部資源進(jìn)行檢測外,對系統(tǒng)中的其它接口電路,比如擴(kuò)展的E2PROM、A/D轉(zhuǎn)換電路等,又如數(shù)字測溫儀中的555單穩(wěn)測溫電路,均應(yīng)通過軟件進(jìn)行檢測,確定是否有故障。只有各項(xiàng)檢查均正常,程序方能繼續(xù)執(zhí)行,否則應(yīng)提示出錯。

    標(biāo)簽: 單片機(jī)系統(tǒng) 軟件 抗干擾措施

    上傳時間: 2013-11-02

    上傳用戶:名爵少年

  • 自制多功能編程器

    這里介紹的一款多功能編程器,功能強(qiáng)大,支持大多數(shù)常用的EPROM, EEPROM, FLASH, I2C,PIC, MCS-51,AVR, 93Cxx等系列芯片(超過400種)。硬件成本較低,性價比很高。既適合于電子和電腦愛好者使用,也適合家電維修人員維修家電和單片機(jī)開發(fā)人員使用。圖1為多功能編程器的主機(jī),中間是32腳ZIF(零插力)鎖緊插座, 用于27系列、28系列、29系列、39/49系列等BIOS芯片。左邊是25芯并口插座,通過并口電纜連接計(jì)算機(jī)并口。左下方是電源插座。32腳ZIF插座下方是12位的DIP開關(guān),對EPROM芯片進(jìn)行讀寫等操作前,需將此開關(guān)撥至相應(yīng)位置。具體開關(guān)位置可以參照軟件提示。鎖緊插座右側(cè)依次排列3個DIP8插座和一個DIP18插座,分別用于25系列、24系列、93系列存儲器和PIC系列單片機(jī)等;綠色電源指示燈(Power)用于指示編程器電源狀態(tài);紅色指示燈(Vpp)用于指示芯片Vpp電源狀態(tài);黃色指示燈(Vcc)用于指示芯片編程狀態(tài)。  一、 主要功能:  ★ 可用此編程器升級、維修電腦主板,顯卡等BIOS芯片。可支持3.3V低電壓BIOS芯片。  ★ 用來寫網(wǎng)卡啟動芯片:用于組建無盤站寫網(wǎng)卡啟動芯片或制作硬盤還原卡等。  ★ 可用于復(fù)印機(jī)、傳真機(jī)、打印機(jī)主板維護(hù)和維修。★ 可用于讀寫用來寫汽車儀表、安全氣囊、里程表數(shù)據(jù)。★ 可用于維修顯示器、彩電、VCD、DVD 上面的存儲芯片。可修改開機(jī)畫面。 ★ 用來開發(fā)單片機(jī): 通過添加不同適配器,可以支持 MCS-51 系列, AVR 系列和 PIC 系列的MCU。  ★ 用來寫大容量存儲芯片:大容量的存儲芯片,一般在衛(wèi)星接收機(jī)上使用較多,可以用編程器直接來升級或改寫。  二、電路簡介圖2是這臺編程器的完整電路圖,可以看到編程器電路由完全分離的兩部分組成:串行部分和并行EPROM部分電路。限于篇幅,原理部分不再詳述。對原理感興趣的讀者可以參考本文配套文件包中的“電路原理參考.PDF”文件。圖2三、電路板設(shè)計(jì)與制作  圖3是編程器參考元件布局圖,雙面PCB尺寸為160X100毫米,厚度1.6毫米。具體的PCB設(shè)計(jì)可以參考配套文件中的“PCB參考設(shè)計(jì).PDF”。這個文件中包括電路板的頂層和低層布線和頂層絲印層。如果業(yè)余自制電路板,建議使用雙面感光電路板制作,以確保精度。

    標(biāo)簽: 多功能編程器

    上傳時間: 2013-10-14

    上傳用戶:問題問題

  • 68HC05K0 Infra-red Remote Cont

    The MC68HC05K0 is a low cost, low pin countsingle chip microcomputer with 504 bytes of userROM and 32 bytes of RAM. The MC68HC05K0 isa member of the 68HC05K series of devices whichare available in 16-pin DIL or SOIC packages.It uses the same CPU as the other devices in the68HC05 family and has the same instructions andregisters. Additionally, the device has a 15-stagemulti-function timer and 10 general purposebi-directional I/0 lines. A mask option is availablefor software programmable pull-downs on all ofthe I/O pins and four of the pins are capable ofgenerating interrupts.The device is ideally suited for remote-controlkeyboard applications because the pull-downs andthe interrupt drivers on the port pins allowkeyboards to be built without any externalcomponents except the keys themselves. There isno need for external pull-up or pull-down resistors,or diodes for wired-OR interrupts, as these featuresare already designed into the device.

    標(biāo)簽: Infra-red Remote Cont 05K

    上傳時間: 2014-01-24

    上傳用戶:zl5712176

  • DMA技術(shù) -ppt

    數(shù)據(jù)傳送的控制 數(shù)據(jù)傳送涉及的3個問題1)數(shù)據(jù)的來源;2)數(shù)據(jù)的去處;3)數(shù)據(jù)本身以及如何控制數(shù)據(jù)的傳送。 DMA方式控制的數(shù)據(jù)傳送 DMA傳送方式通常用來高速傳送大批量的數(shù)據(jù)塊。如:  硬盤和軟盤I/O; 快速通信通道I/O; 多處理機(jī)和多程序數(shù)據(jù)塊傳送; 在圖像處理中,對CRT屏幕送數(shù)據(jù); 快速數(shù)據(jù)采集; DRAM的刷新操作。 DMA傳送包括:(1)存儲單元傳送:存儲器→存儲器。(2)DMA讀傳送:存儲器→I/O設(shè)備。(3)DMA寫傳送:I/O設(shè)備→存儲器。4.1.2  DMA傳送的工作過程 1)I/O設(shè)備向DMAC發(fā)出DMA請求;2) DMAC向CPU發(fā)出總線請求;3)CPU在執(zhí)行完當(dāng)前指令的當(dāng)前的總線周期后,向DMAC發(fā)出總線響應(yīng)信號;4)CPU脫離對系統(tǒng)總線的控制,由DMAC接管對系統(tǒng)總線的控制; 為什么DMA傳送方式能實(shí)現(xiàn)高速傳送?DMA傳送的過程是什么樣的?畫出流程。DMA有哪些操作方式?各有什么特點(diǎn)。簡述DMA控制器的兩個工作狀態(tài)的特點(diǎn)。試設(shè)計(jì)一種在8088大模式下與8237連接的基本電路圖。并說明你的設(shè)計(jì)中8237各個端口的實(shí)際地址。DMA控制器的時序包括哪幾個狀態(tài)周期?試畫出正常讀傳輸?shù)臅r序。DMAC的內(nèi)部地址寄存器是16位的,如何擴(kuò)展地址來訪問16MB的地址空間?

    標(biāo)簽: DMA

    上傳時間: 2013-11-18

    上傳用戶:leixinzhuo

  • 微機(jī)總線與接口標(biāo)準(zhǔn)

    3.1 總線與接口概述 3.1.1 總線和接口及其標(biāo)準(zhǔn)的概念  總線:是在模塊和模塊之間或設(shè)備與設(shè)備之間的一組進(jìn)行互連和傳輸信息的信號線,信息包括指令、數(shù)據(jù)和地址。   總線標(biāo)準(zhǔn)     指芯片之間、擴(kuò)展卡之間以及系統(tǒng)之間,通過總線進(jìn)行連接和傳輸信息時,應(yīng)該遵守的一些協(xié)議與規(guī)范。  接口標(biāo)準(zhǔn)    外設(shè)接口的規(guī)范,涉及接口信號線定義、信號傳輸速率、傳輸方向和拓?fù)浣Y(jié)構(gòu),以及電氣特性和機(jī)械特性等多個方面。 3.1.2 總線的分類 1) 按總線功能或信號類型劃分為: 數(shù)據(jù)總線:雙向三態(tài)邏輯,線寬表示了總線數(shù)據(jù)傳輸?shù)哪芰Α5刂房偩€:單向三態(tài)邏輯,線寬決定了系統(tǒng)的尋址能力。控制總線:就某根來說是單向或雙向。控制總線最能體現(xiàn)總線特點(diǎn),決定總線功能的強(qiáng)弱和適應(yīng)性。2) 按總線的層次結(jié)構(gòu)分為: CPU總線:微機(jī)系統(tǒng)中速度最快的總線,主要在CPU內(nèi)部,連接CPU內(nèi)部部件,在CPU周圍的小范圍內(nèi)也分布該總線,提供系統(tǒng)原始的控制和命令。局部總線:在系統(tǒng)總線和CPU總線之間的一級總線,提供CPU和主板器件之間以及CPU到高速外設(shè)之間的快速信息通道。系統(tǒng)總線:也稱為I/O總線,是傳統(tǒng)的通過總線擴(kuò)展卡連接外部設(shè)備的總線。由于速度慢,其功能已經(jīng)被局部總線替代。通信總線:也稱為外部總線,是微機(jī)與微機(jī),微機(jī)與外設(shè)之間進(jìn)行通信的總線。3.1.3 總線的主要性能參數(shù)1.總線頻率:MHz表示的工作頻率,是總線速率的一個重要參數(shù)。2.總線寬度:指數(shù)據(jù)總線的位數(shù)。3.總線的數(shù)據(jù)傳輸率   總線的數(shù)據(jù)傳輸率=(總線寬度/8位)×總線頻率 例:PCI總線的總線頻率為33.3MHz,總線寬度為64位的情況下,總線數(shù)據(jù)傳輸率為266MB/s 。

    標(biāo)簽: 微機(jī) 總線 接口標(biāo)準(zhǔn)

    上傳時間: 2013-11-17

    上傳用戶:shen954166632

  • 驅(qū)動程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個Win32 APIs和設(shè)備對象的分發(fā)函數(shù)之間存在一個映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個設(shè)備對象的句柄。 用符號鏈打開一個設(shè)備的句柄為了打開一個設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個符號鏈出口,應(yīng)用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個設(shè)備。這個設(shè)備必須有一個符號鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個參數(shù)中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數(shù)不是Windows 98/2000中驅(qū)動程序(.sys文件)的路徑。是到設(shè)備對象的符號鏈。如果使用DriverWizard產(chǎn)生驅(qū)動程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號鏈。這意味著符號鏈名有一個附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個實(shí)例來獲得一個或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對象的IRPs。下面的表顯示了這種對應(yīng)關(guān)系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當(dāng)這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會在打開設(shè)備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲器中,并且創(chuàng)建了一個存儲在IRP中的MDL域。一個設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲區(qū)并沒有被鎖住而且地址只對調(diào)用進(jìn)程有效。驅(qū)動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個宏的其中一個參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個單一的緩沖來作為輸入與輸出。驅(qū)動程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級調(diào)用者使用的緩沖中。驅(qū)動程序必須在結(jié)束前存儲拷貝到IRP的Information成員中的數(shù)據(jù)個數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個系統(tǒng)緩沖,這個緩沖驅(qū)動程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對象,驅(qū)動程序?qū)@個對象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進(jìn)程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執(zhí)行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅(qū)動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標(biāo)簽: 驅(qū)動程序 應(yīng)用程序 接口

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • 多運(yùn)動目標(biāo)跟蹤及連通域標(biāo)記方法

    介紹了一種多運(yùn)動目標(biāo)檢測算法及序列圖像的仿真效果,同時對多運(yùn)動目標(biāo)檢測后的二值圖像進(jìn)行了連通成分標(biāo)記袁最后根據(jù)標(biāo)記結(jié)果在原圖像中準(zhǔn)確地框定了各運(yùn)動目標(biāo)。關(guān)鍵字 多運(yùn)動目標(biāo) 跟蹤 序列圖像 連通成分標(biāo)記

    標(biāo)簽: 運(yùn)動目標(biāo)跟蹤 標(biāo)記

    上傳時間: 2013-10-29

    上傳用戶:nanfeicui

  • STM32TS60 數(shù)字電阻型多觸摸屏控制方案

    ST 公司的STM32TS60 是集成了I2C,SPI,UART 和USB 接口的數(shù)字電阻型多觸摸屏控制器, 能同時跟蹤多達(dá)10 個單獨(dú)的觸摸,分辨率達(dá)0.17mm,觸摸屏掃描速率達(dá)125 Hz 到 250 Hz, 主要用于游戲機(jī),智能手機(jī),PMP,PND,MID 和筆記本電腦.本文介紹STM32TS60 主要特 性,2.5”-6”屏單器件應(yīng)用電路。    

    標(biāo)簽: STM 32 60 TS

    上傳時間: 2013-10-21

    上傳用戶:dingdingcandy

  • 用單片機(jī)內(nèi)置比較器設(shè)計(jì)高精度A/D變換器

    Σ-ΔA/D技術(shù)具有高分辨率、高線性度和低成本的特點(diǎn)。本文基于TI公司的MSP430F1121單片機(jī),介紹了采用內(nèi)置比較器和外圍電路構(gòu)成類似于Σ-△的高精度A/D實(shí)現(xiàn)方案,適合用于對溫度、壓力和電壓等緩慢變化信號的采集應(yīng)用。 在各種A/D轉(zhuǎn)換器中,最常用是逐次逼近法(SAR)A/D,該類器件具有轉(zhuǎn)換時間固定且快速的特點(diǎn),但難以顯著提高分辨率;積分型A/D 有較強(qiáng)的抗干擾能力,但轉(zhuǎn)換時間較長;過采樣Σ-ΔA/D由于其高分辨率,高線性度及低成本的特點(diǎn),正得到越來越多的應(yīng)用。根據(jù)這些特點(diǎn),本文以TI公司的MSP430F1121單片機(jī)實(shí)現(xiàn)了一種類似于Σ-ΔA/D技術(shù)的高精度轉(zhuǎn)換器方案。 MSP430F1121是16位RISC結(jié)構(gòu)的FLASH型單片機(jī),該芯片有14個雙向I/O口并兼有中斷功能,一個16位定時器兼有計(jì)數(shù)和定時功能。I/O口輸出高電平時電壓接近Vcc,低電平時接近Vss,因此,一個I/O口可以看作一位DAC,具有PWM功能。 該芯片具有一個內(nèi)置模擬電壓比較器,只須外接一只電阻和電容即可構(gòu)成一個類似于Σ-Δ技術(shù)的高精度單斜率A/D。一般而言,比較器在使用過程中會受到兩種因素的影響,一種是比較器輸入端的偏置電壓的積累;另一種是兩個輸入端電壓接近到一程度時,輸出端會產(chǎn)生振蕩。 MSP430F1121單片機(jī)在比較器兩輸入端對應(yīng)的單片機(jī)端口與片外輸入信號的連接線路保持不變的情況下,可通過軟件將比較器兩輸入端與對應(yīng)的單片機(jī)端口的連接線路交換,并同時將比較器的輸出極性變換,這樣抵消了比較器的輸入端累積的偏置電壓。通過在內(nèi)部將輸出連接到低通濾波器后,即使在比較器輸入端兩比較電壓非常接近,經(jīng)過濾波后也不會出現(xiàn)輸出端的振蕩現(xiàn)象,從而消除了輸出端震蕩的問題。利用內(nèi)置比較器實(shí)現(xiàn)高精度A/D圖1是一個可直接使用的A/D轉(zhuǎn)換方案,該方案是一個高精度的積分型A/D轉(zhuǎn)換器。其基本原理是用單一的I/O端口,執(zhí)行1位的數(shù)模轉(zhuǎn)換,以比較器的輸出作反饋,來維持Vout與Vin相等。圖1:利用MSP430F1121實(shí)現(xiàn)的實(shí)用A/D轉(zhuǎn)換器電路方案。

    標(biāo)簽: 用單片機(jī) 內(nèi)置 比較器 變換器

    上傳時間: 2013-11-10

    上傳用戶:lliuhhui

主站蜘蛛池模板: 龙井市| 墨竹工卡县| 西峡县| 奉新县| 隆德县| 涞源县| 辰溪县| 都昌县| 都匀市| 西贡区| 卫辉市| 扶绥县| 德令哈市| 烟台市| 阜平县| 华池县| 巴青县| 竹山县| 积石山| 巫山县| 微博| 得荣县| 北宁市| 东乡县| 灵山县| 商洛市| 蛟河市| 新昌县| 厦门市| 襄城县| 娄底市| 如东县| 文登市| 清丰县| 昔阳县| 攀枝花市| 安康市| 安吉县| 华安县| 云霄县| 龙口市|