51单片机定时器.ppt

上传人:xt****7 文档编号:6283969 上传时间:2020-02-21 格式:PPT 页数:65 大小:698.50KB
返回 下载 相关 举报
51单片机定时器.ppt_第1页
第1页 / 共65页
51单片机定时器.ppt_第2页
第2页 / 共65页
51单片机定时器.ppt_第3页
第3页 / 共65页
点击查看更多>>
资源描述
定时器 计数器及其应用 2 定时器 计数器及其应用 定时器 计数器的应用场合 定时或延时控制 对外部事件的检测 计数等 MCS 51系列8031 8051单片机有两个16位定时器 计数器 即T0和T1 8032 8052单片机有3个16位定时器 计数器 即T0 T1和T2 3 定时器 计数器及其应用 所谓计数器就是对外部输入脉冲的计数 所谓定时器也是对脉冲进行计数完成的 计数的是MCS 51内部产生的标准脉冲 通过计数脉冲个数实现定时 所以 定时器和计数器本质上是一致的 在以后的叙述中将定时器 计数器笼统称为定时器 4 5 第5章定时器 计数器及其应用 5 1定时器的结构及工作原理5 2定时器的TMOD和TCON寄存器5 3定时器的工作方式5 3 1方式05 3 2方式15 3 3方式25 3 4方式35 4定时器的编程和应用 6 第5章定时器 计数器及其应用 5 1定时器的结构及工作原理 7 5 1定时器的结构及工作原理 组成 两个16位的定时器T0和T1 以及他们的工作方式寄存器TMOD和控制寄存器TCON等组成 内部通过总线与CPU相连 定时器T0和T1各由两个8位特殊功能寄存器TH0 TL0 TH1 TL1构成 工作方式寄存器TMOD 用于设置定时器的工作模式和工作方式 控制寄存器TCON 用于启动和停止定时器的计数 并控制定时器的状态 单片机复位时 两个寄存器的所有位都被清0 8051定时器内部结构框图 8 5 1定时器的结构及工作原理 两个可编程的定时器 计数器T1 T0 每个定时器内部结构实际上就是一个可编程的加法计数器 由编程来设置它工作在定时状态还是计数状态 两种工作模式 1 计数器工作模式就是对外部事件进行计数 计数脉冲来自相应的外部输入引脚T0 P3 4 或T1 P3 5 当输入信号发生由1至0的负跳变 下降沿 时 计数器 TH0 TL0或TH1 TL1 的值增1 计数的最高频率一般为振荡频率的1 24 Why 2 定时器工作模式也是通过计数实现的 计数脉冲来自内部时钟脉冲 每个机器周期计数值增1 每个机器周期 12个振荡周期 因此计数频率为振荡频率的1 12 所以定时时间 计数值 机器周期 4种工作方式 方式0 方式3 9 5 1定时器的结构及工作原理 当控制信号定时器工作在定时方式 加1计数器对脉冲f进行计数 每来一个脉冲 计数器加1 直到计时器计满溢出 因为 即一个计数脉冲的周期就是一个机器周期 计数器计数的是机器周期脉冲个数 从而实现定时 当控制信号定时器工作在计数方式 加1计数器对来自输入引脚T0 P3 4 和T1 P3 5 的外信号脉冲进行计数 每来一个脉冲 计数器加1 直到计时器计满溢出 10 控制信号K可以控制计数器的 启动 和 停止 11 振荡周期 是振荡脉冲的周期 也成为 拍 用P表示 就是晶体振荡器的周期 或外部振荡脉冲的周期 是MCS 51单片机的最小时序单位 时钟周期 是振荡源信号经二分频后形成的时钟脉冲信号 用S表示 每个时钟周期分成P1 P2两个节拍 又被称为一个状态 是MCS 51单片机的最基本的时序单位 机器周期 通常将完成一个基本操作所需的时间称为机器周期 由6个状态 12拍 组成 所以一个机器周期可以依次表示为S1P1 S2P2 S6P1 S6P2 通常算术逻辑操作发生在节拍P1期间 而内部寄存器到寄存器的传送发生在节拍P2期间 指令周期 是指CPU执行一条指令所需要的时间 是MCS 51单片机的最大的时序单位 由若干个振荡周期组成 一个指令周期通常含有1 4个机器周期 MCS 51典型的指令周期为一个机器周期 振荡周期 时钟周期 机器周期和指令周期 12 5 1定时器的结构及工作原理 在每个机器周期的S5P2期间采样检测引脚输入电平 若前一个机器周期采样值为 1 后一个机器周期采样值为 0 则计数器加1 新的计数值在检测到输入引脚电平发生 1 到 0 的负跳变 下降沿 后 于下一个机器周期的S3P1期间装入计数器中 由于CPU需要两个机器周期来识别一个 1 到 0 的跳变信号 所以最高的计数频率为振荡周期的1 24 13 5 1定时器的结构及工作原理 定时 计数器对输入信号的要求外部计数脉冲的最高频率为系统振荡器频率的1 24 例如选用12MHz频率的晶体 则可输入500KHz的外部脉冲 输入信号的高 低电平至少要分别保持一个机器周期 如图所示 图中Tcy为机器周期 14 可编程定时器的工作方式 启动 停止 溢出标志 计数器等都是可编程的 通过设置寄存器TMOD TCON TH0 TL0 TH1和TL1实现 当设置了定时器的工作方式并启动定时器工作后 定时器就按被设定好的工作方式独立工作 不再占用CPU 只有在计数器计满溢出时才向CPU申请中断 占用CPU 由此可见 定时器是单片机中工作效率高且应用灵活的部件 5 1定时器的结构及工作原理 15 第5章定时器 计数器及其应用 5 2定时器的TMOD和TCON寄存器 16 5 2定时器的TMOD和TCON寄存器 8051单片机定时器主要有几个特殊功能寄存器组成 TMOD TCON TH0 TL0 TH1 TL1 TMOD 设置定时器的工作方式 TCON 控制定时器的启动和停止 TH0和TL0 存放定时器T0的初值或计数结果 TH0存放高8位 TL0存放低8位 TH1和TL1 存放定时器T1的初值或计数结果 TH1存放高8位 TL1存放低8位 17 5 2 1工作方式控制寄存器TMOD 8位分为两组 高4位控制T1 低4位控制T0 1 GATE 门控位0 以TRX X 0 1 来启动定时器 计数器运行 1 用外中断引脚 INT0 或INT1 上的高电平和TRX来启动定时器 计数器运行 2 M1 M0 工作方式选择位M1M0工作方式00方式0 13位定时器 计数器 01方式1 16位定时器 计数器 10方式2 8位常数自动重新装载11方式3 仅适用于T0 T0分成两个8位计数器 T1停止计数 3 C T 计数器模式和定时器模式选择位0 定时器模式 1 计数器模式 4 TMOD无位地址 不能位寻址 5 复位时 TMOD所有位均为 0 18 低4位与外部中断有关 后面介绍 高4位的功能如下 1 TF1 TF0 计数溢出标志位定时器T0或T1计数溢出时 由硬件自动将此位置 1 TFx可以由程序查询 也是定时中断的请求源 2 TR1 TR0 计数运行控制位TRx 1 启动定时器 计数器工作TRx 0 停止定时器 计数器工作 5 2 2控制寄存器TCON 19 20 5 2 3定时 计数器的初始化 MCS 51单片机的定时器 计数器是可编程的 但在进行定时或计数之前要对程序进行初始化 具体步骤如下 1 对TMOD赋值 以确定定时器的工作模式 2 置定时 计数器初值 直接将初值写入寄存器的TH0 TL0或TH1 TL1 3 根据需要 对IE置初值 开放定时器中断 4 对TCON寄存器中的TR0或TR1置位 启动定时 计数器 置位以后 计数器即按规定的工作模式和初值进行计数或开始定时 21 5 2 3定时 计数器的初始化 初值计算 设计数器的最大值为M 则置入的初值X为 计数方式 X M 计数值定时方式 由 M X T 定时值 得X M 定时值 TT为计数周期 是单片机的机器周期 模式0 M为213 模式1 M为216 模式2和3 M为28 例如 机器周期为1 s时 若工作在模式0 则最大定时值为 213 1 s 8 192ms若工作在模式1 则最大定时值为 216 1 s 65 536ms 22 第5章定时器 计数器及其应用 5 3定时器的工作方式 23 MCS 51的定时器T0有4种工作方式 即 方式0 方式1 方式2 方式3 MCS 51的定时器T1有3种工作方式 即 方式0 方式1 方式2 5 3定时器的工作方式 24 5 2 1方式0M1 M0设置为00 为13位计数器 以T1为例 其框图如下 5 3定时器的工作方式 方式0 计数脉冲输入 加1计数器 25 5 3定时器的工作方式 方式0 在这种方式下 16位寄存器TH1和TL1只用13位 由TH1的8位和TL1的低5位组成 TL1的高3位不定 当TL1的低5位计数溢出时 向TH1进位 而TH1计数溢出时 则向中断标志位TF1进位 即硬件将TF1置1 并请求中断 可通过查询TF1是否置 1 或考察中断是否发生来判定定时器T1的操作完成与否 26 5 3定时器的工作方式 方式0 当C T 0时 为定时工作模式 开关接到振荡器的12分频器输出上 计数器对机器周期脉冲计数 其定时时间为 213 初值 振荡周期 12例如 若晶振频率为12MHz 则最长的定时时间为 213 0 1 12 12us 8 191ms当C T 1时 为计数工作模式 开关与外部引脚T1 P3 5 接通 计数器对来自外部引脚的输入脉冲计数 当外部信号发生负跳变时计数器加1 27 5 3定时器的工作方式 方式0 GATE控制定时器Tx T1或T0 的条件 1 当GATE 0时 或门 输出恒为1 与门 的输出信号K由TRx决定 即此时K TRx 定时器不受INTx输入电平的影响 由TRx直接控制定时器的启动和停止 TRx 1 计数启动 TRx 0 计数停止 2 当GATE 1时 与门 的输出信号K由INTx输入电平和TRx位的状态一起决定 即此时K TRx INTx 当且仅当TRx 1且INTx 1 高电平 时 计数启动 否则 计数停止 返回 28 5 3 2方式1M1 M0 01 为16位的计数器 除位数外 其他与方式0相同 其定时时间为 216 初值 振荡周期 12例如 若晶振频率为12MHz 则最长的定时时间为 216 0 1 12 12us 65 536ms 5 3定时器的工作方式 方式1 29 5 3 3方式2M1 M0 10 为自动恢复初值的8位计数器 等效框图如下 TLx作为8位计数器 THx作为重置初值的缓冲器 5 3定时器的工作方式 方式2 THx作为常数缓冲器 当TLx计数溢出时 在置 1 溢出标志TFx的同时 还自动的将THx中的初值送至TLx 使TLx从初值开始重新计数 定时器 计数器的方式2工作过程如图 x 0 1 30 优点 方式0和方式1用于循环重复定时或计数时 在每次计数器挤满溢出后 计数器复0 若要进行新一轮的计数 就得重新装入计数初值 这样一来不仅造成编程麻烦 而且影响定时精度 而方式2具有初值自动装入的功能 避免了这个缺点 可实现精确的定时 缺点 只有8位计数器 定时时间短 计数范围小 其定时时间为 28 初值 振荡周期 12若晶振频率为12MHz 则最长的定时时间为 28 0 1 12 12us 0 256ms 5 3定时器的工作方式 方式2 方式2工作过程图 x 0 1 31 5 3 4方式3只适用于定时器 计数器T0 T1不能工作在方式3 如果将T1置为方式3 则相当于TR1 0 停止计数 此时T1可用来作串行口波特率产生器 1 工作方式3下的T0T0在方式3时被拆成两个独立的8位计数器 TH0和TL0 8位计数器TL0使用T0的状态控制位C T GATE TR0 INT0 它既可以工作在定时方式 也可以工作在计数方式 8位定时器TH0被固定为一个8位定时器 不能作外部计数模式 并使用定时器T1的状态控制位TR1 同时占用定时器T1的中断请求源TF1 此时 定时器TH0的启动或停止只受TR1控制 TR1 1时 启动TH0的计数 TR1 0时 停止TH0的计数 5 3定时器的工作方式 方式3 32 5 3定时器的工作方式 各引脚与T0的逻辑关系如图所示 33 2 T0工作在方式3下T1的各种工作方式注意 当T0处于方式3时 T1仍可设置为方式0 方式1和方式2 当时由于TR1 TF1和T1的中断源都已被定时器T0 中的TH0 占用 所以定时器T1仅有控制位C T来决定其工作在定时方式或计数方式 当计数器计满溢出时 不能置位 TF1 而只能将输出送往串口 所以 此时定时器T1一般用作串口的波特率发生器 或不需要中断的场合 1 T1工作在方式0 5 3定时器的工作方式 34 2 T1工作在方式1 3 T1工作在方式2 5 3定时器的工作方式 35 第5章定时器 计数器及其应用 5 4定时器的编程和应用 36 5 4定时器的编程和应用 编程说明MCS 51单片机的定时器是可编程的 但在进行定时或计数之前要对程序进行初始化 具体步骤如下 1 确定工作方式字 对TMOD寄存器正确赋值 2 确定定时初值 计算初值 直接将初值写入寄存器的TH0 TL0或TH1 TL1 初值计算 设计数器的最大值为M 则置入的初值X为 计数方式 X M 计数值定时方式 由 M X T 定时值 得X M 定时值 TT为计数周期 是单片机的机器周期 模式0M为213 模式1M为216 模式2和3M为28 3 根据需要 对IE置初值 开放定时器中断 4 启动定时 计数器 对TCON寄存器中的TR0或TR1置位 置位以后 计数器即按规定的工作模式和初值进行计数或开始定时 37 5 4定时器的编程和应用 例5 1要在P1 0上输出一个周期为2ms的方波 假设系统振荡频率采用12MHz 利用T0方式0产生1ms的定时方波的周期用T0来确定 让T0每隔1ms计数溢出1次 即TF0 1 查询到TF0 1则CPU对P1 0取反 即要使P1 0每隔1ms取反一次 38 5 4定时器的编程和应用 第一步 确定工作方式字方式0 13位 最长可定时8 192ms 方式1 16位 最长可定时65 536ms 方式2 8位 最长可定时256 s T0为方式0 M1M0 00定时工作状态 C T 0GATE 0 不受INT0控制 T1不用全部取 0 值 故TMOD 00H 39 5 4定时器的编程和应用 第二步 计算1ms定时的初值X设初值为X 则有 213 X 12 10 6 1 12 1 10 3可求得 X 8192 1000 7192X化为16进制 即X 1C18H 1 1100 0001 1000B 所以 T0的初值为 TH0 E0HTL0 18H 40 第三步 程序设计采用查询TF0的状态来控制P1 0的输出 同时要重新装入初值 5 4定时器的编程和应用 41 参考程序 ORG0100HMAIN MOVTMOD 00H 设置T0为方式0MOVTL0 18H 送计数初值MOVTH0 0E0H 送计数初值SETBTR0 启动T0LOOP JBCTF0 NEXT 查询定时时间到 转NEXT 同时清TF0SJMPLOOP 重复循环NEXT MOVTL0 18H T0重置初值MOVTH0 0E0H T0重置初值CPLP1 0 P1 0的状态取反SJMPLOOP 重复循环END 42 例5 2将 例5 1 中的输出方波周期改为1秒 分析 周期为1s的方波要求500ms的定时 1 T0工作方式的确定因定时时间较长 采用哪一种工作方式 由各种工作方式的特性 可计算出 方式0 13位 最长可定时8 192ms 方式1 16位 最长可定时65 536ms 方式2 8位 最长可定时256 s 所以采用定时器定时加软件计数的方法来实现延长定时 选方式1 定时50ms 软件计数10次 50ms 10 500ms 所以 TMOD 01H 5 4定时器的编程和应用 以上各方式都不满足要求 43 2 计算计数初值因为 216 X 12 10 6 1 12 50 10 3所以 X 15536 3CB0H因此 TH0 3CH TL0 B0H 3 10次计数的实现设计一个软件计数器 初始值设为10 每隔50ms定时时间到 产生溢出标志TF0 程序查询到TF0 1 则软件计数器减1 这样减到0时就获得了500ms的定时 5 4定时器的编程和应用 44 4 程序设计 参考程序 MAIN MOVTMOD 01H 设T0工作在方式1MOVTL0 0B0H 给T0设初值MOVTH0 3CHMOVR7 10 软件计数器初值SETBTR0 启动T0LOOP JBCTF0 NEXT 查询定时时间到 转NEXT 同时清TF0SJMPLOOPNEXT DJNZR7 EXIT R7不等于0 则不对P1 0取反CPLP1 0MOVR7 10 重置软件计数器初值EXIT MOVTL0 0B0H T0中断子程序 重装初值MOVTH0 3CHSJMPLOOPEND 45 以上的定时程序中 程序都要重置计时器初值 这样从定时器溢出发出溢出标志 到重装完定时器初值 在开始计数 之间总会有一段时间间隔 使定时时间增加了若干微秒 造成定时不够精确 为了减小这种定时误差 单片机中设置了工作方式2 自动重装初值 则可避免上述因素 省去程序中重装初值的指令 实现精确定时 但是工作方式2的缺点是只有8位计数器 定时时间受到很大限制 5 4定时器的编程和应用 46 例5 3利用T0方式2产生250us的定时 在P1 0引脚上输出周期为500us的方波 要求精确定时 设系统振荡为12MHz 1 工作方式选择实现精确定时 采用方式2 对于12MHz晶振 方式2的最大计数时间为28 256us 所以可实现250us的精确定时 故 设置TMOD 02H 2 计算初值设初值为X 则 28 X 12 10 6 1 12 250 10 6X 28 250 6 06H 3 程序设计采用查询TF0的状态来控制P1 0的输出 5 4定时器的编程和应用 47 4 参考程序MAIN MOVTMOD 02H 置T0方式2MOVTH0 06H 送计数初值MOVTL0 06HSETBTR0 启动T0LOOP JBCTF0 NEXT 查询定时时间到 转NEXT 同时清TF0SJMPLOOPNEXT CPLP1 0 输出取反SJMPLOOP 重复循环END 5 4定时器的编程和应用 48 GATE门可使定时器Tx T0或T1 的启动计数受INTx 的控制 可测量引脚INTx P3 2或P3 3 上正脉冲的宽度 机器周期数 以T1为例 门控制位GATE的应用 测量脉冲宽度 回顾 当GATE 1时 K TRx INTx K 49 例5 4利用T1门控位GATE测试INT1 P3 3 引脚上出现的正脉冲的宽度 分析 根据设计要求 将T1设定为定时工作模式 方式1 GATE 1 当TR1 1时 一旦INT1 P3 3 引脚上出现高电平就开始计数 直到出现低电平为止 然后读取TH1 TL1中的计数值 分别送到寄存器A和B中 由于T1工作在定时方式 计数器计数的是机器周期的脉冲数 将脉冲数转化成时间 就可得到正脉冲的宽度 门控制位GATE的应用 测量脉冲宽度 50 ORG0100HMAIN MOVTMOD 90H T1为方式1定时控制字MOVTL1 00H 计数器初值为0MOVTH1 00HLOOP JBP3 3 LOOP 等待INT1 低SETBTR1 如INT1 为低 启动T1LOOP1 JNBP3 3 LOOP1 等待INT1 升高 开始计数LOOP2 JBP3 3 LOOP2 等待INT1 降低 停止计数CLRTR1 停止T1计数MOVA TL1 T1计数值的低8位送AMOVB TH1 T1计数值的高8位送B 由于定时器最长为16位计数器 因此被测脉冲高电平的宽度不能超过65536个机器周期 参考程序 51 例5 5当T0 P3 4 引脚上发生负跳变时 从P1 0引脚上输出一个周期为1ms的方波 如图所示 系统振荡为6MHz 两个计数器同时使用 5 4定时器的编程和应用 52 1 工作方式选择T0为方式1计数 初值0FFFFH 即外部计数输入端T0 P3 4 发生一次负跳变时 T0加1且溢出 溢出标志TF0置 1 发中断请求 在进入T0中断程序后 把F0标志置 1 说明T0引脚上已接收了负跳变信号 T1定义为方式2定时 在T0引脚产生一次负跳变后 启动T1每500 s产生一次中断 在中断服务程序中对P1 0求反 使P1 0产生周期1ms的方波 TMOD 0010 0101 25H 2 计算T1初值设T1的初值为X 则 28 X 2 10 6 5 10 4X 28 250 6 06H 5 4定时器的编程和应用 53 MAIN MOVTMOD 25H 初始化 T1为方式2定时 T0为方式1计数MOVTL0 0FFH T0置初值MOVTH0 0FFHSETBTR0 启动T0MOVTL1 06H T1置初值MOVTH1 06HLOOP0 JBCTF0 NEXT0 查询T0有无负跳变 有则转到NEXT0SJMPLOOP0NETX0 CPLP1 0 P1 0取反SETBTR1 启动T1LOOP1 JBCTF1 NEXT1 查询T1定时时间到否 到则转到NEXT1SJMPLOOP1NEXT1 CPLP1 0 P1 0取反SJMPLOOP1END 3 程序设计 54 5 4定时器的编程和应用 T0方式3时 TL0和TH0被分成两个独立的8位定时器 计数器 其中 TL0 8位定时器 计数器 TH0 8位定时器 当T1作串行口波特率发生器时 T0才设置为方式3 55 以上例题均采用查询的方法 这种方法很简单 但是在定时器整个计数的过程中 CPU要不断地查询溢出标志TFx的状态 很难执行其他操作 占用了CPU的工作时间 使得CPU的工作效率不高 若采用中断的方式来实现 可大大提高CPU的工作效率 我们下一章学习中断 学习完之后再返回来分析和比较两者的区别与特点 5 4定时器的编程和应用 56 本章结束 57 5 4定时器的编程和应用 例5 6假设某MCS 51应用系统的两个外中断源已被占用 设置T1工作在方式2 作波特率发生器用 现要求增加一个外部中断源 并控制P1 0引脚输出一个5kHz的方波 设系统振荡为6MHz 58 1 选择工作方式TL0为方式3计数 把T0引脚 P3 4 作附加的外中断输入端 TL0初值设为0FFH 当检测到T0引脚电平出现负跳变时 TL0溢出 申请中断 这相当于跳沿触发的外部中断源 TH0为8位方式3定时 控制P1 0输出5kHz的方波信号 如图所示 5 4 3方式3的应用 59 2 初值计算TL0的初值设为0FFH 5kHz的方波的周期为200 s TH0的定时时间为100 s TH0初值X计算如下 28 X 2 10 6 1 10 4X 28 100 156 9CH 3 程序设计ORG0000HLJMPMAINORG000BH T0中断入口LJMPTL0INT 跳T0中断服务程序ORG001BH 在T1方式3时 TH0占用T1的中断LJMPTH0INT 跳TH0中断服务程序 5 4 3方式3的应用 60 ORG0100HMAIN MOVTMOD 27H T0方式3计数 T1方式2定时MOVTL0 0FFH 置TL0初值MOVTH0 9CH 置TH0初值MOVTL1 dataL data为波特率常数MOVTH1 dataHMOVTCON 55H 启动T0 T1 设置外部中断为跳沿触发MOVIE 9FH 开中断 TL0INT MOVTL0 0FFH TL0中断服务程序 TL0重新装入初值中断处理TH0INT MOVTH0 9CH TH0中断服务程序 TH0重新装入初值CPLP1 0 P1 0位取反输出RETI 5 4 3方式3的应用 61 1 实时时钟实现的基本思想如何获得1秒的定时 可把定时时间定为100ms 采用中断方式进行溢出次数的累计 计满10次 即得到秒计时 片内RAM中规定3个单元作为秒 分 时单元 具体安排如下 42H 秒 单元 41H 分 单元 40H 时 单元从秒到分 从分到时是通过软件累加并进行比较的方法来实现的 5 4 5实时时钟的设计 62 2 程序设计 1 主程序的设计流程如图所示 5 4 5实时时钟的设计 63 2 中断服务程序的设计中断服务程序的主要功能是实现秒 分 时的计时处理 参考程序略 5 4 5实时时钟的设计 64 在读取运行中的定时器 计数器时 需注意 若恰好出现TLX溢出向THX进位的情况 则读得的 TLX 值就完全不对 同样 先读 THX 再读 TLX 也可能出错 方法 先读 THX 后读 TLX 再读 THX 若两次读得 THX 相同 则读的内容正确 若前后两次读的 THX 有变化 则再重复上述过程 这次重复读得的内容就应是正确的 下面是有关的程序 读得的 TH0 和 TL0 放置在R1和R0内 5 4 6运行中读定时器 计数器 65 RDTIME MOVA TH0 读 TH0 MOVR0 TL0 读 TL0 CJNEA TH0 RDTIME 比较2次读得的 TH0 不相等则重复读MOVR1 A TH0 送入R1中RET 5 4 6运行中读定时器 计数器
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!