通過以SD02型熱釋電傳感器等器件組成的紅外感應模塊,將檢測到的人體信號傳送給以STC89C52單片機為核心的單片機模塊;單片機模塊根據設定程序檢測前級送入信號,并作出判斷輸出電信號控制后級驅動模塊;驅動模塊采用SH-215B高性能細分驅動器,其輸出控制電機運行。
上傳時間: 2013-11-04
上傳用戶:文993
《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
摘要:本文介紹應用PIC16C57單片機設計的一種可編程、高性能的數碼式樓宇對講系統,詳細闡明了有關工作原理和關鍵技術。本系統充分應用PIC單片機的軟硬件資源,具有可編程、電路簡單、功能強大等優點,在安居工程、樓宇技防系統等領域具有廣泛的應用前景。 關鍵詞:PIC 單片機 樓宇對講 編碼 譯碼 可編程
上傳時間: 2013-11-14
上傳用戶:hj_18
本文針對實驗平臺管理系統的實際需求,結合密碼技術和身份認證技術,采用了基于USB Key的雙因子身份認證技術。目前眾多身份認證技術當中,USB Key是被認為最安全的身份認證手段,除了生物特征身份認證技術。但是因為成本問題,生物特征身份認證技術并沒有被廣泛使用。而且通過深入研究,可以進一步完善USB Key的功能,使USB Key不僅能起到認證的作用,還可以用于存儲數據。因此,隨著人們對網絡安全問題的重視程度加深,USB Key身份認證方式將在各安全需求領域大顯身手
上傳時間: 2014-12-27
上傳用戶:sun_pro12580
單片機在日常生活中用得越來越多,其集成度也越來越高,目前擁有多種單片機都集成有A/D轉換功能,如PIC,AVR,SUNPLUS,SH等。處理器的位數從4位到32位或更高,轉換精度從6位,8位,10位或更高。
上傳時間: 2013-10-28
上傳用戶:xa_lgy
石英具有非凡的機械和壓電特性, 使得從19 世紀40 年代中期以來一直作為基本的時鐘器件. 盡管在陶瓷, 硅晶和RLC電路方面有60 多年的研究, 在此之前沒有哪種材料或技術能替代石英振蕩器, 鑒于其異常的溫度穩定性和相位噪聲特性. 估計2006 年將有100億顆石英振蕩器被制造出來并放置到汽車, 數碼相機, 工業設備, 游戲設備, 寬帶設備,蜂窩電話, 以及事實上每一種數字產品當中. 石英振蕩器的制造數量比地球上的人口還要多.
上傳時間: 2013-10-17
上傳用戶:xinshou123456
單片機入門基礎知識大全免費下載 單片機第八課(尋址方式與指令系統) 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現在開始,我們將要系統地學習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
高壓雙管反激變換器的設計:介紹一種雙管反激的電路拓撲,分析了其工作原理,給出了一些關鍵技術參數的計算公式,設計并研制成功的30W 380V AC5 0H z/510V DC/+15.1 V DC(1A )、+5.2VDC(2A)輔助開關電源具有功率密度高、變換效率高、可靠性高等優良的綜合性能。該變換器在高電壓輸人情況下有重要的應用價值。【關 鍵 詞 】變換器,輔助開關電源,雙管反激 [Abstract】 A n e wt opologyfo rd oubles witchfl ybackc onverteris in troduced.Th eo perationp rincipleis a nalyzeda nds ome for mulas for calculating key parameters for the topology are presented. The designed and produced auxiliary switching power supply,i. e. 30W 380V AC5 0H z/5 10V DC/+15.1 V DC《1A )、+5.2 V DC《2A ),hase xcellentc omprehensivep erformances sucha sh ighp owerd ensity, hi ghc onversione fficiencya ndh ighr eliability.Th isc onverterh asim portanta pplicationv aluef orh igh input voltag [Keywords ]converter,au xiliary switchingp owers upply,do ubles witchf lybac
上傳時間: 2013-11-01
上傳用戶:Ants
單片機指令系統 3.1 MCS-51指令簡介 3.2 指令系統 3.1 MCS-51指令簡介 二、MCS-51系列單片機指令系統分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址 1、數據傳送指令位操 2、直接尋址 2、算術運算指令 3、寄存器尋址 3、邏輯運算指令 4、寄存器間接尋址指令 4、控制轉移類指令 5、相對尋址 5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址 MOV A, @R1 操作數是通過寄存器間接得到的。 4、立即尋址 MOV A, #40H 操作數在指令中直接給出。 5、基址寄存器加變址寄存器尋址 以DPTR或PC為基址寄存器,以A為變址寄存器, 以兩者相加形成的16位地址為操作數的地址。 MOVC A, @A+DPTR MOVC A, @A+PC 四、指令中常用符號說明 Rn——當前寄存器區的8個工作寄存器R0~R7(n=0~7); Ri——當前寄存器區可作地址寄存器的2個工作寄存器R0和R1(i=0,1); direct——8位內部數據存儲器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(立即數); #datal6——表示16位常數; add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號中單元的內容 (( ))——表示間接尋址的內容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數的指令 2. 以Rn為目的操作數的指令 3. 以直接地址為目的操作數的指令 4. 以寄存器間接地址為目的操作數指令 應用舉例1 8段數碼管顯示 應用舉例2 3.2 指令系統 2、堆棧操作指令 3. 累加器A與外部數據傳輸指令 4. 查表指令 MOVC A, @A+PC 例子: 5. 字節交換指令 6. 半字節交換指令 二、算術操作類指令 PSW寄存器 2. 帶進位加法指令 3. 加1指令 4. 十進制調整指令 5. 帶借位減法指令(Subtraction) 6. 減1指令(Decrease) 7. 乘法指令(Multiplication) 8. 除法指令(Division) 三、邏輯運算指令 1. 簡單邏輯操作指令 2. 循環指令 帶進位左循環指令(Rotate Accumulator Left through Carry flag) 右循環指令(Rotate Accumulator Right) 帶進位右循環指令(Rotate A Right with C) 3. 邏輯與指令 4. 邏輯或指令 5. 邏輯異或指令 四、控制轉移類指令 1. 跳轉指令 相對轉移指令 SJMP rel PC←(PC)+2 PC←(PC)+rel 程序中標號與地址之間的關系 2. 條件轉移指令 3. 比較不相等轉移指令 4. 減 1 不為 0 轉移指令 5. 調用子程序指令 7. 中斷返回指令 五、位操作指令 1. 數據位傳送指令 2. 位變量邏輯指令 3. 條件轉移類指令
上傳時間: 2013-10-27
上傳用戶:xuanjie
家電制造業的競爭日益激烈,市場調整壓力越來越大,原始設備制造商們(OEM)為了面對這一挑戰,必須在滿足電磁兼容性的條件下,不斷降低產品的成本。由于強調成本控制,為防止由電源和信號線的瞬變所產生的電器故障而實施必要的瞬態免疫保護,對于家電設計者來說變得更具挑戰性。由于傳統的電源設計和電磁干擾(EMI)控制措施為節約成本讓路,家電設計者必須開發出新的技術來滿足不斷調整的電磁兼容(EMC)需求。本應用筆記探討了瞬態電氣干擾對嵌入式微控制器(MCU)的影響,并提供了切實可行的硬件和軟件設計技術,這些技術可以為電快速瞬變(EFT)、靜電放電(ESD)以及其它電源線或信號線的短時瞬變提供低成本的保護措施。雖然這種探討是主要針對家電制造商,但是也適用于消費電子、工業以及汽車電子方面的應用。
上傳時間: 2013-11-22
上傳用戶:csgcd001