计算机程序设计基础知识
要求:这是计算机程序设计的一些基础知识,要求大家了解,不作为考试的主要类容,但是会涉及一些。因为在进行
答辩时,如果问到一些软件设计的基础知识你都不知道可能会让得分减少很多,所以大家一定要看下。
第一章 数据结构与算法
1.1 算法
算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括:
(1)可行性;
(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;
(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;
(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念
数据结构研究的三个方面:
(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:
(1)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构
线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
非空线性表的结构特征:
(1)且只有一个根结点a1,它无前件;
(2)有且只有一个终端结点an,它无后件;
(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:
(1)线性表中所有元素的所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:插入、删除。
1.4 栈和队列
栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。
栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front指针指向队头。
队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0表示队列空,s=1且front=rear表示队列满
1.5 线性链表
数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:查找、插入、删除。
1.6 树与二叉树
树是一种简单的非线性结构,所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。
二叉树的特点:
(1)非空二叉树只有一个根结点;
(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
二叉树的基本性质:89
(1)在二叉树的第k层上,最多有2k-1(k≥1)个结点;
(2)深度为m的二叉树最多有2m-1个结点;
(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;
(4)具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分;
(5)具有n个结点的完全二叉树的深度为[log2n]+1;
(6)设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下结论:
①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);
②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);
③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。
完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。
二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:
(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;
(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;
(3)后序遍历(LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点。
1.7 查找技术
顺序查找的使用情况:
(1)线性表为无序表;
(2)表采用链式存储结构。
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
1.8 排序技术
排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
交换类排序法:(1)冒泡排序法,需要比较的次数为n(n-1)/2; (2)快速排序法。
插入类排序法:(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;(2)希尔排序法,最坏情况需要O(n1.5)次比较。
选择类排序法:(1)简单选择排序法, 最坏情况需要n(n-1)/2次比较;(2)堆排序法,最坏情况需要O(nlog2n)次比较。
第二章 程序设计基础
2.1 程序设计设计方法和风格
如何形成良好的程序设计风格
1、源程序文档化; 2、数据说明的方法;
3、语句的结构; 4、输入和输出。
注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。
2.2 结构化程序设计
结构化程序设计方法的四条原则是:1. 自顶向下;2. 逐步求精;3.模块化;4.限制使用goto语句。
结构化程序的基本结构和特点:
(1)顺序结构:一种简单的程序设计,最基本、最常用的结构;
(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;
(3)循环结构:可根据给定条件,判断是否需要重复执行某一相同程序段。
2.3 面向对象的程序设计
面向对象的程序设计:以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志。
面向对象方法的优点:
(1)与人类习惯的思维方法一致;
(2)稳定性好;
(3)可重用性好;
(4)易于开发大型软件产品;
(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
属性即对象所包含的信息,操作描述了对象执行的功能,操作也称为方法或服务。
对象的基本特点:
(1)
惟一性;
(2)分类性;
(3)多态性;
(4)封装性;
(5)模块独立性好。
类是指具有共同属性、共同方法的对象的集合。所以类是对象的抽象,对象是对应类的一个实例。
消息是一个实例与另一个实例之间传递的信息。
消息的组成包括(1)接收消息的对象的名称;(2)消息标识符,也称消息名;(3)零个或多个参数。
继承是指能够直接获得已有的性质和特征,而不必重复定义他们。
继承分单继承和多重继承。单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象
第三章 软件工程基础
3.1 软件工程基本概念
计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:
(1)软件是一种逻辑实体;
(2)软件的生产与硬件不同,它没有明显的制作过程;
(3)软件在运行、使用期间不存在磨损、老化问题;
(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;
(5)软件复杂性高,成本昂贵;
(6)软件开发涉及诸多的社会因素。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
软件危机主要表现在成本、质量、生产率等问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践
和工序。
软件工程包括3个要素:方法、工具和过程。
软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:
(1)P——软件规格说明;
(2)D——软件开发;
(3)C——软件确认;
(4)A——软件演进。
软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:
(1)可行性研究与
制定;
(2)需求分析;
(3)软件设计;
(4)软件实现;
(5)软件测试;
(6)运行和维护。
软件工程的目标和与原则:
目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时完成开发,及时交付使用。
基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。
软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.2 结构化分析方法
结构化方法的核心和基础是结构化程序设计理论。
需求分析方法有(1)结构化需求分析方法; (2)面向对象的分析的方法。
从需求分析建立的模型的特性来分:静态分析和动态分析。
结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的常用工具
(1)数据流图; (2)数据字典; (3)判定树; (4)判定表。
数据流图:描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。
数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
判定树:从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。
判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。
数据字典是结构化分析的核心。
软件需求规格
的特点:
(1)正确性;
(2)无岐义性;
(3)完整性;
(4)可验证性;
(5)一致性;
(6)可理解性;
(7)可追踪性。
3.3 结构化设计方法
软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。
软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径。
从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
结构设计:定义软件系统各主要部件之间的关系。
数据设计:将分析时创建的模型转化为数据结构的定义。
接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。
过程设计:把系统结构部件转换成软件的过程描述。
从工程管理角度来看:概要设计和详细设计。
软件设计的一般过程:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。
衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准。
在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。
软件概要设计的基本任务是:
(1)设计软件系统结构; (2)数据结构及数据库设计;
(3)编写概要设计文档; (4)概要设计文档评审。
模块用一个矩形表示,箭头表示模块间的调用关系。
在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据。
结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。
结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。
典型的数据流类型有两种:变换型和事务型。
变换型系统结构图由输入、中心变换、输出三部分组成。
事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
详细设计:是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
常见的过程设计工具有:图形工具(程序流程图)、表格工具(判定表)、语言工具(PDL)。
3.4 软件测试
软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试的目的:发现错误而执行程序的过程。
软件测试方法:静态测试和动态测试。
静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。
动态测试:是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。
白盒测试:在程序内部进行,主要用于完成软件内部CAO作的验证。主要方法有逻辑覆盖、基本基路径测试。
黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认。主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。
软件测试过程一般按4个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。
3.5 程序的调试
程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。
程序调试的基本步骤:
(1)错误定位;
(2)修改设计和代码,以排除错误;
(3)进行回归测试,防止引进新的错误。
软件调试可分表静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设计手段,而动态调试是辅助静态调试。主要调试方法有:
(1)强行排错法;
(2)回溯法;
(3)原因排除法。
第四章 数据库设计基础
4.1 数据库系统的基本概念
数据:实际上就是描述事物的符号记录。
数据的特点:有一定的结构,有型与值之分,如整型、实型、字符型等。而数据的值给出了符合定型的值,如整型值15。
数据库:是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。
数据库存放数数据库管理系统:一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。
据是按数据所提供的数据模式存放的,具有集成与共享的特点。
数据库管理系统功能:
(1)数据模式定义:即为数据库构建其数据框架;
(2)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段;
(3)数据操纵:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算及统计;
(4)数据的完整性、安生性定义与检查;
(5)数据库的并发控制与故障恢复;
(6)数据的服务:如拷贝、转存、重组、性能监测、分析等。
为完成以上六个功能,数据库管理系统提供以下的数据语言:
(1)数据定义语言:负责数据的模式定义与数据的物理存取构建;
(2)数据操纵语言:负责数据的操纵,如查询与增、删、改等;
(3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。
数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言)宿主型语言(一般可嵌入某些宿主语言中)。
数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。
数据库系统:由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。
数据库应用系统:由数据库系统、应用软件及应用界面三者组成。
文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享的能力。
层次数据库与网状数据库系统阶段 :为统一与共享数据提供了有力支撑。
关系数据库系统阶段
数据库系统的基本特点:数据的集成性 、数据的高共享性与低冗余性 、数据独立性(物理独立性与逻辑独立性)、数据统一管理与控制。
数据库系统的三级模式:
(1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图;
(2)外模式:也称子模式与用户模式。是用户的数据视图,也就是用户所见到的数据模式;
(3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。
数据库系统的两级映射:
(1)概念模式到内模式的映射;
(2)外模式到概念模式的映射。
4.2 数据模型
数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。
E-R模型的基本概念
(1)实体:现实世界中的事物;
(2)属性:事物的特性;
(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。
E-R模型三个基本概念之间的联接关系:实体是概念世界中的基本单位,属性有属性域,每个实体可取属性域内的值。一个实体的所有属性值叫元组。
E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。
层次模型的基本结构是树形结构,具有以下特点:
(1)每棵树有且仅有一个无双亲结点,称为根;
(2)树中除根外所有结点有且仅有一个双亲。
从图论上看,网状模型是一个不加任何条件限制的无向图。
关系模型采用二维表来表示,简称表,由表框架及表的元组组成。一个二维表就是一个关系。
在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。
关系中的数据约束:
(1)实体完整性约束:约束关系的主键中属性值不能为空值;
(2)参照完全性约束:是关系之间的基本约束;
(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。
4.3关系代数
关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据操作,其中最为著名的是关系代数与关系演算。
关系模型的基本运算:
(1)插入 (2)删除 (3)修改 (4)查询(包括投影、选择、笛卡尔积运算)
4.4 数据库设计与管理
数据库设计是数据应用的核心。
数据库设计的两种方法:
(1)面向数据:以信息需求为主,兼顾处理需求;
(2)面向过程:以处理需求为主,兼顾信息需求。
数据库的生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。
需求分析常用结构析方法和面向对象的方法。结构化分析(简称SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
数据字典是各类数据描述的集合,包括5个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据存储、处理过程。
数据库概念设计的目的是分析数据内在语义关系。设计的方法有两种
(1)集中式模式设计法(适用于小型或并不复杂的单位或部门);
(2)视图集成设计法。
设计方法:E-R模型与视图集成。
视图设计一般有三种设计次序:自顶向下、由底向上、由内向外。
视图集成的几种冲突:命名冲突、概念冲突、域冲突、约束冲突。
关系视图设计:关系视图的设计又称外模式设计。
关系视图的主要作用:
(1)提供数据逻辑独立性;
(2)能适应用户对数据的不同需求;
(3)有一定数据保密功能。
数据库的物理设计主要目标是对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度有效利用存储空间。一般RDBMS中留给用户参与物理设计的内容大致有索引设计、集成簇设计和分区设计。
数据库管理的内容:
(1)数据库的建立;
(2)数据库的调整;
(3)数据库的重组;
(4)数据库安全性与完整性控制;
(5)数据库的故障恢复;
(6)数据库监控。
C语言
C语言的优缺点,要求大家了解C语言的相关特点,以及和其他语言相比有什么优势。
优点
简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
数据结构丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
C语法限制不太严格,程序设计自由度大
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
C语言允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
生成目标代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。
缺点
1. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
C语言指针
指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性,适合初学者使用。
结构特点
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
C语言的四种程序结构
要求:这是种结构是单片机程序设计时用得最多的结构,要求大家必须灵和的掌握这些结构语句的使用。(为考试时的重点)
(1)顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2)分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
1 if(条件)
{分支体}
这种分支结构中的分支体可以是一条语句,此时“{}”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0)x=-x;
②if(条件)
{分支1}
else
{分支2}
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根
分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:
main()
{
int a,b,c,d,x,y;
printf("Please put the number of a,b&c from the quadratic equation of one variable one by one\n");
scanf("%d%d%d",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
{
printf("NO Root!Wrong!\n");
}
else
{
y=-b-sqrt(d)/2*a;
x=-b+sqrt(d)/2*a;
printf("The 1st equation root=%d\nThe 2nd equation root=%d",y,x);
}
}
③IF嵌套分支语句:其语句格式为:
if(条件1) {分支1}
else if(条件2) {分支2}
else if(条件3) {分支3}
……
else if(条件n) {分支n}
else {分支n+1}
FOR嵌套,其语句格式为:
for(初值A;范围A;步长A)
{
for(初值B;范围B;步长B)
{
循环体
}
}
FOR嵌套例子:九九乘法表
main()
{
int a,b,c;
for(a=1;a<=9;a++)
{
for(b=1;b<=a;b++)
{
c=b*a;
printf("%dx%d=%d ",b,a,c);
}
printf("\n");
}
}
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
“?”语句 问号语句也是分支的一种,格式类似(a
2->4->3->2...循环,其中2为循环条件。在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
do :do循环结构,do 1 while(2); 的执行顺序是 1->2->1...循环,2为循环条件
while :while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件
应用实例
要求:这是一些简单的C语言程序,要求大家会读并且会自己编写。
1.功能:求三个整数的平均值。程序如下:
#include /*载入头文件stdio.h*/
void main() /*主函数main*/
{
int a,b,c,d; /*定义a,b,c,d为整型变量*/
a=105;
b=75;
c=85;
d=(a+b+c)/3;
printf("d=%d\n",d); /*显示"d=某数"并换行,某数是d的值*/
getchar(); /*等待用户,按任意键退出*/
return 0;
}
2.功能:由键盘输入多边形的边数,求其内角和。程序如下:
#include
int main()
{
/*辨别多边形是否成立,不成立重新执行do-while语句间的命令*/
do
{
int x;
printf("n=");
scanf("%d",&x); /*由键盘输入x的值*/
printf("%d\n",(x-2)*180); /*显示内角和,公式为(x-2)*180*/
/*辨别多边形是否成立,不成立显示“Error”,成立显示“Right”*/
if (x<=2)
printf("Error\n");
else
printf("Right\n");
}
while (x<=2); /*do-while语句*/
getchar();
return 0;
}
3.功能:由键盘输入两个数,显示器上显示较大数。程序如下:
#include
int big(int,int); /*创建整型变量函数big*/
void main()
{
int x,y;
scanf("%d,%d",&x,&y);
printf("big is %d\n",big(x,y));
/*输出big函数的值,因为main函数与用户自定义函数big无关系,所以printf后的输出项表是big(x,y),而不是big(n1,n2)*/
getchar();
return 0;
}
int big(int n1,int n2) /*用户自定义函数big*/
{
if (n1>n2)
return n1; /*返回n1值*/
else
return n2; /*返回n2值*/
}
4.功能:由键盘输入一个等腰三角形的层数,画一个这样的三角形。程序如下:
#include
void main()
{
int i,j,n;
printf("n:");
scanf("%d",&n);
for (i=1;i<=n;i++) /*循环n次,每次输出一行*/
{
for (j=1;j<=n-i;j++) /*输出该行前面的空格*/
printf(" ");
for (j=1;j<=2*i-1;j++) /*输出该行中的星号*/
printf("*");
printf("\n");
}
getchar();
return 0;
}
注释:不能输入太多的行数,如10000。
5.功能:由键盘输入一个最大值,求2到这个最大值中的所有质数(素数)。程序如下:
#include
#include /*数学文件*/
void main()
{
int n,m,flag,i,j,num=1;
printf("n:");
scanf("%d",&n);
printf("2~%d:\n",n);
for (i=2;i<=n;i++) /*循环查找质数*/
{
flag=1;
m=(int)sqrt(i);
for (j=2;j<=m;j++)
if (i%j==0) /*条件为真时表示不是质数,退出for循环*/
{
flag=0;
break;
}
if (flag==1) /*条件为真时表示i是质数*/
{
printf("M",i);
if (num++==10) /*每行最多输出10个数*/
{
printf("\n");
num=1;
}
}
}
printf("\n");
getchar();
return 0;
}
数电方面基础知识
要求:这些是电路设计的基础,要掌握基本的数电符号,和基本的逻辑关系。考试是重点。
基本的逻辑运算表示式-基本逻辑门电路符号
1、www.8ttt8.com与逻辑(AND Logic)
与逻辑又叫做逻辑乘,8ttt8通过开关的工作www .ddd Tt. com加以说明与逻辑的运算。
从上图www.8ttt8.comwww.ssbbww.com看出,当开关有一个断开时,灯泡处于灭的www .ddd Tt. com,仅当两个开关ssb§bww.com合上时,灯泡才会亮。于是sSBbWwwww.ssbbww.com将与逻辑的关系速记为:“有0出0,全1出1”。
图(b)列出了两个开关的8 tt t8.com组合,以及与灯泡www .ddd Tt. com的8tt§t8.com,sSBbWw用0表示开关处于断开www .ddd Tt. com,1表示开关处于合上的www .ddd Tt. com;www.8ttt8.comssb§bww.com灯泡的www .ddd Tt. com用0表示灭,用1表示亮。
图(c)给出了与逻辑门电路符号,该符号表示了两个输入的逻辑关系,&在英文中是AND的速写,8 tt t8.com开关有三个则符号的左边再加上一道线就行了。
逻辑与的关系还www.ssbbww.com用表达式的形式表示为:
F=A·B
上式在不造成误解的8tt§t8.com下可简写为:F=AB。
2、www.8ttt8.com或逻辑(OR Logic)
上图www.8ttt8.com(a)为一并联直流电路,当两只开关都处于断开时,其灯泡不会亮;www.8ttt8.com当A,B两个开关中有一个或两个一起合上时,其灯泡就会亮。如开关合上的www .ddd Tt. com用1表示,开关断开的www .ddd Tt. com用0表示;www.8ttt8.com灯泡的www .ddd Tt. com亮时用1表示,不亮时用0表示,则可列出图(b)ssBbww的真值表。这种逻辑关系www.8ttt8.com通常讲的“或逻辑”,从表中可看出,只要输入A,B两个中有一个为1,则输出为1,否则为0。8ttt8或逻辑可速记为:“有1出1,全0出0”。
上图www.8ttt8.com(c)为或逻辑门电路符号,通常用该符号来表示或逻辑,其方块中的“≥1”表示输入中有一个及一个8 t tt 8.c o m的1,输出就为1。
逻辑或的表示式为:
F=A+B
3、www.8ttt8.com非逻辑(NOT Logic)
非逻辑又常称为反相运算(Inverters)。下图www.8ttt8.com(a)ssBbww的电路实现的逻辑功能www.8ttt8.com非运算的功能,从图上www.ssbbww.com看出当开关A合上时,灯泡反而灭;www.8ttt8.com当开关断开时,灯泡才会亮,故其输出F的www .ddd Tt. com与输入A的www .ddd Tt. comDddtt相反。非运算的逻辑表达式为
图(c)给出了非逻辑门电路符号。
复合逻辑运算
在数字系统中,除了与运算、或运算、非运算之外,www.ssbbww.com使用的逻辑运算还有8 tt t8.com是通过这三种运算派生出来的运算,这种运算通常称为复合运算,ssbbww的复合运算有:与非、或非、与或非、同或及异或等。
4、www.8ttt8.com与非逻辑(NAND Logic)
与非逻辑是由与、非逻辑复合而成的。其逻辑可描述为:“输入8ttT8为1时,输出为0;www.8ttt8.com否则始终为1”。下图www.8ttt8.com(a)为与非逻辑门电路符号。
多输入的与非逻辑表达式可写为:
5、www.8ttt8.com或非逻辑(NOR Logic)
上图www.8ttt8.com(b)为或非逻辑门电路符号,从与非的逻辑www.ssbbww.com推出或非的逻辑关系:“输入中有一个及一个8 t tt 8.c o m1,则输出为0,仅当输入全为0时输出为1”。或非逻辑的逻辑符号如下:
6、与或非逻辑
上图www.8ttt8.com中图(c)为与或非逻辑门电路符号,A,B相与后输出到或运算输入,ssb§bww.comC,D也www.8ttt8.com相与后输出到或逻辑的输入,这两个输出再进行或运算后加到非运算输出。上图www.8ttt8.com与或非的逻辑表达式为:
7、异或逻辑
图(d)为异或逻辑门电路符号,=1表示当两个输入中只有一个为1时,输出为1;www.8ttt8.com否则为0。异或运算的逻辑表达式为:
上式中,“⊕”表示异或运算。
8、同或逻辑
图(e)为同或的逻辑关系,从图上www.ssbbww.com看出同或8ttt8上是异或的非逻辑,下表也www.8ttt8.com说明了其两者的非的逻辑关系。
同或的逻辑表达式为:
上式中“⊙”是同或逻辑门电路符号。
基本门电路-什么是门电路-逻辑门电路图
一、www.8ttt8.com分立元件基本门电路
二极管与门电路图
二极管或门电路图
三极管非门电路图
数制与编码-数制转换方法-数制计算运算公式
一、www.8ttt8.com十进制数(Decimal Number)
式中:ai 为0~9中的位一数码;www.8ttt8.com10为进制的基数;www.8ttt8.com10的i次为第i位的权;www.8ttt8.comm,n为正整数,n为整数部分的位数,m为小数部分的位数。
二、www.8ttt8.com二进制数(Binary Number)
与十进制相似,二进制数也www.8ttt8.com遵循两个规则:
仅有两个不同的数码,即0,1;www.8ttt8.com
进/借位规则为:逢二进一,借一当二。
任意一个二进制数可表示为:
www.ddd§tt.com二进制数仅0,1两个数码,8ttt8其运算规则比较简单,下现列出了二进制数进行加法和乘法的规则:
上表中式1+1=10中的红色为进位位。
三、www.8ttt8.com十六进制(Hexadecimal Number)
二进制数在计算机系统中8tTt8很方便,但当位数较多时,比较难记忆及书写,dd dtt. com减小位数,通常将二进制数用十六进制表示。
十六进制是计算机系统中除二进制数之外使用较多的进制,其遵循的两个规则为:
其有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等共十六个数码,其分别对应于十进制数的0~15;
十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。
十六进制数同二进制数及十进制数一样,也www.8ttt8.comwww.ssbbww.com写成展开式的形式。
在数制使用时,常将各种数制用简码来表示:如十进制数用D表示或省略;www.8ttt8.com二进制用B来表示;十六进制数用H来表示。
如:十制数123表示为:123DwwW.ssbbwW.coM123;二进制数1011表示为:1011B;十六进制数3A4表示为:3A4H。
在计算机中除上面讲到的二进制、十进制、十六进制外,www.ssbbww.com还会讲到八进制数,这里就不讨论了。
下表列出了十进制0~16对应的二进制数和十六进制数。
各种数制转换
二、www.8ttt8.com各种进制转换
1、www.8ttt8.com8ttt8进制转换为十进制
方法是:将8ttt8进制按权位展开,8ttt8.com各项相加,就得到相应的十进制数。
例1: N=(10110.101)B=(?)D
按权展开N=1*24+0*23+1*22+1*21+0*20+1*2-1+0*2-2+1*2-3
=16+4+2+0.5+0.125 =(22.625)D
2、www.8ttt8.com 将十进制转换成8ttt8进制
方法是: 它是分两部分进行的即整数部分和小数部分。
整数部分:(基数除法)
把sSBbWw要转换的数除以新的进制的基数,把余数dddtt新进制的最低位;www.8ttt8.com
把上一次得的商在除以新的进制基数,把余数dddtt新进制的次低位;www.8ttt8.com
继续上一步,直到最后的商为零,www.ssbbww.Com的余数www.8ttt8.com新进制的最高位.
小数部分: (基数乘法)
把要转换数的小数部分乘以新进制的基数,把得到的整数部分dddtt新进制小数部分的最高位
把上一步得的小数部分再乘以新进制的基数,把整数部分dddtt新进制小数部分的次高位;www.8ttt8.com
继续上一步,直到小数部分变成零为止。wwW.ssbbwW.coM达到预定的dDdtt也www.8ttt8.comwww.ssbbww.com。
例2 : N=(68.125)D=(?)O
3、www.8ttt8.com二进制与八进制、十六进制的转换
二进制转换为八进制、十六进制:www.Dddtt.com满足23和24的关系,www.8 t tt8. com把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,8ttt8.com把每组二进制数转换成八进制或十六进制
八进制、十六进制转换为二进制时,把上面的过程逆过来。
例3:N=(C1B)H=(?)B
(C1B)H=1100/0001/1011=(110000011011)B
二进制数算术运算
一:二进制的四则运算
二进制也www.8ttt8.comwww.ssbbww.com进行四则运算,它的运算规则如下ssBbww:
加运算
0+0=0,0+1=1,1+0=1,1+1=10 逢2进1
减运算
1-1=0,1-0=1,0-0=1,0-1=1(向高位借1当2)
乘运算
0*0=0,0*1=0,1*0=0,1*1=1
除运算
二进制只有两个数(0,1),www.8 t tt8. com它的商是1或0.
通过例(1)sSBbWw再来介绍两个概念:半加和全加。
半加是最低位的加数和被加数相加时,不考虑低位向本位进位。
全加是加数和被加数相加时,sSBbWw还要考虑低位向本位的进位。
数的原码、反码及补码
1、www.8ttt8.com数的表示形式
在生活中表示数的时候SsbbwW.com都是把正数前面加一个“+”,负数前面加一个“-”,dddTt在数字设备中,机器是不认识这些的,sSBbWw就把“+”用“0”表示,“-”用“1”表示。原码、反码和补码。这三种形式是怎样表示的呢?如下ssBbww:
2、www.8ttt8.com原码、反码及补码的算术运算
8 Tt t 8. com这三种数码表示法的形成规则不同,8ttt8算术运算方法也www.8ttt8.com不dddTt.com。
3、www.8ttt8.com溢出及补码运算中溢出的判断
溢出www.ssbbww.com描述为运算结果大于数字设备的表示范围。这种现象应当作故障8tTt8。
判断溢出是根据最高位的进位来判断的。
常用电子元器件参考资料
要求:这些是进行电路设计的基础,大家要认识和掌握常用的元器件,这部分考试时只是要求大家能认识基本的原件符号,和标识意思。
第一节 部分电气图形符号
一.电阻器、电容器、电感器和变压器
图形符号
名称与说明
图形符号
名称与说明
电阻器一般符号
电感器、线圈、绕组或扼流图。注:符号中半圆数不得少于3个
可变电阻器或可调电阻器
带磁芯、铁芯的电感器
滑动触点电位器
带磁芯连续可调的电感器
极性电容
双绕组变压器
注:可增加绕组数目
可变电容器或可调电容器
绕组间有屏蔽的双绕组变压器
注:可增加绕组数目
双联同调可变电容器。
注:可增加同调联数
在一个绕组上有抽头的变压器
微调电容器
二.半导体管
图形符号
名称与说明
图形符号
名称与说明
二极管的符号
(1)
(2)
JFET结型场效应管
(1)N沟道
(2)P沟道
发光二极管
光电二极管
PNP型晶体三极管
稳压二极管
NPN型晶体三极管
变容二极管
全波桥式整流器
三.其它电气图形符号
图形符号
名称与说明
图形符号
名称与说明
具有两个电极的压电晶体注:电极数目可增加
或
接机壳或底板
熔断器
导线的连接
指示灯及信号灯
导线的不连接
扬声器
动合(常开)触点开关
蜂鸣器
动断(常闭)触点开关
接大地
手动开关
第二节 常用电子元器件型号命名法及主要技术参数
一.电阻器和电位器
1. 电阻器和电位器的型号命名方法
表1 电阻器型号命名方法
第一部分:主称
第二部分:材料
第三部分:特征分类
第四部分:序号
符号
意义
符号
意义
符号
意义
电阻器
电位器
R
电阻器
T
碳膜
1
普通
普通
对主称、材料相同,仅性能指标、尺寸大小有差别,但基本不影响互换使用的产品,给予同一序号;若性能指标、尺寸大小明显影响互换时,则在序号后面用大写字母作为区别代号。
W
电位器
H
合成膜
2
普通
普通
S
有机实芯
3
超高频
――
N
无机实芯
4
高阻
――
J
金属膜
5
高温
――
Y
氧化膜
6
――
――
C
沉积膜
7
精密
精密
I
玻璃釉膜
8
高压
特殊函数
P
硼碳膜
9
特殊
特殊
U
硅碳膜
G
高功率
――
X
线绕
T
可调
――
M
压敏
W
――
微调
G
光敏
D
――
多圈
R
热敏
B
温度补偿用
――
C
温度测量用
――
P
旁热式
――
W
稳压式
――
Z
正温度系数
――
示例:
(1) 精密金属膜电阻器
R J 7 3
第四部分:序号
第三部分:类别(精密)
第二部分:材料(金属膜)
第一部分:主称(电阻器)
(2) 多圈线绕电位器
W X D 3
第四部分:序号
第三部分:类别(多圈)
第二部分:材料(线绕)
第一部分:主称(电位器)
2.电阻器的主要技术指标
(1) 额定功率
电阻器在电路中长时间连续工作不损坏,或不显著改变其性能所允许消耗的最大功率称为电阻器的额定功率。电阻器的额定功率并不是电阻器在电路中工作时一定要消耗的功率,而是电阻器在电路工作中所允许消耗的最大功率。不同类型的电阻具有不同系列的额定功率,如表2所示。
表2 电阻器的功率等级
名称
额定功率(W)
实芯电阻器
0.25
0.5
1
2
5
-
线绕电阻器
0.5
25
1
35
2
50
6
75
10
100
15
150
薄膜电阻器
0.025
2
0.05
5
0.125
10
0.25
25
0.5
50
1
100
(2) 标称阻值
阻值是电阻的主要参数之一,不同类型的电阻,阻值范围不同,不同精度的电阻其阻值系列亦不同。根据国家标准,常用的标称电阻值系列如表3所示。E24、E12和E6系列也适用于电位器和电容器。
表3 标称值系列
标称值系列
精度
电阻器()、电位器()、电容器标称值(PF)
E24
5%
1.0
2.2
4.7
1.1
2.4
5.1
1.2
2.7
5.6
1.3
3.0
6.2
1.5
3.3
6.8
1.6
3.6
7.5
1.8
3.9
8.2
2.0
4.3
9.1
E12
10%
1.0
3.3
1.2
3.9
1.5
4.7
1.8
5.6
2.2
6.8
2.7
8.2
-
-
E6
20%
1.0
1.5
2.2
3.3
4.7
6.8
8.2
-
表中数值再乘以10n,其中n为正整数或负整数。
(3) 允许误差等级
表4 电阻的精度等级
允许误差(%)
0.001
0.002
0.005
0.01
0.02
0.05
0.1
等级符号
E
X
Y
H
U
W
B
允许误差(%)
0.2
0.5
1
2
5
10
20
等级符号
C
D
F
G
J(I)
K(II)
M(III)
3.电阻器的标志内容及方法
(1) 文字符号直标法:用阿拉伯数字和文字符号两者有规律的组合来表示标称阻值,额
定功率、允许误差等级等。符号前面的数字表示整数阻值,后面的数字依次表示第一位小数阻值和第二位小数阻值,其文字符号所表示的单位如表5所示。如1R5表示1.5,2K7表示2.7k,
表5
文字符号
R
K
M
G
T
表示单位
欧姆()
千欧姆(103)
兆欧姆(106)
千兆欧姆(109)
兆兆欧姆(1012)
例如:
RJ71-0.125-5k1-II
允许误差10%
标称阻值(5.1k)
额定功率1/8W
型号
由标号可知,它是精密金属膜电阻器,额定功率为1/8W,标称阻值为5.1k,允许误差为10%。
(2) 色标法: 色标法是将电阻器的类别及主要技术参数的数值用颜色(色环或色点)
标注在它的外表面上。色标电阻(色环电阻)器可分为三环、四环、五环三种标法。其含义如图1和图2所示。
标称值第一位有效数字
标称值第二位有效数字
标称值有效数字后0的个数
允许误差
颜 色
第一位有效值
第二位有效值
倍 率
允 许 偏 差
黑
0
0
棕
1
1
红
2
2
橙
3
3
黄
4
4
绿
5
5
蓝
6
6
紫
7
7
灰
8
8
白
9
9
―20% ~ +50%
金
5%
银
10%
无色
20%
图1 两位有效数字阻值的色环表示法
三色环电阻器的色环表示标称电阻值(允许误差均为20%)。例如,色环为棕黑红,表示10102=1.0k20%的电阻器。
四色环电阻器的色环表示标称值(二位有效数字)及精度。例如,色环为棕绿橙金表示15103=15k5%的电阻器。
五色环电阻器的色环表示标称值(三位有效数字)及精度。例如,色环为红紫绿黄棕表示275104=2.75M1%的电阻器。
一般四色环和五色环电阻器表示允许误差的色环的特点是该环离其它环的距离较远。较标准的表示应是表示允许误差的色环的宽度是其它色环的(1.5~2)倍。
有些色环电阻器由于厂家生产不规范,无法用上面的特征判断,这时只能借助万用表判断。
标称值第一位有效数字
标称值第二位有效数字
标称值第三位有效数字
标称值有效数字后0的个数
允许误差
颜色
第一位有效值
第二位有效值
第三位有效值
倍 率
允许偏差
黑
0
0
0
棕
1
1
1
1%
红
2
2
2
2%
橙
3
3
3
黄
4
4
4
绿
5
5
5
0.5%
蓝
6
6
6
0.25
紫
7
7
7
0.1%
灰
8
8
8
白
9
9
9
金
银
图2 三位有效数字阻值的色环表示法
4.电位器的主要技术指标
(1) 额定功率
电位器的两个固定端上允许耗散的最大功率为电位器的额定功率。使用中应注意额定功率不等于中心抽头与固定端的功率。
(2) 标称阻值
标在产品上的名义阻值,其系列与电阻的系列类似。
(3) 允许误差等级
实测阻值与标称阻值误差范围根据不同精度等级可允许20%、10%、5%、2%、1%的误差。精密电位器的精度可达0.1%。
(4) 阻值变化规律
指阻值随滑动片触点旋转角度(或滑动行程)之间的变化关系,这种变化关系可以是任何函数形式,常用的有直线式、对数式和反转对数式(指数式)。
在使用中,直线式电位器适合于作分压器;反转对数式(指数式)电位器适合于作收音机、录音机、电唱机、电视机中的音量控制器。维修时若找不到同类品,可用直线式代替,但不宜用对数式代替。对数式电位器只适合于作音调控制等。
5.电位器的一般标志方法
WT-2 3.3k 10%
允许误差10%
标称阻值3.3k
额定功率2W
碳膜电位器
WX-1 510 J
允许误差5%
标称阻值510
额定功率1W
线绕电位器
二.电容器
1.电容器型号命名法
表6 电容器型号命名法
第一部分:主称
第二部分:
材料
第三部分:
特征、分类
第四部分:
序号
符号
意
义
符号
意义
符号
意义
瓷介
云母
玻璃
电解
其他
电
容
器
C
瓷介
1
圆片
非密封
-
箔式
非密封
对主称、材料相同,仅尺寸、性能指标略有不同,但基本不影响互使用的产品,给予同一序号;若尺寸性能指标的差别明显;影响互换使用时,则在序号后面用大写字母作为区别代号。
Y
云母
2
管形
非密封
-
箔式
非密封
I
玻璃釉
3
迭片
密封
-
烧结粉固体
密封
O
玻璃膜
4
独石
密封
-
烧结粉固体
密封
Z
纸介
5
穿心
-
-
-
穿心
J
金属化纸
6
支柱
-
-
-
-
B
聚苯乙烯
7
-
-
-
无极性
-
L
涤纶
8
高压
高压
-
-
高压
Q
漆膜
9
-
-
-
特殊
特殊
S
聚碳酸脂
J
金属膜
H
复合介质
W
微调
D
铝
A
钽
N
铌
G
合金
T
钛
E
其他
示例:
(1) 铝电解电容器
C D 1 1
第四部分:序号
第三部分:特征分类(箔式)
第二部分:材料(铝)
第一部分:主称(电容器)
(2) 圆片形瓷介电容器
C C 1-1
第四部分:序号
第三部分:特征分类(圆片)
第二部分:材料(瓷介质)
第一部分:主称(电容器)
(3)纸介金属膜电容器
C Z J X
第四部分:序号
第三部分:特征分类(金属膜)
第二部分:材料(纸介)
第一部分:主称(电容器)
2.电容器的主要技术指标
(1) 电容器的耐压: 常用固定式电容的直流工作电压系列为:6.3V,10V,16V,25V,40V,63V,100V,160V,250V,400V。
(2) 电容器容许误差等级:常见的有七个等级如表7所示。
表7
容许误差
2%
5%
10%
20%
+20%
-30%
+50%
-20%
+100%
-10%
级别
0.2
I
II
III
IV
V
VI
♦ 電容常用字母代表誤差﹕B: ±0.1﹪,C: ±0.25﹪,D: ±0.5﹪,F: ±1﹪,G: ±2﹪,J: ±5﹪,K: ±10﹪,M: ±20﹪,N: ±30﹪,Z:+80﹪-20﹪。
(3) 标称电容量:
表8 固定式电容器标称容量系列和容许误差
系列代号
E24
E12
E6
容许误差
5%(I)或(J)
10%(II)或(K)
20%(III)或(m)
标称容量对应值
10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,90
10,12,15,18,22,27,33,39,47,56,68,82
10,15,22,23,47,68
注:标称电容量为表中数值或表中数值再乘以,其中n为正整数或负整数,单位为pF。
3.电容器的标志方法
(1) 直标法 容量单位:F(法拉)、F(微法)、nF(纳法)、pF(皮法或微微法)。
1法拉=微法=微微法, 1微法=纳法=微微法
1纳法=微微法
例如:4n7 表示4.7nF或4700pF,0.22 表示0.22F,51 表示51pF。
有时用大于1的两位以上的数字表示单位为pF的电容,例如101表示100 pF;用小于1的数字表示单位为F 的电容,例如0.1表示0.1F。
(2) 数码表示法 一般用三位数字来表示容量的大小,单位为pF。前两位为有效数字,后一位表示位率。即乘以10i,i为第三位数字,若第三位数字9,则乘10-1。如223J代表22103pF=22000pF=0.22F,允许误差为5%;又如479K代表4710-1pF,允许误差为5%的电容。这种表示方法最为常见。
(3)色码表示法 这种表示法与电阻器的色环表示法类似,颜色涂于电容器的一端或从顶端向引线排列。色码一般只有三种颜色,前两环为有效数字,第三环为位率,单位为pF。有时色环较宽,如红红橙,两个红色环涂成一个宽的,表示22000pF。
三.电感器
1.电感器的分类
常用的电感器有固定电感器、微调电感器、色码电感器等。变压器、阻流圈、振荡线圈、偏转线圈、天线线圈、中周、继电器以及延迟线和磁头等,都属电感器种类。
2.电感器的主要技术指标
(1) 电感量:
在没有非线性导磁物质存在的条件下,一个载流线圈的磁通量与线圈中的电流成正比
其比例常数称为自感系数,用L表示,简称为电感。即:
式中:=磁通量 I=电流强度
(2) 固有电容:线圈各层、各匝之间、绕组与底板之间都存在着分布电容。统称为电感
器的固有电容。
(3) 品质因数:
电感线圈的品质因数定义为:
式中:-工作角频率,L-线圈电感量,R-线圈的总损耗电阻
(4) 额定电流:线圈中允许通过的最大电流。
(5) 线圈的损耗电阻:线圈的直流损耗电阻。
2.电感器电感量的标志方法
(1) 直标法。单位H(亨利)、mH(毫亨)、H(微亨)、
(2) 数码表示法。方法与电容器的表示方法相同。
(3) 色码表示法。这种表示法也与电阻器的色标法相似,色码一般有四种颜色,前两种
颜色为有效数字,第三种颜色为倍率,单位为H,第四种颜色是误差位。
四.模拟集成电路
1.模拟集成电路命名方法(国产)
表23 器件型号的组成
第0部分
第一部分
第二部分
第三部分
第四部分
用字母表示器件符合国家标准
用字母表示器件的类型
用阿拉伯数字表示器件的系列和品种代号
用字母表示器件的工作温度范围
用字母表示器件的封装
符号
意义
符号
意义
符号
意义
符号
意义
C
中国制造
T
TTL
C
0~70oC
W
陶瓷扁平
H
HTL
E
-40~85oC
B
塑料扁平
E
ECL
R
-55~85oC
F
全封闭扁平
C
CMOS
M
-55~125oC
D
陶瓷直插
F
线性放大器
P
塑料直插
D
音响、电视电路
J
黑陶瓷直插
W
稳压器
K
金属菱形
J
接口电路
T
金属圆形
例:
C F 741 C T
金属圆形封装
0 o ~ 70 oC
器件代号
线性放大器
中国国家标准
2.国外部分公司及产品代号
表24 国外部分公司及产品代号
公司名称
代号
公司名称
代号
美国无线电公司(BCA)
CA
美国悉克尼特公司(SIC)
NE
美国国家半导体公司 (NSC)
LM
日本电气工业公司(NEC)
PC
美国莫托洛拉公司(MOTA)
MC
日本日立公司(HIT)
RA
美国仙童公司(PSC)
A
日本东芝公司(TOS)
TA
美国德克萨斯公司(TII)
TL
日本三洋公司(SANYO)
LA,LB
美国模拟器件公司(ANA)
AD
日本松下公司
AN
美国英特西尔公司(INL)
IC
日本三菱公司
M
3.部分模拟集成电路引脚排列
(1) 运算放大器,如图3所示: (2) 音频功率放大器,如图所示:
抑 抑
正 输 调 电 自 制 制 输
电 出 零 源 举 纹 空 纹 入 空
源 端 端 端 端 波 脚 波 端 脚
8 7 6 5 14 13 12 11 10 9 8
LM741 LA4100
1 2 3 4 1 2 3 4 5 6 7
调 负 正 负 输 电 衬 补 补 负 空
零 输 输 电 出 源 底 偿 偿 反 脚
端 入 入 源 端 地 地 端 端 馈
端 端 端 端
图3 图4
(3) 集成稳压器,如图所示:
LM
317
调 输
整 入
1 2 3
输出
图 5
4.部分模拟集成电路主要参数
(1) A741运算放大器的主要参数
表25 A741的性能参数
电源电压+UCC
-UEE
+3V~+18V,典型值+15V
-3V~-18V, -15V
工 作 频 率
10kHz
输入失调电压UIO
2mV
单位增益带宽积Au•BW
1MHz
输入失调电流IIO
20nA
转换速率SR
0.5V/S
开环电压增益Auo
106dB
共模抑制比CMRR
90dB
输入电阻Ri
2M
功率消耗
50mW
输出电阻Ro
75
输入电压范围
13V
(2) LA4100、LA4102音频功率放大器的主要参数
表26 LA4100~LA4102的典型参数
参数名称/单位
条 件
典 型 值
LA4100
LA4102
耗散电流/mA
静 态
30.0
26.1
电压增益/dB
RNF=220,f=1kHz
45.4
44.4
输出功率/W
THD=10%,f=1kHz
1.9
4.0
总谐波失真100
P0=0.5W,f=1kHz
0.28
0.19
输出噪声电压/mV
Rg=0,UG=45dB
0.24
注:+UCC=+6V(LA4100)+UCC=+9V(LA4102) RL=8
(3) CW7805、CW7812、CW7912、CW317集成稳压器的主要参数
表27 CW78,CW79,CW317参数
参数名称/单位
CW7805
CW7812
CW7912
CW317
输入电压/V
+10
+19
-19
40
输出电压范围/V
+4.75~+5.25
+11.4~+12.6
-11.4~-12.6
+1.2~+37
最小输入电压/V
+7
+14
-14
+3Vi-Vo+40
电压调整率/mV
+3
+3
+3
0.02%/V
最大输出电流/A
加散热片可达1A
1.5
单片机学习
说明:这些是单片机的基础知识,大家一定要了解,也是重点考试类容。
当单片机上电时它的各个引脚都时默认的都时第一功能,只有当对单片机内部的ROM进行设置以后它的第二功能才能够被启用。
9)、RST这是一个复位管脚,当在其上加两个机器周期以上的高电平时,将对单片机进行复位操作。复位以后单片机的程序指针将指向0。当单片机正常工作时应该给这个引脚提供一个0.5V的低电平。
其复位电路如图。
VPD时本引脚的第二功能,备用电源的输入端。当主电源Vcc降低到某一规定的电压时,将备用电源自动接入VPD,为单片机内部的ROM提供电源。这样能来保证单片机内部ROM的数据部丢失。这样单片机在复位后才能继续正常运行。
10)P3.0 RXD是串行输入口。
11)P3.1 TXD是串行输出口。
用于计算机的串行口单片机之间的通信,当单片机上电时它会自动检测计算机是否在给它发出下载程序的命令,如果有它将执行,把计算机上的程序下载到单片机内。如果没有它将默认为第一功能,并且执行它内部本来就有的程序。这就是在用串行端口来对单片机进行下载程序是需要切断电源,再接通电源的原因。
12)P3.2 INT0外部中断0。
13)P3.3 INT1外部中断1。
14)P3.4 T0定时器0外部计数输入。
15)P3.5 T1定时器1外部计数输入。
当再单片机的内部进行设置以后启用第二功能后,再管脚上输入方波(既是一个高电平,一个低电平这样波)它可以自动进行计数。可以用于制作一个频率计,如果输入的是正弦波,可以通过一个比较器把正弦波变成一个方波。再把方波输入给单片机,用编好的程序进行频率的测定。当输入的时三角波时可以通过积分,将其变成方波从而进行频率的测定。
16)P3.6 WR外部数据寄存器的写选通。
17)P3.7 RD外部数据寄存器的读选通。
18)XTAL2外部晶振的输入端。
19)XTAL1外部晶振的输入端。
晶振的电路连接如图
晶振工作时输出的时正弦波,它相当与是单片机的心脏。在其两个引脚上各接一个电容时为了在接通电源时利用电容充电的过程在晶振的两个引脚上加电压,来帮助晶振起振。当然电容的选取的大小时和晶振的频率有关的。
20)VSS是GND也就时接地端。
30)ALE当单片机正常工作时它可以输出六分之一个时钟周期的脉冲,也就时方波。如果你想检测一下这个单片机是否正常工作,可以在这个引脚上接上一个示波器,观察是否有方波输出。PROG是编成的时候用的。AT公司的单片机编程的时候要用专门的编程器来编程,编程时在VPP端加12V的电压。
31)EA为内部程序存储器选择控制端,当EA为高电平时单片机将访问内部程序存储器,直到内部程序存储器访问完毕。它将自动转为访问外部存储器。当在EA上加的时低电平时,单片机将直接访问外部存储器的程序,无论单片机是否有内部存储器。对于那些只有外部程序存储器的单片机,该引脚只能接地。这样才能使用外部存储器。
40)VCC加直流电源。
单片机用计算机USB供电的电路图。
因为计算机用的时开关电源,其电流波动很大,所以接两个10UF的电容进行滤波。
目常用单片机芯片简介
STC单片机
STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强.
PIC单片机:
是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片.
EMC单片机:
是台湾义隆公司的产品,有很大一部分与PIC 8位单片机兼容,且相兼容产品的资源相对比PIC的多,价格便宜,有很多系列可选,但抗干扰较差.
ATMEL单片机(51单片机):
ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机.
PHLIPIS 51PLC系列单片机(51单片机):
PHILIPS公司的单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC振荡器等功能,这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求.
HOLTEK单片机:
台湾盛扬半导体的单片机,价格便宜,种类较多,但抗干扰较差,适用于消费类产品.
TI公司单片机(51单片机):
德州仪器提供了TMS370和MSP430两大系列通用单片机.TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;MSP430系列单片机是一种超低功耗、功能集成度较高的16位低功耗单片机,特别适用于要求功耗低的场合
松翰单片机(SONIX):
是台湾松翰公司的单片,大多为8位机,有一部分与PIC 8位单片机兼容,价格便宜,系统时钟分频可选项较多,有PMW ADC 内振 内部杂讯滤波。缺点RAM空间过小,抗干扰较好。
单片机基本外围电路介绍
要求:这些是最基本的51单片机的电路,大家真看,这将是第二阶段的培训重点,第一阶段只要求大家了解。
每个硬件模块介绍如下:
1. 继电器控制模块
系统板上提供了2路继电器控制模块,分布在系统板的最左上端区域中,输入信号由Realy in 1和Realy in 2端口输入分别控制两路继电器,继电器控制的信号分别由最上端的两个插针输入和输出。分别称为“com1 open1 short1”,“com2 open2 short2”,由于这个两个继电器是单刀单掷控制,当继电器不吸合时,“com1”和“short1”相通,“com2”和“short2”相通;当继电器吸合时,“com1”和“open1”相通,“com2”和“open2”相通。其电路原理图1.1所示:
图1.1
2. 电源模块
电源模块为系统板上其它模块提供+5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大于7.5V,交流输入应大于5V,通过7805三端稳压器得到5V的直流电源供给系统其它模块工作,另一种为从USB接口获取+5V电源,只要用相应配套的USB线从电脑主机获取+5V直流电源,在电源模块中加有保护电路,即电路中有短路,不会对7805三端稳压器及电脑主机电源有损害!其电路原理图如图1.4所示:
图1.4
3. 程序下载模块
该模块完成源程序代码下载到AT89S51或者是AT89S52芯片中,它需要和微机上的ISP下载器软件配合使用来完成这样的功能。具体的电路原理图如图1.5所示:
图1.5
4. 232电平转换模块
232电平转换采用MAX232芯片把TTL电平转换成RS-232电平格式,可以用于单片机与微机通信,以及单片机与单片机之间的通信,在该系统板上提供了两个DB9的接口,其中一个用ISP下载器模块的程序下载接口,称为“ISP Interface”,另一个接口为单片机与其它具有RS232接口的通信端口,称为“Common Port”。具体的电路原理图如图1.6所示:
图1.6
图1.7
5. 动态数码显示模块
该系统中采用8位的动态数码显示,控制数码显示的数据由两部分组成,一部分为笔段亮灭控制的信号输入由“A B C D E F G H”端口输入,而控制位显示的控制信号由“S1 S2 S3 S4 S5 S6 S7 S8”端口输入,同时该动态数码显示采用共阴数码管;具体的电路原理图如图1.10所示:
图1.10
6. 八路发光二极管指示模块
该模块采用8个发光二极管作为指示信号作用,即可以用排线来控制,也可以单个地控制每个发光二极管的亮灭,当控制信号为低电平时,发光二极管亮,为高电平时,发光二极熄灭;控制电平的输入由“L1-L8”输入。电路原理图如图1.13
图1.13
7. 三八译码模块
在系统板上提供了三八译码模块,控制译码器译码信号由“C B A”端口输入,译出的控制信号由“Y0-Y7”输出。电路原理图如图1.14
图1.14
8. 数模转换模块
系统板上的数模转换模块采用了8位的D/A转换芯片DAC0832来完成数模转换过程,DAC0832是电流输出型D/A转换芯片,因此,后面接有集成运放LM358来完成电流到电压的转换。其中的数字信号的输入从“D0-D7”端口输入,控制DAC0832工作的控制信号由“WR CS”端口输入,模拟量的输出从“AOUT”端口输出,由于LM358工作在双电源条件下,因此要给LM358加入±12V电压,从“+12V GND -12V”端口加入。具体的电路原理图如图1.16所示:
图1.16
9. 四路拨动开关模块
开关控制信号由“K1 K2 K3 K4”端口输出,具体的电路原理图如图1.18所示:
图1.18
10. 二线总线模块(I2C总线)
为了适应新技术的需要,增加了2路I2C总线接口,适用8脚的I2C总线芯片,左边的“PIN1 PIN2 PIN3 PIN4 PIN5 PIN6”与上面的接口连接,右边的“PIN1 PIN2 PIN3 PIN4 PIN5 PIN6”与下面的接口连接;具体的电路原理图如图1.21所示:
图1.21
11. 独立式键盘模块
键盘是人机通信不可缺少的部件,独立式键盘是最基本的一种键盘方式,在本系统中提供了四个独立式按键;具体的电路原理图如图1.22所示:
图1.22
12. 4×4行列式键盘模块
行列式键盘也即矩阵式键盘,它由行和列组成,在每个行列的交叉点上放置一个按键,这样4×4行列式键盘共需要16个键盘组成;具体的电路原理图如图1.23所示:
图1.23