單片機原理與應(yīng)用技術(shù) 單片機到底是什么呢?就是一個電腦,只不過是微型的,麻雀雖小,五臟俱全:它內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機,排煙罩VCD等等的家電里面都可以看到它的身影!......它主要是作為控制部分的核心部件。 它是一種在線式實時控制計算機,在線式就是現(xiàn)場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區(qū)別。 單片機是靠程序的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結(jié)果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性! 由于單片機對成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級匯編語言,它是除了二進制機器碼以上最低級的語言了,既然這么低級為什么還要用呢?很多高級的語言已經(jīng)達到了可視化編程的水平為什么不用呢?原因很簡單,就是單片機沒有家用計算機那樣的CPU,也沒有像硬盤那樣的海量存儲設(shè)備。一個可視化高級語言編寫的小程序里面即使只有一個按鈕,也會達到幾十K的尺寸!對于家用PC的硬盤來講沒什么,可是對于單片機來講是不能接受的。 單片機在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的操作系統(tǒng)和應(yīng)用軟件拿到家用PC上來運行,家用PC的也是承受不了的。 目前最常用的單片機為MCS-51,是由美國INTEL公司(生產(chǎn)CPU的英特爾)生產(chǎn)的,89C51是這幾年在我國非常流行的單片機,它是由美國ATMEL公司開發(fā)生產(chǎn)的,其內(nèi)核兼容MCS-51單片機。 單片機的應(yīng)用領(lǐng)域 單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇: 1.在智能儀器儀表上的應(yīng)用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。 2.在工業(yè)控制中的應(yīng)用 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。 3.在家用電器中的應(yīng)用 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。 4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。 5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途
標(biāo)簽: 單片機原理 應(yīng)用技術(shù)
上傳時間: 2013-11-14
上傳用戶:gououo
作為一種新的、最有潛力的光源,LED照明以其節(jié)能、環(huán)保的優(yōu)勢越來越受到人們重視。加上國家和地方政府的政策鼓勵,我國的LED照明產(chǎn)業(yè)進入了加速發(fā)展階段,運用市場迅速增長。在室內(nèi)照明方面,用LED燈替代傳統(tǒng)的可調(diào)光白熾燈或者鹵素?zé)粢矊⑹谴髣菟?。由于傳統(tǒng)的白熾燈調(diào)光器采用可控硅調(diào)光器,用LED燈替代白熾燈時,要求不能改變原有線路,還要能適應(yīng)現(xiàn)有的可控硅調(diào)光器。針對這一目標(biāo)市場,目前很多大的半導(dǎo)體廠商(包括國際知名半導(dǎo)體廠商)都已經(jīng)推出了自己的LED調(diào)光ASIC,但由于LED固有的發(fā)光原理,目前市面上的LED ASIC調(diào)光案都還不是很成熟,都有其固有的問題,本文就將針對目前的調(diào)光方案做一個詳細的分析,并介紹我們基于MCU的調(diào)光方案。
標(biāo)簽: ASIC MCU LED 可控硅調(diào)光
上傳時間: 2013-11-21
上傳用戶:comua
10月22日,德州儀器 (TI) 宣布推出價格更低的、基于 Stellaris ARM Cortex™-M3 的全新微處理器產(chǎn)品,擴展了旗下微處理器 (MCU) 陣營,從而為開發(fā)人員滿足嵌入式設(shè)計需求提供了更高的靈活性。29 款全新 Stellaris MCU 包括針對運動控制應(yīng)用、智能模擬功能以及擴展的高級連接選項等的獨特 IP,可為工業(yè)應(yīng)用提供各種價格/性能的解決方案。此外,該產(chǎn)品系列還可提供更大范圍的存儲器引腳兼容以及最新緊湊型封裝,可顯著節(jié)省空間與成本。由于 Stellaris MCU 卓越的集成度已融入 TI 的規(guī)模效應(yīng)之中,由此帶來的高效率可使整個 Stellaris 系列的價格平均下降 13%。TI 綜合 StellarisWare® 軟件可為每款器件提供支持,從而可加速能源、安全以及連接市場領(lǐng)域的應(yīng)用開發(fā)。
標(biāo)簽: Stelleris Cortex-M AR 內(nèi)核
上傳時間: 2013-11-14
上傳用戶:如果你也聽說
單片機軟件濾波的幾種方法:假定從AD中讀取數(shù)據(jù)的子程序為:unsigned int get_ad();1、限幅濾波法(又稱程序判斷濾波法)A、方法:根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為A)。每次檢測到新值時判斷:如果本次值與上次值之差<=A,則本次值有效;如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值。B、優(yōu)點:能有效克服因偶然因素引起的脈沖干擾C、缺點:無法抑制那種周期性的干擾,平滑度差D、軟件實現(xiàn)://=======================//值A(chǔ)可根據(jù)實際情況調(diào)整,value為有效值,new_value為當(dāng)前采樣值//濾波程序返回有效的實際值
上傳時間: 2013-10-20
上傳用戶:xiaojie
結(jié)合單片機技術(shù)及其它相關(guān)技術(shù)的新進展,研究了便攜式智能儀器儀表的實用低功耗技術(shù)。對便攜式智能儀器儀表的低功耗設(shè)計具有指導(dǎo)作用。功耗問題一直是便攜式電子系統(tǒng)發(fā)展的主要障礙?,F(xiàn)在,電子系統(tǒng)的低功耗設(shè)計作為綠色電子的基本要求,成為現(xiàn)代電子系統(tǒng)的普遍追求。電子系統(tǒng)的低功耗設(shè)計可實現(xiàn)電子終端產(chǎn)品便攜、節(jié)能、可靠的愿望。LSI 和VLSI 技術(shù)的發(fā)展與應(yīng)用,有賴與可靠性技術(shù)和低功耗技術(shù)的發(fā)展。便攜式智能儀器儀表在許多領(lǐng)域有重要而廣泛的應(yīng)用。單片機是便攜式智能儀器儀表的核心。在一定意義上講,便攜式智能儀器儀表是一個單片機應(yīng)用系統(tǒng)。單片機技術(shù)及其它相關(guān)技術(shù)的迅速發(fā)展,為便攜式智能儀器儀表的低功耗設(shè)計提供了必要的條件。長壽命、高速度、低電壓與低功耗、低噪聲與高可靠性、多品種、低價格等是單片機技術(shù)發(fā)展的特點,并已取得很大進展[1]。本文將結(jié)合單片機技術(shù)及其它相關(guān)技術(shù)的新進展,討論便攜式智能儀器儀表的實用低功耗技術(shù)。這對便攜式智能儀器儀表(以下簡稱“智能儀表”)的低功耗設(shè)計具有較好的指導(dǎo)作用。
標(biāo)簽: 便攜式 低功耗技術(shù) 智能儀器儀表
上傳時間: 2013-10-11
上傳用戶:tou15837271233
近年來,車輛檢測器作為交通信息采集的重要前端部分,越來越受到業(yè)內(nèi)人士的關(guān)注。鑒于公路交通現(xiàn)代化管理和城市交通現(xiàn)代化管理的發(fā)展需要, 對于行駛車輛的動態(tài)檢測技術(shù)——車輛檢測器的研制在國內(nèi)外均已引起較大重視。車輛檢測器以機動車輛為檢測目標(biāo),檢測車輛的通過或存在狀況,其作用是為智能交通控制系統(tǒng)提供足夠的信息以便進行最優(yōu)的控制。目前,常用的行駛車輛檢測器主要有磁感應(yīng)式檢測器,超聲波式檢測器,壓力開關(guān)檢測器,雷達檢測器,光電檢測器以及視頻檢測器等,而環(huán)形線圈電磁感應(yīng)式車輛檢測器具有性能穩(wěn)定、結(jié)構(gòu)簡單、檢測電路易于實現(xiàn)、成本低、維護量少、適應(yīng)面廣等優(yōu)點,市場應(yīng)用范圍最廣。目前我國實際用于高速公路和城市道路的車輛檢測器幾乎全部是從國外進口的,國產(chǎn)車輛檢測器存在著諸多問題, 如誤檢率高、靈敏度低、長時間工作穩(wěn)定性差等。[1-2]在大量現(xiàn)場實驗基礎(chǔ)上, 本文提出一種新的解決方案, 將穩(wěn)定性、靈敏性、高速性融為一體,解決了以上所述的諸多問題。
上傳時間: 2013-12-30
上傳用戶:hanli8870
微型機算計發(fā)展概述人類從原始社會學(xué)會使用工具以來到現(xiàn)代社會經(jīng)歷了三次大的產(chǎn)業(yè)革命:農(nóng)業(yè)革命、工業(yè)革命、信息革命。而信息革命是以計算機技術(shù)和通信技術(shù)的發(fā)展和普及為代表的。人類已進入了高速發(fā)展的現(xiàn)代時期。其中計算機科學(xué)和技術(shù)發(fā)展之快,是任何其他技術(shù)都無法相提并論的自從1946年美國賓夕法尼亞大學(xué)研制成功的世界上第一臺電子計算機到現(xiàn)在已50多年的歷史。計算機的發(fā)展經(jīng)歷了四代:第一代:電子管電路計算機,電子管數(shù):18800個;繼電器數(shù)量:5000個;耗電量:150KW;重量:30t;占地面積:150平方米;運算速度:5000次加法運算/s。第二代:晶體管電路計算機(60年代初)第三代:小規(guī)模集成電路計算機。第四代:大規(guī)模(LSI)和超大規(guī)模(VSLI)集成電路計算機。第四代計算機基本情況:運算速度為每秒幾千億次到幾萬億次;從數(shù)值計算和數(shù)據(jù)處理到目前進行知識處理的人工智能階段;計算機不僅可以處理文字、字符、圖形圖象信息,而且可以處理音頻、視頻等多媒體信息;計算機正朝著智能化和多媒體化方向發(fā)展。微型計算機的定義:以微處理器為核心,再配上半導(dǎo)體存儲器、輸入/輸出接口電路、系統(tǒng)總線及其它支持邏輯電路組成的計算機稱微型計算機。在1971年美國Intel公司首先研制成功世界上第一塊微處理器芯片4004以來,差不多每隔2~3年就推出一代新的微處理器產(chǎn)品;如今已推出了第五代微處理器。因為微處理器是微型計算機的核心部件,它的性能在很大程度上決定了微型計算機的性能,所以微型計算機的發(fā)展是以微處理器的發(fā)展而更新?lián)Q代的。微處理器和微型計算機的發(fā)展:1.第一代微處理器和微型計算機:(1971~1973年)——4位CPU和低檔8位處理器,典型的產(chǎn)品有:Intel 4004、改進型的4040,是4位處理器,以它為核心構(gòu)成的微機是MCS-4。Intel 8008是8位通用微處理器,以它為核心所構(gòu)的微機是MCS-8。參數(shù):芯片采用PMOS工藝;集成度為2000管/片;時鐘頻率1MHz;平均指令執(zhí)行時間為20μs。2.第二代微處理器和微型計算機(1973~1978年)——成熟的8位CPU,典型的產(chǎn)品有:Intel 8080(1973年由Intel公司推出)MC6800 (1974年由美國Motorola推出。Z-80 (1975年由Zilog公司推出。Intel 8085 (1976年由Intel公司推出,是Intel 8080的改進型。MOS 6502,由MOS公司推出,它是IBM PC機問世之前世界上最流行的微型計算機Apple2(蘋果機)的CPU。第二代微處理器的參數(shù):芯片工藝采用NMOS工藝,集成度達到5000~9000管/片;時鐘頻率2~4MHz;平均指令執(zhí)行時間為1~2μs;具有多種尋址方式,指令系統(tǒng)完善,基本指令100多條。特點:具有中斷、DMA等控制功能;也考慮了兼容性、接口標(biāo)準(zhǔn)化和通用性、配套的外圍電路功能和種類齊全。在軟件方面:主要是匯編,還有一些簡單的高級語言和操作系統(tǒng)。
上傳時間: 2013-11-24
上傳用戶:蔣清華嗯
有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨立于語言的訪問設(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)細節(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類的一個實例來獲得一個或更多的CdeviceInterface類的實例。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中,建議不要使用這個屬性,因為它將導(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)用進程有效。驅(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來實現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進程有效。這里是一個用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è)的競爭日益激烈,市場調(diào)整壓力越來越大,原始設(shè)備制造商們(OEM)為了面對這一挑戰(zhàn),必須在滿足電磁兼容性的條件下,不斷降低產(chǎn)品的成本。由于強調(diào)成本控制,為防止由電源和信號線的瞬變所產(chǎn)生的電器故障而實施必要的瞬態(tài)免疫保護,對于家電設(shè)計者來說變得更具挑戰(zhàn)性。由于傳統(tǒng)的電源設(shè)計和電磁干擾(EMI)控制措施為節(jié)約成本讓路,家電設(shè)計者必須開發(fā)出新的技術(shù)來滿足不斷調(diào)整的電磁兼容(EMC)需求。本應(yīng)用筆記探討了瞬態(tài)電氣干擾對嵌入式微控制器(MCU)的影響,并提供了切實可行的硬件和軟件設(shè)計技術(shù),這些技術(shù)可以為電快速瞬變(EFT)、靜電放電(ESD)以及其它電源線或信號線的短時瞬變提供低成本的保護措施。雖然這種探討是主要針對家電制造商,但是也適用于消費電子、工業(yè)以及汽車電子方面的應(yīng)用。
上傳時間: 2013-11-22
上傳用戶:csgcd001
模塊化LED大屏幕顯示器的設(shè)計:LED大屏幕顯示器由于其醒目! 內(nèi)容靈活多變等特點" 已經(jīng)越來越多地應(yīng)用于廣告! 信息發(fā)布! 交通指示等公共場所" 取得了良好效果LED顯示屏主要分為數(shù)碼顯示和點陣顯示兩大類" 本文只討論點陣顯示$ 目前的627 顯示屏基本上都是先由用戶提出要求" 生產(chǎn)廠家根據(jù)需要訂做$ 每次都要重復(fù)設(shè)計電路和機械結(jié)構(gòu)" 造成資源浪費" 而且若用戶的需求改變" 改動將十分困難$實際上不論顯示屏的大小" 其原理都是相同的"因此完全可以設(shè)計出一種標(biāo)準(zhǔn)化% 模塊化的LED 顯示屏" 針對不同的需要" 只需要簡單組合相應(yīng)的模塊即可$ 本文介紹的就是一種模塊化的LED 顯示屏" 可以根據(jù)需要靈活改變大小" 并可以脫離計算機獨立運行" 還可以實現(xiàn)如閃爍! 滾動顯示等特效$ 對整體式顯示屏刷新率不足發(fā)生閃爍的常見問題" 在這個設(shè)計中由于被分割成小模塊" 不再成為問題$
上傳時間: 2013-10-09
上傳用戶:fxf126@126.com
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1