版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章单片机应用系统设计概述与高级语言编程7.1单片机应用系统设计概述
单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些系统能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。第七章单片机应用系统设计概述与高级语言编程7.1单片17.1.1单片机应用系统的分类按照单片机系统扩展与系统配置的状况,单片机应用系统可分为最小系统、典型应用系统和增强应用系统等。1.最小应用系统
最小应用系统是指能维持单片机运行的最简配置系统。这种系统结构简单、成本低廉,常构成一些简单的控制系统,如开关状态的输入/输出控制、时序控制等。这种应用系统的硬件电路构成很简单,对于片内有程序存储器的单片机,只要配上晶振、复位电路和电源就可以构成最小应用系统。而对于片内无程序存储器的单片机,其最小应用系统除了配置晶振、复位电路和电源外,还需扩展程序存储器。图7-1所示是8031的最小系统。最小应用系统的功能完全取决于单片机芯片技术水平。7.1.1单片机应用系统的分类2单片机应用系统的设计规范课件3AT89C51的最小系统AT89C51的最小系统4ADuC812是一个完全集成的12位数据采集系统,在一个芯片内结合了高性能的自校准多通道12位ADC,双12位DAC和可编程8位微控制器(与8051兼容的指令集)。片内的8K字节闪速/电擦除存储器、640字节片内闪速/电擦除数据存储器和256字节的片内数据静态存储器,均由可编程8051兼容内核控制。另外微控制器具有包括看门狗定时器、电源监视器和ADCDMA功能,为多处理器接口和I/O扩展提供了32条可编程的I/O线、I2C兼容的SPI和标准UART串行口I/O等。ADuC812单片智能转换器(MicroConverter®)ADuC812是一个完全集成的12位数据采集系统,在一个芯片5ADuC812单片智能转换器(MicroConverter®)ADuC812单片智能转换器(MicroConverter62.典型应用系统
典型应用系统是指单片机要完成一般工业测、控功能所必须具备的硬件结构系统。它包括系统扩展与系统配置两部分内容。
系统扩展是指在单片机内部程序存储器(ROM/EPROM)、数据存储器(RAM)及输入/输出(I/O)口等部分不能满足系统要求时,需在片外扩展的部分。扩展多少,视系统要求而定。
系统配置是指单片机为满足应用要求所应配置的基本外部设备,如键盘、显示器等。2.典型应用系统7单片机应用系统的设计规范课件83.增强应用系统
增强应用系统是指包含为了加强典型系统的人机对话、与其他设备通讯和系统测控功能而增设外设与接口的系统,如图7-3所示。3.增强应用系统97.1.2单片机应用系统的构成方式单片机应用系统有三种结构方式。1.专用系统
这种系统的扩展与配置完全是按照应用系统的功能要求设计的。系统硬件只需满足应用要求,系统中只配备应用软件(固化在ROM或EPROM中),故系统有最佳配置,系统的软应件资源能得到最充分的利用。但这种系统无自开发能力,要有开发工具的支持。采用这种结构方式,要求有较强的软硬件开发基础。
专用系统主要用在大批量生产的仪器、设备和家用电器等方面作测控用。一般不需要很多按键,甚至可以不要。7.1.2单片机应用系统的构成方式单片机应用系统有三种102.模块化系统
由于单片机应用系统的扩展与配置具有典型性,可把这些典型配置做成用户系列板(比如主机板、A/D板、D/A板、A/D/A板、I/O板、打印机接口板、通信接口板等),供用户选择使用。用户可根据应用系统的要求,选择适当的功能模块组合成自己的测控系统。模块化结构是大、中型应用系统的发展方向,它可以大大减少用户在硬件开发上投入的力量,且可使硬件开发周期缩到最短。但目前我国单片机应用系统模块化产品水平尚不高,软硬件配套工作还不完善,有待进一步发展。2.模块化系统113.单片单板机系统
受通用CPU单板机(如TP801等)的影响,同时也考虑多种应用目的,国内有用单片机来构成单片单板机。这种系统的硬件按典型应用系统配置,并配有监控程序,具有自开发能力。但是,单板机的固定结构形式常使应用系统不能获得最佳配置(即软硬件资源不能得到充分利用),产品批量大时,软、硬件资源浪费较大。但这种系统可以减少研制时的硬件工作量和部分软件工作量,并且具有二次开发能力,故可加速应用系统的研制速度,缩短开发周期,通常可用于教学系统。3.单片单板机系统127.1.3单片机应用系统设计的基本要求1.对设计者的要求(1)一定的硬件基础知识。设计者不仅要掌握各种单片机、存储器(如EPROM、E2PROM、RAM)和I/O接口(如8255、8155、8279及其它功能器件),还要掌握键盘、开关、检测各种输入量的传感器、控制用的执行装置以及与单片机和各种仪器进行通信的接口等。(2)一定的软件设计能力。设计者能根据系统的要求,设计出所需要的程序。比如数据采样程序、A/D或D/A转换程序、数码转换程序、数字滤波程序、标度变换程序、键盘处理程序、显示及打印程序以及各种控制算法和非线性补偿程序等等。7.1.3单片机应用系统设计的基本要求1.对设计者的要13(3)有综合运用和分析的能力。
设计者要能够将一个单片机应用系统的复杂设计任务划分成许多便于实现的组成部分,尤其是对软件和硬件折衷问题能够恰当地运用。(4)设计者还要掌握生产过程的工艺性能及被测参数的测量方法以及被控对象的动、静态特性等。(3)有综合运用和分析的能力。142.对单片机应用系统的要求1.可靠性要高
这是对应用系统最重要的一个基本要求。提高应用系统可靠性的常用几种方法:(1)采用双机冗余系统;(2)采用集散式控制系统;(3)提高元器件的可靠性;(4)进行软硬件滤波;(5)提高印刷电路板的质量,设计电路板时布线及接地要合理;(6)对供电电源采用抗干扰措施;(7)输入输出通道采取抗干扰措施。
2.对单片机应用系统的要求1.可靠性要高152.自诊断功能要强
在进行系统整体设计时,一定要考虑系统的故障自动检测和处理的功能。当系统正常运行时,可定时对各模块进行自诊断,并对外界出现的异常情况作出快速应变处理。对于出现无法解决的情况,应能及时切换后备装置投入工作,或及时报警,以提醒人工干预。对于集散控制系统,主机除了对各子系统的例行监督管理外,还要诊断各子系统是否在正常运转,当发现某个系统有故障时,应立即进行处理。2.自诊断功能要强163.操作和维修要方便在系统的硬件和软件设计时,应考虑操作和维修方便,尽量降低对操作人员的专业知识的要求,以便于系统的推广。系统的操作控制开关不能太多、太复杂,操作顺序应简单明了,最好具有一定的容错性,输入输出应用十进制表示,功能符号简明直观。结构应规范化、模块化,并配有现场故障诊断程序。3.操作和维修要方便174.性能/价格比高一个单片机应用系统能否被广泛地采用,关键在于是否有很高的性能/价格比。硬件软化是提高系统性能/价格比的实用方法。在系统总体设计时,应尽可能减少硬件成本,能用软件实现的功能尽量用软件实现。在不增加成本的基础上,提高软件和硬件结构的通用性和可扩充性是十分重要的。
上述四点是设计单片机应用系统时应考虑的基本要求。对不同的应用系统还有许多特定的要求,如精度、速度、体积、重量及监视手段等,这些均须根据具体系统的要求而定。4.性能/价格比高187.1.4单片机应用系统硬件设计概述
1.应用系统硬件设计内容一个单片机应用系统的硬件设计包括两大部分内容:
(1)系统扩展。通过系统扩展,构成一个完善的计算机系统,它是单片机应用系统中的核心部分。系统的扩展方法、内容、规模与所选用的单片机系列以及供应状态有关。扩展部分设计包括存储器扩展和接口扩展。存储器的扩展指EPROM、EEPROM和RAM的扩展,接口扩展是指8255、8155、8279以及其它功能器件的扩展。
(2)各功能模块的设计。如信号测量功能模块、信号控制功能模块、人机对话功能模块、通讯功能模块等,根据系统功能要求配置相应的A/D、D/A、键盘、显示器、打印机等外围设备。7.1.4单片机应用系统硬件设计概述1.应用系统硬件设192.单片机应用系统硬件设计应遵循的基本原则为使硬件设计具有先进性、合理性,应注意以下一些原则:
(1)尽可能选择典型电路;尤其是要优先选用符合单片机常规用法的标准化、模块化的典型电路。这样可提高设计的成功率和结构的灵活性。(2)系统的扩展及各功能模块的设计应充分满足应用系统的功能要求,并留有适当的余地,以便进行二次开发。2.单片机应用系统硬件设计应遵循的基本原则为使硬件设计具有20(3)硬件设计要结合应用软件方案一并考虑;
硬件电路结构与软件方案会产生相互影响,综合考虑的原则是;能用软件实现的功能尽可能由软件来实现,以便简化硬件电路,但必须注意系统对速度与实时性的要求。(4)应用系统中相关的器件要尽可能做到性能匹配;
例如选用晶振频率较高时,存储器的存取时间有限,应该选择允许存取速度较高的芯片;选择CMOS芯片单片机构成低功耗系统时,系统中的所有芯片都应该选择低功耗的产品。
(3)硬件设计要结合应用软件方案一并考虑;21(5)在电路设计时,要充分考虑应用系统各部分的驱动能力。驱动能力不足时,系统工作不可靠甚至无法工作,而这种不可靠很难通过一般的测试手段来确定。因此,要重视这一问题。(6)可靠性与系统的抗干扰设计应贯穿在应用系统设计的全过程;它包括芯片、器件的选择,去噪滤波、印刷电路板布线、通道隔离等。(7)设计时要尽可能掌握最新器件与最新技术,并把它们用于设计中。因为电子技术发展很快,各种新器件层出不穷,各种实用的新技术日新月异,只有时刻跟踪其发展动态,才能使设计出的系统具有较先进的综合性能。(5)在电路设计时,要充分考虑应用系统各部分的驱动能力。227.1.5应用系统的软件设计1.应用系统软件的功能
系统中的应用软件是根据系统功能要求设计的,软件设计得如何,将决定整个系统的效率和系统性能的优劣。一般地讲,软件的功能可分为两大类:(1)执行软件,它能完成各种实质性的功能。如测量、计算、显示、打印、输出控制等。(2)监控软件,它是专门用来协调各执行模块和操作者的关系,起组织调度的作用。7.1.5应用系统的软件设计1.应用系统软件的功能232.应用系统软件设计原则
各种应用系统的功能相差很大,程序编制者风格各异,因此应用软件的设计因系统而异,因人而不同。但优秀的系统软件还是有其共同的特点和规律的。在进行程序设计时应注意以下原则:(1)根据软件功能要求,将软件分解为几个相对独立的任务,并根据这些任务的联系和时间关系,设计一个合理的软件结构。(2)培养结构化程序设计风格,各功能程序实行模块化、子程序化。这样较便于调试、链接,也便于移植、修改。2.应用系统软件设计原则各种应用系统的功能相差很大,程24(3)建立与选择正确的数学模型与算法。根据功能要求,描述出各个输入变量和输出变量之间的数学关系,这就是建立数学模型。在单片机应用系统中,数学模型的正确程度,是系统性能好坏的决定因素。数学模型是随系统功能的不同而异的。例如,在测量系统中,从模拟输入通道得到的温度、流量、压力等现场信息与该信号对应的实际值往往存在非线性关系,则需要进行线性处理。为了削弱或消除干扰信号的影响,提高系统精度,常采用算术平均法、中值法等数字滤波方法。(4)应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成败的关键部分,设计者千万不可轻视这一步。(3)建立与选择正确的数学模型与算法。25(5)要合理分配系统资源,
包括ROM、RAM、定时器/计数器、中断源等,尤其要注意片内RAM的分配。(5)要合理分配系统资源,267.251系列单片机高级语言C51程序设计基础7.2.1C语言的特点(1)语言简洁,使用方便灵活
C语言的规模较小,关键字只有32个,9种控制语句。书写形式比较自由,表示方法简洁,使用一些简单的方法就可以构造出相当复杂的语句类型和程序结构。(2)可移植性好
在不同的机器上80%的代码是相同的。(3)表达能力强、方式灵活。
具有丰富的数据结构类型和运算符。利用C语言提供的运算符可以组成各种表达式,还可以采用多种方法来获得表达式的值,从而使用户在程序设计时具有较大的灵活性。7.251系列单片机高级语言C51程序设计基础7.2.127(4)可以进行结构化程序设计。
C语言是一种结构化程序设计语言,即程序的逻辑结构可以顺序、选择、循环三种基本结构组成。便于采用自顶向下的、逐步细化的结构化程序设计技术。用C语言编制的程序具有容易理解、便于维护的优点。(5)可以进行模块化程序设计。
C语言是以函数作为程序设计的基本单元的,编译器提供函数库供编程者调用,用户也可以自己编写特殊需要的函数,每一个函数即相当于一个程序模块,因此C语言可以很容易地进行模块化设计。便于多人同时进行集体性开发。(4)可以进行结构化程序设计。28(6)可以直接操作计算机硬件。
C语言具有直接访问计算机物理地址的能力,C51编译器可以直接对51单片机的内部特殊功能寄存器和I/O口进行操作,可以直接访问片内片外存储器,还可以进行位操作。(7)生成的目标代码质量高。
汇编语言程序目标代码的效率是最高的,对于同一个问题,C语言仅比汇编的低10~20%左右。(6)可以直接操作计算机硬件。29与汇编语言比,采用C51编程的优点与汇编语言比,采用C51编程的优点30单片机应用系统的设计规范课件31常用的C51开发环境KeilC51常用的C51开发环境KeilC5132单片机应用系统的设计规范课件337.2.2C51对C语言的扩展1.标识符和关键字
C语言的标识符是用来表示源程序中某个对象名字的,这些对象可以是函数、变量、常量、数据类型、存储方式等等。一个标识符由字符串、数字和下划线组成,开头必须是字符或下划线。C51编译器规定的标示符长度为255个,但只有前32个有效。C语言对于大小写敏感。
关键字是一类固定名称和特定含义的特殊标识符,有时又称保留字。如int、for、do等等。 C51编译器除了支持ANSIC标准的关键字之外,还扩展了如下关键字,共13个。7.2.2C51对C语言的扩展1.标识符和关34单片机应用系统的设计规范课件352.变量的数据类型(1)char字符型用于存放单字节的数据,分有符号与无符号,默认为有符号,signedchar,-128~127,0~255。(2)int整数型signedint和unsignedint。默认为有符号,长度为双字节,范围-32768~32767,0~65535(3)long长整型signedlong和unsignedlong。默认为有符号,长度为四个字节,范围-2147483648~2147483647,0~4294967295。(4)float浮点型占用四个字节,约10-38~1038。(5)*指针型 指针型数据不同于上述四种基本数据类型,它本身是一种变量,但这个变量中存储的是量一个数据的地址。指针变量也有数据类型,它的数据类型表示该指针指向地址中数据的类型。使用指针型变量可以方便的对单片机的各部分物理地址进行直接操作。2.变量的数据类型(1)char字符型36(6)bit位标量 C51的一种扩充的数据类型。利用它可以定义一种位标量。但不能定义指针与数组。值域为0、1。(7)sfr特殊功能寄存器 C51的一种扩充的数据类型。利用它可以访问51系列单片机内部的所有特殊功能寄存器,如定时器方式寄存器TMOD,中断允许控制寄存器IE等,sfr型数据占用一个字节的内存单元。值域为0-255。 sfrP0=0x80;/*定义I/O口P0,其地址位80H*/sfr关键字后必须是一个名字,名字可以任取,但最好符合一般的习惯,等号后边必须是常数,而且必须是特殊功能寄存器的地址。80H~FFH。
(6)bit位标量37单片机应用系统的设计规范课件38(8)sfr1616位特殊功能寄存器 占用两个字节的内存单元。值域为0-65535。用于定义16位的寄存器。(9)sbit可寻址位C51的一种扩充的数据类型。利用它可以访问51单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。使用方法有三种:1.sbit位变量名=位地址;将绝对地址赋予位变量,位地址必须位于80H~FFH之间。例如:sbitOV=0xD2;sbitCY=0xD7; (8)sfr1616位特殊功能寄存器39
2.sbit位变量名=特殊功能寄存器名^位的位置
当可寻址位位于特殊功能寄存器中时可以采用这种方法,“位位置”是一个0~7之间的常数。例如PSW程序状态字寄存器
sfrPSW=0xD0; sbitOV=PSW^2;sbitCY=PSW^7;3.sbit位变量名=字节地址^位的位置以一个常数(字节地址)作为基地址,该常数必须在80H~FFH之间。“位位置”是一个0~7之间的常数。例如: sbitOV=0xD0^2; sbitCY=0xD0^7;
403.变量的存储模式
变量是一种在程序执行过程中能不断变化的量。它有数据类型、存储类型、存储器模式、和有效范围四种属性。C语言规定每个变量必须有一个标识符作为变量名,在使用一个变量前,必须先对变量进行定义,指出其数据类型和存储模式。以便编译系统为其分配存储单元。在C51中对变量进行定义的格式如下:[存储类型]数据类型[存储器类型]变量名表;变量的存储模式是指变量的存储类型与存储器类型
存储类型指明变量的存储区域,而变量的存储类型和变量在程序中说明的位置决定了它的作用范围。存储类型含义与C语言相同。存储类型有四种:auto型、extern型、static型、register型,缺省为auto型。 3.变量的存储模式41C51编译器还允许说明变量的存储器类型。C51编译器完全支持51系列单片机的硬件结构,可以访问其硬件系统的所有部分。存储器类型存储器类型说明data直接访问内部数据存储器(128字节),访问速度最快bdata可位寻址内部数据存储器(16字节),允许位与字节混合访问idata间接访问内部数据存储器(256字节),允许访问全部内部地址pdata分页访问外部数据存储器(256字节),用MOVX@Ri指令访问xdata外部数据存储器(64KB),用MOVX@DPTR指令访问code程序存储器(64KB),用MOVC@A+DPTR指令访问C51编译器还允许说明变量的存储器类型。存储器类型说明da42单片机应用系统的设计规范课件43单片机应用系统的设计规范课件44定义变量时如果省略了“存储器类型”,则按编译模式SAMLL,COMPACT,LARGE所规定的默认存储器类型确定变量的存储区域,(#pragma预编译命令,可以指定函数的默认存储器模式。)C51编译器的三种存储器模式(默认的存储器类型)对变量的影响如下:1.SMALL
变量被定义在8051单片机的内部数据存储器中,因此对这种变量的访问速度最快。另外,所有的对象,包括堆栈,都必须嵌入内部数据存储器,而堆栈的长度是很重要的,实际栈长取决于不同函数的嵌套深度。2.COMPACT变量被定义在分页外部数据存储器中,外部数据段的长度可达256字节。这时对变量的访问是通过寄存器间接寻址(MOVX@Ri)进行的,堆栈位于8051单片机内部数据存储器中。采用这种编译模式时,变量的高8位地址由P2口确定。3.LARGE变量被定义在外部数据存储器中(最大可达64K字节),使用数据指针DPTR来间接访问变量,访问数据速度慢,增加程序代码的长度。定义变量时如果省略了“存储器类型”,则按编译模式SAMLL,45存储器模式决定了缺省变量的存储空间,而访问各空间变量的汇编代码的繁简程度决定了代码率的高低。例如:一个整形变量i,如放于内存18H、19H空间,则++i的操作编译成四条语句:INC0x19MOVA,0x19JNZ0x272DINC0x180x272D:而如果放于外存空间0000H、0001H则++i的操作编译成九条语句:MOVDPTR,0001MOVXA,@DPTRINCAMOVX@DPTR,AJNz#5MOVOPTR,#0000MOVXA,@DPTRINCAMOVX@DPTR,A存储器模式决定了缺省变量的存储空间,而访问各空间变量的汇编代464.函数的参数和局部变量的存储器模式一个函数的存储器模式确定了函数的参数和局部变量在内存中的地址空间,规则与变量定义一致。在定义一个函数时可以明确制定该函数的存储器模式,一般的形式如下:
函数类型函数名(形式参数表)[存储器模式]其中的存储器模式是选项,未说明时则按该函数编译时的默认存储器模式处理。4.函数的参数和局部变量的存储器模式47例如:#pragmalarge /*默认存储器模式为LARGE*/intfunc1(inta1,inta2)small /*指定存储器模式为SMALL*/{ intc; …… ……}intfunc2(intb1,intb2)/*未指定模式,默认存储器模式为LARGE*/{ intc; …… ……}#pragma预编译命令,可以指定函数的默认存储器模式。C51允许采用存储器的混合模式编程,充分利用单片机中有限的存储器空间。同时还可以加快程序运行的速度。例如:485.中断服务函数与寄存器组定义
C51编译器支持在C语言程序中直接编写51单片机的中断服务程序,C51编译对函数定义进行了扩展,增加了一个关键字interrupt,interrupt是函数定义时的一个选项,加上它函数将函数定义成中断服务函数。
函数类型 函数名(形式参数表)[interruptn][usingn]interrupt后面的n为中断号,n的取值范围为0~31,编译器从8n+3处产生中断向量。常用的中断源与中断向量如表所示。5.中断服务函数与寄存器组定义49中断源与中断向量表中断源与中断向量表50C51编译器还扩展了一个关键字using,专门用来选择单片机的寄存器组,缺省时由编译器选择一个寄存器组作为绝对寄存器组访问。C51编译器还扩展了一个关键字using,专门用来选择单片机51编写8051单片机中断函数时应遵循以下规则:(l).中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。(2).中断函数没有返回值,如果企图定义一个返回值将得到不正确的结果。因此建议在定义中断函数时将其定义为void类型,以明确说明没有返回值。(3).在任何情况下都不能直接调用中断函数,否则会产生编译错误。因为中断函数的返回是由8051单片机指令RETI完成的,RETI指令影响8051单片机的硬件中断系统。如果在没有实际中断调求的情况。直接调用中断函数,RETI指令的操作结果会产生一个致命的错误。(4).如果中断函数中用到浮点运算,必须保存浮点寄存器的状态,当没有其它程序执行浮点运算时可以不保存。(5)如果在中断函数中调用了其它函数,则被调用函数所使用的寄存器组必须与中断函数相同。用户必须保证按要求使用相同的寄存器组。否则会产生不正确的结果,这一点必须引起足够的注意。如果定义中断函数时没有使用using选项,则由编译器选择一个寄存器组作绝对寄存器组访问。编写8051单片机中断函数时应遵循以下规则:52#include<reg51.h>
sbitP1_0=P1^0;
voidtimer0(void)interrupt1using1{/*T0中断服务程序入口*/
P1_0=!P1_0;
TH0=-(1000/256);
/*计数初值重装*/
TL0=-(1000%256);
}
voidmain(void)
{
TMOD=0x01;
/*T0工作在定时器方式1*/
P1_0=0;
TH0=-(1000/256);
/*预置计数初值*/
TL0=-(1000%256);
EA=1;
/*CPU开中断*/
ET0=1;
/*T0开中断*/
TR0=1;
/*启动T0*/
do{}while(1);
}#include<reg51.h>
sbitP1_0=536.常用的C51对单片机系统硬件的直接操作方法(1)采用特殊功能寄存器数据类型的方法操作sfrP0=0x80; //定义P0P0=0xFF; //让P0口输出0Xffunsignedcharp0status;p0status=P0; //把P0口的状态值赋给p0status(2)采用可寻址位数据类型的方法操作sbitP10=P1^0; //在reg51.h中有定义P10=1; //6.常用的C51对单片机系统硬件的直接操作方法(1)采用54(3)采用指针的方法voidpointtest(void){charxdata*xdp,dpval;//定义一个指向XDATA存储 器空间的指针 xdp=0x0002; //指针赋值,指向XDATA 存储器地址0002h *xdp=0xAA; //将数据0xAA送往指定的地址 dpval=*xdp; //取0002h中的数据}(3)采用指针的方法55(4)采用预定义宏的方法使用这种方法首先将absacc.h作为头文件包括在源程序中;absacc.h中定义了下列宏CBYTE 寻址CODE区DBYTE 寻址DATA区PBYTE 寻址分页XDATA区(采用MOVX@R0指令)XBYTE 寻址XDATA区(采用MOVX@DPTR指令) 上述宏定义用来对单片机的存储器空间进行绝对地址访问,可以做字节寻址。例如下列语句在外部存储器区域访问地址0x1000xval=XBYTE[0x1000];//把地址0x1000中的内容赋给xval;XBYTE[0x1000]=20;//把20写入到地址0x1000(4)采用预定义宏的方法56图7-9AD574与单片机8031的接口电路7.A/D转换接口及其C51编程图7-9AD574与单片机8031的接口电路7.A/D57CECSR/C12/8A0功能0****不工作100*0启动12位A/D转换100*1启动8位A/D转换101+5v*并行12位数据输出101接地0从20~27管脚输出高8位数据101接地1从16~19管脚输出低4位数据AD574的转换方式和数据输出格式CECSR/C12/8A0功能0****不工作100*0启58#include"reg51.h"#include"absacc.h"#defineADCOM XBYTE[0xff7c]//使A0=0,R/C=0,CS=0#defineADLO XBYTE[0xff7f]//使R/C=1,A0=1,CS=0#defineADHI XBYTE[0xff7d]//使R/C=1,0=0,CS=0sbitr=P3^7; //RDsbitw=P3^6; //WDsbitadbusy=P1^0; //STS#include"reg51.h"59unsignedintAD574(void)//{ bitrc; unsignedintLowByte,HiByte; r=0; w=0;
ADCOM=0; do{rc=adbusy;}while(rc==1); HiByte=(unsignedint)(ADHI<<4); LowByte=(unsignedint)((ADLO>>4)&0x0f); return(HiByte+ LowByte);}unsignedintAD574(void)//60演讲完毕,谢谢观看!演讲完毕,谢谢观看!61第七章单片机应用系统设计概述与高级语言编程7.1单片机应用系统设计概述
单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些系统能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。第七章单片机应用系统设计概述与高级语言编程7.1单片627.1.1单片机应用系统的分类按照单片机系统扩展与系统配置的状况,单片机应用系统可分为最小系统、典型应用系统和增强应用系统等。1.最小应用系统
最小应用系统是指能维持单片机运行的最简配置系统。这种系统结构简单、成本低廉,常构成一些简单的控制系统,如开关状态的输入/输出控制、时序控制等。这种应用系统的硬件电路构成很简单,对于片内有程序存储器的单片机,只要配上晶振、复位电路和电源就可以构成最小应用系统。而对于片内无程序存储器的单片机,其最小应用系统除了配置晶振、复位电路和电源外,还需扩展程序存储器。图7-1所示是8031的最小系统。最小应用系统的功能完全取决于单片机芯片技术水平。7.1.1单片机应用系统的分类63单片机应用系统的设计规范课件64AT89C51的最小系统AT89C51的最小系统65ADuC812是一个完全集成的12位数据采集系统,在一个芯片内结合了高性能的自校准多通道12位ADC,双12位DAC和可编程8位微控制器(与8051兼容的指令集)。片内的8K字节闪速/电擦除存储器、640字节片内闪速/电擦除数据存储器和256字节的片内数据静态存储器,均由可编程8051兼容内核控制。另外微控制器具有包括看门狗定时器、电源监视器和ADCDMA功能,为多处理器接口和I/O扩展提供了32条可编程的I/O线、I2C兼容的SPI和标准UART串行口I/O等。ADuC812单片智能转换器(MicroConverter®)ADuC812是一个完全集成的12位数据采集系统,在一个芯片66ADuC812单片智能转换器(MicroConverter®)ADuC812单片智能转换器(MicroConverter672.典型应用系统
典型应用系统是指单片机要完成一般工业测、控功能所必须具备的硬件结构系统。它包括系统扩展与系统配置两部分内容。
系统扩展是指在单片机内部程序存储器(ROM/EPROM)、数据存储器(RAM)及输入/输出(I/O)口等部分不能满足系统要求时,需在片外扩展的部分。扩展多少,视系统要求而定。
系统配置是指单片机为满足应用要求所应配置的基本外部设备,如键盘、显示器等。2.典型应用系统68单片机应用系统的设计规范课件693.增强应用系统
增强应用系统是指包含为了加强典型系统的人机对话、与其他设备通讯和系统测控功能而增设外设与接口的系统,如图7-3所示。3.增强应用系统707.1.2单片机应用系统的构成方式单片机应用系统有三种结构方式。1.专用系统
这种系统的扩展与配置完全是按照应用系统的功能要求设计的。系统硬件只需满足应用要求,系统中只配备应用软件(固化在ROM或EPROM中),故系统有最佳配置,系统的软应件资源能得到最充分的利用。但这种系统无自开发能力,要有开发工具的支持。采用这种结构方式,要求有较强的软硬件开发基础。
专用系统主要用在大批量生产的仪器、设备和家用电器等方面作测控用。一般不需要很多按键,甚至可以不要。7.1.2单片机应用系统的构成方式单片机应用系统有三种712.模块化系统
由于单片机应用系统的扩展与配置具有典型性,可把这些典型配置做成用户系列板(比如主机板、A/D板、D/A板、A/D/A板、I/O板、打印机接口板、通信接口板等),供用户选择使用。用户可根据应用系统的要求,选择适当的功能模块组合成自己的测控系统。模块化结构是大、中型应用系统的发展方向,它可以大大减少用户在硬件开发上投入的力量,且可使硬件开发周期缩到最短。但目前我国单片机应用系统模块化产品水平尚不高,软硬件配套工作还不完善,有待进一步发展。2.模块化系统723.单片单板机系统
受通用CPU单板机(如TP801等)的影响,同时也考虑多种应用目的,国内有用单片机来构成单片单板机。这种系统的硬件按典型应用系统配置,并配有监控程序,具有自开发能力。但是,单板机的固定结构形式常使应用系统不能获得最佳配置(即软硬件资源不能得到充分利用),产品批量大时,软、硬件资源浪费较大。但这种系统可以减少研制时的硬件工作量和部分软件工作量,并且具有二次开发能力,故可加速应用系统的研制速度,缩短开发周期,通常可用于教学系统。3.单片单板机系统737.1.3单片机应用系统设计的基本要求1.对设计者的要求(1)一定的硬件基础知识。设计者不仅要掌握各种单片机、存储器(如EPROM、E2PROM、RAM)和I/O接口(如8255、8155、8279及其它功能器件),还要掌握键盘、开关、检测各种输入量的传感器、控制用的执行装置以及与单片机和各种仪器进行通信的接口等。(2)一定的软件设计能力。设计者能根据系统的要求,设计出所需要的程序。比如数据采样程序、A/D或D/A转换程序、数码转换程序、数字滤波程序、标度变换程序、键盘处理程序、显示及打印程序以及各种控制算法和非线性补偿程序等等。7.1.3单片机应用系统设计的基本要求1.对设计者的要74(3)有综合运用和分析的能力。
设计者要能够将一个单片机应用系统的复杂设计任务划分成许多便于实现的组成部分,尤其是对软件和硬件折衷问题能够恰当地运用。(4)设计者还要掌握生产过程的工艺性能及被测参数的测量方法以及被控对象的动、静态特性等。(3)有综合运用和分析的能力。752.对单片机应用系统的要求1.可靠性要高
这是对应用系统最重要的一个基本要求。提高应用系统可靠性的常用几种方法:(1)采用双机冗余系统;(2)采用集散式控制系统;(3)提高元器件的可靠性;(4)进行软硬件滤波;(5)提高印刷电路板的质量,设计电路板时布线及接地要合理;(6)对供电电源采用抗干扰措施;(7)输入输出通道采取抗干扰措施。
2.对单片机应用系统的要求1.可靠性要高762.自诊断功能要强
在进行系统整体设计时,一定要考虑系统的故障自动检测和处理的功能。当系统正常运行时,可定时对各模块进行自诊断,并对外界出现的异常情况作出快速应变处理。对于出现无法解决的情况,应能及时切换后备装置投入工作,或及时报警,以提醒人工干预。对于集散控制系统,主机除了对各子系统的例行监督管理外,还要诊断各子系统是否在正常运转,当发现某个系统有故障时,应立即进行处理。2.自诊断功能要强773.操作和维修要方便在系统的硬件和软件设计时,应考虑操作和维修方便,尽量降低对操作人员的专业知识的要求,以便于系统的推广。系统的操作控制开关不能太多、太复杂,操作顺序应简单明了,最好具有一定的容错性,输入输出应用十进制表示,功能符号简明直观。结构应规范化、模块化,并配有现场故障诊断程序。3.操作和维修要方便784.性能/价格比高一个单片机应用系统能否被广泛地采用,关键在于是否有很高的性能/价格比。硬件软化是提高系统性能/价格比的实用方法。在系统总体设计时,应尽可能减少硬件成本,能用软件实现的功能尽量用软件实现。在不增加成本的基础上,提高软件和硬件结构的通用性和可扩充性是十分重要的。
上述四点是设计单片机应用系统时应考虑的基本要求。对不同的应用系统还有许多特定的要求,如精度、速度、体积、重量及监视手段等,这些均须根据具体系统的要求而定。4.性能/价格比高797.1.4单片机应用系统硬件设计概述
1.应用系统硬件设计内容一个单片机应用系统的硬件设计包括两大部分内容:
(1)系统扩展。通过系统扩展,构成一个完善的计算机系统,它是单片机应用系统中的核心部分。系统的扩展方法、内容、规模与所选用的单片机系列以及供应状态有关。扩展部分设计包括存储器扩展和接口扩展。存储器的扩展指EPROM、EEPROM和RAM的扩展,接口扩展是指8255、8155、8279以及其它功能器件的扩展。
(2)各功能模块的设计。如信号测量功能模块、信号控制功能模块、人机对话功能模块、通讯功能模块等,根据系统功能要求配置相应的A/D、D/A、键盘、显示器、打印机等外围设备。7.1.4单片机应用系统硬件设计概述1.应用系统硬件设802.单片机应用系统硬件设计应遵循的基本原则为使硬件设计具有先进性、合理性,应注意以下一些原则:
(1)尽可能选择典型电路;尤其是要优先选用符合单片机常规用法的标准化、模块化的典型电路。这样可提高设计的成功率和结构的灵活性。(2)系统的扩展及各功能模块的设计应充分满足应用系统的功能要求,并留有适当的余地,以便进行二次开发。2.单片机应用系统硬件设计应遵循的基本原则为使硬件设计具有81(3)硬件设计要结合应用软件方案一并考虑;
硬件电路结构与软件方案会产生相互影响,综合考虑的原则是;能用软件实现的功能尽可能由软件来实现,以便简化硬件电路,但必须注意系统对速度与实时性的要求。(4)应用系统中相关的器件要尽可能做到性能匹配;
例如选用晶振频率较高时,存储器的存取时间有限,应该选择允许存取速度较高的芯片;选择CMOS芯片单片机构成低功耗系统时,系统中的所有芯片都应该选择低功耗的产品。
(3)硬件设计要结合应用软件方案一并考虑;82(5)在电路设计时,要充分考虑应用系统各部分的驱动能力。驱动能力不足时,系统工作不可靠甚至无法工作,而这种不可靠很难通过一般的测试手段来确定。因此,要重视这一问题。(6)可靠性与系统的抗干扰设计应贯穿在应用系统设计的全过程;它包括芯片、器件的选择,去噪滤波、印刷电路板布线、通道隔离等。(7)设计时要尽可能掌握最新器件与最新技术,并把它们用于设计中。因为电子技术发展很快,各种新器件层出不穷,各种实用的新技术日新月异,只有时刻跟踪其发展动态,才能使设计出的系统具有较先进的综合性能。(5)在电路设计时,要充分考虑应用系统各部分的驱动能力。837.1.5应用系统的软件设计1.应用系统软件的功能
系统中的应用软件是根据系统功能要求设计的,软件设计得如何,将决定整个系统的效率和系统性能的优劣。一般地讲,软件的功能可分为两大类:(1)执行软件,它能完成各种实质性的功能。如测量、计算、显示、打印、输出控制等。(2)监控软件,它是专门用来协调各执行模块和操作者的关系,起组织调度的作用。7.1.5应用系统的软件设计1.应用系统软件的功能842.应用系统软件设计原则
各种应用系统的功能相差很大,程序编制者风格各异,因此应用软件的设计因系统而异,因人而不同。但优秀的系统软件还是有其共同的特点和规律的。在进行程序设计时应注意以下原则:(1)根据软件功能要求,将软件分解为几个相对独立的任务,并根据这些任务的联系和时间关系,设计一个合理的软件结构。(2)培养结构化程序设计风格,各功能程序实行模块化、子程序化。这样较便于调试、链接,也便于移植、修改。2.应用系统软件设计原则各种应用系统的功能相差很大,程85(3)建立与选择正确的数学模型与算法。根据功能要求,描述出各个输入变量和输出变量之间的数学关系,这就是建立数学模型。在单片机应用系统中,数学模型的正确程度,是系统性能好坏的决定因素。数学模型是随系统功能的不同而异的。例如,在测量系统中,从模拟输入通道得到的温度、流量、压力等现场信息与该信号对应的实际值往往存在非线性关系,则需要进行线性处理。为了削弱或消除干扰信号的影响,提高系统精度,常采用算术平均法、中值法等数字滤波方法。(4)应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成败的关键部分,设计者千万不可轻视这一步。(3)建立与选择正确的数学模型与算法。86(5)要合理分配系统资源,
包括ROM、RAM、定时器/计数器、中断源等,尤其要注意片内RAM的分配。(5)要合理分配系统资源,877.251系列单片机高级语言C51程序设计基础7.2.1C语言的特点(1)语言简洁,使用方便灵活
C语言的规模较小,关键字只有32个,9种控制语句。书写形式比较自由,表示方法简洁,使用一些简单的方法就可以构造出相当复杂的语句类型和程序结构。(2)可移植性好
在不同的机器上80%的代码是相同的。(3)表达能力强、方式灵活。
具有丰富的数据结构类型和运算符。利用C语言提供的运算符可以组成各种表达式,还可以采用多种方法来获得表达式的值,从而使用户在程序设计时具有较大的灵活性。7.251系列单片机高级语言C51程序设计基础7.2.188(4)可以进行结构化程序设计。
C语言是一种结构化程序设计语言,即程序的逻辑结构可以顺序、选择、循环三种基本结构组成。便于采用自顶向下的、逐步细化的结构化程序设计技术。用C语言编制的程序具有容易理解、便于维护的优点。(5)可以进行模块化程序设计。
C语言是以函数作为程序设计的基本单元的,编译器提供函数库供编程者调用,用户也可以自己编写特殊需要的函数,每一个函数即相当于一个程序模块,因此C语言可以很容易地进行模块化设计。便于多人同时进行集体性开发。(4)可以进行结构化程序设计。89(6)可以直接操作计算机硬件。
C语言具有直接访问计算机物理地址的能力,C51编译器可以直接对51单片机的内部特殊功能寄存器和I/O口进行操作,可以直接访问片内片外存储器,还可以进行位操作。(7)生成的目标代码质量高。
汇编语言程序目标代码的效率是最高的,对于同一个问题,C语言仅比汇编的低10~20%左右。(6)可以直接操作计算机硬件。90与汇编语言比,采用C51编程的优点与汇编语言比,采用C51编程的优点91单片机应用系统的设计规范课件92常用的C51开发环境KeilC51常用的C51开发环境KeilC5193单片机应用系统的设计规范课件947.2.2C51对C语言的扩展1.标识符和关键字
C语言的标识符是用来表示源程序中某个对象名字的,这些对象可以是函数、变量、常量、数据类型、存储方式等等。一个标识符由字符串、数字和下划线组成,开头必须是字符或下划线。C51编译器规定的标示符长度为255个,但只有前32个有效。C语言对于大小写敏感。
关键字是一类固定名称和特定含义的特殊标识符,有时又称保留字。如int、for、do等等。 C51编译器除了支持ANSIC标准的关键字之外,还扩展了如下关键字,共13个。7.2.2C51对C语言的扩展1.标识符和关95单片机应用系统的设计规范课件962.变量的数据类型(1)char字符型用于存放单字节的数据,分有符号与无符号,默认为有符号,signedchar,-128~127,0~255。(2)int整数型signedint和unsignedint。默认为有符号,长度为双字节,范围-32768~32767,0~65535(3)long长整型signedlong和unsignedlong。默认为有符号,长度为四个字节,范围-2147483648~2147483647,0~4294967295。(4)float浮点型占用四个字节,约10-38~1038。(5)*指针型 指针型数据不同于上述四种基本数据类型,它本身是一种变量,但这个变量中存储的是量一个数据的地址。指针变量也有数据类型,它的数据类型表示该指针指向地址中数据的类型。使用指针型变量可以方便的对单片机的各部分物理地址进行直接操作。2.变量的数据类型(1)char字符型97(6)bit位标量 C51的一种扩充的数据类型。利用它可以定义一种位标量。但不能定义指针与数组。值域为0、1。(7)sfr特殊功能寄存器 C51的一种扩充的数据类型。利用它可以访问51系列单片机内部的所有特殊功能寄存器,如定时器方式寄存器TMOD,中断允许控制寄存器IE等,sfr型数据占用一个字节的内存单元。值域为0-255。 sfrP0=0x80;/*定义I/O口P0,其地址位80H*/sfr关键字后必须是一个名字,名字可以任取,但最好符合一般的习惯,等号后边必须是常数,而且必须是特殊功能寄存器的地址。80H~FFH。
(6)bit位标量98单片机应用系统的设计规范课件99(8)sfr1616位特殊功能寄存器 占用两个字节的内存单元。值域为0-65535。用于定义16位的寄存器。(9)sbit可寻址位C51的一种扩充的数据类型。利用它可以访问51单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。使用方法有三种:1.sbit位变量名=位地址;将绝对地址赋予位变量,位地址必须位于80H~FFH之间。例如:sbitOV=0xD2;sbitCY=0xD7; (8)sfr1616位特殊功能寄存器100
2.sbit位变量名=特殊功能寄存器名^位的位置
当可寻址位位于特殊功能寄存器中时可以采用这种方法,“位位置”是一个0~7之间的常数。例如PSW程序状态字寄存器
sfrPSW=0xD0; sbitOV=PSW^2;sbitCY=PSW^7;3.sbit位变量名=字节地址^位的位置以一个常数(字节地址)作为基地址,该常数必须在80H~FFH之间。“位位置”是一个0~7之间的常数。例如: sbitOV=0xD0^2; sbitCY=0xD0^7;
1013.变量的存储模式
变量是一种在程序执行过程中能不断变化的量。它有数据类型、存储类型、存储器模式、和有效范围四种属性。C语言规定每个变量必须有一个标识符作为变量名,在使用一个变量前,必须先对变量进行定义,指出其数据类型和存储模式。以便编译系统为其分配存储单元。在C51中对变量进行定义的格式如下:[存储类型]数据类型[存储器类型]变量名表;变量的存储模式是指变量的存储类型与存储器类型
存储类型指明变量的存储区域,而变量的存储类型和变量在程序中说明的位置决定了它的作用范围。存储类型含义与C语言相同。存储类型有四种:auto型、extern型、static型、register型,缺省为auto型。 3.变量的存储模式102C51编译器还允许说明变量的存储器类型。C51编译器完全支持51系列单片机的硬件结构,可以访问其硬件系统的所有部分。存储器类型存储器类型说明data直接访问内部数据存储器(128字节),访问速度最快bdata可位寻址内部数据存储器(16字节),允许位与字节混合访问idata间接访问内部数据存储器(256字节),允许访问全部内部地址pdata分页访问外部数据存储器(256字节),用MOVX@Ri指令访问xdata外部数据存储器(64KB),用MOVX@DPTR指令访问code程序存储器(64KB),用MOVC@A+DPTR指令访问C51编译器还允许说明变量的存储器类型。存储器类型说明da103单片机应用系统的设计规范课件104单片机应用系统的设计规范课件105定义变量时如果省略了“存储器类型”,则按编译模式SAMLL,COMPACT,LARGE所规定的默认存储器类型确定变量的存储区域,(#pragma预编译命令,可以指定函数的默认存储器模式。)C51编译器的三种存储器模式(默认的存储器类型)对变量的影响如下:1.SMALL
变量被定义在8051单片机的内部数据存储器中,因此对这种变量的访问速度最快。另外,所有的对象,包括堆栈,都必须嵌入内部数据存储器,而堆栈的长度是很重要的,实际栈长取决于不同函数的嵌套深度。2.COMPACT变量被定义在分页外部数据存储器中,外部数据段的长度可达256字节。这时对变量的访问是通过寄存器间接寻址(MOVX@Ri)进行的,堆栈位于8051单片机内部数据存储器中。采用这种编译模式时,变量的高8位地址由P2口确定。3.LARGE变量被定义在外部数据存储器中(最大可达64K字节),使用数据指针DPTR来间接访问变量,访问数据速度慢,增加程序代码的长度。定义变量时如果省略了“存储器类型”,则按编译模式SAMLL,106存储器模式决定了缺省变量的存储空间,而访问各空间变量的汇编代码的繁简程度决定了代码率的高低。例如:一个整形变量i,如放于内存18H、19H空间,则++i的操作编译成四条语句:INC0x19MOVA,0x19JNZ0x272DINC0x180x272D:而如果放于外存空间0000H、0001H则++i的操作编译成九条语句:MOVDPTR,0001MOVXA,@DPTRINCAMOVX@DPTR,AJNz#5MOVOPTR,#0000MOVXA,@DPTRINCAMOVX@DPTR,A存储器模式决定了缺省变量的存储空间,而访问各空间变量的汇编代1074.函数的参数和局部变量的存储器模式一个函数的存储器模式确定了函数的参数和局部变量在内存中的地址空间,规则与变量定义一致。在定义一个函数时可以明确制定该函数的存储器模式,一般的形式如下:
函数类型函数名(形式参数表)[存储器模式]其中的存储器模式是选项,未说明时则按该函数编译时的默认存储器模式处理。4.函数的参数和局部变量的存储器模式108例如:#pragmalarge /*默认存储器模式为LARGE*/intfunc1(inta1,inta2)small /*指定存储器模式为SMALL*/{ intc; …… ……}intfunc2(intb1,intb2)/*未指定模式,默认存储器模式为LARGE*/{ intc; …… ……}#pragma预编译命令,可以指定函数的默认存储器模式。C51允许采用存储器的混合模式编程,充分利用单片机中有限的存储器空间。同时还可以加快程序运行的速度。例如:1095.中断服务函数与寄存器组定义
C51编译器支持在C语言程序中直接编写51单片机的中断服务程序,C51编译对函数定义进行了扩展,增加了一个关键字interrupt,interrupt是函数定义时的一个选项,加上它函数将函数定义成中断服务函数。
函数类型 函数名(形式参数表)[interruptn][usingn]interrupt后面的n为中断号,n的取值范围为0~31,编译器从8n+3处产生中断向量。常用的中断源与中断向量如表所示。5.中断服务函数与寄存器组定义110中断源与中断向量表中断源与中断向量表111C51编译器还扩展了一个关键字using,专门用来选择单片机的寄存器组,缺省时由编译器选择一个寄存器组作为绝对寄存器组访问。C51编译器还扩展了一个关键字using,专门用来选择单片机112编写8051单片机中断函数时应遵循以下规则:(l).中断函数不能进行参数传递,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版成都事业单位劳动合同范本(含劳动合同签订及备案要求)3篇
- 2024年药理学研究员岗位协议3篇
- 2025版开发商与二手房买家房屋置换及装修服务合同3篇
- 建筑物给排水安全合同
- 野营基地建设合同进度跟踪
- 公共设施维护招标实施细则
- 2024年铁路客运特许经营合同3篇
- 物流信贷证明业务
- 保定市河道水利工程规划
- 婚礼场地租赁合同违约
- 2022年1月自考00850广告设计基础试题及答案含解析
- 娱乐演艺居间合同协议书范本
- 24春国家开放大学《农业推广》调查报告参考答案
- 70岁以上老人考驾照,“三力”测试题库及答案
- 焊接技术实用手册
- 腰椎射频术后护理
- 食堂安全用电知识培训课件
- 福建省厦门市2023-2024学年高二上学期期末考试语文试题(解析版)
- 湖北省黄冈市黄州区启黄中学2023年数学九年级第一学期期末调研模拟试题含解析
- 亲子鉴定报告样本
- 智慧纪委监委建设方案
评论
0/150
提交评论