下载

3下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 单片微型计算机技术资料单片机原理

单片微型计算机技术资料单片机原理.doc

单片微型计算机技术资料单片机原理

飞雪
2018-09-07 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《单片微型计算机技术资料单片机原理doc》,可适用于IT/计算机领域

单片机原理第章单片机概述单片机的历史及发展概况单片机单片微型计算机简称为单片机它是把组成微型计算机的各种功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROMIO接口电路、定时器计数器以及串行通讯接口等部件制作在一块集成芯片上而构成的一个完整的微型计算机。由于它的结构与指令功能都是按照工业控制要求设计的故有称为单片微控制器(或单片微型计算机)。单片机发展的三个阶段:单片机作为微型计算机的一个分支其产生与发展主要分为三个阶段:.初级单片机代表芯片MCS。单片机内部集成有位CPU、并行IO口、位定时器计数器、RAM等无串行口寻址范围不大于K。.高性能单片机典型芯片MCS。片内继承有串行IO口具有多级中断系统定时器计数器为位片内RAM和ROM容量相对增大寻址范围可达K。该类单片机在我国大量使用。.位单片机巩固、完善及位单片机推出阶段典型芯片MCS。CPU为位片内RAMROM容量进一步增大集成有高速输入输出部件、多级中断、多通道AD等。.位单片机阶段(嵌入系统)。位单片机已进入实用阶段(ARM系统)。单片机的应用单片机是为了实现控制功能而设计的一种微型计算机其应用首先是控制功能。实现手段为嵌入方式即嵌入到对象环境中作为一种智能控制单元。其应用已深入到我们生活的各个方面。.仪器仪表中的应用温度、湿度、流量、流速、压力、厚度、电压、电流、频率等的测量仪表。优点:数字化、智能化、微型化功能提高。.网络通讯。.测控系统。.日用家电。具体应用实例第章MCS单片机的结构与原理提要:MCS单片机的硬件结构与工作原理。熟悉、理解单片机硬件结构对于应用设计者是十分重要的因为它是单片机应用系统设计的基础。本章我们要全面了解MCS单片机的硬件功能、系统结构、存储器结构、IO口、复位电路、CPU时序、CPU引脚功能和单片机的工作方式等。MCS系列单片机是Intel公司生产的一系列单片机的总称这一系列的单片机包含有很多品种如、、、、、等。功能有增有减指令兼容。MCS单片机硬件结构介绍MCS单片机的硬件结构特别是面向用户的一些硬件结构并将从硬件设计和程序设计的角度来分析MCS单片机的硬件结构重点介绍其应用特性和外部特性即从用户的角度来分析:单片机向我们提供了哪些资源及如何使用这些资源。MCS单片机硬件结构的特点.ROM和RAM存储器类型单片机系列掩模ROMEPROMRAMBKBBKBBBKB择:一是必须选择出要操作的存储器即片选二是必须选择出该芯片的存储字节单元即字选。对存储器选址常用的两中方法是线选法和地址译码法。线选法寻址当扩展存储器采用少量数据存储器芯片时比较简单的一种译码方法是线选法寻址。图是利用两片和两片分别扩展KB数据存储器和蔼KB程序存储器的系统连接图。由图可以看出两片数据存储器芯片的片选信号分别由P口的两根地址先进行控制此法称为线选译码法。计算每个芯片的字节单元地址空间应该是在本芯片被选中而其它同类芯片未被选中的情况下计算得到的。所谓同类芯片指的是所有扩展程序存储器芯片属于程序存储器类而所有扩展存储器芯片和IO端口属于数据存储器类。需要指出的是同一个单片机系统中数据存储器芯片地址和程序存储器芯片地址可以具有相同的地址空间而不会造成混乱这主要是由CPU取指令、存取数据时分别给出不同的控制信号PSEN和RD、WR决定的。尽管送出的地址相同PSEN有效时CPU操作的对象是程序存储器芯片而RD或WR有效时CPU操作的对象是数据存储器芯片。线选法的优点是连接简单不需要专门设计逻辑电路比较适合一些扩展较为简单的场合缺点则是芯片占有的空间地址不紧凑并且利用率低。地址译码法选址地址译码法选址由译码器组成译码电路译码电路将地址空间分成许多块各个输出分别选通各自连接的存储器芯片这样既充分利用存储器空间又避免了空间分散的缺点。常用译码芯片有LS和LS。、程序存储器空间与数据存储器空间的混合MCS单片机扩展的数据存储器空间和程序存储器空间在逻辑上是分开的它们在执行不同的指令时由硬件产生不同的选通信号从而选通不同的逻辑空间。在实际设计和开发单片机系统时编写的程序需经反复调试、修改才能成为使用程序。如果把程序存放在EPROM中进行调试不能随时修改语句而放在RAM中把RAM作为程序存储器则可以方便地一面调试程序一面读写修改程序从而变得十分方便。用一片KBEPROM扩展的系统。将MCS的读信号和程序存储器选通信号相”与”后,其输出控制的读允许信号端,使程序空间和数据空间汇合。在执行MOVX指令时,产生读和写信号,从读取或写入数据,而在执行2864中的程序时程序存储器选通信号选通2864的片输出端从中取出指令代码到CPU中执行。第四次作业:.什么是ROM和RAM?简述各自的特点?芯片功能引脚各有哪些?.简述单片机系统中的三总线。系统扩展时单片机提供的三大总线信号有哪些?怎样生成数据和地址线?.画出8031单片机采用2片2764EPROM芯片扩展16KB程序存储器的电路图。.画出8031单片机扩展一片2764和一片6264的电路图指出各个芯片的地址范围。第章中断和中断系统中断系统的基本概念中断的概念当CPU正在运行时外部发生的某一随机事件请求CPU迅速去处理于是CPU暂时中止现行的程序转取处理所发生的事件(执行中断服务程序)。处理完该事件后再回到原来被终止的地方继续原来的程序。这种在程序执行过程中由于随机事件的发生而被中断运行的情况称为中断。与中断有关的术语:()中断系统 实现中断功能的部件。()中断源  产生中断请求的事件。()中断申请(中断请求) 中断源向CPU提出的处理请求。()中断响应过程 CPU暂时中止自身事务转去执行事件处理的过程。()中断服务(中断处理) 对整个的处理过程。()中断返回 事件处理完毕CPU再回到原程序被中止的地方继续执行程序。()主程序 在中断之前正在运行的程序。()中断服务程序 响应中断之后CPU执行的处理程序。中断过程也可以描述为:中断源提出中断申请CPU中断系统响应中断之后进行中断处理处理完毕中断返回。中断类似程序调用子程序但存在很大的不同。主要区别在于中断的发生是随机的而调用子程序是编程人员在程序上事先安排好的。对不同类型的中断中断服务程序都有固定的内存入口地址中断服务程序硬件调用。中断的用途中断的提出主要是为了解决以下的问题:()解决高速CPU与低速外部设备之间的速度协调问题()及时处理突发事件()实时控制()实现人机联系()实现多机联系。中断系统中断系统的任务中断系统是计算机处理各类中断的综合服务系统主要解决的问题如下:)中断源以什么方式提出中断请求CPU如何识别提出中断的中断源)不同设备有不同的中断服务程序CPU如何获得相应中断服务程序的起始地址(入口地址))当CPU响应某设备的中断请求正在为其服务时其它设备是否也可以中断CPU。)两个以上的设备同时请求中断时应如何处理。中断系统的基础知识()中断源的设置 2个外部中断源2个定时器中断源一个串行口中断。()中断请求的提出 通常CPU为每个中断源设置一个中断请求触发器把该触发器设置为“1”时向CPU发出中断请求且一直保持这一状态直到CPU响应该中断后才能而且必须清除这一信号以防止重复中断。中断优先级 ()一个中断系统通常都会设置多个中断源 有时出现几个中断源同时提出中断请求的情况CPU该响应哪一个? 为了保证CPU能及时、准确地处理好这些中断用户应事先根据事件处理的轻重缓急程度规定优先级。中断优先级是指CPU响应各中断请求的一种先后次序。CPU先响应优先级高的中断请求后响应优先级低的中断请求。一般地把最重要最紧急的中断源赋给最高优先权然后根据轻重缓急依此赋予优先级。CPU根据个中断源的优先级别决定先响应哪个中断请求。()当CPU正在执行中断服务程序时又有新的中断源提出申请CPU是怎样处理的呢?对于只许单重中断的情形不管新来的中断优先级如何CPU会一概不理直到执行完现行的中断服务程序CPU才能够响应它。对于多重中断若新来的中断优先级别高则CPU会中断现行的中断服务程序响应优先级别高的中断在高优先级别中断处理完后再返回到原先的中断服务程序。这个过程称为中断嵌套。中断屏蔽(或禁止中断)为了增加控制的灵活性每个中断源都对应一个中断屏蔽触发器来控制该中断源的申请能否送到CPU。当该屏蔽触发器的状态为“0”时CPU不响应该中断源的中断申请这称为中断屏蔽或中断禁止反之称为中断开放。只有中断未被屏蔽时CPU才能响应该中断请求信号。中断源的识别所谓中断源的识别是指当CPU要响应某个中断请求时如何找到该中断源的中断服务程序入口地址执行相应的中断处理程序进行中断处理。解决该问题的方法有以下几种方法:(1)软件法 软件法是利用程序来识别中断源。CPU响应中断后硬件只提供一个中断入口所有的中断源都从这个中断入口进入中断源识别程序再按照事先编好的中断源的优先级次序依此查询每个中断源的中断请求触发器的状态再根据触发器的状态转去执行中断服务程序。(2)硬件法 用软件识别中断源硬件电路结构简单但响应速度慢特别在中断源的数目多时更是这样。现在的计算机一般都由硬件电路根据提出中断请求的中断源的数目自动找到该中断源中断服务程序的入口地址。(3)软件、硬件相结合的方法 该方法能够综合硬件法快速和软件法结构简单的优点较快地识别数目较多的中断源利用有限的中断入口迅速地响应较多的中断申请。中断响应和中断处理过程一个完整的中断过程应包括中断请求、中断判优、中断响应、中断处理和中断返回。首先中断源应提出申请在中断允许的下CPU首先响应优先级别高的中断请求等处理完高优先级别中断源的中断服务程序后再响应中断优先级别低的中断请求CPU暂停现行程序将PC中下一条指令的地址入栈保护起来响应中断请求进入中断服务程序中断服务程序首先保护现场接着执行中断源服务程序主体部分然后再恢复现场最后返回主程序。MCS单片机中断系统结构及中断控制MCS-51单片机中大部分芯片设立了5个中断源由特殊功能寄存器TCON的相应位表示了各中断源的状态。提供2个中断优先级。各中断源可以由中断优先级控制寄存器IP编程为高优先级或低优先级。中断源的排列顺序由中断优先级控制寄存器和内部查询电路共同决定并且各中断源可以由中断允许寄存器IE定义为开放或屏蔽状态。中断源外部中断源2个内部中断源2个串行口中断1个―――共5个。中断控制第六次课MCS-51单片机中断系统有以下4个寄存器:定时控制寄存器TCON串行口控制寄存器SCON中断允许寄存器IE中断优先级寄存器IP其中TCON和SCON只有一部分位用于中断控制。通过对以上各特殊功能寄存器的各个位进行编程可实现各种中断控制功能。TCON寄存器D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88H各控制位的意义:TF1――定时器/计数器T1的溢出中断请求标志位。当T1计数以后T1从初值开始加1计数。当计数器计满产生溢出后该位由硬件置“1”并向CPU发出中断请求。当CPU响应中断时硬件将自动对TF1为清“0”。也可以用软件查询该标志然后用软件清“0”。TF0――――定时器/计数器T0的溢出中断请求标志位。当T计数以后T从初值开始加1计数。当计数器计满产生溢出后该位由硬件置“1”并向CPU发出中断请求。当CPU响应中断时硬件将自动对TF为清“0”。也可以用软件查询该标志然后用软件清“0”。IE外部中断1的中断请求标志位。当检测到外部中断1的引脚上存在有效的中断请求信号时由硬件使IE1置“1”。当CPU响应该中断时:若外部中断触发方式为边沿触发则由硬件使IE1清“0”若外部中断触发方式为电平触发则必须由软件对IE1及时清“0”。IT1―――外部中断1的中断方式控制位。当IT1=时外部中断1为边沿触发方式。该位由硬件置“1”。当CPU响应该中断时由硬件使IE1位清“0”。 IT1=0外部中断1为低电平触发。若外部中断1请求信号为低电平则使IE1=1若外部中断1请求信号为高电平则使IE1清“0”。IT0―――外部中断0的中断请求标志。SCON寄存器D7D6D5D4D3D2D1D0   TIRITI―――串行口发送中断请求标志位。串行口每发送完一帧串行数据硬件置“1“该标志位。但需要注意的是CPU响应中断时并不能自动清”0“TI标志位必须在中断服务程序中用软件对TI清”0“。RI―――串行口中断接收请求标志位。串行口每接收完一个串行帧硬件置“1”该位。同样CPU在响应中断时不会自动清除RI位必须由软件清“0“该标记位。IE(中断允许控制)D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0AFHACHABHAAHA9HA8HMCS单片机对中断源的开放或屏蔽时由中断允许寄存器IE控制的。中断允许寄存器IE对中断的开放和屏蔽实现两级控制。所谓两级控制就是有一个总中断控制位EA和各中断源自己的中断允许控制位。当EA=0时屏蔽所有的中断申请即任何中断申请都不接受当EA=1时CPU开放中断但各个中断源是否允许开放还要由IE的低5位的个对应控制位的状态进行中断允许控制。EA―――中断允许总控制位。EA=0屏蔽所有中断请求EA=1开放中断。ES――串行口中断允许ES=0屏蔽ES=1允许。ET1――定时器/计数器T1的溢出中断允许位。0禁止1允许。EX1――外部中断1的中断允许位。0禁止1允许。  ET0――定时器/计数器T0的溢出中断允许位。0禁止1允许。EX0―――外部中断0的中断允许位。0禁止1允许。单片机复位后IE中各位为0。例6-1 假设允许片内定时/计数器1和0允许中断禁止其它中断。试根据假设条件设置IE的相应位。MOVIE,#AH用字节操作用位操作SETBETSETBETSETBEA中断优先级控制MCS单片机有两个中断优先级每一个中断请求都可以编程为高优先级中断或低优先级中断可以实现两级中断嵌套。中断系统中有两个不可寻址的“优先级生效”触发器一个为高优先级生效触发器一个是低优先级生效触发器若某个触发器的状态为“”则表明正在进行相应优先级的中断服务。假设CPU正在执行高优先级的中断服务程序则高优先级生效触发器的状态为“”所有后来的中断都被禁止若CPU正在执行低优先级的中断服务程序则低优先级生效触发器的状态为“”所有低级的中断都被禁止但开放高优先级中断。中断优先级寄存器IPD7D6D5D4D3D2D1D0PSPTPX1PT0PX0BCHBBHBAHB9HB8HIP低位为各中断源优先级的控制位可以用软件设定。PS串行口中断优先级控制位。PS=串行口为高优先级中断PS=串行口为低优先级中断。PT定时器计数器中断优先级控制位。PT=定时器计数器为高优先级中断PT=定时器计数器为低优先级中断。PX外部中断中断优先级控制位。PX=外部中断为高优先级中断PX=外部中断为低优先级中断。PT定时器计数器中断优先级控制位。PT=定时器计数器为高优先级中断PT=定时器计数器为低优先级中断。PX外部中断中断优先级控制位。PX=外部中断为高优先级中断PX=外部中断为低优先级中断。单片机在复位后IP=即所有中断均为低优先级中断。若某几个控制位为“”则相应的中断源就规定为高优先级中断反之若某几个控制位为“”则相应的中断源规定为低优先级中断。当同时接收到几个同一个优先级的中断请求时响应哪个中断则取决于内部硬件的查询次序。各中断源的中断优先级顺序排列如下:中断源入口地址同级优先级次序外部中断H高定时器BH外部中断H定时器BH串行通讯H低MCS单片机中断系统处理中断优先级的原则是:()不同级的中断源同时申请中断时先高后低()处理低级中断又收到高级中断申请时停低转高()处理高优先级中断又收到低优先级中断申请时继续执行高优先级中断服务程序()同级的中断源同时申请中断时按硬件规定的次序。例设片外中断为高优先级片内中断为低优先级试设置IP相应位。解根据要求(IP)=H。()用字节操作指令MOVIP#H()用位操作指令SETBPXSETBPXCLRPSCLRPTCLRPT中断响应中断响应条件)中断源发出中断请求)中断允许位EA=即CPU开放中断)发出中断请求的中断源所对应的中断允许位置为“”即不屏蔽该中断在满足上述条件的情况下并且不存在下述情况则CPU会响应中断:)CPU正在执行同级或更高级中断服务程序)当前的指令周期还未结束)现行指令为RETI或者是访问IE或IP的指令该指令以及紧接着的下一条指令还还未执行完。为了保证CPU能正确返回CPU在执行RETI或访问IE、IP的指令后至少需要再执行一条指令才会响应新的中断。若存在上述任何一种情况则CPU将丢弃中断查询结果若没有则CPU将在紧接着的下一个机器周期内响应中断。中断响应过程MCS单片机的CPU在每个机器周期的SP期间顺序采样每个中断源CPU在下一个机器周期按优先级顺序查询中断标志如查到某个中断标志为“”将在接下来的机器周期按优先级进行中断处理。MCS单片机一旦响应中断首先置位相应的中断优先级寄存器禁止同级或低优先级中断然后由硬件执行一个调用程序把当前的PC值压入堆栈以保护断点再将相应的中断服务程序入口地址送入PC于是CPU接着从中断服务程序的入口处开始执行。编写中断服务程序时应该注意的事项:()由于MCS单片机的两个相邻中断服务程序的入口地址相距只有个单元一般的中断服务程序是容纳不下的通常是在相应的中断服务程序的入口地址处存放一条跳转指令LJMP以跳转到K的任意区域。()对于有些中断源CPU在响应中断后回自动清除中断标志如定时器溢出标志位TF、TF和边沿触发方式下的外部中断标志IE、IE。对于串行口中断CPU在响应中断后会不能用硬件清除相应的标志为必须由软件清“”。如 CLRTI或CLR RI对于电平触发的外部中断因为响应中断后不能自动清“0”中断标志位因此需要利用外接电路来撤除中断请求信号。中断服务程序从入口地址开始执行最后一条指令为“RETI”。执行中断返回指令RETI的结果是清除优先级生效触发器以使其他同级或更低级的中断能够被响应。然后从堆栈中弹出两个字节到PC使程序回到原来被中断处继续执行。值得指出的是RET指令也能返回到原来被中断的地方但中断控制系统不能被恢复并认为中断仍在继续。因此中断返回一定要用RETI指令而不能以RET指令取代。在中断服务程序中用户应注意用软件保护并恢复现场以免中断返回后丢失原寄存器、累加器中的信息。如果在处理当前中断服务程序时不希望其他中断包括高级中断打断它进入中断服务程序时一般要利用关闭中断的方法(EA=0)是CPU暂不响应新的高优先级中断请求。如用户在中断服务程序中进行了现场的保护则在RETI指令执行前应进行相应的出栈操作这样做的目的一是恢复保护数据二是使栈顶指针SP与保护断点后的值相同。也就是说在中断服务程序中PUSH指令和POP指令必须成对使用否则断点地址将不会恢复到PC中造成CPU不能正确返回断点处继续执行程序。对于禁止更高优先级中断而关闭CPU中断的服务在中断返回前一定要再开中断。中断响应时间3~8个机器周期。中断应用举例要求:用4个指示灯显示4个开关的状态即开关打开时对应指示灯灭开关闭合时对应指示灯亮由另外一个开关控制中断申请要求每申请一次中断完成一个读写过程使指示灯与开关状态对应。解 设单片机的P~P用作检测4个开关S0、S1、S2、S3的状态,P~P用于输出以驱动4个指示灯。ORGHAJMPMAINORGHMOVA,#FFHMOVP,AMOVA,PSWAPAMOVP,ARETIORGHMAIN:SETBITSETBEXSETBEAHERE:AJMPHEREEND第五次作业:什么是中断什么是中断源MCS单片机有几个中断源各中断源的优先级是如和确定的MCS单片机响应中断的条件是什么CPU响应中断时,不同的中断源,其中断服务程序的入口地址是什么MCS单片机的外部中断有几种触发方式MCS单片机的中断系统有几个优先级如何设定MCS单片机系统定时测试压力、温度定时用T来实现压力超限和温度超限报警信号分别由外部中断和外部中断实现中断优先级排列顺序以次为压力超限→温度超限→定时检测试确定专用寄存器IE和IP的内容并编写初始化程序。第章定时器计数器单片机系统实现定时有三种方式:软件定时、硬件定时和可编程定时器定时。软件定时是靠执行一个循环程序消耗时间达到定时目的不需要外加硬件电路硬件定时全部由硬件电路完成不占用CPU时间但调整定时时间必须改变电路元件参数可编程定时器采用计数周期脉冲实现定时通过改变定时器计数器的计数初值来改变定时时间不占用CPU的时间使用灵活。定时器计数器的工作原理与组成定时器计数器的工作原理图定时器T的工作结构图形式定时器计数器的核心是加计数器即每来一个脉冲计数值加直到计满溢出。加计数器的输入脉冲有两个来源一个是外部脉冲源TX端(T和T)另外一个是系统的时钟振荡器计数器选择两个脉冲源之一进行输入脉冲计数每输入一个脉冲计数值加。当计数到计数器各位为(几计数器满)再输入一个脉冲时就使计数器回零同时从最高位溢出一个脉冲使特殊功能寄存器TCON的某一位(TF或TF)置“”作为计数器的溢出标志向CPU申请定时器中断。如果定时器计数器工作于定时状态则表示定时时间到若工作于计数状态则表示计数值回零中断。定时器计数器的基本功能是对输入脉冲计数。对输入脉冲的选择是由特殊功能寄存器的CT位的内容决定的。图中有两个模拟开关左边的决定定时器是工作于计数状态还是工作于定时状态。当其连向振荡器时为定时状态当与T或T端连接时则为计数状态。右边的模拟开关决定脉冲源是否加到计数器输入端即决定加计数器的启动与停止。定时器计数器的工作方式MCS单片机有两个位的定时器计数器具有定时、计数两种功能及种工作模式:位定时计数模式、位定时计数模式、自动重装初值的位模式和T分为两个位的工作模式。寄存器TCON寄存器控制寄存器D7D6D5D4D3D2D1D0TF1TRTF0TRIE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88HTF定时器溢出的中断标志位TF定时器溢出的中断标志位TR定时器的运行控制位由软件置“”或置“”。TR定时器的运行控制位由软件置“”或置“”。TMOD定时器方式寄存器D7D6D5D4D3D2D1D0GATECTMMGATECTMM其中低为与T有关高位与T有关。GATE门控位CT定时或计数功能选择位。MM工作方式选择位。表工作方式控制表MM工作方式功能位定时计数位定时计数自动重装初值仅T分为两个位定时器初值如何计算?定时器的工作方式方式位定时计数方式。图定时器T工作方式的结构原理图对于方式脉冲计数器位由TH的高位和TL的低位构成TL的高为不用。无论工作在定时还是计数方式在方式下TL的低位计数满溢出时向TH进位位计数器计数满溢出时使中断标志位TF置“”。定时器计数器举例定时器计数器的应用编程方法编程要点()计算计数器初值。()确定控制字。()编制初始化程序。编程步骤()确定工作方式对寄存器TMOD赋值()预置定时或计数器初值。()根据需要开放定时器计数器中断。()启动、停止定时计数器。振荡周期、时钟周期等概念()振荡周期单片机内部高增益反向放大器通过放大器XTAL、XTAL引脚外接的反馈石英晶体元件构成自激振荡器该振荡器的周期为振荡周期。()时钟周期时钟信号发生器把振荡器的脉冲信号分频向CPU提供了两相时钟信号P和P。时钟信号的周期称为机器状态时间S它为振荡周期的倍。在每个时钟周期的前半周期相位P信号有效而后半周期相位P信号有效。()机器周期MCS单片机工作的一个机器周期由个状态周期组成即S~S每个状态周期又持续两个振荡周期故一个机器周期包括个振荡周期。()机器周期CPU执行一条指令的时间称为机器周期。MCS单片机的指令周期有单机器周期、双机器周期和四周期指令三种。例利用定时器TI的方式在引脚为高电平时以中断方式有P端输出周期为的方波起点到跳变的时间为半个周期(假设单片机的晶体频率为)。确定计数初始值X晶体频率为,机器周期=对应方式的位计数器方式有求得计数初始值确定控制字向TMOD寄存器送控制字定时器T设置为方式采用外部控制在引脚输入高电平时定时器才启动工作故GATE=控制字为(TMOD)=x编写程序ORGhAJMPMAINORGbHAJMPSOFTMORGhMAIN:MOVTMOD,#hMOVTH,#ffhMOVTL,#hSETBEASETBETSETETLOOP:SETBTRHERE:sjmpHEREORGhSOFTM:MOVTH,#ffhMOVTL,#HCPLPReti定时器计数器在应用中应注意的事项定时器计数器在运行过程中读取计数值从运行中的定时器计数器内去取计数值的方法是:先读取数据寄存器的高字节,后读取TLX,再读取THX。前后两次读得的THX相同则可以确定读得的内容是正确的若前后两次读得的THX不相同则再重复上述过程知道重读的内容正确为止。下面程序能将读得的TH和TL放在R和R中:ORGHRDTIMER:MOVA,THMOVR,TLCJNEA,TH,RDTIMERMOVR,ARET定时器计数器对输入信号的要求当单片机内部定时器计数器工作在定时器方式时计数的输入信号来自于内部时钟脉冲每个机器周期计数器递增计数一次定时时间有脉冲乘以计数脉冲周期确定。由于每个机器周期包括个振荡周期因此计数速率是系统振荡频率的。定时器精度取决于内部时钟脉冲的精度。当定时器计数器工作于计数方式时计数脉冲来自于芯片外部输入管脚T和T在每个机器周期的SP期间计数器对外部输入信号进行采样。当一个机器周期的采样值为高电平而下一个机器周期的采样值变为低电平计数值加。新的计数值在检测到一个跳变后的下一个机器周期的SP期间出现。由于识别一个从到的跳变需要两个机器周期因此最高的计数频率是系统振荡频率的。作业六:MCS的T、T用作定时器时其定时时间与哪些因素有关?MCS单片机的晶振频率为MHz使用单片机的内部定时方式在P引脚上产生频率为kHz的方波信号。设MCS单片机的晶振频率为MHz使用定时器T的定时模式在P输出周期为占空比(高电平占用整个信号周期的比例)为以查询方式编写程序。设MCS单片机的晶振频率为MHzT用于定时T用于次计数T和T均要求重复工作。()外部计数脉冲应从何引脚输入?()试根据上述要求编写程序。第章MCS单片机串行通讯接口与应用MCS单片机有一个全双工的串行口使单片机具有串行通讯的能力可以与其它计算机进行通讯因而扩展了单片机的应用领域。通讯基础通讯就是信息的交换。它可以在计算机与计算机、计算机与数据设备以及数据设备与数据设备之间进行。信息的交换要通过一定的介质进行如无线传输、光缆传输或电缆传输等通过使用这些介质将通讯设备连接起来。通讯设备的连接需要一定的机械和电气标准如RS口等。通讯过程还需要规定数据的格式即建立通讯协议。除此之外通讯各方还要一定的硬件、软件支持。、并行通讯与串行通讯通讯主要有两种方式:并行通讯和串行通讯录。并行通讯是在传送数据过程中每个字节的各位同时进行传送的通讯方式而串行通讯是指每个字节的各位分别进行传送的通讯方式。并行通讯:速度快适用于短距离通讯。串行通讯:速度低适用于长距离通讯。、异步串行通讯和同步串行通讯在异步串行通讯中数据是一帧一帧传送的每帧数据包括一位起始位、一个字节的数据、一位校验位和一位停止位。每帧数据之间可以插入若干个高电平的空闲位。异步串行通讯要求发送数据与接收数据的双方约定相同的数据格式和速率用启始位、停止位来协同发送和接收过程。接收和发送端采用独立的移位脉冲控制数据的串行移出与移入发送移位脉冲和接收移位脉冲是异步的因此称为异步串行通讯。在异步串行通讯中每帧数据只有一个字节的数据也不需要同步脉冲因此应用较为灵活。但由于每帧数据都不许插入启动、停止位故传输速度比较慢。同步串行通讯是一种连续的数据传送方式。每次传送一帧数据每帧数据由同步字符和若干个数据及校验字符号组成其格式如下:同步字符同步字符N个连续字节校验字节校验字节在同步通讯中发送和接收双方由一个同步脉冲控制数据位的串行移出和移入是同步的因此称为同步串行通讯。同步串行通讯速度较快适应于大量传输数据的场合需要传送同步脉冲信号。、串行通讯的传送方式串行通讯的方式不同通讯线路不同其通讯能力也是不同的。按照数据传送的方式可分为单工、半双工、全双工方式。单工传送方式单工方式下只允许数据向一个方向传送它只需要一条通讯线和一条地线。半双工传送方式半双工传送方式也只需要一条通讯线和一条地线允许数据双向传送但分时工作。全双工传送方式全双工传送方式允许双方同时进行数据的接收和发送。接收和发送方采用两条不同的通讯线和一条地线。、波特率波特率是表征串行口数据传送速率的量其定义为每秒传送二进制数据的位数单位为bits单片机常用的波特率有波特波特波特和波特。无论是异步串行通讯还是同步串行通讯发送和接收方的波特率必须相同否则不能进行正常通讯。MCS单片机串行通讯接口MCS单片机有一个全双工串行通讯口它有四种工作模式。.与串行口有关的特殊功能寄存器串行口数据寄存器SBUF、串行口控制寄存器SCON和波特率控制寄存器PCON。SBUFSBUF对应两个物理单元:串行口接收缓冲区和串行口发送缓冲区但地址都是H。当执行写SBUF指令时(MOVSBUFA)数据写入到串行口发送缓冲区实际就是启动串行发送读SBUF就是读取串行口接收缓冲区。SCONSCON的地址为H用于选择串行口的工作方式、指示串行口的工作状态其各位的定义如下:DDDDDDDDSMSMSMRENTBRBTIRiSM,SM串行口工作方式选择位。SMSM工作方式功能同步移位寄存器位UART位UART波特率不变位UART波特率可变RB接收数据的位。在方式和方式中接收到的第位送RB对应接收发送方的TB位。T串行口发送中断标志位。在方式中接收到第位数据时由硬件置位在方式、和中于发送停止位之初由硬件置位。TI=时申请中断。该位必须由软件清零。RI串行口接收中断标志位。在方式中接收完位数据由硬件置位。在方式、和中于接收到停止位的中间由硬件置位用于申请中断。该位必须由软件清。PCON波特率控制寄存器DDDDDDDDSMODSMOD波特率选择位。当SMOD=时波特率提高一倍。串行口工作方式工作方式工作方式为移位寄存器输入输出工作方式。方式输出时RXD端输出数据TXD端输出移位脉冲发送数据开始于向SBUF写入数据的时刻发送的位数据为低位(D位)在先。位数据发送完后置位TI。方式输入时RXD端为数据输入端TXD端为移位脉冲输出端。方式接收过程只有在满足REN=和RI=时才进行。在TXD端的移位时钟的控制下将RXD端的数据移入移位寄存器中。位数据接收完后置位RI。工作方式的波特率为固定值它是晶体振荡器频率的十二分之一即fosc。工作方式工作方式为为异步串行通讯方式。TXD位发送数据端RXD为数据接收端。一帧数据包括一个起始位、位数据位和一个停止位(低位在先)。在不发送数据时TXD端为高电平。执行写SBUF指令便启动一次发送过程发送数据时先发送一个起始位该位通知接收端开始接收也使发送和接收过程同步。接下来发送位数据先发送低位后发送的是高电平的停止位。当REN=时CPU允许串行口接收数据接收数据开始于检测到RXD端发生的到的跳变。先接收起始位然后依次接收数据位。若满足条件RI=且SM=或接收到停止位则将数据装入SBUF并置位RI如果上述条件不满足则数据丢失。工作方式的波特率由定时器T的溢出率决定即方式的波特率=的溢出率定时器的溢出率指的是计满溢出的频率其值为定时时间的倒数即溢出率=计数速率计数值其中计数速率为计数器的计数时钟频率即内部时钟晶体振荡器频率的。例如单片机的晶体振荡器频率为fosc=MHz,需设定串行口的波特率为bits,设定SMOD=若采用T的工作方式根据串行口方式的波特率公式T的溢出率为溢出率=波特率X=次s从而决定T的计数值为计数值=(fosc)溢出率=则定时器T的定时器初值设定为==FH工作方式工作方式为位异步通讯方式包括一位起始位位数据位和一位停止位。发送结束后将TI置位。接收开始于检测到RXD端到的跳变确认起始位后开始接收位数据检测到停止位后将位数据分别装入SBUF和RB并置位RI。数据装入SBUF和RB必须满足两个条件:RI=SM=或者接收到的第位数据为。否则接收到的数据将丢失。工作方式的波特率与晶体振荡器的频率和SMOD位有关波特率=工作方式工作方式为位异步串行通讯方式数据帧格式和接收发送过程与方式相同方式的波特率设置与工作方式相同。例PC机与单片机的通讯。第章MCS单片机并行接口扩展与应用MCS单片机共有个IO口:P、P、P和P。当单片机在外部扩展了程序存储器、数据存储器时可专供外部输入输出设备使用的只有剩下P口。如果单片机需要与多个外部设备进行数据传输IO口的数量显然是不够的因而需要进一步扩展IO口。IO口概述、输入输出接口概念CPU主要通过外设和外界进行数据通信实现各种各样的功能。一个微机系统连接的外部设备越多它实现的功能就越强大。由于计算机应用环境千差万别与计算机相连的外部设备也是各式各样。较为常用的外部设备有:键盘、显示器、打印机、AD和DA转换器等。在一些场合如果完全由CPU直接管理这些设备就会使CPU完全陷入与外设打交道的沉重负担之中极大地降低系统整体的工作性能。另外有些设备的数据信息格式、电平等和CPU存在差别大多数外设不能直接与计算机系统连接CPU不能对它们直接管理和控制。为此微机系统设计了专门的输入输出接口电路把CPU从直接对各个外部设备连接与控制的繁重任务中解脱出来由它们作为CPU与外部设备通信的桥梁完成CPU与外部设备之间的信息传输。、输入输出接口功能.地址译码和IO设备选择功能.输入输出功能.信息电平转换功能.联络功能.可编程功能。、输入输出接口分类通用接口和专用接口。键盘与数码显示器接口及编程键盘和显示器是计算机常用的输入设备用于输入数据和命令显示计算机的运行状态、命令和计算机结果。考虑到简化结构、降低成本单片机系统中经常采用简单键盘和数码管显示器。、键盘接口键盘由一组常开的按键开关组成每个按键都被赋予一个代码称为键码。键盘系统的主要工作就是及时发现有键闭合并求闭合键的键码。键盘可以分为两种即编码键盘和非编码键盘。编码键盘是通过一个编码电路来识别闭合键的键码非编码键盘是通过软件来识别键码。由于非编码键盘的硬件电路简单用户可以方便地增减键的数量因此在单片机系统中广泛应用。以下主要介绍非编码键盘的接口电路。非编码键盘可以分为两种结构:独立式按键和行列式按键。独立式按键是指直接用IO口线构成单个按键电路每个按键占用一条口线每个按键的工作状态不会产生影响。图为一种独立按键电路当图中的某一个键闭合时相应的IO口线变为低电平。当程序查询到低电平的IO口线时就可以确定处于闭合状态的键。图独立式按键电路独立式按键电路的结构和处理程序简单扩展方便但占用的口线较多不适合在按键数量较多的场合下使用。行列式键盘是将IO口线的一部分作为行线另外一部分作为列线按键设置在行和列的交叉点上从而构成了行列式键盘。行列式键盘中按键的数量可达行线数乘以列线数故行列式键盘在按键较多时可以节省IO口线。图为X行列式键盘的电路原理图。条口线分为条行线和条列线按键设置在行线和列线的交叉点上即按键开关的两端分别接在行线和列线上。行线通过一个电阻接到V电源上在图行立式键盘电路原理图没有按键按下时行线处于高电平状态。判断是否有按键按下的方法是:向所有的列线IO口输出低电平然后将行线的电平状态读入累加器A中若无键按下行线仍保持高电平状态若有键按下行线仍然保持高电平若有键按下行线至少有一条应该为底电平。当确定有按键按下后即可进行求见码的过程。其方法是:依次从一条列线上输出低电平说明检查行线的状态若全为高电平说明闭合键不在该列(输出低电平)若不全为则说明闭合键在该列且在变为低电平的行的交叉点上。在键盘处理程序中每个键都被赋予了一个键号有从列线IO口输出的数据和从从IO口读入的数据可以求出闭合键的键号。非编码键盘的工作方式在单片机应用系统中非编码键盘由CPU通过键盘处理程序完成整个工作过程。相对CPU而言按键闭合是随机发生的键盘处理程序必须能够及时捕捉到闭合的键并求出其键码。按照这一过程的不同非编码键盘的工作方式可分为程序扫描方式和中断方式。键盘扫描方式:一般情况下在单片机应用系统中键盘处理只是CPU工作的一部分。为了能及时发现有键按下CPU必须不断调用键盘处理程序对键盘扫描。中断方式:在程序扫描方式中为了能及时响应键盘输入需要不停地对键盘扫描即使没有键按下也不能中断。这就浪费了大量宝贵的CPU时间。为了提高CPU的效率在电路中增加适当的电路当有键闭合时产生中断请求信号。在中断服务程序中进行按键识别等工作。例独立式键盘接口编程实例(查询方式和中断方式)。、显示器接口设计在单片机系统中常用的显示器有:发光二极管显示器简称LED液晶显示器简称LCD荧光管显示器。这三种显示器都有两种结构:段显示(段“米”字型等)和点阵显示。发光二极管显示又分为固定段显示和可以拼装的大型字段显示此外又有共阳极和共阴极之分。三种显示器中以荧光管显示器亮度最高发光二极管次之而液晶显示器最弱为被动显示器必须有外光源。LED段显示器的结构和原理LED显示块是由发光二极管显示字段组成的显示器有段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示块的发光二极管的阴极连接在一起通常此公共阴极接地当某个发光二极管的阳极为高电平时发光二极管点亮相应的段被显示。同样共阳极LED显示块的发光二极管阳极被连接在一起通常此公共阳极接正电源当某个发光二极管的阴极接低电平时发光二极管被点亮相应的字段被显示。图共阴极段数码管示外形图表共阴极段数码管码表显示字符字型码显示字符字型码显示字符字型码CHAHBCHFHAHEHLED显示器接口实例要使LED显示器显示出字符必须提供段选码和位选码。段选码(即字符型)可以用硬件译码的方法得到也可以用软件译码的方法得到还需要根据实际情况选择静态显示或动态显示。i单片机与AD、DA转换器的接口CPU处理的数据是数字量信号实际上就是由V和V两种电压状态表示的开关量。而在实际控制系统中计算机除了处理数字信号量以外还需要处理渐变的模拟信号量如对温度、压力、位移等工程信号量检测得到的模拟电压等。另外还需要输出模拟信号量进行实时控制如直流电动机调速所需要的不同幅度值的直流电压信号输出等。因此计算机系统需要模拟量到数字量以及数字量到模拟量的转化处理。实现模拟信号到数字信号转化的专用芯片为AD转换器而完成数字量到模拟量转化的芯片则称为DA转换器。AD转换器及接口、AD转换器分类与性能指标AD转换器种类很多按工作原理分:逐渐、位比较型、并行比较型、双积分型、电压频率型及计数比较型等。逐位比较型转换速度适中转换精度从低到高都有是集成AD转换器中最普通的形式并行比较型转换速度较快但精度不高双积分型抗干扰能力强精度较高但转换速度慢电压频率型(VF)型用于模拟量到频率的转换精度较高芯片成本低计数比较型有中高精度芯片但转换速度慢。描述AD转换器性能的技术指标主要有:分辨率、转换时间、转换精度三项。()分辨率AD转换的分辨率指的是能够分辨最小量化信号的能力即输出数字量变化一个相邻数码所需要输入的模拟电压的变化量。()转换时间AD转换的转换时间指的是完成一次AD转换所需要的时间即芯片从获得转换命令到得到完整数字结果为止所需要的时间。()转换精度AD转换的转换精度指的是实际输出接近理论输出的精确程度可以用绝对精度和相对精度来描述。、ADC转换器及其接口ADC是用CMOS工艺制造的、采用DIP封装的逐次逼近型位AD转换芯片。片内除AD转换部分外还有多路模拟开关多路开关允许路模拟信号分时输入共享一个AD转换器进行转换。起引脚图如。图ADC的外形图各引脚功能如下:IN~IN个模拟输入信号的模拟输入端D~D转换结果的位数字量输出端ADDA、ADDB、ADDC模拟信号输入选择端选择要转换的输入模拟通道。ALE地址信号输入端有低电平至高电平时把ADDA、ADDB、ADDC信号送入地址锁存器并在低电平时锁存经译码器得到地址输出以选择相应的模拟输入信号。START启动转换信号输入端加上正脉冲后AD转换器开始转换。EOC转换结束信号。转换开始后EOC信号变低转换结束时EOC信号返回高电平。CPU可以通过这个信号对AD转换器的状态进行查询EOC同样也可以直接接中断信号请求端转换结束时以程序中断的方式告知CPU。OE输出允许控制端最高允许值为KHz,这时转换时间约为usVref(),Vref()芯片工作参考电压输入端,决定了模拟电压的最大值和最小值,两个引脚的电压满足以下条件:且。GND工作电源接地端。ADC工作过程为:ALE高电平时CPU送出的路地址选择信号ADDA、ADDB、ADDC存入地址锁存器ALE低电平时路地址被锁存经译码器译码选择模拟输入通道。START脉冲的上升沿使ADC复位下降沿则启动AD开始转换。ADC转换期间EOC=转换结束时EOC=。CPU使OE变为高电平打开三态门输出锁存器取出ADC的转换结果。图ADC典型应用原理图图ADC转换时序图编写程序举例。ORGHAJMPMAINORGHAJMPADCINMAIN:MOVR,#HMOVR,#HSETBITISETBEASETBEXMOVDPTR,#ADCFIRSTADDRMOVXDPTR,A启动ADLOOP:SJMPLOOPADCIN:MOVXA,DPTRMOVR,AINCDPTRINCRDJNZR,OVERADRETIOVERAD:MOVXDPTR,A送出新的地址并启动新的转换RETIENDDA转换器及接口、DA转换器及分类目前DA转换器的芯片种类很多。按转换方式分为串行和并行两大类按生产工艺分为双极型和MOS类型转换数字量的长度有位、位、位位等转换速度有低速、中速和高速输出形式有电压型和电流型等。描述DA转换器性能的技术指标主要有:分辨率、建立时间、转换精度三项指标。.分辨率分辨率反映输出模拟电压的最小变化量即一位输入数据变化使输出模拟量变化的值的大小一般用数字量的位数来表示。同样满量程电压输出DA位数越多其分辨率越高。建立时间建立时间是指输入数字量从零变为最大值而模拟量输出达到终值时所用的时间反应了转换速度。LSB表示最低有效位数字由变为的一个数字位。转换精度转换精度具体分为绝对精度和相对精度两种衡量指标主要指的理论输出值和实际输出值之间的偏差。、DAC转换器及其接口DAC是采用CMOS工艺制造的DIP封装的位单片DA转换器主要由两个位寄存器和一个为DA转换器构成。其引脚图和逻辑图如图所示。图引脚图和逻辑图DAC性能主要参数如下:分辨率为位只需要在满量程下调整其线性度可与所有的单片机或微处理器直接接口电流稳定时间为可双缓冲、单缓冲或直接数据输入功耗低约为逻辑电平输入与TTL兼容单电源供电。引脚功能D~D转换数字量数据输入线ILE数据锁存允许信号输入线高电平有效输入寄存器芯片选择信号输入线低电平有效输入寄存器芯片“写”选通信号输入线低电平有效数据转移控制信号线低电平有效DAC寄存器“写”选通信号输入线基准电压输入线芯片内反馈电阻信号线转换结果电流输出线和的和为常数而随转换数字量的大小线性变化。单片机C语言程序设计、数据类型bit位类型为C编译器的一种扩充数据类型利用它可定义一个位变量但不能定义位指针也能定义位数组。sfr特殊功能寄存器为C编译器的一种扩充数据类型利用它可定义单片机的所有内部位特殊功能寄存器。型数据占用一个内存单元取值范围是~。sfr位特殊功能寄存器为C编译器的一种扩充数据类型利用它可定义单片机内部位特殊功能寄存器。sbit可寻址位为C编译器的一种扩充数据类型利用它可定义单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。、变量及其存储格式存储种类数据类型存储器类型变量名称存储种类:自动外部静态和寄存器。局部变量和全局变量局部变量在一个函数内部定义的变量是内部变量,它只在本函数范围有效,也就是说只有在函数内才能使用它们,在此函数以外是不能使用它们的。全局变量程序的编译单位是源程序文件一个源文件可以包含一个或若干个函数。在函数内部定义的变量是局部变量而在函数外定义的变量称为外部变量外部变量是全局变量。全局变量可以为文件中的其它函数所共用。它的有效范围为:从定义变量的位置开始到本源文件结束。如果外部变量在文件开头定义则在整个文件范围内都可以使用该外部变量如果外部变量不在文件开头定义则该外部变量起作用的范围为从定义点到文件终了。如果在定义点之前的函数想引用该外部变量则应该在该函数中用关键字extern做外部变量说明表示该变量在函数的外部定义在函数内部可以使用它们。动态变量和静态变量从变量的作用域看变量可以分为局部和全局变量。从变量的存在的时间(生存期)看变量可分为静态存储变量和动态存储变量。静态存储方式是指在程序运行期间分配固定的存储空间的方式而动态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式。存储器类型DATA直接寻址的片内数据存储器(字节)访问速度最快。BDATA可片内寻址的片内数据存储器(字节)允许位寻址和字节混合访问。IDATA间接寻址的片内数据存储器(字节)允许访问全部片内地址。PDATA分页寻址的片外数据存储器(字节)用MOVXRi指令访问。页地址存放在P存储器中。XDATA片外数据存储器(K字节)用MOVXDPTR指令访问CODE程序存储器(K字节)用MOVCADPTR指令访问。定义变量时如果省略“存储器类型”选项则按编译时使用的存储器模式SMALL、COMPACT、LARGE来规定存储器类型确定变量的存储器空间函数中不能采用寄存器传递的参数变量和过程变量也保存在默认的存储器空间。C编译器的三种存储器模式(默认的存储器类型)对变量的影响如下:SMALL:变量被定义在单片机的片内数据存储器中对这种变量的访问速度最快。另外所有的对象包括堆栈都必须位于片内数据存储器中而堆栈的长度是很重要的实际栈长取决于不同函数的嵌套深度。COMPACT:变量被定义在分页寻址的片外数据存储器中每一页片外数据存储器的长度为字节。这时对变量的访问是通过寄存器间接寻址(MOVXRi)进行的堆栈位于单片机片内数据存储器中。采用这种编译模式时变量的高位地址由P口确定。采用这种模式的同时必须适当改变启动配置文件STARTUP。A中的参数:PDATASTART和PDATALEN。用BL进行连接时还必须采用连接控制命令PDATA对P口地址进行定位这样才能确保P口为所需要的高位地址。LARGE:变量被定义在片外数据存储器中(最大可达K字节)使用数据指针DPTR来间接访问变量。这种访问数据的方法效率不高尤其是对于个以上字节的变量用这种方法相当影响程序的代码长度。变量的存储类与存储器类型是完全无关的。测控线路及传感器测控处理器(CPU)GPRS模块电讯网络INTERNET网络数据服务器耦合线路电力载波收发器传感器执行器耦合线路电力载波收发器传感器执行器网络接口计算机电力线CPU控制部件RAMP口P口程序存储器P口串行口定时器计数器中断系统特殊功能积存器P口CB外部程序存储器HFFFFH内部EA=外部EA=FFFHH工作寄存器HFH位寻址区HFH数据缓冲区HFH特殊功能寄存器RAM(或)HFFHARi#dataRndirectRiARndirectXCHDXCHXCHSWAPXCHAAACYACY#dataRndirectRiA加计数器TF振荡器�EMBEDEquation���TGATETRINT中断CT=CT=TL低位TF振荡器�EMBEDEquation���TGATETRINT中断CT=CT=TH高位CPUVCCPPPCPUVCCPPPPPPaabbccddeeffffgndgndNddpunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknow

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/116

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利