本文對基于ARM的可編程控制器進行了研究。本文研制的可編程控制器配置簡單,擴展方便,抗干擾能力強,可靠性高。能夠采集4~20mA/0~5V的模擬量以及12路開關量;輸出1路-10~+10V、4路0~5V與2路0~20mA的模擬量以及8路開關量;能夠采集6路溫度信號:可以應用于開關量的邏輯控制;能實現簡單的PID控制:并配有RS232串行通信接口以及CAN總線通信接口,能滿足基本工業控制的要求。
上傳時間: 2013-04-24
上傳用戶:LSPSL
本文研究基于ARM與FPGA的高速數據采集系統技術。論文完成了ARM+FPGA結構的共享存儲器結構設計,實現了ARMLinux系統的軟件設計,包括觸摸屏控制、LCD顯示、正弦插值算法設計以及各種顯示算法設計等。同時進行了信號的高速采集和處理的實際測試,對實驗測試數據進行了分析。 論文分別從軟件和硬件兩方面入手,闡述了基于ARM處理器和FPGA芯片的高速數據采集的硬件系統設計方法,以及基于ARMLinux操作系統的設備驅動程序設計和應用程序設計。 硬件方面,在FPGA平臺上,我們首先利用乒乓操作的方式將一路高速數據信號轉換成頻率為原來頻率1/4的4路低速數據信號,再將這四路數據分別存儲到4個FIFO中,然后再對這4個FIFO中的數據拼接并存儲在FPGA片上的雙端口雙時鐘RAM中,最后將FPGA的雙端口雙時鐘RAM掛載到ARM系統的總線上,實現了ARM和FPGA共享存儲器的系統結構,使ARM處理器可以直接讀取這個雙端口雙時鐘的RAM中的數據,從而大大提高了數據采集與處理的效率。在采樣頻率控制電路設計方面,我們通過使FIFO的數據存儲時鐘降低為標準狀態下的1/n實現數據采集頻率降為標準狀態的1/n,從而實現了由FPGA控制的可變頻率的數據采集系統。 軟件方面,為了更有效地管理和拓展系統功能,我們移植了ARMLinux操作系統,并在S3C2410平臺上設計實現了基于Linux操作系統的觸摸屏驅動程序設計、LCD驅動程序移植、自定義的FPGA模塊驅動程序設計、LCD顯示程序設計、多線程的應用程序設計。應用程序能夠控制FPGA數據采集系統工作。 在前端采樣頻率為125MHz情況下,系統可以正常工作。能夠實現對頻率在5MHz以下的信號波形的直接顯示;對5MHz至40MHz的信號,使用正弦插值算法進行處理,顯示效果良好。同時這種硬件結構可擴展性強,可以在此基礎上實現8路甚至16路緩沖的系統結構,可以使系統支持更高的采樣頻率。
上傳時間: 2013-07-04
上傳用戶:林魚2016
文章開篇提出了開發背景。認為現在所廣泛應用的開關電源都是基于傳統的分立元件組成的。它的特點是頻率范圍窄、電力小、功能少、器件多、成本較高、精度低,對不同的客戶要求來“量身定做”不同的產品,同時幾乎沒有通用性和可移植性。在電子技術飛速發展的今天,這種傳統的模擬開關電源已經很難跟上時代的發展步伐。 隨著DSP、ASIC等電子器件的小型化、高速化,開關電源的控制部分正在向數字化方向發展。由于數字化,使開關電源的控制部分的智能化、零件的共通化、電源的動作狀態的遠距離監測成為了可能,同時由于它的智能化、零件的共通化使得它能夠靈活地應對不同客戶的需求,這就降低了開發周期和成本。依靠現代數字化控制和數字信號處理新技術,數字化開關電源有著廣闊的發展空間。 在數字化領域的今天,最后一個沒有數字化的堡壘就是電源領域。近年來,數字電源的研究勢頭與日俱增,成果也越來越多。雖然目前中國制造的開關電源占了世界市場的80%以上,但都是傳統的比較低端的模擬電源。高端市場上幾乎沒有我們份額。 本論文研究的主要內容是在傳統開關電源模擬調節器的基礎上,提出了一種新的數字化調節器方案,即基于DSP和FPGA的數字化PID調節器。論文對系統方案和電路進行了較為具體的設計,并通過測試取得了預期結果。測試證明該方案能夠適合本行業時代發展的步伐,使系統電路更簡單,精度更高,通用性更強。同時該方案也可用于相關領域。 本文首先分析了國內外開關電源發展的現狀,以及研究數字化開關電源的意義。然后提出了數字化開關電源的總體設計框圖和實現方案,并與傳統的開關電源做了較為詳細的比較。本論文的設計方案是采用DSP技術和FPGA技術來做數字化PID調節,通過數字化PID算法產生PWM波來控制斬波器,控制主回路。從而取代傳統的模擬PID調節器,使電路更簡單,精度更高,通用性更強。傳統的模擬開關電源是將電流電壓反饋信號做PID調節后--分立元器件構成,采用專用脈寬調制芯片實現PWM控制。電流反饋信號來自主回路的電流取樣,電壓反饋信號來自主回路的電壓采樣。再將這兩個信號分別送至電流調節器和電壓調節器的反相輸入端,用來實現閉環控制。同時用來保證系統的穩定性及實現系統的過流過壓保護、電流和電壓值的顯示。電壓、電流的給定信號則由單片機或電位器提供。再次,文章對各個模塊從理論和實際的上都做了仔細的分析和設計,并給出了具體的電路圖,同時寫出了軟件流程圖以及設計中應該注意的地方。整個系統由DSP板和ADC板組成。DSP板完成PWM生成、PID運算、環境開關量檢測、環境開關量生成以及本地控制。ADC板主要完成前饋電壓信號采集、負載電壓信號采集、負載電流信號采集、以及對信號的一階數字低通濾波。由于整個系統是閉環控制系統,要求采樣速率相當高。本系統采用FPGA來控制ADC,這樣就避免了高速采樣占用系統資源的問題,減輕了DSP的負擔。DSP可以將讀到的ADC信號做PID調節,從而產生PWM波來控制逆變橋的開關速率,從而達到閉環控制的目的。 最后,對數字化開關電源和模擬開關電源做了對比測試,得出了預期結論。同時也提出了一些需要改進的地方,認為該方案在其他相關行業中可以廣泛地應用。模擬控制電路因為使用許多零件而需要很大空間,這些零件的參數值還會隨著使用時間、溫度和其它環境條件的改變而變動并對系統穩定性和響應能力造成負面影響。數字電源則剛好相反,同時數字控制還能讓硬件頻繁重復使用、加快上市時間以及減少開發成本與風險。在當前對產品要求體積小、智能化、共通化、精度高和穩定度好等前提條件下,數字化開關電源有著廣闊的發展空間。本系統來基本上達到了設計要求。能夠滿足較高精度的設計要求。但對于高精度數字化電源,系統還有值得改進的地方,比如改進主控器,提高參考電壓的精度,提高采樣器件的精度等,都可以提高系統的精度。 本系統涉及電子、通信和測控等技術領域,將數字PID算法與電力電子技術、通信技術等有機地結合了起來。本系統的設計方案不僅可以用在電源控制器上,只要是相關的領域都可以采用。
上傳時間: 2013-06-21
上傳用戶:498732662
· SmartARM2400是廣州致遠電子有限公司精心設計的一款集教學、競賽、工控開發于一身的開發套件,套件以NXP公司的LPC2478為核心,該芯片具有EMC(外部總線接口),可支持核心板上集成的32M SDRAM和2MB NOR Flash,并提供4路串口、1路IrDA接口、1路10/100M以太網接口、2個CAN-bus接口、1路I2S接口、1路USB OTG接口、1路USB Hos
上傳時間: 2013-06-22
上傳用戶:zhengxueliang
·目錄計算機測控系統設計與應用出版說明前言第1章 計算機測控系統概論1.1 計算機測控系統的發展過程1.2 微處理器與微控制器技術1.3 數字信號處理器DSP技術1.4 計算機測控系統的發展習題第2章 微處理器與微控制器總線配置2.1 INTEL8088CPU三總線的配置2.2 MCS-51系列及其兼容單片微控制器2.3 MCS-96 系列單片微控制器三總線的配置2.4 總線結構 習題第3章 譯碼與
上傳時間: 2013-04-24
上傳用戶:Neoemily
· SmartARM2400是廣州致遠電子有限公司精心設計的一款集教學、競賽、工控開發于一身的開發套件,套件以NXP公司的LPC2478為核心,該芯片具有EMC(外部總線接口),可支持核心板上集成的32M SDRAM和2MB NOR Flash,并提供4路串口、1路IrDA接口、1路10/100M以太網接口、2個CAN-bus接口、1路I2S接口、1路USB OTG接口、1路USB Hos
上傳時間: 2013-07-27
上傳用戶:evil
摘要: 介紹了時鐘分相技術并討論了時鐘分相技術在高速數字電路設計中的作用。 關鍵詞: 時鐘分相技術; 應用 中圖分類號: TN 79 文獻標識碼:A 文章編號: 025820934 (2000) 0620437203 時鐘是高速數字電路設計的關鍵技術之一, 系統時鐘的性能好壞, 直接影響了整個電路的 性能。尤其現代電子系統對性能的越來越高的要求, 迫使我們集中更多的注意力在更高頻率、 更高精度的時鐘設計上面。但隨著系統時鐘頻率的升高。我們的系統設計將面臨一系列的問 題。 1) 時鐘的快速電平切換將給電路帶來的串擾(Crosstalk) 和其他的噪聲。 2) 高速的時鐘對電路板的設計提出了更高的要求: 我們應引入傳輸線(T ransm ission L ine) 模型, 并在信號的匹配上有更多的考慮。 3) 在系統時鐘高于100MHz 的情況下, 應使用高速芯片來達到所需的速度, 如ECL 芯 片, 但這種芯片一般功耗很大, 再加上匹配電阻增加的功耗, 使整個系統所需要的電流增大, 發 熱量增多, 對系統的穩定性和集成度有不利的影響。 4) 高頻時鐘相應的電磁輻射(EM I) 比較嚴重。 所以在高速數字系統設計中對高頻時鐘信號的處理應格外慎重, 盡量減少電路中高頻信 號的成分, 這里介紹一種很好的解決方法, 即利用時鐘分相技術, 以低頻的時鐘實現高頻的處 理。 1 時鐘分相技術 我們知道, 時鐘信號的一個周期按相位來分, 可以分為360°。所謂時鐘分相技術, 就是把 時鐘周期的多個相位都加以利用, 以達到更高的時間分辨。在通常的設計中, 我們只用到時鐘 的上升沿(0 相位) , 如果把時鐘的下降沿(180°相位) 也加以利用, 系統的時間分辨能力就可以 提高一倍(如圖1a 所示)。同理, 將時鐘分為4 個相位(0°、90°、180°和270°) , 系統的時間分辨就 可以提高為原來的4 倍(如圖1b 所示)。 以前也有人嘗試過用專門的延遲線或邏輯門延時來達到時鐘分相的目的。用這種方法產生的相位差不夠準確, 而且引起的時間偏移(Skew ) 和抖動 (J itters) 比較大, 無法實現高精度的時間分辨。 近年來半導體技術的發展, 使高質量的分相功能在一 片芯片內實現成為可能, 如AMCC 公司的S4405, CY2 PRESS 公司的CY9901 和CY9911, 都是性能優異的時鐘 芯片。這些芯片的出現, 大大促進了時鐘分相技術在實際電 路中的應用。我們在這方面作了一些嘗試性的工作: 要獲得 良好的時間性能, 必須確保分相時鐘的Skew 和J itters 都 比較小。因此在我們的設計中, 通常用一個低頻、高精度的 晶體作為時鐘源, 將這個低頻時鐘通過一個鎖相環(PLL ) , 獲得一個較高頻率的、比較純凈的時鐘, 對這個時鐘進行分相, 就可獲得高穩定、低抖動的分 相時鐘。 這部分電路在實際運用中獲得了很好的效果。下面以應用的實例加以說明。2 應用實例 2. 1 應用在接入網中 在通訊系統中, 由于要減少傳輸 上的硬件開銷, 一般以串行模式傳輸 圖3 時鐘分為4 個相位 數據, 與其同步的時鐘信號并不傳輸。 但本地接收到數據時, 為了準確地獲取 數據, 必須得到數據時鐘, 即要獲取與數 據同步的時鐘信號。在接入網中, 數據傳 輸的結構如圖2 所示。 數據以68MBös 的速率傳輸, 即每 個bit 占有14. 7ns 的寬度, 在每個數據 幀的開頭有一個用于同步檢測的頭部信息。我們要找到與它同步性好的時鐘信號, 一般時間 分辨應該達到1ö4 的時鐘周期。即14. 7ö 4≈ 3. 7ns, 這就是說, 系統時鐘頻率應在300MHz 以 上, 在這種頻率下, 我們必須使用ECL inp s 芯片(ECL inp s 是ECL 芯片系列中速度最快的, 其 典型門延遲為340p s) , 如前所述, 這樣對整個系統設計帶來很多的困擾。 我們在這里使用鎖相環和時鐘分相技術, 將一個16MHz 晶振作為時鐘源, 經過鎖相環 89429 升頻得到68MHz 的時鐘, 再經過分相芯片AMCCS4405 分成4 個相位, 如圖3 所示。 我們只要從4 個相位的68MHz 時鐘中選擇出與數據同步性最好的一個。選擇的依據是: 在每個數據幀的頭部(HEAD) 都有一個8bit 的KWD (KeyWord) (如圖1 所示) , 我們分別用 這4 個相位的時鐘去鎖存數據, 如果經某個時鐘鎖存后的數據在這個指定位置最先檢測出這 個KWD, 就認為下一相位的時鐘與數據的同步性最好(相關)。 根據這個判別原理, 我們設計了圖4 所示的時鐘分相選擇電路。 在板上通過鎖相環89429 和分相芯片S4405 獲得我們所要的68MHz 4 相時鐘: 用這4 個 時鐘分別將輸入數據進行移位, 將移位的數據與KWD 作比較, 若至少有7bit 符合, 則認為檢 出了KWD。將4 路相關器的結果經過優先判選控制邏輯, 即可輸出同步性最好的時鐘。這里, 我們運用AMCC 公司生產的 S4405 芯片, 對68MHz 的時鐘進行了4 分 相, 成功地實現了同步時鐘的獲取, 這部分 電路目前已實際地應用在某通訊系統的接 入網中。 2. 2 高速數據采集系統中的應用 高速、高精度的模擬- 數字變換 (ADC) 一直是高速數據采集系統的關鍵部 分。高速的ADC 價格昂貴, 而且系統設計 難度很高。以前就有人考慮使用多個低速 圖5 分相技術應用于采集系統 ADC 和時鐘分相, 用以替代高速的ADC, 但由 于時鐘分相電路產生的相位不準確, 時鐘的 J itters 和Skew 比較大(如前述) , 容易產生較 大的孔徑晃動(Aperture J itters) , 無法達到很 好的時間分辨。 現在使用時鐘分相芯片, 我們可以把分相 技術應用在高速數據采集系統中: 以4 分相后 圖6 分相技術提高系統的數據采集率 的80MHz 采樣時鐘分別作為ADC 的 轉換時鐘, 對模擬信號進行采樣, 如圖5 所示。 在每一采集通道中, 輸入信號經過 緩沖、調理, 送入ADC 進行模數轉換, 采集到的數據寫入存儲器(M EM )。各個 采集通道采集的是同一信號, 不過采樣 點依次相差90°相位。通過存儲器中的數 據重組, 可以使系統時鐘為80MHz 的采 集系統達到320MHz 數據采集率(如圖6 所示)。 3 總結 靈活地運用時鐘分相技術, 可以有效地用低頻時鐘實現相當于高頻時鐘的時間性能, 并 避免了高速數字電路設計中一些問題, 降低了系統設計的難度。
上傳時間: 2013-12-17
上傳用戶:xg262122
AL-FNR系列發電機中性點接地電阻柜 我公司擁有技術優秀的研發隊伍和精良的設備,引進并消化國外先進技術,長期致力于對中性點接地技術產品的研發、生產,對降低電網過電壓、提高電網的安全性、可靠性,具有良好的效果。我公司以進口特殊不銹鋼合金材料,開發生產的系列不銹鋼中性點接地電阻柜。產品具有精度高,線性度好,運行可靠,安裝方便,外形美觀等特點,已廣泛用于許多國家重點工程。所生產的0.4KV~35KV發電機中性點接地電阻柜是發電機組中采用高阻接地的專用成套裝置。 AL-FNR型發電機中性點電阻柜連接在發電機中性點上,當電網或發電機定子繞組發生單相接地故障時,向接地點提供附加阻性電流,使接地點電流由容性變成阻容性電流,從而保證產生的過電壓不超過2.6倍的相電壓。 1、精心設計、保護到位 AL-FNR型發電機中性點電阻柜連接在發電機中性點與地之間,當電網或發電機定子繞組發生單相接地故障時,向接地點提供附加阻性電流,使接地點電流由容性變成阻容性電流,從而保證產生的過電壓不超過2.6倍的相電壓。 2、專業保護,避免燒損發電機鐵芯 AL-FNR型發電機中性點電阻柜在設計參數時,力求將總的接地電流控制在15A以內,不僅可以滿足繼電保護靈敏度的要求,同時也可減輕發電機定子繞組接地時鐵芯的損傷。 3、結構緊湊,元器件性能優異 AL-FNR型發電機中性點電阻柜將零散的單相變壓器、電阻器、電流互感器、接地保護輸出端子等電器設備整體組合在一個封閉金屬柜內,并可選配隔離開關、避雷器,智能保護儀表等成套供貨;安全可靠性高,布置清晰整齊,便于安裝調試及操作維護。裝置采用的單相變壓器為干式絕緣變壓器,工作性能穩定,抗沖擊能力強。變壓器二次側采用不銹鋼材料電阻。 4、監控功能齊全,并提供模擬量輸出 AL-FNR型發電機中性點電阻柜是0.4KV~35KV發電機中性點接地電阻柜是發電機組中采用高阻接地的專用成套裝置,可選配電流和動作記錄儀等智能控制儀表,正常時可監測中性點不平衡電流,出現單相接地故障時,可記錄動作次數;且可為保護和監控系統提供模擬量輸出。 5、性能可靠,維護簡便 AL-FNR型發電機中性點電阻柜中裝設干式單相接地變壓器及相應的大容量電阻器,柜中還可裝設單相隔離開關,以便在進行檢修或實驗時隔離電源。 6、技術力量雄厚,服務周到 我公司為中性點設備專業生產廠家,技術力量雄厚,售前的技術交流咨詢可隨時到位;售后的安裝技術指導可按用戶要求及時進行。
上傳時間: 2013-10-17
上傳用戶:王楚楚
現階段對電流型二線制光照強度變送器的研究還相對較少,設計的光照強度變送器普遍存在精度不高,線性度不好,性能不夠穩定,不能輸出標準4~20 mA電流信號的問題。介紹了一種電流型二線制光照強度變送器的設計,其結構由光照強度轉電壓電路、電壓范圍轉換電路、電壓轉電流電路以及穩壓電源產生電路組成。實驗結果表明該變送器具有精度高、線性度好、功耗低,能夠穩定可靠地輸出標準4~20 mA電流的特點。
上傳時間: 2013-11-08
上傳用戶:star_in_rain
《C#入門經典(第4版)》通過C#可以很容易地學習.NET Framework 3.5的強大功能,所以C#是開始您編程生涯的絕佳方式。《C#入門經典(第4版)》全面闡述了C#編程的所有方面,包括C#語言本身、Windows編程、Web編程及數據源的使用等內容。學習了新的編程技巧后,《C#入門經典(第4版)》介紹了如何高效地部署應用程序和服務,論述了許多高級技術,如圖形化編程。另外,還探討了如何使用Visual C# Express 2008、Visual Web Developer Express 2008和Visual Studio 2008的功能。所有這些內容都已更新,以反映.NET Framework 3.5和Visual Studio 2008的變化。各章的樣例代碼和示例還可以用于創建強大且安全的應用程序。 c#入門經典第4版目錄 第Ⅰ部分 C# 語 言 第1章 C#簡介 3 1.1 什么是.NET Framework 3 1.1.1 NET Framework的內容 4 1.1.2 用.NET Framework編寫應用程序 4 1.2 什么是C# 7 1.2.1 用C#能編寫什么樣的應用程序 7 1.2.2 本書中的C# 8 1.3 Visual Studio 2008 8 1.3.1 Visual Studio 2008 Express 產品 9 1.3.2 解決方案 9 1.4 小結 9 第2章 編寫C#程序 10 2.1 開發環境 10 2.1.1 Visual Studio 2008 11 2.1.2 Visual C# 2008 ExpressEdition 13 2.2 控制臺應用程序 13 2.2.1 Solution Explorer 16 2.2.2 Properties窗口 17 2.2.3 Error List窗口 17 2.3 Windows Forms應用程序 18 2.4 小結 22 第3章 變量和表達式 23 3.1 C#的基本語法 23 3.2 C#控制臺應用程序的基本結構 25 3.3 變量 27 3.3.1 簡單類型 27 3.3.2 變量的命名 31 3.3.3 字面值 32 3.3.4 變量的聲明和賦值 33 3.4 表達式 34 3.4.1 數學運算符 34 3.4.2 賦值運算符 38 3.4.3 運算符的優先級 39 3.4.4 名稱空間 39 3.5 小結 42 3.6 練習 43 第4章 流程控制 44 4.1 布爾邏輯 44 4.1.1 位運算符 46 4.1.2 布爾賦值運算符 50 4.1.3 運算符的優先級更新 51 4.2 goto語句 52 4.3 分支 53 4.3.1 三元運算符 53 4.3.2 if語句 54 4.3.3 switch語句 57 4.4 循環 60 4.4.1 do循環 61 4.4.2 while循環 63 4.4.3 for循環 65 4.4.4 循環的中斷 69 4.4.5 無限循環 70 4.5 小結 70 4.6 練習 71 第5章 變量的更多內容 72 5.1 類型轉換 72 5.1.1 隱式轉換 72 5.1.2 顯式轉換 74 5.1.3 使用Convert命令進行 顯式轉換 76 5.2 復雜的變量類型 79 5.2.1 枚舉 79 5.2.2 結構 83 5.2.3 數組 86 5.3 字符串的處理 91 5.4 小結 95 5.5 練習 96 第6章 函數 97 6.1 定義和使用函數 98 6.1.1 返回值 99 6.1.2 參數 101 6.2 變量的作用域 107 6.2.1 其他結構中變量的作用域 110 6.2.2 參數和返回值與全局數據 111 6.3 Main()函數 113 6.4 結構函數 114 6.5 函數的重載 115 6.6 委托 117 6.7 小結 119 6.8 練習 120 第7章 調試和錯誤處理 121 7.1 VS和VCE中的調試 121 7.1.1 非中斷(正常)模式下的調試 122 7.1.2 中斷模式下的調試 131 7.2 錯誤處理 139 7.2.1 try...catch...finally 140 7.2.2 列出和配置異常 144 7.2.3 異常處理的注意事項 145 7.3 小結 146 7.4 練習 146 第8章 面向對象編程簡介 147 8.1 什么是面向對象編程 147 8.1.1 什么是對象 148 8.1.2 所有的東西都是對象 151 8.1.3 對象的生命周期 151 8.1.4 靜態和實例類成員 152 8.2 OOP技術 153 8.2.1 接口 153 8.2.2 繼承 155 8.2.3 多態性 156 8.2.4 對象之間的關系 157 8.2.5 運算符重載 159 8.2.6 事件 159 8.2.7 引用類型和值類型 160 8.3 Windows應用程序中的OOP 160 8.4 小結 162 8.5 練習 163 第9章 定義類 164 9.1 C#中的類定義 164 9.2 System.Object 169 9.3 構造函數和析構函數 170 9.4 VS和VCE中的OOP工具 174 9.4.1 Class View窗口 174 9.4.2 對象瀏覽器 176 9.4.3 添加類 177 9.4.4 類圖 177 9.5 類庫項目 179 9.6 接口和抽象類 182 9.7 結構類型 184 9.8 小結 186 9.9 練習 186 第10章 定義類成員 187 10.1 成員定義 187 10.1.1 定義字段 187 10.1.2 定義方法 188 10.1.3 定義屬性 189 10.1.4 在類圖中添加成員 194 10.1.5 重制成員 196 10.1.6 自動屬性 197 10.2 類成員的其他議題 197 10.2.1 隱藏基類方法 198 10.2.2 調用重寫或隱藏的基類方法 199 10.2.3 嵌套的類型定義 200 10.3 接口的實現 201 10.4 部分類定義 204 10.5 部分方法定義 206 10.6 示例應用程序 207 10.6.1 規劃應用程序 207 10.6.2 編寫類庫 208 10.6.3 類庫的客戶應用程序 214 10.7 小結 215 10.8 練習 216 第11章 集合、比較和轉換 217 11.1 集合 217 11.1.1 使用集合 218 11.1.2 定義集合 224 11.1.3 索引符 225 11.1.4 給CardLib添加Cards集合 227 11.1.5 關鍵字值集合和IDictionary 229 11.1.6 迭代器 231 11.1.7 深度復制 236 11.1.8 給CardLib添加深度復制 238 11.2 比較 239 11.2.1 類型比較 240 11.2.2 值比較 244 11.3 轉換 259 11.3.1 重載轉換運算符 259 11.3.2 as運算符 260 11.4 小結 261 11.5 練習 262 第12章 泛型 263 12.1 泛型的概念 263 12.2 使用泛型 264 12.2.1 可空類型 264 12.2.2 System.Collections.Generic 名稱空間 271 12.3 定義泛型 279 12.3.1 定義泛型類 280 12.3.2 定義泛型接口 291 12.3.3 定義泛型方法 291 12.3.4 定義泛型委托 293 12.4 小結 293 12.5 練習 293 第13章 其他OOP技術 295 13.1 ::運算符和全局名稱空間 13.2 定制異常 296 13.2.1 異常基類 297 13.2.2 給CardLib添加定制異常 297 13.3 事件 298 13.3.1 什么是事件 298 13.3.2 使用事件 300 13.3.3 定義事件 302 13.4 擴展和使用CardLib 309 13.5 小結 317 13.6 練習 317 第14章 C# 3.0語言的改進 318 14.1 初始化器 318 14.1.1 對象初始化器 319 14.1.2 集合初始化器 320 14.2 類型推斷 323 14.3 匿名類型 325 14.4 擴展方法 328 14.5 ?表達式 333 14.5.1 復習匿名方法 333 14.5.2 把?表達式用于匿名方法 334 14.5.3 ?表達式的參數 337 14.5.4 ?表達式的語句體 337 14.5.5 ?表達式用作委托和表達式樹 338 14.5.6 ?表達式和集合 339 14.6 小結 342 14.7 練習 342 第Ⅱ部分 Windows 編 程 第15章 Windows編程基礎 347 15.1 控件 347 15.1.1 屬性 348 15.1.2 控件的定位、停靠和對齊 349 15.1.3 事件 350 15.2 Button控件 352 15.2.1 Button控件的屬性 352 15.2.2 Button控件的事件 353 15.3 Label和LinkLabel控件 354 15.4 TextBox控件 355 15.4.1 TextBox控件的屬性 355 15.4.2 TextBox控件的事件 356 15.5 RadioButton和CheckBox控件 363 15.5.1 RadioButton控件的屬性 364 15.5.2 RadioButton控件的事件 364 15.5.3 CheckBox控件的屬性 364 15.5.4 CheckBox控件的事件 364 15.5.5 GroupBox控件 365 15.6 RichTextBox控件 368 15.6.1 RichTextBox控件的屬性 368 15.6.2 RichTextBox控件的事件 369 15.7 ListBox和CheckedListBox控件 374 15.7.1 ListBox控件的屬性 375 15.7.2 ListBox控件的方法 376 15.7.3 ListBox控件的事件 376 15.8 ListView控件 378 15.8.1 ListView控件的屬性 378 15.8.2 ListView控件的方法 380 15.8.3 ListView控件的事件 381 15.8.4 ListViewItem 381 15.8.5 ColumnHeader 381 15.8.6 ImageList控件 381 15.9 TabControl控件 388 15.9.1 TabControl控件的屬性 389 15.9.2 使用TabControl控件 389 15.10 小結 392 15.11 練習 392 第16章 Windows Forms的高級功能 393 16.1 菜單和工具欄 393 16.1.1 兩個實質一樣的控件 393 16.1.2 使用MenuStrip控件 394 16.1.3 手工創建菜單 394 16.1.4 ToolStripMenuItem控件的其他屬性 397 16.1.5 給菜單添加功能 397 16.2 工具欄 399 16.2.1 ToolStrip控件的屬性 399 16.2.2 ToolStrip的項 400 16.2.3 StatusStrip控件 405 16.2.4 StatusStripStatusLabel的屬性 405 16.3 SDI和MDI應用程序 407 16.4 創建控件 415 16.4.1 LabelTextbox控件 417 16.4.2 調試用戶控件 420 16.4.3 擴展LabelTextbox控件 421 16.5 小結 424 16.6 練習 424 第17章 使用通用對話框 425 17.1 通用對話框 425 17.2 如何使用對話框 426 17.3 文件對話框 427 17.3.1 OpenFileDialog 427 17.3.2 SaveFileDialog 438 17.4 打印 442 17.4.1 打印結構 442 17.4.2 打印多個頁面 447 17.4.3 PageSetupDialog 449 17.4.4 PrintDialog 451 17.5 打印預覽 455 17.5.1 PrintPreviewDialog 455 17.5.2 PrintPreviewControl 456 17.6 FontDialog和ColorDialog 457 17.6.1 FontDialog 457 17.6.2 ColorDialog 459 17.6.3 FolderBrowserDialog 460 17.7 小結 461 17.8 練習 461 第18章 部署Windows應用程序 463 18.1 部署概述 463 18.2 ClickOnce部署 464 18.3 Visual Studio安裝和部署項目類型 473 18.4 Microsoft Windows安裝程序結構 474 18.4.1 Windows Installer術語 474 18.4.2 Windows Installer的優點 476 18.5 為SimpleEditor創建安裝軟件包 476 18.5.1 規劃安裝內容 476 18.5.2 創建項目 477 18.5.3 項目屬性 478 18.5.4 安裝編輯器 480 18.5.5 File System編輯器 481 18.5.6 File Types編輯器 483 18.5.7 Launch Condition編輯器 485 18.5.8 User Interface編輯器 485 18.6 構建項目 488 18.7 安裝 489 18.7.1 Welcome 489 18.7.2 Read Me 489 18.7.3 License Agreement 490 18.7.4 Optional Files 490 18.7.5 選擇安裝文件夾 491 18.7.6 確認安裝 492 18.7.7 進度 492 18.7.8 結束安裝 493 18.7.9 運行應用程序 493 18.7.10 卸載 493 18.8 小結 493 18.9 練習 494 第Ⅲ部分 Web 編 程 第19章 Web編程基礎 497 19.1 概述 497 19.2 ASP .NET運行庫 498 19.3 創建簡單的Web頁面 498 19.4 服務器控件 504 19.5 事件處理程序 505 19.6 輸入的有效性驗證 509 19.7 狀態管理 512 19.7.1 客戶端的狀態管理 513 19.7.2 服務器端的狀態管理 515 19.8 身份驗證和授權 517 19.8.1 身份驗證的配置 518 19.8.2 使用安全控件 522 19.9 讀寫SQL Server數據庫 524 19.10 小結 530 19.11 練習 531 第20章 Web高級編程 532 20.1 母版頁 532 20.2 站點導航 537 20.3 用戶控件 539 20.4 個性化配置 541 20.4.1 個性化配置組 543 20.4.2 組件的個性化配置 543 20.4.3 定制數據類型中的個性化配置 543 20.4.4匿名用戶的個性化配置 544 20.5 Web Parts 545 20.5.1 WebPartManager控件 546 20.5.2 WebPartZone控件 546 20.5.3 EditorZone控件 548 20.5.4 CatalogZone控件 550 20.5.5 ConnectionsZone控件 551 20.6 JavaScript 554 20.6.1 Script元素 555 20.6.2 變量的聲明 555 20.6.3 定義函數 555 20.6.4 語句 556 20.6.5 對象 556 20.7 小結 560 20.8 練習 560 第21章 Web服務 561 21.1 Web服務推出之前 561 21.1.1 遠程過程調用(RPC) 562 21.1.2 SOAP 563 21.2 使用Web服務的場合 563 21.2.1 賓館旅行社代理應用程序 564 21.2.2 圖書發布應用程序 564 21.2.3 客戶應用程序的類型 564 21.2.4 應用程序的體系結構 564 21.3 Web服務的體系結構 565 21.3.1 可以調用的方法 565 21.3.2 調用方法 566 21.3.3 SOAP和防火墻 567 21.3.4 WS-I基本個性化配置 568 21.4 Web服務和.NET Framework 568 21.4.1 創建Web服務 568 21.4.2 客戶程序 570 21.5 創建簡單的ASP .NET Web服務 571 21.6 測試Web服務 572 21.7 執行Windows客戶程序 574 21.8 異步調用服務 577 21.9 執行ASP .NET客戶程序 580 21.10 傳送數據 581 21.11 小結 584 21.12 練習 584 第22章 Ajax編程 586 22.1 Ajax概述 586 22.2 UpdatePanel控件 587 22.3 Timer控件 591 22.4 UpdateProgress控件 592 22.5 Web服務 594 22.6 擴展控件 598 22.7 小結 600 22.8 練習 600 第23章 部署Web應用程序 601 23.1 Internet Information Services 601 23.2 IIS配置 602 23.3 復制Web站點 604 23.4 發布Web站點 606 23.5 Windows安裝程序 607 23.5.1 創建安裝程序 607 23.5.2 安裝Web 應用程序 609 23.6 小結 610 23.7 練習 610 第Ⅳ部分 數 據 訪 問 第24章 文件系統數據 613 24.1 流 613 24.2 用于輸入和輸出的類 614 24.2.1 File類和Directory類 615 24.2.2 FileInfo類 616 24.2.3 DirectoryInfo類 617 24.2.4 路徑名和相對路徑 618 24.2.5 FileStream對象 618 24.2.6 StreamWriter對象 624 24.2.7 StreamReader對象 626 24.2.8 讀寫壓縮文件 632 24.3 序列化對象 635 24.4 監控文件結構 639 24.5 小結 645 24.6 練習 646 第25章 XML 647 25.1 XML文檔 647 25.1.1 XML元素 647 25.1.2 屬性 648 25.1.3 XML聲明 649 25.1.4 XML文檔的結構 649 25.1.5 XML名稱空間 650 25.1.6 格式良好并有效的XML 651 25.1.7 驗證XML文檔 651 25.2 在應用程序中使用XML 654 25.2.1 XML文檔對象模型 655 25.2.2 選擇節點 663 25.3 小結 670 25.4 練習 671 第26章 LINQ簡介 672 26.1 LINQ的變體 673 26.2 第一個LINQ查詢 673 26.2.1 用var關鍵字聲明結果變量 675 26.2.2 指定數據源:from子句 675 26.2.3 指定條件:where子句 675 26.2.4 指定元素:select子句 676 26.2.5 完成:使用foreach循環 676 26.2.6 延遲執行的查詢 676 26.3使用LINQ方法語法和?表達式 676 26.3.1 LINQ擴展方法 676 26.3.2 查詢語法和方法語法 677 26.3.3 ?表達式 677 26.4 排序查詢結果 679 26.5 orderby子句 680 26.6 用方法語法排序 681 26.7 查詢大型數據集 682 26.8 合計運算符 685 26.9 查詢復雜的對象 688 26.10 投射:在查詢中創建新對象 691 26.11 投射:方法語法 693 26.12 單值選擇查詢 693 26.13 Any和All 694 26.14 多級排序 696 26.15 多級排序方法語法:ThenBy 698 26.16 組合查詢 698 26.17 Take和Skip 700 26.18 First和FirstOrDefault 702 26.19 集運算符 703 26.20 Join查詢 706 26.21 資源和進一步閱讀 707 26.22 小結 707 26.23 練習 707 第27章 LINQ to SQL 709 27.1 對象相關映射 709 27.2 安裝SQL Server和Northwind示例數據 710 27.2.1 安裝SQL Server Express2005 710 27.2.2 安裝Northwind示例數據庫 711 27.3 第一個LINQ to SQL查詢 712 27.4 瀏覽LINQ to SQL關系 717 27.5 進一步探討LINQ to SQL 720 27.6 LINQ to SQL中的組合、排序和其他高級查詢 723 27.7 顯示生成的SQL 725 27.8 用LINQ to SQL綁定數據 729 27.9 用LINQ to SQL更新綁定數據 733 27.10 小結 734 27.11 練習 735 第28章 ADO .NET和LINQ over DataSet 736 28.1 ADO .NET概述 736 28.1.1 ADO .NET名稱的來源 737 28.1.2 ADO .NET的設計目標 738 28.2 ADO .NET類和對象概述 739 28.2.1 提供者對象 739 28.2.2 用戶對象 740 28.2.3 使用System.Data名稱空間 741 28.3 用DataReader讀取數據 742 28.4 用DataSet讀取數據 749 28.4.1 用數據填充DataSet 749 28.4.2 訪問DataSet中的表、行和列 749 28.5 更新數據庫 752 28.5.1 給數據庫添加行 755 28.5.2 刪除行 761 28.6 在DataSet中訪問多個表 762 28.6.1 ADO .NET中的關系 762 28.6.2 用關系導航 763 28.7 XML和ADO .NET 770 28.8 ADO .NET中的SQL支持 773 28.8.1 DataAdapter對象中的 SQL命令 773 28.8.2 直接執行SQL命令 776 28.8.3 調用SQL存儲過程 778 28.9 使用LINQ over DataSet和ADO .NET 780 28.10 小結 784 28.11 練習 784 第29章 LINQ to XML 785 29.1 LINQ to XML函數構造方法 785 29.2 保存和加載XML文檔 789 29.2.1 從字符串中加載XML 791 29.2.2 已保存的XML文檔內容 792 29.3 處理XML片段 792 29.4 通過LINQ to XML生成 XML 794 29.5 查詢XML文檔 798 29.6 小結 804 29.7 練習 804 第Ⅴ部分 其 他 技 術 第30章 屬性 809 30.1 什么是屬性 809 30.2 反射 812 30.3 內置屬性 815 30.3.1 System.Diagnostics.ConditionalAttribute 815 30.3.2 System.Obsolete Attribute 817 30.3.3 System.Serializable Attribute 818 30.3.4 System.Reflection.AssemblyDelaySignAttribute 821 30.4 定制屬性 824 30.4.1 BugFixAttribute 824 30.4.2 System.AttributeUsageAttribute 826 30.5 小結 830 第31章 XML文檔說明 831 31.1 添加XML文檔說明 831 31.1.1 XML文檔說明的注釋 833 31.1.2 使用類圖添加XML文檔說明 839 31.1.3 生成XML文檔說明文件 842 31.1.4 帶有XML文檔說明的應用程序示例 844 31.2 使用XML文檔說明 846 31.2.1 編程處理XML文檔說明 846 31.2.2 用XSLT格式化XML文檔說明 848 31.2.3 文檔說明工具 849 31.3 小結 850 31.4 練習 851 第32章 網絡 852 32.1 聯網概述 852 32.1.1 名稱的解析 855 32.1.2 統一資源標識符 856 32.1.3 TCP和UDP 857 32.1.4 應用協議 857 32.2 網絡編程選項 859 32.3 WebClient 859 32.4 WebRequest和WebResponse 861 32.5 TcpListener和TcpClient 868 32.6 小結 876 32.7 練習 876 第33章 GDI+簡介 877 33.1 圖形繪制概述 877 33.1.1 Graphics類 878 33.1.2 對象的刪除 878 33.1.3 坐標系統 879 33.1.4 顏色 884 33.2 使用Pen類繪制線條 885 33.3 使用Brush類繪制圖形 887 33.4 使用Font 類繪制文本 890 33.5 使用圖像進行繪制 893 33.5.1 使用紋理畫筆繪圖 895 33.5.2 使用鋼筆繪制圖像 897 33.5.3 雙倍緩沖 898 33.6 GDI+的高級功能 900 33.6.1 剪切 900 33.6.2 System.Drawing.Drawing2D 901 33.6.3 System.Drawing.Imaging 901 33.7 小結 901 33.8 練習 902 第 34 章 Windows Presentation Foundation 903 34.1 WPF的概念 904 34.1.1 WPF給設計人員帶來的好處 904 34.1.2 WPF給C#開發人員帶來的好處 906 34.2 基本WPF應用程序的組成 906 34.3 WPF基礎 916 34.3.1 XAML語法 917 34.3.2 桌面和Web應用程序 919 34.3.3 Application對象 920 34.3.4 控件基 920 34.3.5 控件的布局 928 34.3.6 控件的樣式 936 34.3.7 觸發器 941 34.3.8 動畫 942 34.3.9 靜態和動態資源 944 34.4 用WPF編程 949 34.4.1 WPF用戶控件 950 34.4.2 實現依賴屬性 950 34.5 小結 959 34.6 練習 960 第35 章 Windows Communication Foundation 961 35.1 WCF是什么 961 35.2 WCF概念 962 35.2.1 WCF通信協議 962 35.2.2 地址、端點和綁定 963 35.2.3 合同 964 35.2.4 消息模式 965 35.2.5 行為 965 35.2.6 主機 965 35.3 WCF編程 966 35.3.1 定義WCF服務合同 973 35.3.2 自存儲的WCF服務 979 35.4 小結 985 35.5 練習 986 第36章 Windows Workflow Foundation 987 36.1 活動 990 36.1.1 DelayActivity 990 36.1.2 SuspendActivity 991 36.1.3 WhileActivity 992 36.1.4 SequenceActivity 994 36.1.5 定制活動 997 36.2 工作流運行庫 1002 36.3 數據綁 1007 36.4 小結 1010 序言
標簽:
上傳時間: 2013-11-16
上傳用戶:xinyuzhiqiwuwu