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

监控隔离变送器

  • 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

  • 基于AT89C51的智能矿井环境质量监控系统

     为满足矿井安全生产要求,介绍了一种以AT89C51单片机为主控器,对环境空气的温度、有毒易燃气体的浓度等进行检测的监控系统。该系统配合外围电路能实现对上述环境指标的控制并存储相关数据与上位PC机通信。它采用硬件抗干扰和软件抗干扰技术,以确保整个系统工作的准确性。 Abstract:  In order to meet the needs of mine produce safety,a kind of intellignet mine ambient monotoring and control system based on AT89C51 is introduced.This system can detect the temperature of ambient of mine,the density of poisonous inflammable gas,combined external circuit.With its function part, this system can change above-mentioned elements.

    标签: 89C C51 AT 89

    上传时间: 2013-11-10

    上传用户:wendy15

  • 基于单片机控制的变频器设计

    摘要:介绍了以AT89C51单片机为控制中枢,利用EXB841专用驱动及保护器件对功率模块绝缘栅双极晶体管(IGBT)进行驱动与保护的变频器设计方法。介绍了EXB841在应用中的一些原则性事项,阐述了AT89C51单片机产生正弦脉宽调制(SPWM)脉冲的算法及编程方法,描述了异步电动机在变压变频(VVVF)调速时的近似机械特性及变频调速方式下的主要对策以及带有反馈信号的输出控制方式的实现,最后给出了变频调速控制下的实际数据。关键词:IGBT;驱动;逆变;变压变频

    标签: 单片机控制 变频器

    上传时间: 2013-11-07

    上传用户:kristycreasy

  • 多功能钟控语音提醒器

    将语音报时万年台历和新型“傻瓜”语音录放模块组台起来可制作成性能优良、实用性强的多功能语音提醒器。这样制成的语音提醒器具有以下特点和功能:(1)高保真语音提醒时间最长达20s.语音内容可根据使用者需要反复录制及播放;/2)24小时内可任意设定钟控定时提醒1~3次,可广泛用于提醒病人按时服药、大人按时上班及做饭、小孩按时上学丑睡觉等;(3) 年 月、日、时、分为单位,设定一次近期大事备忘预约提醒.准时提醒主人过生日、赴宴会、参加重要活动或会议等;(4)万年台历原有的各种显示功能(年、月、日 星期、室温等)保持不变;(5)断开万年台历和提醒器小盒间的插头,提醒器小盒还可做为家庭留言盒或小学生语言复读机使用。

    标签: 多功能 钟控 语音 提醒器

    上传时间: 2014-12-27

    上传用户:zchpr@163.com

  • 基于68HC908MR16单片机的光伏正弦波逆变电源

    摘要:介绍了一种基于MOTOROLA公司生产的68HC908MR16单片机的光伏正弦波逆变电源。该系统应用SPWM技术将经太阳电池阵压,逆变为标准的正弦单相220V、50Hz交流电压,同时采用新型的数字式PI调节器实现稳压控制,并通过与外界键盘监控系数调节和系统监控。关键词:光伏逆变;MR16单片机;PI调节器;串行通信

    标签: 908 68 16 HC

    上传时间: 2013-11-09

    上传用户:y13567890

  • 一个单片机串行数据采集/传输模块的设计

    以GMS97C2051单片机为核心,采用TLC2543 12位串行A/D转换器,设计了一个串行数据采集/传输模块,给出了硬件原理图和主要源程序。关键词:串行A/D转换器;串行数据传输;GMS97C2051单片机   在微机测控系统中,经常要用到A/D转换。常用的方法是扩展一块或多块A/D采集卡。当模拟量较少或是温度、压力等缓变信号场合,采用总线型A/D卡并不是最合适、最经济的方案。这里介绍一种以GNS97C2051单片机为核心,采用TLC2543 12位串行A/D转换器构成的采样模块,该模块的采样数据由单片机串口经电平转换后送到上位机(IBM PC兼容机)的串口COM1或COM2,形成一种串行数据采集串行数据传输的方式。经实践调试证实:该模块功耗低、采样精度高、可靠性好、接口简便,有一定实用价值。

    标签: 单片机串行 传输模块 数据采集

    上传时间: 2014-01-26

    上传用户:sjb555

  • 单片机指令系统原理

    单片机指令系统原理 51单片机的寻址方式 学习汇编程序设计,要先了解CPU的各种寻址法,才能有效的掌握各个命令的用途,寻址法是命令运算码找操作数的方法。在我们学习的8051单片机中,有6种寻址方法,下面我们将逐一进行分析。 立即寻址 在这种寻址方式中,指令多是双字节的,一般第一个字节是操作码,第二个字节是操作数。该操作数直接参与操作,所以又称立即数,有“#”号表示。立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。 例如:MOV  A,#3AH这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。MOV  DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。这里也特别说明一下:在80C51单片机的指令系统中,仅有一条指令的操作数是16位的立即数,其功能是向地址指针DPTR传送16位的地址,即把立即数的高8位送入DPH,低8位送入DPL。 直接寻址 直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。例如:MOV  A,30H  这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。 在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体的说就是:1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。2、位寻址区。20H-2FH地址单元。3、特殊功能寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。例如下面我们分析的一条指令 MOV  IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是这条指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 关于数据存储器RAM的内部情况,请查看我们课程的第十二课。 直接寻址是唯一能访问特殊功能寄存器的寻址方式! 大家来分析下面几条指令:MOV  65H,A       ;将A的内容送入内部RAM的65H单元地址中MOV  A,direct    ;将直接地址单元的内容送入A中MOV  direct,direct;将直接地址单元的内容送直接地址单元MOV  IE,#85H      ;将立即数85H送入中断允许寄存器IE 前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H,A这条指令的65H就是一个单元地址)。 寄存器寻址 寄存器寻址的寻址范围是:1、4个工作寄存器组共有32个通用寄存器,但在指令中只能使用当前寄存器组(工作寄存器组的选择在前面专用寄存器的学习中,我们已知道,是由程序状态字PSW中的RS1和RS0来确定的),因此在使用前常需要通过对PSW中的RS1、RS0位的状态设置,来进行对当前工作寄存器组的选择。2、部份专用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和进位位CY。 寄存器寻址方式是指操作数在寄存器中,因此指定了寄存器名称就能得到操作数。例如:MOV A,R0这条指令的意思是把寄存器R0的内容传送到累加器A中,操作数就在R0中。INC R3这条指令的意思是把寄存器R3中的内容加1 从前面的学习中我产应可以理解到,其实寄存器寻址方式就是对由PSW程序状态字确定的工作寄存器组的R0-R7进行读/写操作。 寄存器间接寻址 寄存间接寻址方式是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。 MCS-51单片机规定工作寄存器的R0、R1做为间接寻址寄存器。用于寻址内部或外部数据存储器的256个单元。为什么会是256个单元呢?我们知道,R0或者R1都是一个8位的寄存器,所以它的寻址空间就是2的八次方=256。例:MOV  R0,#30H  ;将值30H加载到R0中    MOV  A,@R0    ;把内部RAM地址30H内的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H内的值放到累加器A中 大家想想,如果用DPTR做为间址寄存器,那么它的寻址范围是多少呢?DPTR是一个16位的寄存器,所以它的寻址范围就是2的十六次方=65536=64K。因用DPTR做为间址寄存器的寻址空间是64K,所以访问片外数据存储器时,我们通常就用DPTR做为间址寄存器。例:MOV   DPTR,#1234H  ;将DPTR值设为1234H(16位)    MOVX  A,@DPTR      ;将外部RAM或I/O地址1234H内的值放到累加器A中 在执行PUSH(压栈)和POP(出栈)指令时,采用堆栈指针SP作寄存器间接寻址。例:PUSH  30H    ;把内部RAM地址30H内的值放到堆栈区中堆栈区是由SP寄存器指定的,如果执行上面这条命令前,SP为60H,命令执行后会把内部RAM地址30H内的值放到RAM的61H内。 那么做为寄存器间接寻址用的寄存器主要有哪些呢?我们前面提到的有四个,R0、R1、DPTR、SP 寄存器间接寻址范围总结:1、内部RAM低128单元。对内部RAM低128单元的间接寻址,应使用R0或R1作间址寄存器,其通用形式为@Ri(i=0或1)。 2、外部RAM 64KB。对外部RAM64KB的间接寻址,应使用@DPTR作间址寻址寄存器,其形式为:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的单元的内容送入累加器A中。外部RAM的低256单元是一个特殊的寻址区,除可以用DPTR作间址寄存器寻址外,还可以用R0或R1作间址寄存器寻址。例如MOVX  A,@R0;这条指令的意思是,把R0指定的外部RAM单元的内容送入累加器A。 堆栈操作指令(PUSH和POP)也应算作是寄存器间接寻址,即以堆栈指针SP作间址寄存器的间接寻址方式。 寄存器间接寻址方式不可以访问特殊功能寄存器!! 寄存器间接寻址也须以寄存器符号的形式表示,为了区别寄存器寻址我寄存器间接寻址的区别,在寄存器间接寻址方式式中,寄存器的名称前面加前缀标志“@”。 基址寄存器加变址寄存器的变址寻址 这种寻址方式以程序计数器PC或DPTR为基址寄存器,累加器A为变址寄存器,变址寻址时,把两者的内容相加,所得到的结果作为操作数的地址。这种方式常用于访问程序存储器ROM中的数据表格,即查表操作。变址寻址只能读出程序内存入的值,而不能写入,也就是说变址寻址这种方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式。例:MOVC  A,@A+DPTR这条指令的功能是把DPTR和A的内容相加,再把所得到的程序存储器地址单元的内容送A假若指令执行前A=54H,DPTR=3F21H,则这条指令变址寻址形成的操作数地址就是54H+3F21H=3F75H。如果3F75H单元中的内容是7FH,则执行这条指令后,累加器A中的内容就是7FH。 变址寻址的指令只有三条,分别如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一条指令JMP @A+DPTR这是一条无条件转移指令,这条指令的意思就是DPTR加上累加器A的内容做为一个16位的地址,执行JMP这条指令是,程序就转移到A+DPTR指定的地址去执行。 第二、三条指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令这两条指令的通常用于查表操作,功能完全一样,但使用起来却有一定的差别,现详细说明如下。我们知道,PC是程序指针,是十六位的。DPTR是一个16位的数据指针寄存器,按理,它们的寻址范围都应是64K。我们在学习特殊功能寄存器时已知道,程序计数器PC是始终跟踪着程序的执行的。也就是说,PC的值是随程序的执行情况自动改变的,我们不可以随便的给PC赋值。而DPTR是一个数据指针,我们就可以给空上数据指针DPTR进行赋值。我们再看指令MOVC   A,@A+PC这条指令的意思是将PC的值与累加器A的值相加作为一个地址,而PC是固定的,累加器A是一个8位的寄存器,它的寻址范围是256个地址单元。讲到这里,大家应可明白,MOVC   A,@A+PC这条指令的寻址范围其实就是只能在当前指令下256个地址单元。所在,这在我们实际应用中,可能就会有一个问题,如果我们需要查询的数据表在256个地址单元之内,则可以用MOVC   A,@A+PC这条指令进行查表操作,如果超过了256个单元,则不能用这条指令进行查表操作。刚才我们已说到,DPTR是一个数据指针,这个数据指针我们可以给它赋值操作的。通过赋值操作。我们可以使MOVC   A,@A+DPTR这条指令的寻址范围达到64K。这就是这两条指令在实际应用当中要注意的问题。 变址寻址方式是MCS-51单片机所独有的一种寻址方式。 位寻址 80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。 位寻址的范围,也就是哪些部份可以进行位寻址: 1、我们在第十二课学习51单片机的存储器结构时,我们已知道在单片机的内部数据存储器RAM的低128单元中有一个区域叫位寻址区。它的单元地址是20H-2FH。共有16个单元,一个单元是8位,所以位寻址区共有128位。这128位都单独有一个位地址,其位地址的名字就是00H-7FH。这里就有一个比较麻烦的问题需要大家理解清楚了。我们在前面的学习中00H、01H。。。。7FH等等,所表示的都是一个字节(或者叫单元地址),而在这里,这些数据都变成了位地址。我们在指令中,或者在程序中如何来区分它是一个单元地址还是一个位地址呢?这个问题,也就是我们现在正在研究的位寻址的一个重要问题。其实,区分这些数据是位地址还是单元地址,我们都有相应的指令形式的。这个问题我们在后面的指令系统学习中再加以论述。 2、对专用寄存器位寻址。这里要说明一下,不是所有的专用寄存器都可以位寻址的。具体哪些专用寄存器可以哪些专用寄存器不可以,请大家回头去看看我们前面关于专用寄存器的相关文章。一般来说,地址单元可以被8整除的专用寄存器,通常都可以进行位寻址,当然并不是全部,大家在应用当中应引起注意。 专用寄存器的位寻址表示方法: 下面我们以程序状态字PSW来进行说明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示为D5H   MOV  C,D5H 2、位名称表示:表示该位的名称,例如PSW的位5是F0,所以可以用F0表示   MOV  C,F0 3、单元(字节)地址加位表示:D0H单元位5,表示为DOH.5    MOV  C,D0H.5 4、专用寄存器符号加位表示:例如PSW.5    MOV C,PSW.5 这四种方法实现的功能都是相同的,只是表述的方式不同而已。 例题:   1. 说明下列指令中源操作数采用的寻址方式。   MOV R5,R7 答案:寄存器寻址方式   MOV A,55H 直接寻址方式   MOV A,#55H 立即寻址方式   JMP @A+DPTR 变址寻址方式   MOV 30H,C 位寻址方式   MOV A,@R0 间接寻址方式   MOVX A,@R0 间接寻址方式 改错题   请判断下列的MCS-51单片机指令的书写格式是否有错,若有,请说明错误原因。   MOV R0,@R3 答案:间址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 变址寻址方式中的间址寄存器不可使用R0,只可使用A。   ADD R0,R1 运算指令中目的操作数必须为累加器A,不可为R0。   MUL AR0 乘法指令中的乘数应在B寄存器中,即乘法指令只可使用AB寄存器组合。

    标签: 单片机指令 系统原理

    上传时间: 2013-11-11

    上传用户:caozhizhi

  • P82B96在远距离I2C通信中的应用

    该器件可桥接SMBus(350μA)、3.3V逻辑器件,15V电平及低阻抗导线可以延长通信距离,增加抗干扰能力。该器件对I2C总线协议和时钟速率没有特殊要求。P82B96能增加I2C总线节点上挂接的最小负载数、新总线负载数和远程I2C总线器件数,且不会对本地节点造成影响。挂接器件数目和物理上的限制也会大大减小。通过平衡传输线(双绞线)或光耦隔离(光纤)发送信号,Tx、Rx结构上的分隔使其发送变得简单,且Tx和Rx信号直接相连时而不会锁死。

    标签: P82B96 I2C 通信 中的应用

    上传时间: 2013-10-27

    上传用户:sxdtlqqjl

  • 单片机入门基础知识大全免费下载

    单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习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

  • 基于MSP430的连铸结晶器液位监控系统设计

    本文研究并设计了一种基于MSP430单片机的高精度和高准确度的液位监控系统,从硬件设计、软件设计、系统抗干扰、开浇停浇电压补偿和参数线性化五个方面详细描述了整个系统。系统选用了高集成度、超低功耗的混合信号处理器MSP430F449,实现了信号的采集和处理,对液位进行实时的监控并且完成了与LTC1446、LTC1451的数据传输任务。除此之外,还可以根据液位变化情况进行人工调整。系统解决了以往液位监控系统中存在的问题,达到了高准确度和高精度液位监控仪器的各项标准。

    标签: MSP 430 连铸 结晶器

    上传时间: 2013-11-10

    上传用户:Late_Li