虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

369

  • MACH可编程逻辑器件及其开发工具-369页-13.4M.rar

    专辑类----可编程逻辑器件相关专辑 MACH可编程逻辑器件及其开发工具-369页-13.4M.rar

    标签: MACH 13.4 369

    上传时间: 2013-04-24

    上传用户:ABCD_ABCD

  • 模糊控制理论与实践-369页-5.7M.pdf

    专辑类-机床电器-自控相关专辑-56册-498M 模糊控制理论与实践-369页-5.7M.pdf

    标签: 369 5.7 模糊控制理论

    上传时间: 2013-06-28

    上传用户:shijiang

  • MACH可编程逻辑器件及其开发工具-369页-13.4M.pdf

    专辑类-可编程逻辑器件相关专辑-96册-1.77G MACH可编程逻辑器件及其开发工具-369页-13.4M.pdf

    标签: MACH 13.4 369

    上传时间: 2013-04-24

    上传用户:liangrb

  • 超高频电子学基础-369页-7.9M.pdf

    专辑类-电子基础类专辑-153册-2.20G 超高频电子学基础-369页-7.9M.pdf

    标签: 369 7.9 超高频

    上传时间: 2013-07-05

    上传用户:zhouchang199

  • 机器人设计与控制 369页 75.4M.pdf

    机器人相关专辑 51册 805M机器人设计与控制 369页 75.4M.pdf

    标签:

    上传时间: 2014-05-05

    上传用户:时代将军

  • MACH可编程逻辑器件及其开发工具 369页 13.4M.pdf

    可编程逻辑器件相关专辑 96册 1.77GMACH可编程逻辑器件及其开发工具 369页 13.4M.pdf

    标签:

    上传时间: 2014-05-05

    上传用户:时代将军

  • 超高频电子学基础 369页 7.9M.pdf

    电子基础类专辑 153册 2.20G超高频电子学基础 369页 7.9M.pdf

    标签:

    上传时间: 2014-05-05

    上传用户:时代将军

  • 现代光纤通信技术

    现代光纤通信技术

    标签: 光纤 通信技术

    上传时间: 2013-07-03

    上传用户:eeworm

  • 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

  • 单片机音乐中音调和节拍的确定方法

    单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有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