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

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

多學(xué)習(xí)寫(xiě)代碼中的習(xí)慣

  • 多臺逆變電源并聯冗余運行控制系統的研制

    提出了一種分布式控制并聯方案實現多臺逆變電源并聯控制系統,分析了逆變電源并聯運行控制過程中的電壓和電流特性.試驗運行結果表明,各模塊均流效果好,控制策略可行,達到比較理想的并聯運行控制效果.

    標簽: 逆變電源 并聯冗余 運行控制系統

    上傳時間: 2013-10-19

    上傳用戶:feifei0302

  • c#入門經典第4版全書pdf

    《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

  • C函數速查手冊全書下載

    C函數速查手冊 出版社:人民郵電出版社 《C函數速查手冊》中所講的C語言函數按照功能順序和字母順序進行排序,讀者既可以按照功能順序查找,也可以按照字母順序學習。《C函數速查手冊》不僅適合于C語言初學者學習使用,而且也可以作為中、高級C語言開發人員的參考手冊。 目錄  第1章 數學函數    1.1 _clear87函數:清除浮點狀態字    1.2 _status87函數:取浮點狀態字    1.3 abs函數:求整數的絕對值    1.4 acos、acosl函數:反余弦函數    1.5 asin、asinl函數:反正弦函數    1.6 atan函數:反正切函數    1.7 atan2、atan2l函數:計算Y/X的反正切值    1.8 cabs函數:計算復數的模    1.9 ceil函數:向上取整    1.10 cos函數:余弦函數    1.11 cosh函數:雙曲余弦函數    1.12 div函數:求兩個整數相除的商和余數    1.13 exp函數:指數函數    1.14 fabs函數:求浮點數的絕對值    1.15 floor函數:向下取整    1.16 fmod函數:計算x對y的模    1.17 frexp函數:將浮點數分為底數與指數    1.18 hypot函數:計算直角三角形的斜邊    1.19 labs函數:取長整數的絕對值    1.20 ldexp、ldexpl函數:冪計算    1.21 ldiv函數:兩個長整型數相除    1.22 log、logl函數:計算自然對數    1.23 log10、log10l函數:計算常用對數    1.24 max函數:求兩個數中的最大者    1.25 min函數:求兩個數中的最小者    1.26 modf、modfl函數:分割數為整數部分和小數部分    1.27 poly函數:計算多項式    1.28 pow函數:指數函數    1.29 pow10函數:指數函數    1.30 rand函數:隨機數發生器    1.31 random函數:隨機數發生器    1.32 randomize函數:初始化隨機數發生器    1.33 sin函數:正弦函數    1.34 sinh函數:雙曲正弦函數    1.35 sqrt函數:計算平方根    1.36 srand函數:初始化隨機數發生器    1.37 tan、tanl函數:正切函數    1.38 tanh、tanhl函數:雙曲正切函數    第2章 字符串函數    2.1 atof函數:把字符串轉換成浮點數    2.2 atoi函數:將字符串轉換成整型數    2.3 atol函數:將字符串轉換成長整型數    2.4 ecvt函數:將浮點數轉換為字符串    2.5 fcvt函數:將浮點數轉換為字符串    2.6 gcvt函數:將浮點數轉換成字符串    2.7 itoa函數:將整數值轉換為字符串    2.8 isalnum函數:字母、數字判斷函數    2.9 isalpha函數:字母判斷函數    2.10 isascii函數:整數值的字符分類    2.11 iscntrl函數:控制字符判斷函數    2.12 isdigit函數:數字判斷函數    2.13 isgraph函數:打印字符判斷    2.14 islower函數:小寫字母判斷函數    2.15 isprint函數:可打印字符判斷函數    2.16 isptmct函數:標點符號判斷函數    2.17 isspace函數:空格等判斷函數    2.18 isupper函數:大寫字母判斷函數    2.19 isxdigit函數:十六進制數字判斷函數    2.20 ltoa函數:將長整值轉換為字符串    2.21 mbstowcs函數:將多字節字符序列轉換成相應的寬字符序列    2.22 mbtowc函數:將多字節字符轉換成相應的寬字符    2.23 stpcpy函數:復制字符串    2.24 strcat函數:拼接字符串    2.25 strchr函數:查找給定字符    2.26 strcmp函數:比較字符串    2.27 strcmpi函數:比較字符串    2.28 strcpy函數:復制字符串    2.29 strcspn函數:查找不包含指定字符集子串的段    2.30 strdup函數:將字符串復制到新建的位置    2.31 stricmp函數:比較字符串    2.32 strlen函數:獲取字符長度

    標簽: 函數 書下載 速查手冊

    上傳時間: 2014-12-25

    上傳用戶:水口鴻勝電器

  • ARM Cortex-M0原理與應用實踐V1.5

    隨著近年來制造工藝的不斷進步,ARM Cortex微控制器的成本也不斷降低,已經與8位和16位微 控制器處于同等水平;另一個原因是基于ARM的器件的選擇余地、性能范圍和可用性。如今,越來越多的 微控制器供應商提供基于ARM的微控制器,這些產品能提供選擇范圍更廣的外設、性能、內存大小、封裝、 成本等等。另外,基于ARM Cortex-M的微控制器還具有專門針對微控制器應用的一些特性,這些特性 使ARM微控制器具有日益廣泛的應用范圍。與此同時,基于ARM的微控制器的價格在過去5年里已大幅 降低,并且面向開發者的低成本甚至免費開發工具也越來越多。 與其它架構相比,選擇基于ARM的微控制器也是更好的投資。現今,針對ARM微控制器開發的軟件代 碼可在未來多年內供為數眾多的微控制器供應商重復使用。隨著ARM架構的應用更加廣泛,聘請具有ARM 架構行業經驗的軟件工程師也比聘請其他架構工程師更加容易,這也使得嵌入式開發者的產品和資產能夠 更加面向未來。

    標簽: Cortex-M ARM 1.5 應用實踐

    上傳時間: 2013-11-03

    上傳用戶:破曉sunshine

  • MAX488在多機通訊中的應用

    本文介紹RS一485電氣特性和簡單的結構方式。以及采用RS485自定義實現 串行通信協議,并介紹單片機RS一485多機通訊的方法和技巧。

    標簽: MAX 488 多機 中的應用

    上傳時間: 2013-10-15

    上傳用戶:我們的船長

  • 基于AT89S51的多參數氣體檢測儀的研制

    本文介紹了基于AT89S51 單片機的多參數氣體檢測儀的設計和實現方法。利用電化學傳感器和紅外氣體傳感器,可同時檢測氧氣、一氧化碳、二氧化碳、硫化氫、甲烷等5 種氣體在空氣中的含量,并具有超限報警、顯示、打印等功能,可廣泛應用于環境監測、衛生防疫、勞動保護、易燃易爆和安全生產等領域,具有一定的應用價值。

    標簽: 89S S51 AT 89

    上傳時間: 2013-11-12

    上傳用戶:23333

  • PCA9547D/PW/BS I2C多路復用器和開關

    PCA9547 是一款通過I2C 總線控制的八進制雙向轉換開關。它的每對SCL/ SDA 上行通道可以擴展為八對下行通道。但在某一時刻,由可編程控制寄存器中的內容來決定只有一路SCx/SDx 被選擇。由多路復用器的通門,VDD 管腳可以用來限制PCA9547 通過的最高電壓,這使得每一對SCL/SDA 可以使用不同的總線電壓,因此1.8V、2.5V 或3.3V 的器件都可以在無其它保護的情況下與5V 的器件進行通信。它的外部上拉電阻將總線拉高至每個通道所要求的電壓電平,所有I/O 管腳都可以承受5V 的電壓。設備上電時由通道0 連接,并且允許主機和下行設備進行直接的通信

    標簽: 9547 PCA I2C BS

    上傳時間: 2014-12-28

    上傳用戶:sunshine1402

  • MSP430系列flash型超低功耗16位單片機

    MSP430系列flash型超低功耗16位單片機MSP430系列單片機在超低功耗和功能集成等方面有明顯的特點。該系列單片機自問世以來,頗受用戶關注。在2000年該系列單片機又出現了幾個FLASH型的成員,它們除了仍然具備適合應用在自動信號采集系統、電池供電便攜式裝置、超長時間連續工作的設備等領域的特點外,更具有開發方便、可以現場編程等優點。這些技術特點正是應用工程師特別感興趣的。《MSP430系列FLASH型超低功耗16位單片機》對該系列單片機的FLASH型成員的原理、結構、內部各功能模塊及開發方法與工具作詳細介紹。MSP430系列FLASH型超低功耗16位單片機 目錄  第1章 引 論1.1 MSP430系列單片機1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 結構概述2.1 引 言2.2 CPU2.3 程序存儲器2.4 數據存儲器2.5 運行控制2.6 外圍模塊2.7 振蕩器與時鐘發生器第3章 系統復位、中斷及工作模式3.1 系統復位和初始化3.1.1 引 言3.1.2 系統復位后的設備初始化3.2 中斷系統結構3.3 MSP430 中斷優先級3.3.1 中斷操作--復位/NMI3.3.2 中斷操作--振蕩器失效控制3.4 中斷處理 3.4.1 SFR中的中斷控制位3.4.2 中斷向量地址3.4.3 外部中斷3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗應用的要點23第4章 存儲空間4.1 引 言4.2 存儲器中的數據4.3 片內ROM組織4.3.1 ROM 表的處理4.3.2 計算分支跳轉和子程序調用4.4 RAM 和外圍模塊組織4.4.1 RAM4.4.2 外圍模塊--地址定位4.4.3 外圍模塊--SFR4.5 FLASH存儲器4.5.1 FLASH存儲器的組織4.5.2 FALSH存儲器的數據結構4.5.3 FLASH存儲器的控制寄存器4.5.4 FLASH存儲器的安全鍵值與中斷4.5.5 經JTAG接口訪問FLASH存儲器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序計數器PC5.1.2 系統堆棧指針SP5.1.3 狀態寄存器SR5.1.4 常數發生寄存器CG1和CG25.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時鐘周期與長度5.3 指令組概述5.3.1 雙操作數指令5.3.2 單操作數指令5.3.3 條件跳轉5.3.4 模擬指令的簡短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 無符號數相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符號數相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 無符號數乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符號數乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的軟件限制6.4.1 尋址模式6.4.2 中斷程序6.4.3 MACS第7章 基礎時鐘模塊7.1 基礎時鐘模塊7.2 LFXT1與XT27.2.1 LFXT1振蕩器7.2.2 XT2振蕩器7.2.3 振蕩器失效檢測7.2.4 XT振蕩器失效時的DCO7.3 DCO振蕩器7.3.1 DCO振蕩器的特性7.3.2 DCO調整器7.4 時鐘與運行模式7.4.1 由PUC啟動7.4.2 基礎時鐘調整7.4.3 用于低功耗的基礎時鐘特性7.4.4 選擇晶振產生MCLK7.4.5 時鐘信號的同步7.5 基礎時鐘模塊控制寄存器7.5.1 DCO時鐘頻率控制7.5.2 振蕩器與時鐘控制寄存器7.5.3 SFR控制位第8章 輸入輸出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中斷控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口邏輯第9章 看門狗定時器WDT9.1 看門狗定時器9.2 WDT寄存器9.3 WDT中斷控制功能9.4 WDT操作第10章 16位定時器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定時器模式控制10.2.2 時鐘源選擇和分頻10.2.3 定時器啟動10.3 定時器模式10.3.1 停止模式10.3.2 增計數模式10.3.3 連續模式10.3.4 增/減計數模式10.4 捕獲/比較模塊10.4.1 捕獲模式10.4.2 比較模式10.5 輸出單元10.5.1 輸出模式10.5.2 輸出控制模塊10.5.3 輸出舉例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕獲/比較控制寄存器CCTLx10.6.4 Timer_A中斷向量寄存器10.7 Timer_A的UART應用 第11章 16位定時器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定時器長度11.2.2 定時器模式控制11.2.3 時鐘源選擇和分頻11.2.4 定時器啟動11.3 定時器模式11.3.1 停止模式11.3.2 增計數模式11.3.3 連續模式11.3.4 增/減計數模式11.4 捕獲/比較模塊11.4.1 捕獲模式11.4.2 比較模式11.5 輸出單元11.5.1 輸出模式11.5.2 輸出控制模塊11.5.3 輸出舉例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕獲/比較控制寄存器CCTLx11.6.4 Timer_B中斷向量寄存器第12章 USART通信模塊的UART功能12.1 異步模式12.1.1 異步幀格式12.1.2 異步通信的波特率發生器12.1.3 異步通信格式12.1.4 線路空閑多機模式12.1.5 地址位多機通信格式12.2 中斷和中斷允許12.2.1 USART接收允許12.2.2 USART發送允許12.2.3 USART接收中斷操作12.2.4 USART發送中斷操作12.3 控制和狀態寄存器12.3.1 USART控制寄存器UCTL12.3.2 發送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調整控制寄存器12.3.5 USART接收數據緩存URXBUF12.3.6 USART發送數據緩存UTXBUF12.4 UART模式,低功耗模式應用特性12.4.1 由UART幀啟動接收操作12.4.2 時鐘頻率的充分利用與UART的波特率12.4.3 多處理機模式對節約MSP430資源的支持12.5 波特率計算 第13章 USART通信模塊的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的從模式13.2 中斷與控制功能 13.2.1 USART接收/發送允許位及接收操作13.2.2 USART接收/發送允許位及發送操作13.2.3 USART接收中斷操作13.2.4 USART發送中斷操作13.3 控制與狀態寄存器13.3.1 USART控制寄存器13.3.2 發送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調制控制寄存器13.3.5 USART接收數據緩存URXBUF13.3.6 USART發送數據緩存UTXBUF第14章 比較器Comparator_A14.1 概 述14.2 比較器A原理14.2.1 輸入模擬開關14.2.2 輸入多路切換14.2.3 比較器14.2.4 輸出濾波器14.2.5 參考電平發生器14.2.6 比較器A中斷電路14.3 比較器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比較器A應用14.4.1 模擬信號在數字端口的輸入14.4.2 比較器A測量電阻元件14.4.3 兩個獨立電阻元件的測量系統14.4.4 比較器A檢測電流或電壓14.4.5 比較器A測量電流或電壓14.4.6 測量比較器A的偏壓14.4.7 比較器A的偏壓補償14.4.8 增加比較器A的回差第15章 模數轉換器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC內核15.2.2 參考電平15.3 模擬輸入與多路切換15.3.1 模擬多路切換15.3.2 輸入信號15.3.3 熱敏二極管的使用15.4 轉換存儲15.5 轉換模式15.5.1 單通道單次轉換模式15.5.2 序列通道單次轉換模式15.5.3 單通道重復轉換模式15.5.4 序列通道重復轉換模式15.5.5 轉換模式之間的切換15.5.6 低功耗15.6 轉換時鐘與轉換速度15.7 采 樣15.7.1 采樣操作15.7.2 采樣信號輸入選擇15.7.3 采樣模式15.7.4 MSC位的使用15.7.5 采樣時序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 轉換存儲寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中斷標志寄存器ADC12IFG.x和中斷允許寄存器ADC12IEN.x15.8.5 中斷向量寄存器ADC12IV15.9 ADC12接地與降噪第16章 FLASH型芯片的開發16.1 開發系統概述16.1.1 開發技術16.1.2 MSP430系列的開發16.1.3 MSP430F系列的開發16.2 FLASH型的FET開發方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 標準復位過程和進入BSL過程16.3.2 BSL的UART協議16.3.3 數據格式16.3.4 退出BSL16.3.5 保護口令16.3.6 BSL的內部設置和資源附錄A 尋址空間附錄B 指令說明B.1 指令匯總B.2 指令格式B.3 不增加ROM開銷的模擬指令B.4 指令說明(字母順序)B.5 用幾條指令模擬的宏指令附錄C MSP430系列單片機參數表附錄D MSP430系列單片機封裝形式附錄E MSP430系列器件命名

    標簽: flash MSP 430 超低功耗

    上傳時間: 2014-04-28

    上傳用戶:sssnaxie

  • 用單片機制作多功能莫爾斯碼電路

    用單片機制作多功能莫爾斯碼電路:用單片機制作多功能莫爾斯碼電路莫爾斯電碼通信有著悠久的歷史,盡管它已被現代通信方式所取代,但在業余無線電通信和特殊的專業場合仍具有重要的地位,這是因為等幅電碼通信的抗干擾能力是其它任何一種通信方式都無法相比的。在短波波段用幾瓦的功率即可進行國際間的通信,收發射設備簡單易制成本低廉,所以深受業余無線電愛好者的喜愛,是業余無線電高手必備的技能。要想熟練掌握莫爾斯電碼的收發技術除了持之以恒的毅力外,還需要相關的設備。設計本電路的目的就是給愛好者提供一個實用和訓練的工具。  一、功能簡介    本電路可以配合自動鍵體和手動鍵體,產生莫爾斯碼控制信號,設有16種速度,從初學者到操作高手都能適用。監聽音調也有16種,均可以通過功能鍵進行選擇。可以按程序中設定好的呼號自動呼叫,設有聽抄練習功能,聽抄練習有短碼和混合碼兩種模式,分別對10個數字和常用的38個混合碼模擬隨機取樣,產生分組報碼,供愛好者提高抄收水平之用,速度低4檔的聽抄練習是專為初學者所設,內容是時間間隔較長的單字符。設有PTT開關鍵,可以決定是否控制發射機工作,不需要反復通斷控制線。無論當前處于呼叫狀態還是聽抄狀態只要電鍵接點接通則自動轉到人工發報程序。4分鐘內不使用電路將自動關閉電源,只有按復位鍵才能重新開始工作。先按住聽抄練習鍵復位則進入短碼練習狀態,其它功能不變。從開機到自動關機執行每個功能都有不同的莫爾斯碼提示音。本電路具有較強的抗高低頻干擾的能力和使用方便的大電流開關接口,以適應不同的發射設備。    二、硬件電路原理硬件電路如圖1所示。設計電路的目的在于方便實用,以免在緊張的操作中失誤,所以除了聽抄練習鍵外其它鍵沒有定義復用功能。各鍵的作用在圖中已經標出。PTT控制在每次復位時處于關閉狀態,每按動一次PTT功能鍵則改變一次狀態,這樣可以使用軟件開關控制發射。 PTT處于控制狀態時發光二極管隨控制信號閃亮。考慮到自制設備及淘汰軍用設備與高檔設備控制電流的不同,PTT開關管采用了2SC2073,可以承受500mA的電流,同時還增加了無極性PTT開關電路,無論外部被控制的端口直流極性如何加到VT3的極性始終不變,供有興趣的愛好者實驗。應該注意,如果被控制的負載是感性,則電感兩端必須并聯續流二極管,除自制設備外成品機在這方面一般沒有什么問題。手動鍵只有一個接點,接通后產生連續的音頻和發射控制信號。在本電路中手動鍵的輸入端是P1.5 ,程序不斷檢測P1.5電平,當按鍵按下時P1.5電平為0,程序轉入手動鍵子程序。 自動鍵的接點分別接到P1.3和P1.4 ,同樣當程序檢測到有接點閉合時便自動產生“點”或“劃”。音頻信號從P輸出,經VT1放大后推動揚聲器發音。單片機的I/O口在輸入狀態下阻抗較高,容易受到高低頻信號干擾,所以在每個輸入端口和三極管的be端并聯電阻和高頻旁路電容,確保在較長的電鍵連線和大功率發射時電路工作穩定。圖2是印刷電路版圖,尺寸為110mmX85mm,揚聲器用粘合劑直接粘接在電路版有銅箔的面。    三、軟件設計方法  “點”時間長度是莫爾斯電碼中的基本時間單位。按規定“劃”的時間長度不小于三個“點”,同字符中“點”與“劃”的間隔不小于一個“點”,字符之間不小于一個“劃”,詞與詞之間不應小于五個“點”。在本程序中用條件轉移指令來產生“點”時間長度。通過速度功能鍵功可以設置16種延時參數。用T0中斷產生監聽音頻信號,并將中斷設為優先級,保證在聽覺上純正悅耳。T1用于自動關機計時,如果不使用任何功能四分鐘后將向PCON 位寫1,單片機進入休眠狀態,此時耗電量僅有幾個微安。自動鍵的“點”或“劃”以及手動鍵的連續發音都是子程序的反復調用。P1.2對地短接時自動呼叫可設定為另一內容。為了便于熟悉匯編語言的讀者對發音內容進行修改,這里介紹發音字符的編碼方法。莫爾斯碼的信息與計算機中二進制恰好相同,我們可以用0表示“點”,用1表示“劃”。提示音、自動呼叫、聽抄內容等字符是預先按一定編碼方式存儲在程序中的常數。每個字符的莫爾斯碼一般是由1至6位“點”、“劃”組成,也就是發音次數最多6次。程序中每個字符占用1個字節,字符時間間隔不占用字節,但更長的延時或發音結束信息占用一個字節。我們用字節的低三位表示字節的性質,對于5次及5次以下發音的字符我們用存儲器的高5位存儲發音信息,發音順序由高位至低位,用低3位存儲發音次數,發音時將數據送入累加器A,先得到發音次數,然后使A左環移,對E0進行位尋址,判斷是發“點”還是“劃”,環移次數由發音次數決定。對于6次發音的字符不能完全按照上述編碼規則,否則會出現信息重疊,如果是6次發音且最后一次是“劃”我們把發音次數定義為111B,因為這時第6次位尋址得到的是1。如果第6次發音是“點”,那么這個字符的低三位定義為000B。字符間隔時間由程序自動產生,更長的時間隔或結束標志由字節低三位110B來定義,高半字節表示字符間隔的倍數,例如26H表示再加兩倍時間間隔。如果字節為06H則表示讀字符程序結束,返回主程序。更詳細的內容不再贅述,讀者可閱讀源程序。四、使用注意事項手動鍵的操作難度相對大一些,時間節拍全由人掌握,其特點是發出的電碼帶有“人情味”。自動鍵的“點”、“劃”靠電路產生,發音標準,容易操作,而且可以達到相當快的速度,長時間工作也不易疲勞。在干擾較大、信號微弱的條件下自動鍵碼的辨別程度好于手動鍵碼。初學者初次使用手動鍵練習發報要有老師指導,且不可我行我素,一旦養成不正確的手法則很難糾正。在電臺上時常聽到一些讓對方難以抄收的電碼,這可能會使對方反感而拒絕回答。使用自動鍵也應在一定的聽抄基礎上再去練習。在暫時找不老師的情況下可多練習聽力,這對于今后能夠發出標準正確的電碼非常有益。

    標簽: 用單片機 多功能 莫爾斯 電路

    上傳時間: 2013-10-31

    上傳用戶:sdq_123

  • 單片機音樂中音調和節拍的確定方法

    單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經過聲學家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標準的音高為每秒鐘振動440周。 升C調:1=#C,也就是降D調:1=BD;277(頻率)升D調:1=#D,也就是降E調:1=BE;311升F調:1=#F,也就是降G調:1=BG;369升G調:1=#G,也就是降A調:1=BA;415升A調:1=#A,也就是降B調:1=BB。466,C 262   #C277   D 294   #D(bE)311  E 330   F 349   #F369   G 392  #G415A 440.    #A466    B 494 所謂1=A,就是說,這首歌曲的“導”要唱得同A一樣高,人們也把這首歌曲叫做A調歌曲,或叫“唱A調”。1=C,就是說,這首歌曲的“導”要唱得同C一樣高,或者說“這歌曲唱C調”。同樣是“導”,不同的調唱起來的高低是不一樣的。各調的對應的標準頻率為: 單片機演奏音樂時音調和節拍的確定方法 經常看到一些剛學單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長的時間。 在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據倍頻程的關系得到其他音符基本音調的頻率。 知道了一個音符的頻率后,怎樣讓單片機發出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例:   A的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應有的中斷觸發時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定:    t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數初值。因此定時器的高低計數器的初值為:     TH = THL / 256 = ( TALL – t* f0/12) / 256    TL = THL % 256 = ( TALL – t* f0/12) %256  將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值為 :    TH440Hz = (65536 – 1136 * 12/12) /256 = FBH    TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據上面的求解方法,我們就可求出其他音調相應的計數器的予置初值。 音符的節拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C  、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯, 、 就是用來表示節拍的。以 為例加以說明,它表示樂譜中以四分音符為節拍,每一小結有三拍。比如:      其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機上控制一個音符唱多長可采用循環延時的方法來實現。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。通過上面關于一個音符音調和節拍的確定方法,我們就可以在單片機上實現演奏音樂了。具體的實現方法為:將樂譜中的每個音符的音調及節拍變換成相應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數……,如此直到播放完畢最后一個音符,根據需要也可循環不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數設為FFH,FFH,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節拍參數為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值 : C調音符  頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調音符  頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02

    標簽: 單片機 音調

    上傳時間: 2013-10-20

    上傳用戶:哈哈haha

主站蜘蛛池模板: 永丰县| 邯郸市| 宣恩县| 新津县| 海兴县| 焦作市| 屯门区| 威远县| 永平县| 三河市| 阆中市| 龙海市| 邵阳市| 蕉岭县| 陆丰市| 屏东市| 乐至县| 托克逊县| 墨脱县| 阳东县| 安图县| 金塔县| 惠水县| 庆云县| 藁城市| 古交市| 定陶县| 巩义市| 曲靖市| 华蓥市| 邳州市| 苍山县| 荣昌县| 原阳县| 科技| 开封县| 会同县| 鲜城| 当阳市| 呼和浩特市| 乐东|