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

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

輸入<b>接口</b>

  • DTMF編碼芯片HT9200的51接口程序

    ·詳細說明:DTMF編碼芯片HT9200的51接口程序。輸入參數R2表示發送數據個數,輸入數據與發送數據與DTMF碼的關系:00H-0 01H-1 02H-2 03H-3 04H-4 05H-5 06H-6 07H-7 08H-8 09H-9 0AH-A 0BH-B 0CH-C 0DH-D 0EH-* 0FH-#。詳細說明參考文件內.

    標簽: DTMF 9200 HT 編碼芯片

    上傳時間: 2013-06-02

    上傳用戶:jujiast99

  • 蘇泊爾C21S02-B電磁爐電路圖

    蘇泊爾C21S02-B電磁爐電路圖,紅線標注,重點模塊說明!

    標簽: 21 02 蘇泊爾 電磁爐電路圖

    上傳時間: 2013-06-22

    上傳用戶:huangzr5

  • ADS-B接收機DIY全套資料

    制作基于PIC Mcu 的ADS-B接收機的全套資料,包括SCH、PCB、源碼和PC端軟件。

    標簽: ADS-B DIY 接收機

    上傳時間: 2013-04-24

    上傳用戶:cx111111

  • 2012TI杯陜西賽題B題--頻率補償電路

    2012TI杯陜西賽題H題,2012TI杯陜西賽題B題--頻率補償電路.

    標簽: 2012 TI 頻率補償電路

    上傳時間: 2013-10-07

    上傳用戶:ysystc670

  • MCS-51系列單片機實用接口技術

    本書全面、系統地介紹了MCS-51系列單片機應用系統的各種實用接口技術及其配置。   內容包括:MCS-51系列單片機組成原理:應用系統擴展、開發與調試;鍵盤輸入接口的設計及調試;打印機和顯示器接口及設計實例;模擬輸入通道接口技術;A/D、D/A、接口技術及在控制系統中的應用設計;V/F轉換器接口技術、串行通訊接口技術以及其它與應用系統設計有關的實用技術等。   本書是為滿足廣大科技工作者從事單片機應用系統軟件、硬件設計的需要而編寫的,具有內容新穎、實用、全面的特色。所有的接口設計都包括詳細的設計步驟、硬件線路圖及故障分析,并附有測試程序清單。書中大部分接口軟、硬件設計實例都是作者多年來從事單片機應用和開發工作的經驗總結,實用性和工程性較強,尤其是對應用系統中必備的鍵盤、顯示器、打印機、A/D、D/A通訊接口設計、模擬信號處理及開發系統應用舉例甚多,目的是讓將要開始和正在從事單片機應用開發的科研人員根據自己的實際需要來選擇應用,一書在手即可基本完成單片機應用系統的開發工作。   本書主要面向從事單片機應用開發工作的廣大工程技術人員,也可作為大專院校有關專業的教材或教學參考書。 第一章MCS-51系列單片機組成原理   1.1概述   1.1.1單片機主流產品系列   1.1.2單片機芯片技術的發展概況   1.1.3單片機的應用領域   1.2MCS-51單片機硬件結構   1.2.1MCS-51單片機硬件結構的特點   1.2.2MCS-51單片機的引腳描述及片外總線結構   1.2.3MCS-51片內總體結構   1.2.4MCS-51單片機中央處理器及其振蕩器、時鐘電路和CPU時序   1.2.5MCS-51單片機的復位狀態及幾種復位電路設計   1.2.6存儲器、特殊功能寄存器及位地址空間   1.2.7輸入/輸出(I/O)口   1.3MCS-51單片機指令系統分析   1.3.1指令系統的尋址方式   1.3.2指令系統的使用要點   1.3.3指令系統分類總結   1.4串行接口與定時/計數器   1.4.1串行接口簡介   1.4.2定時器/計數器的結構   1.4.3定時器/計數器的四種工作模式   1.4.4定時器/計數器對輸入信號的要求   1.4.5定時器/計數器的編程和應用   1.5中斷系統   1.5.1中斷請求源   1.5.2中斷控制   1.5.3中斷的響應過程   1.5.4外部中斷的響應時間   1.5.5外部中斷方式的選擇   第二章MCS-51單片機系統擴展   2.1概述   2.2程序存貯器的擴展   2.2.1外部程序存貯器的擴展原理及時序   2.2.2地址鎖存器   2.2.3EPROM擴展電路   2.2.4EEPROM擴展電路   2.3外部數據存貯器的擴展   2.3.1外部數據存貯器的擴展方法及時序   2.3.2靜態RAM擴展   2.3.3動態RAM擴展   2.4外部I/O口的擴展   2.4.1I/O口擴展概述   2.4.2I/O口地址譯碼技術   2.4.38255A可編程并行I/O擴展接口   2.4.48155/8156可編程并行I/O擴展接口   2.4.58243并行I/O擴展接口   2.4.6用TTL芯片擴展I/O接口   2.4.7用串行口擴展I/O接口   2.4.8中斷系統擴展   第三章MCS-51單片機應用系統的開發   3.1單片機應用系統的設計   3.1.1設計前的準備工作   3.1.2應用系統的硬件設計   3.1.3應用系統的軟件設計   3.1.4應用系統的抗干擾設計   3.2單片機應用系統的開發   3.2.1仿真系統的功能   3.2.2開發手段的選擇   3.2.3應用系統的開發過程   3.3SICE—IV型單片機仿真器   3.3.1SICE-IV仿真器系統結構   3.3.2SICE-IV的仿真特性和軟件功能   3.3.3SICE-IV與主機和終端的連接使用方法   3.4KHK-ICE-51單片機仿真開發系統   3.4.1KHK—ICE-51仿真器系統結構   3.4.2仿真器系統功能特點   3.4.3KHK-ICE-51仿真系統的安裝及其使用   3.5單片機應用系統的調試   3.5.1應用系統聯機前的靜態調試   3.5.2外部數據存儲器RAM的測試   3.5.3程序存儲器的調試   3.5.4輸出功能模塊調試   3.5.5可編程I/O接口芯片的調試   3.5.6外部中斷和定時器中斷的調試   3.6用戶程序的編輯、匯編、調試、固化及運行   3.6.1源程序的編輯   3.6.2源程序的匯編   3.6.3用戶程序的調試   3.6.4用戶程序的固化   3.6.5用戶程序的運行   第四章鍵盤及其接口技術   4.1鍵盤輸入應解決的問題   4.1.1鍵盤輸入的特點   4.1.2按鍵的確認   4.1.3消除按鍵抖動的措施   4.2獨立式按鍵接口設計   4.3矩陣式鍵盤接口設計   4.3.1矩陣鍵盤工作原理   4.3.2按鍵的識別方法   4.3.3鍵盤的編碼   4.3.4鍵盤工作方式   4.3.5矩陣鍵盤接口實例及編程要點   4.3.6雙功能及多功能鍵設計   4.3.7鍵盤處理中的特殊問題一重鍵和連擊   4.48279鍵盤、顯示器接口芯片及應用   4.4.18279的組成和基本工作原理   4.4.28279管腳、引線及功能說明   4.4.38279編程   4.4.48279鍵盤接口實例   4.5功能開關及撥碼盤接口設計   第五章顯示器接口設計   5.1LED顯示器   5.1.1LED段顯示器結構與原理   5.1.2LED顯示器及顯示方式   5.1.3LED顯示器接口實例   5.1.4LED顯示器驅動技術   5.2單片機應用系統中典型鍵盤、顯示接口技術   5.2.1用8255和串行口擴展的鍵盤、顯示器電路   5.2.2由鎖存器組成的鍵盤、顯示器接口電路   5.2.3由8155構成的鍵盤、顯示器接口電路   5.2.4用8279組成的顯示器實例   5.3液晶顯示LCD   5.3.1LCD的基本結構及工作原理   5.3.2LCD的驅動方式   5.3.34位LCD靜態驅動芯片ICM7211系列簡介   5.3.4點陣式液晶顯示控制器HD61830介紹   5.3.5點陣式液晶顯示模塊介紹   5.4熒光管顯示   5.5LED大屏幕顯示器   第六章打印機接口設計   6.1打印機簡介   6.1.1打印機的基本知識   6.1.2打印機的電路構成   6.1.3打印機的接口信號   6.1.4打印機的打印命令   6.2TPμP-40A微打與單片機接口設計   6.2.1TPμP系列微型打印機簡介   6.2.2TPμP-40A打印功能及接口信號   6.2.3TPμP-40A工作方式及打印命令   6.2.48031與TPμP-40A的接口   6.2.5打印編程實例   6.3XLF微型打印機與單片機接口設計   6.3.1XLF微打簡介   6.3.2XLF微打接口信號及與8031接口設計   6.3.3XLF微打控制命令   6.3.4打印機編程   6.4標準寬行打印機與8031接口設計   6.4.1TH3070接口引腳信號及時序   6.4.2與8031的簡單接口   6.4.3通過打印機適配器完成8031與打印機的接口   6.4.4對打印機的編程   第七章模擬輸入通道接口技術   7.1傳感器   7.1.1傳感器的分類   7.1.2溫度傳感器   7.1.3光電傳感器   7.1.4濕度傳感器   7.1.5其他傳感器   7.2模擬信號放大技術   7.2.1基本放大器電路   7.2.2集成運算放大器   7.2.3常用運算放大器及應用舉例   7.2.4測量放大器   7.2.5程控增益放大器   7.2.6隔離放大器   7.3多通道模擬信號輸入技術   7.3.1多路開關   7.3.2常用多路開關   7.3.3模擬多路開關   7.3.4常用模擬多路開關   7.3.5多路模擬開關應用舉例   7.3.6多路開關的選用   7.4采樣/保持電路設計   7.4.1采樣/保持原理   7.4.2集成采樣/保持器   7.4.3常用集成采樣/保持器   7.4.4采樣保持器的應用舉例   7.5有源濾波器的設計   7.5.1濾波器分類   7.5.2有源濾波器的設計   7.5.3常用有源濾波器設計舉例   7.5.4集成有源濾波器   第八章D/A轉換器與MCS-51單片機的接口設計與實踐   8.1D/A轉換器的基本原理及主要技術指標   8.1.1D/A轉換器的基本原理與分類   8.1.2D/A轉換器的主要技術指標   8.2D/A轉換器件選擇指南   8.2.1集成D/A轉換芯片介紹   8.2.2D/A轉換器的選擇要點及選擇指南表   8.2.3D/A轉換器接口設計的幾點實用技術   8.38位D/A轉換器DAC080/0831/0832與MCS-51單片機的接口設計   8.3.1DAC0830/0831/0832的應用特性與引腳功能   8.3.2DAC0830/0831/0832與8031單片機的接口設計   8.3.3DAC0830/0831/0832的調試說明   8.3.4DAC0830/0831/0832應用舉例   8.48位D/A轉換器AD558與MCS-51單片機的接口設計   8.4.1AD558的應用特性與引腳功能   8.4.2AD558與8031單片機的接口及調試說明   8.4.38位D/A轉換器DAC0800系列與8031單片機的接口   8.510位D/A轉換器AD7522與MCS-51的硬件接口設計   8.5.1AD7522的應用特性及引腳功能   8.5.2AD7522與8031單片機的接口設計   8.610位D/A轉換器AD7520/7530/7533與MCS一51單片機的接口設計   8.6.1AD7520/7530/7533的應用特性與引腳功能   8.6.2AD7520系列與8031單片機的接口   8.6.3DAC1020/DAC1220/AD7521系列D/A轉換器接口設計   8.712位D/A轉換器DAC1208/1209/1210與MCS-51單片機的接口設計   8.7.1DAC1208/1209/1210的內部結構與引腳功能   8.7.2DAC1208/1209/1210與8031單片機的接口設計   8.7.312位D/A轉換器DAC1230/1231/1232的應用設計說明   8.7.412位D/A轉換器AD7542與8031單片機的接口設計   8.812位串行DAC-AD7543與MCS-51單片機的接口設計   8.8.1AD7543的應用特性與引腳功能   8.8.2AD7543與8031單片機的接口設計   8.914位D/A轉換器AD75335與MCS-51單片機的接口設計   8.9.1AD8635的內部結構與引腳功能   8.9.2AD7535與8031單片機的接口設計   8.1016位D/A轉換器AD1147/1148與MCS-51單片機的接口設計   8.10.1AD1147/AD1148的內部結構及引腳功能   8.10.2AD1147/AD1148與8031單片機的接口設計   8.10.3AD1147/AD1148接口電路的應用調試說明   8.10.416位D/A轉換器AD1145與8031單片機的接口設計   第九章A/D轉換器與MCS-51單片機的接口設計與實踐   9.1A/D轉換器的基本原理及主要技術指標   9.1.1A/D轉換器的基本原理與分類   9.1.2A/D轉換器的主要技術指標   9.2面對課題如何選擇A/D轉換器件   9.2.1常用A/D轉換器簡介   9.2.2A/D轉換器的選擇要點及應用設計的幾點實用技術   9.38位D/A轉換器ADC0801/0802/0803/0804/0805與MCS-51單片機的接口設計   9.3.1ADC0801~ADC0805芯片的引腳功能及應用特性   9.3.2ADC0801~ADC0805與8031單片機的接口設計   9.48路8位A/D轉換器ADC0808/0809與MCS一51單片機的接口設計   9.4.1ADC0808/0809的內部結構及引腳功能   9.4.2ADC0808/0809與8031單片機的接口設計   9.4.3接口電路設計中的幾點注意事項   9.4.416路8位A/D轉換器ADC0816/0817與MCS-51單片機的接口設計   9.510位A/D轉換器AD571與MCS-51單片機的接口設計   9.5.1AD571芯片的引腳功能及應用特性   9.5.2AD571與8031單片機的接口   9.5.38位A/D轉換器AD570與8031單片機的硬件接口   9.612位A/D轉換器ADC1210/1211與MCS-51單片機的接口設計   9.6.1ADC1210/1211的引腳功能與應用特性   9.6.2ADC1210/1211與8031單片機的硬件接口   9.6.3硬件接口電路的設計要點及幾點說明   9.712位A/D轉換器AD574A/1374/1674A與MCS-51單片機的接口設計   9.7.1AD574A的內部結構與引腳功能   9.7.2AD574A的應用特性及校準   9.7.3AD574A與8031單片機的硬件接口設計   9.7.4AD574A的應用調試說明   9.7.5AD674A/AD1674與8031單片機的接口設計   9.8高速12位A/D轉換器AD578/AD678/AD1678與MCS—51單片機的接口設計   9.8.1AD578的應用特性與引腳功能   9.8.2AD578高速A/D轉換器與8031單片機的接口設計   9.8.3AD578高速A/D轉換器的應用調試說明   9.8.4AD678/AD1678采樣A/D轉換器與8031單片機的接口設計   9.914位A/D轉換器AD679/1679與MCS-51單片機的接口設計   9.9.1AD679/AD1679的應用特性及引腳功能   9.9.2AD679/1679與8031單片機的接口設計   9.9.3AD679/1679的調試說明   9.1016位ADC-ADC1143與MCS-51單片機的接口設計   9.10.1ADC1143的應用特性及引腳功能   9.10.2ADC1143與8031單片機的接口設計   9.113位半積分A/D轉換器5G14433與MCS-51單片機的接口設計   9.11.15G14433的內部結構及引腳功能   9.11.25G14433的外部電路連接與元件參數選擇   9.11.35G14433與8031單片機的接口設計   9.11.45G14433的應用舉例   9.124位半積分A/D轉換器ICL7135與MCS—51單片機的接口設計   9.12.1ICL7135的內部結構及芯片引腳功能   9.12.2ICL7135的外部電路連接與元件參數選擇   9.12.3ICL7135與8031單片機的硬件接口設計   9.124ICL7135的應用舉例   9.1312位雙積分A/D轉換器ICL7109與MCS—51單片機的接口設計   9.13.1ICL7109的內部結構與芯片引腳功能   9.13.2ICL7109的外部電路連接與元件參數選擇   9.13.3ICL7109與8031單片機的硬件接口設計   9.1416位積分型ADC一ICL7104與MCS-51單片機的接口設計   9.14.1ICL7104的主要應用特性及引腳功能   9.14.2ICL7104與8031單片機的接口設計   9.14.3其它積分型A/D轉換器簡介   第十章V/F轉換器接口技術   10.1V/F轉換的特點及應用環境   10.2V/F轉換原理及用V/F轉換器實現A/D轉換的方法   10.2.1V/F轉換原理   10.2.2用V/F轉換器實現A/D轉換的方法   10.3常用V/F轉換器簡介   10.3.1VFC32   10.3.2LMX31系列V/F轉換器   10.3.3AD650   10.3.4AD651   10.4V/F轉換應用系統中的通道結構   10.5LM331應用實例   10.5.1線路原理   10.5.2軟件設計   10.6AD650應用實例   10.6.1AD650外圍電路設計   10.6.2定時/計數器(8253—5簡介)   10.6.3線路原理   10.6.4軟件設計   第十一章串行通訊接口技術   11.1串行通訊基礎   11.1.1異步通訊和同步通訊   11.1.2波特率和接收/發送時鐘   11.1.3單工、半雙工、全雙工通訊方式   11.14信號的調制與解調   11.1.5通訊數據的差錯檢測和校正   11.1.6串行通訊接口電路UART、USRT和USART   11.2串行通訊總線標準及其接口   11.2.1串行通訊接口   11.2.2RS-232C接口   11.2.3RS-449、RS-422、RS-423及RS485   11.2.420mA電流環路串行接口   11.3MCS-51單片機串行接口   11.3.1串行口的結構   11.3.2串行接口的工作方式   11.3.3串行通訊中波特率設置   11.4MCS-51單片機串行接口通訊技術   11.4.1單片機雙機通訊技術   11.4.2單片機多機通訊技術   11.5IBMPC系列機與單片機的通訊技術   11.5.1異步通訊適配器   11.5.2IBM-PC機與8031雙機通訊技術   11.5.3IBM—PC機與8031多機通訊技術   11.6MCS-51單片機串行接口的擴展   11.6.1Intel8251A可編程通訊接口   11.6.2擴展多路串行口的硬件設計   11.6.3通訊軟件設計   第十二章應用系統設計中的實用技術   12.1MCS-51單片機低功耗系統設計   12.1.1CHMOS型單片機80C31/80C51/87C51的組成與使用要點   12.1.2CHMOS型單片機的空閑、掉電工作方式   12.1.3CHMOS型單片機的I/O接口及應用系統實例   12.1.4HMOS型單片機的節電運行方式   12.2邏輯電平接口技術   12.2.1集電極開路門輸出接口   12.2.2TTL、HTL、ECL、CMOS電平轉換接口   12.3電壓/電流轉換   12.3.1電壓/0~10mA轉換   12.3.2電壓1~5V/4~20mA轉換   12.3.30~10mA/0~5V轉換   12.344~20mA/0~5V轉換   12.3.5集成V/I轉換電路   12.4開關量輸出接口技術   12.4.1輸出接口隔離技術   12.4.2低壓開關量信號輸出技術   12.4.3繼電器輸出接口技術   12.4.4可控硅(晶閘管)輸出接口技術   12.4.5固態繼電器輸出接口   12.4.6集成功率電子開關輸出接口   12.5集成穩壓電路   12.5.1電源隔離技術   12.5.2三端集成穩壓器   12.5.3高精度電壓基準   12.6量程自動轉換技術   12.6.1自動轉換量程的硬件電路   12.6.2自動轉換量程的軟件設計   附錄AMCS-51單片機指令速查表   附錄B常用EPROM固化電壓參考表   參考文獻

    標簽: MCS 51 單片機實用 接口技術

    上傳時間: 2013-10-15

    上傳用戶:himbly

  • PSHLY-B回路電阻測試儀

    PSHLY-B回路電阻測試儀介紹

    標簽: PSHLY-B 回路 電阻測試儀

    上傳時間: 2013-11-05

    上傳用戶:木子葉1

  • 8051單片機系統擴展與接口技術

    8051單片機系統擴展與接口技術:第一節   8051 單片機系統擴展概述第二節  單片機外部存儲器擴展第三節  單片機輸入輸出(I/O)口擴展及應用第四節   LED顯示器接口電路及顯示程序第五節  單片機鍵盤接口技術第六節 單片機與數模(D/A)及模數(A/D)轉換1、地址總線(Address Bus,簡寫為AB)地址總線可傳送單片機送出的地址信號,用于訪問外部存儲器單元或I/O端口。A   地址總線是單向的,地址信號只是由單片機向外發出。B   地址總線的數目決定了可直接訪問的存儲器單元的數目。例如N位地址,可以產生2N個連續地址編碼,因此可訪問2N個存儲單元,即通常所說的尋址范圍為 2N個地址單元。MCS—51單片機有十六位地址線,因此存儲器展范圍可達216 = 64KB地址單元。C   掛在總線上的器件,只有地址被選中的單元才能與CPU交換數據,其余的都暫時不能操作,否則會引起數據沖突。2、數據總線(Data Bus,簡寫為DB)數據總線用于在單片機與存儲器之間或單片機與I/O端口之間傳送數據。A   單片機系統數據總線的位數與單片機處理數據的字長一致。例如MCS—51單片機是8位字長,所以數據總線的位數也是8位。B   數據總線是雙向的,即可以進行兩個方向的數據傳送。3、控制總線(Control Bus,簡寫為CB)控制總線實際上就是一組控制信號線,包括單片機發出的,以及從其它部件送給單片機的各種控制或聯絡信號。對于一條控制信號線來說,其傳送方向是單向的,但是由不同方向的控制信號線組合的控制總線則表示為雙向的。總線結構形式大大減少了單片機系統中連接線的數目,提高了系統的可靠性,增加了系統的靈活性。此外,總線結構也使擴展易于實現,各功能部件只要符合總線規范,就可以很方便地接入系統,實現單片機擴展。

    標簽: 8051 單片機 系統擴展 接口技術

    上傳時間: 2013-10-18

    上傳用戶:assef

  • 并行接口

    7.1 并行接口概述并行接口和串行接口的結構示意圖并行接口傳輸速率高,一般不要求固定格式,但不適合長距離數據傳輸7.2 可編程并行接口芯片82C55     7.2.1  8255的基本功能 8255具有2個獨立的8位I/O口(A口和B口)和2個獨立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作為輸入時提供三態緩沖器功能,作為輸出時提供數據鎖存功能。其中,A口具有雙向傳輸功能。8255有3種工作方式,方式0、方式1和方式2,能使用無條件、查詢和中斷等多種數據傳送方式完成CPU與I/O設備之間的數據交換。B口和C口的引腳具有達林頓復合晶體管驅動能力,在1.5V時輸出1mA電流,適于作輸出端口。C口除用做數據口外,當8255工作在方式1和方式2時,C口的部分引腳作為固定的聯絡信號線。

    標簽: 并行接口

    上傳時間: 2013-10-25

    上傳用戶:oooool

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

    有兩種方式可以讓設備和應用程序之間聯系: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

  • 微型計算機課程設計論文—通用微機發聲程序的匯編設計

    微型計算機課程設計論文—通用微機發聲程序的匯編設計 本文講述了在微型計算機中利用可編程時間間隔定時器的通用發聲程序設計,重點講述了程序的發聲原理,節拍的產生,按節拍改變的動畫程序原理,并以設計一個簡單的樂曲評分程序為引子,分析程序設計的細節。關鍵字:微機 8253 通用發聲程序 動畫技術 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機中,有一個可編程時間間隔定時器8253,它能夠根據程序提供的計數值和工作方式,產生各種形狀和各種頻率的計數/定時脈沖,提供給系統各個部件使用。本設計是利用計算機控制發聲的原理,編寫演奏樂曲的程序。    在8253/54定時器內部有3個獨立工作的計數器:計數器0,計數器1和計數器2,每個計數器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數器和控制器尋址.     對8353/54編程時,先要設定控制字,以選擇計數器,確定工作方式和計數值的格式.每計數器由三個引腳與外部聯系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數/定時信號輸入端.每個計數器中包含一個16位計數寄存器,這個計數器時以倒計數的方式計數的,也就是說,從計數初值逐次減1,直到減為0為止.     8253/54的三個計數器是分別編程的,在對任一個計數器編程時,必須首先講控制字節寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數器輸入一個計數初值,因為這個計數值可以是8為的,也可以是16為的,而8253/5的數據總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數器2設定為方式3,(關于計數器的工作方式參閱教材第325—330頁)計數初值為65536.    MOV   AL,10110110B ;選擇計數器2,按方式3工作,計數值是二進制格式    OUT   43H,AL      ; j將控制字送入控制寄存器    MOV   AL,0        ;計數初值為0    OUT   42H,AL      ;將計數初值的低字節送入計數器2    OUT   42H,AL      ;將計數初值的高字節送入計數器2    在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機上的大多數I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關于8255A的結構和工作原理及應用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機中的揚聲器接口電路”一節介紹了揚聲器的驅動原理,并給出了通用發聲程序.本設計正是基于這個原理,通過編程,控制加到揚聲器上的信號的頻率,奏出樂曲的.2.發聲程序的設計下面是能產生頻率為f的通用發聲程序:MOV      AL, 10110110B   ;8253控制字:通道2,先寫低字節,后寫高字節        ;方式3,二進制計數OUT      43H, AL                  ;寫入控制字MOV      DX, 0012H               ;被除數高位MOV      AX, 35DEH              ;被除數低位 DIV      ID      ;求計數初值n,結果在AX中OUT      42H, AL     ;送出低8位MOV      AL, AHOUT      42H,AL     ;送出高8位IN      AL, 61H     ;讀入8255A端口B的內容MOV      AH, AL                  ;保護B口的原狀態OR  AL, 03H     ;使B口后兩位置1,其余位保留OUT 61H,AL     ;接通揚聲器,使它發聲

    標簽: 微型計算機 發聲程序 論文 微機

    上傳時間: 2013-10-17

    上傳用戶:sunjet

主站蜘蛛池模板: 兴山县| 高阳县| 二手房| 南乐县| 商洛市| 亚东县| 泸水县| 鲜城| 龙门县| 四川省| 北票市| 桐城市| 会东县| 增城市| 沁水县| 上犹县| 大名县| 阜新市| 宁陵县| 革吉县| 罗田县| 玉屏| 买车| 泰宁县| 诸城市| 郑州市| 常德市| 永福县| 清丰县| 南涧| 清新县| 仙居县| 左权县| 扶绥县| 哈尔滨市| 信阳市| 澄迈县| 双江| 平罗县| 锡林郭勒盟| 丹阳市|