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

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

中斷應用

  • HT45F23 OPA 功能

    HT45F23 MCU 含有兩個運算放大器,OPA1 和OPA2,可用於用戶特定的模擬信號處理,通 過控制暫存器,OPA 相關的應用可以很容易實現。本文主要介紹OPA 的操作,暫存器設定 以及基本OPA 應用,例如:同相放大器、反相放大器和電壓跟隨器。 HT45F23 運算放大器OPA1/OPA2 具有多個開關,輸入路徑可選以及多種參考電壓選擇,此 外OPA2 內部有8 種增益選項,直接通過軟體設定。適應於各種廣泛的應用。

    標簽: 45F F23 OPA HT

    上傳時間: 2013-11-21

    上傳用戶:immanuel2006

  • LM3S系列單片機擴展按鍵、數碼管及RTC應用筆記

    在大多數單片機系統中經常要用到按鍵和 7 段數碼管顯示,ZLG7290 就是一款功能強勁的按鍵處理和7 段數碼管顯示專業芯片。ZLG7290 提供了I2C 串行接口和鍵盤中斷信號方便與處理器連接;可驅動8 位共陰數碼管或64 個獨立LED 和64 個按鍵, 可控掃描位數并且可控任一數碼管閃爍,提供數據譯碼和循環移位段尋址等控制,58 個功能鍵可檢測任一鍵的連擊次數,無需外接元件即可直接驅動LED、即可擴展驅動電流和驅動電壓。

    標簽: LM3S RTC 單片機 擴展

    上傳時間: 2013-11-18

    上傳用戶:Altman

  • ICCAVR 入門

    ICCAVR簡介ICCAVR 是一種使用ANSI 標準C 語言來開發微控制器(MCU)程序的一個工具,它是一個綜合了編輯器和工程管理器的集成工作環境(IDE)。源文件全部被組織到工程之中,文件的編輯和工程(project)的構筑也在IDE 的環境中完成。編譯錯誤在狀態窗口中顯示,用鼠標單擊編譯錯誤時,光標會自動跳轉到出錯行。這個工程管理器還能直接產生INTEL HEX格式的燒寫文件和可以在AVR Studio 中調試的COFF 格式的調試文件。這里特別要提一下ICCAVR 中的應用構筑向導,可以在Tools 欄中選擇“ApplicationBiulder”或者直接點擊快捷工具欄中的“Application Biulder”圖標,就可以打開應用構筑向導對話框,可以根據需要設定芯片種類,各個端口初始值,是否使用定時器,中斷,UART等,選好以后單擊“OK”就可以得到所需的硬件初始化程序段,非常可靠而且方便。圖1給出了初始化UART 的一個例子:下面介紹一下創建并編譯一個工程文件的簡要步驟:1.新建一個源文件從file 菜單中選擇new,創建一個新文件,在改文件中輸入源程序并進行編輯和修改,然后存盤,在存盤時必須指定文件類型,如命名為:try.c 。寫一個新文件的步驟:首先用Biulder 初始化需要用到的硬件資源,生成初始化程序,然后再寫需要的代碼實現所要的功能。2.新建一個project從projrct 菜單中選擇new 命令,IDE 會彈出一個對話框,在對話框中用戶可以指定工程存放的文件夾和工程的名稱。在建立一個新工程之后,在工程管理器的窗口會出現三個子目錄,Files, Headers, Documents,這時就可以將要編譯的文件添加到project 中了。3.把文件添加到工程中可以在project-files 里單擊右鍵,選擇需要添加的文件;也可以在編輯窗口中單擊右鍵選擇彈出窗口的“Add To Project”命令。4.編譯源文件在編譯之前特別要注意在Project Options 中選擇與硬件相應的芯片。如本次實驗就選擇ATMEGA8515,如圖2 所示。在project 中選擇make project,也可以直接單擊快捷鍵F9,這時要是有錯則會彈出出錯信息,修改調試正確以后單擊快捷鍵ISP 就可以燒寫到硬件中去了。

    標簽: ICCAVR

    上傳時間: 2013-10-25

    上傳用戶:569342831

  • AVR 單片機和C語言的集成開發環境

    AVR 單片機和C語言的集成開發環境 ICCAVR編譯器簡介 ICCAVR是一個綜合了編輯器和工程管理器的集成開發環境(IDE),是一個純32位的程序,可在Windows 95/98/ME/NT/2000/XP下運行。Ø 源文件全部被組織在工程之中,文件的編輯和工程的構筑也在IDE的環境中完成。編譯錯誤在狀態窗口中顯示,用鼠標單擊編譯錯誤時,光標會自動跳轉到編輯窗口中引起錯誤的那一行。同時這個工程管理器還能直接產生INTEL HEX格式的燒錄文件和用于AVR Studio調試的COFF格式的文件。Ø ICCAVR是一個32位的程序,支持長文件名。Ø ICCAVR提供了全部的庫源代碼及一些簡單的應用實例供初學者參考,特別是提供庫源代碼,對于用戶理解庫函數的參數及返回值等是非常有益的,并且用戶能夠根據庫源代碼對ICCAVR提供的庫函數進行剪裁和擴充

    標簽: AVR 單片機 C語言 集成開發環境

    上傳時間: 2013-10-30

    上傳用戶:pkkkkp

  • 單片機入門基礎知識大全免費下載

    單片機入門基礎知識大全免費下載 單片機第八課(尋址方式與指令系統) 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現在開始,我們將要系統地學習8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數字的形式。但這種形式實在是為難我們人了,太難記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關系呢,我們不難理解,本質上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉換為機器碼格式,這種轉換有兩種方法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。 二、尋址 讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數據送到相應的位置中去,為什么要送數據呢?第一個因為送入的數可以讓燈全滅掉,第二個是為了要實現延時,從這里我們可以看出來,在用單片機的編程語言編程時,經常要用到數據的傳遞,事實上數據傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數據傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規定做什么事情,后面還有一些參數,分析一下,數據傳遞必須要有一個“源”也就是你要送什么數,必須要有一個“目的”,也就是你這個數要送到什么地方去,顯然在上面那條指令中,要送的數(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數據傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0     ;(1)    LCALL DELAY ;(2)     CLR P1.0      ;(3)    LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,#250   ;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1   ;(9)    RET        ;(10)    END        ;(11)     表1  MAIN: SETB P1.0     ;(1)    MOV 30H,#255     LCALL DELAY ;     CLR P1.0      ;(3)     MOV 30H,#200     LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,30H   ;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1   ;(9)    RET        ;(10)    END        ;(11) 表2    這樣一來,我每次調用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環,這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調用則見表2中的主程,也就是先把一個數送入30H,在子程序中R7中的值并不固定,而是根據30H單元中傳過來的數確定。這樣就可以滿足要求。 從這里我們可以得出結論,在數據傳遞中要找到被傳遞的數,很多時候,這個數并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數,我們把尋找操作數所在單元的地址稱之為尋址。在這里我們直接使用數所在單元的地址找到了操作數,所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數放在工作寄存器中,從工作寄存器中尋找數據,則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數據送到累加器A中去。提一個問題:我們知道,工作寄存器就是內存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區別了嗎?為什么要加以區分呢?的確,這兩條指令執行的結果是完全相同的,都是將00H單元中的內容送到A中去,但是執行的過程不同,執行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標碼要兩個字節(E5H 00H),而第二條則只要一個字節(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節又能有多少? 不對,如果這條指令只執行一次,也許無所謂,但一條指令如果執行上1000次,就是1毫秒,如果要執行1000000萬次,就是1S的誤差,這就很可觀了,單片機做的是實時控制的事,所以必須如此“斤斤計較”。字節數同樣如此。 再來提一個問題,現在我們已知,尋找操作數可以通過直接給的方式(立即尋址)和直接給出數所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數,分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數,就用MOV A,30H,那么下一個數呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數,不是得20條指令才能寫完嗎?這里只有20個數,如果要送200個或2000個數,那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據這個寄存器單元中的數值決定該到哪個單元中取數據,比如,當前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發生變化,比如取完一個數后,將這個寄存器單元中的值加1,還是執行同一條指令,可是取數的對象卻不一樣了,不是嗎。通過例子來說明吧。    MOV R7,#20    MOV R0,#30H LOOP:MOV A,@R0    INC R0    DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數20送到R7中,執行完后R7中的值應當是20。第二句是將立即數30H送入R0工作寄存器中,所以執行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內容送入A中,此時,執行這條指令的結果就相當于MOV A,30H。第四句,沒學過,就是把R0中的值加1,因此執行完后,R0中的值就是31H,第五句,學過,將R7中的值減1,看是否等于0,不等于0,則轉到標號LOOP處繼續執行,因此,執行完這句后,將轉去執行MOV A,@R0這句話,此時相當于執行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環20次為止,就實現了我們的要求:從30H單元開始將20個數據送入A中。 這也是一種尋找數據的方法,由于數據是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數據。 二、指令 數據傳遞類指令 1) 以累加器為目的操作數的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數34H送入A中,執行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A   MOV Rn,direct   MOV Rn,#data 這組指令功能是把源地址單元中的內容送入工作寄存器,源操作數不變。

    標簽: 單片機 免費下載 基礎知識

    上傳時間: 2013-10-13

    上傳用戶:3294322651

  • MCS51系列單片機軟件控制復位的可靠方法

    MCS51系列單片機軟件控制復位的可靠方法:文章指出了一種廣泛流傳的誤解:在MCS-51系列單片機中,只要用指令使程序從起始地址開始執行,就可以復位單片機,擺脫干擾。通過實驗,揭示了軟件控制復位的可靠方法。有的單片機(如8098)有專門的復位指令,某些增強型MCS-51系統單片機雖然沒有復位指令,但片內集成了WATCHDOG電路,故抗干擾也不成問題。而普及型MCS-51系列單片機(如8031和8032)既然無復位指令,又不帶硬件WATCHDOS,如果沒有外接硬件WATCHDOG電路,就必須采用軟件抗干擾技術。常用的軟件抗干擾技術有:軟件陷阱、指令冗余、軟件WATCHDOG等,它們的作用是在系統受干擾時能及時發現,再用軟件的方法使系統復位。所謂軟件復位就是用一系列指令來模仿復位操作,這就是MCS-51系列單片機所特有的軟件復位技術。現用一簡單的實驗說明。接于P1.0的發光二極管LED0用來表示主程序的工作情況,接于P1.1的發光二極管LED1用于表示低級中斷子程序的工作情況,接于P1.2的發光二極管LED2用來表示高級中斷子程序的工作情況,接于P3.2口的按鈕用來設立干擾標志,程序檢測到干擾標志后故意進入死循環或掉進陷井,模仿受干擾的情況,從而檢驗各種復位方法的實際效果。實驗初始化程序如下:

    標簽: MCS 51 單片機 軟件控制

    上傳時間: 2013-11-03

    上傳用戶:sevenbestfei

  • 驅動程序與應用程序的接口

    有兩種方式可以讓設備和應用程序之間聯系:1. 通過為設備創建的一個符號鏈;2. 通過輸出到一個接口WDM驅動程序建議使用輸出到一個接口而不推薦使用創建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創建一個惟一的、獨立于語言的訪問設備的方法。一個應用程序使用Win32APIs來調用設備。在某個Win32 APIs和設備對象的分發函數之間存在一個映射關系。獲得對設備對象訪問的第一步就是打開一個設備對象的句柄。 用符號鏈打開一個設備的句柄為了打開一個設備,應用程序需要使用CreateFile。如果該設備有一個符號鏈出口,應用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統本調用希望打開一個設備。這個設備必須有一個符號鏈,以便應用程序能夠打開它。有關細節查看有關Kdevice和CreateLink的內容。在上述調用中第一個參數中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數不是Windows 98/2000中驅動程序(.sys文件)的路徑。是到設備對象的符號鏈。如果使用DriverWizard產生驅動程序,它通常使用類KunitizedName來構成設備的符號鏈。這意味著符號鏈名有一個附加的數字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應用程序需要被覆蓋的I/O,第六個參數(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設備信息集,該信息集包含了特殊類中的所有設備接口信息。應用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設備接口的抽象。它的成員函數DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設備。下面用一個小例子來顯示這些類最基本的使用方法: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;} 在設備中執行I/O操作一旦應用程序獲得一個有效的設備句柄,它就能使用Win32 APIs來產生到設備對象的IRPs。下面的表顯示了這種對應關系。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 需要解釋一下設備類成員的Close和CleanUp:CreateFile使內核為設備創建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調用CleanUp。當沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調用Close。如果被打開的設備不支持指定的功能,則調用相應的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應用程序代碼中可能會在打開設備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導致沒有特權的用戶企圖打開這個設備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數轉換成IRP域的方法依賴于設備對象的屬性。當設備設置DO_DIRECT_IO標志,I/O管理器將buff鎖住在存儲器中,并且創建了一個存儲在IRP中的MDL域。一個設備可以通過調用Kirp::Mdl來存取MDL。當設備設置DO_BUFFERED_IO標志,設備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或寫操作獲得buff地址。當設備不設置DO_BUFFERED_IO標志也不設置DO_DIRECT_IO,內核設置IRP 的UserBuffer域來對應ReadFile或WriteFile中的buff參數。然而,存儲區并沒有被鎖住而且地址只對調用進程有效。驅動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調用,buffer參數的轉換依賴于特殊的I/O控制代碼,它不在設備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構造控制代碼。這個宏的其中一個參數指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數: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,系統分配一個單一的緩沖來作為輸入與輸出。驅動程序必須在向輸出緩沖放數據之前拷貝輸入數據。驅動程序通過調用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統緩沖拷貝數據到提供給Ring 3級調用者使用的緩沖中。驅動程序必須在結束前存儲拷貝到IRP的Information成員中的數據個數。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數呈現不同的含義。參數InputBuffer被拷貝到一個系統緩沖,這個緩沖驅動程序可以通過調用KIrp::IoctlBuffer。參數OutputBuffer被映射到KMemory對象,驅動程序對這個對象的訪問通過調用KIrp::Mdl來實現。對于METHOD_OUT_DIRECT,調用者必須有對緩沖的寫訪問權限。注意,對METHOD_NEITHER,內核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現在使用一個DeviceIoControl調用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設備拷貝串到里面并將拷貝的資結束設置到FirmwareRevSize中。在驅動程序中,代碼看起來如下所示: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 . . .   } }

    標簽: 驅動程序 應用程序 接口

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • 模擬串口通訊程序(51匯編代碼編寫)

    T2作為波特率控制UART_RXD 是硬中斷0或1口,如果能進入中斷,說明該線有一個起始位產生,進入中斷后調用下面的接收程序。退出硬中斷之前還需要將硬中斷標志重新復位。UART_TXD 是任何其它IO即可。UART_SEND:    PUSH IE    PUSH DPH    PUSH DPL    PUSH PSW    PUSH 00H    PUSH ACC    CLR EA    SETB UART_TXD        ;START BIT        MOV R0,A    CLR TR2    ;TR2置1,計數器2啟動,時間計數啟動。    MOV A,RCAP2L;計數器2重新裝載值    MOV TL2,A    ;置計數器2初值  ;T2需要重新裝載    MOV A,DPH    MOV A,RCAP2H    MOV TH2,A    MOV A,R0        SETB TR2    ;TR2置1,計數器    JNB TF2,$    CLR TF2    JNB TF2,$    CLR TF2

    標簽: 模擬串口 通訊程序 匯編代碼 編寫

    上傳時間: 2014-01-12

    上傳用戶:二十八號

  • VD108B地感線路安裝圖

    技術說明:線圈總長度應在20 ~ 30米左右,地感線應用橫截面大于等于0.5 平方毫米的耐高溫絕緣線;用切地機在堅硬水泥地面切槽,深度為 5~10 cm 左右,寬以切刻片厚度為準一般為5mm;然后將線一圈一圈放入槽中,再用水泥將槽封固,注意線不可浮出地面,在放入線圈時注意不要把線的絕緣層破壞,以免造成漏電或短路.引出線要雙絞在一起并行接入地感兩個LOOP 端,長度不能超過4米,每米中雙絞數不能少于30個.

    標簽: 108B 108 VD 線路

    上傳時間: 2013-11-04

    上傳用戶:zhaoq123

  • FPGA連接DDR2的問題討論

    我采用XC4VSX35或XC4VLX25 FPGA來連接DDR2 SODIMM和元件。SODIMM內存條選用MT16HTS51264HY-667(4GB),分立器件選用8片MT47H512M8。設計目標:當客戶使用內存條時,8片分立器件不焊接;當使用直接貼片分立內存顆粒時,SODIMM內存條不安裝。請問專家:1、在設計中,先用Xilinx MIG工具生成DDR2的Core后,管腳約束文件是否還可更改?若能更改,則必須要滿足什么條件下更改?生成的約束文件中,ADDR,data之間是否能調換? 2、對DDR2數據、地址和控制線路的匹配要注意些什么?通過兩只100歐的電阻分別連接到1.8V和GND進行匹配 和 通過一只49.9歐的電阻連接到0.9V進行匹配,哪種匹配方式更好? 3、V4中,PCB LayOut時,DDR2線路阻抗單端為50歐,差分為100歐?Hyperlynx仿真時,那些參數必須要達到那些指標DDR2-667才能正常工作? 4、 若使用DDR2-667的SODIMM內存條,能否降速使用?比如降速到DDR2-400或更低頻率使用? 5、板卡上有SODIMM的插座,又有8片內存顆粒,則物理上兩部分是連在一起的,若實際使用時,只安裝內存條或只安裝8片內存顆粒,是否會造成信號完成性的影響?若有影響,如何控制? 6、SODIMM內存條(max:4GB)能否和8片分立器件(max:4GB)組合同時使用,構成一個(max:8GB)的DDR2單元?若能,則布線阻抗和FPGA的DCI如何控制?地址和控制線的TOP圖應該怎樣? 7、DDR2和FPGA(VREF pin)的參考電壓0.9V的實際工作電流有多大?工作時候,DDR2芯片是否很燙,一般如何考慮散熱? 8、由于多層板疊層的問題,可能頂層和中間層的銅箔不一樣后,中間的夾層后度不一樣時,也可能造成阻抗的不同。請教DDR2-667的SODIMM在8層板上的推進疊層?

    標簽: FPGA DDR2 連接 問題討論

    上傳時間: 2013-10-12

    上傳用戶:han_zh

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区一区三区| 国户精品久久久久久久久久久不卡| 美国三级日本三级久久99| 国产日韩欧美综合在线| 久久精品国产久精国产爱 | 亚洲福利视频在线| 美腿丝袜亚洲色图| 亚洲片国产一区一级在线观看| 欧美高清hd18日本| 亚洲性夜色噜噜噜7777| 国产综合在线视频| 欧美风情在线| 亚洲一区二区视频在线观看| 国产三区精品| 欧美激情欧美激情在线五月| 亚洲四色影视在线观看| 国产亚洲欧洲997久久综合| 麻豆91精品91久久久的内涵| 99精品国产在热久久婷婷| 国产精品一区二区在线观看网站 | 午夜精品一区二区三区在线视| 国产精品视频观看| 国产精品视频网| 久久久久久久网站| 亚洲精品永久免费| 国产三区精品| 欧美日本国产视频| 性做久久久久久久免费看| 亚洲精品永久免费精品| 国产亚洲一区在线播放| 欧美视频在线播放| 欧美高清一区二区| 久久精品亚洲精品国产欧美kt∨| 日韩一区二区精品葵司在线| 国内精品久久久久久 | 久久综合色婷婷| 亚洲欧美在线磁力| 99re6这里只有精品视频在线观看| 国产精品影视天天线| 欧美精品色网| 美女主播视频一区| 久久九九国产| 久久成人精品无人区| 亚洲午夜久久久久久久久电影网| 亚洲电影免费观看高清完整版在线观看| 欧美日韩一区自拍| 久久伊人精品天天| 久久国产精品久久久久久电车| 一本色道久久综合亚洲精品高清| 亚洲国产精品一区二区www在线| 国产一区二区三区在线观看视频| 国产精品porn| 欧美新色视频| 国产精品护士白丝一区av| 欧美人成在线| 欧美色网一区二区| 国产精品porn| 国产精品夜夜夜| 国产精品一级久久久| 国产精品午夜在线观看| 国产精品一区二区三区免费观看| 国产精品亚洲综合色区韩国| 国产精品一区二区三区观看| 国产美女精品人人做人人爽| 国产欧美精品在线| 国产精品一区二区三区成人| 国产欧美精品在线观看| 国产一区二区av| 精品成人在线| 亚洲国产精品尤物yw在线观看| 亚洲国产精品视频| 亚洲毛片在线| 亚洲欧美一区二区精品久久久| 欧美在线视频一区| 欧美成人精品激情在线观看| 欧美调教vk| 国模私拍一区二区三区| 亚洲欧洲精品一区二区三区不卡| 一区二区毛片| 久久久99国产精品免费| 欧美精品在线免费播放| 国产免费成人在线视频| 尤物99国产成人精品视频| 一级成人国产| 久久久久九九九九| 欧美久久久久免费| 国产性色一区二区| 亚洲裸体俱乐部裸体舞表演av| 亚洲欧美怡红院| 欧美大片免费观看| 国产女主播一区二区| 亚洲国产影院| 欧美在线播放高清精品| 欧美精品v日韩精品v韩国精品v | 国产精品亚洲аv天堂网| 亚洲大片在线观看| 亚洲欧美精品中文字幕在线| 麻豆九一精品爱看视频在线观看免费 | 欧美巨乳波霸| 国产日韩欧美中文| 亚洲精选久久| 久久久久久亚洲精品杨幂换脸 | 久久精品亚洲热| 欧美成人一品| 亚洲精品免费观看| 亚洲精品乱码久久久久久久久 | 国产欧美精品日韩区二区麻豆天美| 国产日韩一区二区三区| 一区二区在线观看视频在线观看| 一区二区三区不卡视频在线观看| 亚洲影院免费| 欧美日韩国产精品一区二区亚洲 | 国产精品美女视频网站| 韩国福利一区| 午夜精品视频在线| 欧美成人免费全部观看天天性色| 国产视频欧美| 亚洲精品人人| 欧美顶级艳妇交换群宴| 国产精品美女www爽爽爽| 亚洲精品国偷自产在线99热| 亚洲欧美综合国产精品一区| 欧美日韩国语| 黄色工厂这里只有精品| 久久久91精品国产一区二区三区| 欧美激情精品久久久久久大尺度| 精品动漫av| 亚洲欧美日韩成人| 欧美性jizz18性欧美| 亚洲缚视频在线观看| 欧美成人免费一级人片100| 国产精品一区二区三区久久久| 亚洲一区二区视频在线| 欧美国产激情二区三区| 亚洲精品一区二区三区99| 久久xxxx精品视频| 国产午夜精品全部视频播放| 一区二区三区免费在线观看| 欧美手机在线| 国产伦精品一区二区三区在线观看| 亚洲一二区在线| 欧美成人精品一区| 亚洲激情成人在线| 亚洲欧美日韩在线观看a三区| 国产精品视频男人的天堂| 久热re这里精品视频在线6| 精品99一区二区| 99精品国产高清一区二区| 欧美日韩一区二区三区视频| 一区二区三区精密机械公司| 欧美激情综合亚洲一二区| 一区二区三区国产| 欧美日韩成人| 亚洲在线播放| 国产精品一区2区| 久久久亚洲人| 激情五月婷婷综合| 欧美高清在线视频| 亚洲精品免费电影| 国产精品专区第二| 亚洲欧美色婷婷| 亚洲高清视频一区| 欧美成人在线影院| 亚洲一级网站| 国产精品欧美久久| 猛干欧美女孩| 亚洲精品女av网站| 国产日韩在线播放| 亚洲福利av| 欧美精品www| 性亚洲最疯狂xxxx高清| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美精品一卡| 最新亚洲一区| 国产精品影院在线观看| 免费欧美日韩| 99热这里只有精品8| 国内综合精品午夜久久资源| 久久久久久久久久久久久9999| 亚洲精选视频免费看| 欧美日韩另类综合| 亚洲欧美一区二区三区极速播放 | 亚洲精品中文字幕有码专区| 欧美乱人伦中文字幕在线| 欧美一级视频精品观看| 国产一区二区三区黄视频| 欧美日韩精品一区| 欧美一区国产二区| 亚洲一区亚洲| 在线看片成人| 国产亚洲在线| 久久久久国产精品麻豆ai换脸| 亚洲视频欧美视频| 亚洲精品视频在线观看免费| 国产精品久久久久久久久久妞妞| 欧美精品一区二区三区在线看午夜 | 国产伦精品免费视频| 久久精品国产第一区二区三区| 亚洲欧美国内爽妇网| 亚洲少妇自拍|