版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式MCU-m16c基础 RENESAS M16C/62 嵌入式微控制器程序设计嵌入式MCU-m16c基础 华中科技大学 RENESAS嵌入式MCU联合实验室嵌入式MCU-m16c基础课程名称: 嵌入式微控制器 及程序设计 嵌入式MCU-m16c基础一.授课目的:通过瑞萨M16C学习板的教学和试验1.熟悉嵌入式微控制器体系结构2.掌握嵌入式微控制器开发环境3.掌握嵌入式微控制器系统的程序设计嵌入式MCU-m16c基础二.学习基础 微型计算机原理 组成,存储结构,指令系统,中断技术,接口技术等 汇编语言,C语言,程序设计基础知识嵌入式MCU-m16c基础三.课程内容1.嵌入式微控制器基础 M1
2、6C学习板CPU,内置周边功能 存储器配置 复位 基础操作 程序设计基础嵌入式MCU-m16c基础2.集成开发环境:工具管理器TM 运行环境 TM的安装,启动 工具的登陆(调试器KD30,编译器,编辑器,闪存ROM写入器) MAKE的编写方法 项目的制作 Build 程序的写入及固化嵌入式MCU-m16c基础3.程序设计 嵌入式用C语言 开发前的准备 预处理 程序设计步骤(结合范例)嵌入式MCU-m16c基础课程的安排: 上课 38周学时 试验 4周时(集中进行)嵌入式MCU-m16c基础四.嵌入式系统(Embedded Systems) 概念 狭义的概念 嵌入到各种机器中,执行控制功能的计算
3、机系统,即将软硬件可剪裁的计算机系统,嵌入到应用环境的系统中,使之构成一种智能型装置的系统. 广义的概念 为了专用目的设计的计算机系统都是嵌入式系统,换言之,是指嵌入到系统里面的计算机系统.嵌入式MCU-m16c基础五.嵌入式系统的应用范围 家电(电饭锅,洗衣机,干燥机,热水器,空调) AV (高清晰度电视,DVD,MP3,数码相机,数 字音像) 娱乐/教育(游戏机,电子乐器,卡拉OK) 个人数字助理(电子笔记本,汽车显示器)嵌入式MCU-m16c基础 PC机周边设备(打印机,扫描仪,读机卡,硬盘驱动器,光盘驱动器) OA机器(复印机,传真机) 通讯终端(电话,手机) 网络设备(交换机,路由器
4、)嵌入式MCU-m16c基础 运输设备(汽车,信号机,铁道,机车控制,飞机,船舶) 工业控制(电机,生产机械,机床,机器人) 设备机器(照明,空调,电力系统) 医疗/福利器械(血压器,心电计,X射线透视仪,CT) 航空/军事(火箭,人造卫星,导弹) 其它业务用机器(数据终端,自动售货机) 计测仪器(电炉测试,电流计,同步加速器)嵌入式MCU-m16c基础 嵌入式MCU-m16c基础嵌入式MCU-m16c基础嵌入式MCU-m16c基础嵌入式MCU-m16c基础嵌入式MCU-m16c基础嵌入式MCU-m16c基础嵌入式MCU-m16c基础嵌入式MCU-m16c基础六.嵌入式系统的特点 专用目的的系
5、统 整个系统为完成一个专用目的而设计 有严格的资源限制 低成本,低功耗,小型化 内核:微控制器 软件:精简的微内核结构 高可靠性的要求 确保实时性 实时多任务系统嵌入式MCU-m16c基础嵌入式微控制器的现状 嵌入式系统的内核是微控制器 (Micro Contrller Unit 简称MCU) 微控制器是主要用于控制目的的一种专用微处理器,20世纪70年代首次出现,目前生产厂家有: RENESAS MOTOROLA INTEL NEC FUJITSU TOSHIBA 品种有4位,8位,16位,32位,瑞萨公司有720,740,7700,M16C,M32R系列, 预测到2010年,每人平均可接触
6、到350片MCU.嵌入式MCU-m16c基础嵌入式微控制器的新技术发展 低功耗 可扩展总线型单片机型: 嵌入DRAM,嵌入SRAM,内置FLASH技术 并行总线 串行总线: 总线,SPI总线,CAN总线技术 多CPU单MCU I/O控制,以太网络协议通讯,精简指令集CI2CI2嵌入式MCU-m16c基础 功能增强 数据采集,模糊控制. 智能接口 适应工业对象,伺服驱动,人机对话,通讯网络的要求.嵌入式MCU-m16c基础七.硬件结构 M16C/62型单片机采用高性能硅栅CMOS工艺,是M16C/60系列单片机中的一种.它具有和所有M16C/60系列单片机一样的CPU内核,采用100脚塑料封装Q
7、FP. M16C/62型单片机包括各种产品,差别仅在于片内存储器类型和容量的不同,以及封装的形式不同.嵌入式MCU-m16c基础 我们常用的有两种QFP封装形式,分别是100P6S-A和100P6Q-A 下面是100P6S-A的引脚结构图,它有100个引脚嵌入式MCU-m16c基础嵌入式MCU-m16c基础CPU的寄存器组成 数据寄存器(R0,R1,R2,R3) 这四个寄存器为16位寄存器.根据命令语句可以作为8位或32位寄存器用. 地址寄存器(A0,A1) A0,A1为具有和数据寄存器相同功能的16位寄存器,可用作相对寻址或间接寻址中的地址寄存器.嵌入式MCU-m16c基础 帧基址寄存器(F
8、B) FB为16位寄存器,使用于帧相对寻址. 程序计数器(PC) PC由20位组成,指示执行命令的地址 中断表格寄存器(INTB) 它由20位组成,指示有中断向量表的初始地址 堆栈指针(USP/ISP) 由16位组成,有用户堆栈指针(USP)和中断堆栈指针(ISP)两种.用堆栈指针选择标志,可设定使用其中的一种. 嵌入式MCU-m16c基础嵌入式MCU-m16c基础 静态基址寄存器(SB)为16位的寄存器,用于相对寻址. 标志寄存器(FLG)由11位组成,每位用作一个标志或用于汇编语言记叙程序时的分支判断条件,或用于设定CPU的操作 如下图所示:嵌入式MCU-m16c基础嵌入式MCU-m16c
9、基础嵌入式微控制器M16C/32的组成结构 M16C/32的芯片中,除了用来执行算法和逻辑操作的中央处理器(CPU)和存放指令以及数据的存储(ROM,RAM)外,内置有多种具有周边功能的单元,如定时器,监视定时器,数据传送控制器DMCA D/A转换器,A/D转换器,时钟同步/异步串行口,CRC运算电路,系统时钟发生器,时钟同步串行口等嵌入式MCU-m16c基础 这些单元通过P0-P10等I/O接口进行数据的传送和控制. 嵌入式微控制器M16C/62的组成结构如下图所示:嵌入式MCU-m16c基础嵌入式MCU-m16c基础存储器配置 地址空间从00000H-FFFFFH为止,共1MB M3062
10、0FCAFP有单片工作模式,存储器扩展工作模式,CPU工作模式等三种工作模式.存储器可以扩展.但是M16C/62学习板仅有单片工作模式. 下面是对单片工作模式的存储器配置加以说明:嵌入式MCU-m16c基础 SFR(专用寄存器区): 在此区内集中了CPU的工作模式,外部功能控制等寄存器. 内部RAM:M30620FCAFP中使用着128KB的闪存,内部ROM的一部分(FFFDCH-FFFFFH)是固定的向量地址.中断发生时存放执行程序的初始地址,如下图所示:嵌入式MCU-m16c基础嵌入式MCU-m16c基础八、M16C/62的操作 可执行基本操作过程如下: 1.复位 2.复位向量的内容进入P
11、C 3.PC的内容作为地址信息输出 4.将指定地址的内容作为指令取进PC 见下面框图:嵌入式MCU-m16c基础 文件构成和生成目标文件 下面是从源文件到M16C/62学习板能执行的文件的流程加以说明。如图所示, 在M16C/62学习板中调试程序(kd30)使用的文件和Flashstart(写入闪存软件)处理的文件有区别,为了制成这些文件,需要用nc30WA来进行编译,实际上文件的生成是沿着编译汇编链接ROM化的顺序完成的。嵌入式MCU-m16c基础嵌入式MCU-m16c基础源文件有如下三种: test.c(C语言源文件) Start0.a30(汇编语言源文件) Sect30.inc(汇编语言
12、源文件)嵌入式MCU-m16c基础开发流程如下: 1.依靠编译器nc30WA从test.C生成test.a30汇编源文件 2.依靠汇编器as30从ncrt30.a30生成ncrt30.r30 3.依靠汇编器as30从test.a30生成test.r30 4.用2,3步生成的浮动模块文件进行链接,做成test.x30绝对模块文件 5.用4步做成的test.x30生成test.mot摩托罗拉S格式化文件(供Flashstart用)嵌入式MCU-m16c基础M16C/62学习板的开发步骤 下面是用集成开发环境TM进行操作的开发步骤,这些过程能使开发操作顺利进行. 编码 启动编译器,记述程序.本书基本
13、上用C语言进行记述 编译 包含编译,汇编,链接等操作.用C语言记述的程序用NC30WA编译器变成汇编语言,然后用AS30汇编器变成机器语言.并且用LN30链接器,将机器语言文件加以归纳,决定地址,做成绝对目标文件(可执行文件)嵌入式MCU-m16c基础编译器NC30的介绍 NC30编译器的组成: NC30是供M16C60系列单片机用的C编译器。它由下面的四个程序组成: 1.编译驱动器nc30。它启动编译器,汇编器和连接器。 2.预处理器cpp30。它用来处理宏和条件编译。 3.编译器主体ccom30。它把c语言源文件转换成汇编语言源文件。 4.aopt30 汇编程序最优化嵌入式MCU-m16c
14、基础5.StkViewer&stk它计算程序所用的堆栈的大小(StkViewer是GUI)6.utl30 用于SBDATA声明和专门页函数的声明7.MapViewer图观测器(只包含在PC版本中)(图观测器是GUI(图形用户界面)嵌入式MCU-m16c基础1.21.2 NC30的编译流程 嵌入式MCU-m16c基础1.2.1 nc30 nc30是编译驱动器,通过设置选项它还可以完成一系列从编译到连接的操作。1.2.2 cpp30是预处理器,用来处理宏和条件编译1.2.3 ccom30 ccom30是编译器自带的执行文件。C源程序经cpp30转换成能在as30上运行的汇编源程序。1.2.
15、4堆栈大小计算程序stk30,它用来就算程序所用的堆栈的大小。嵌入式MCU-m16c基础NC30管理的段 NC30对数据和代码按段进行管理,段的类型如下表,各个段还按照属性进一步划分,各个属性及其意义如下表:嵌入式MCU-m16c基础 Int I=1;/ data section char c=c;/ int j,k;/ bss section const char cc=a; / rom sectionVoid main()int m; / stack sectionI=I+k;/ program section 嵌入式MCU-m16c基础各个段还按照属性进一步划分,各个属性及其意义如下表:
16、嵌入式MCU-m16c基础预处理命令: 预处理命令是用“”开始的一个字符串,其作用为包含文件,宏定义,条件编译和其它扩展功能。嵌入式MCU-m16c基础 主要有: #define 串1 串2如: #define LED_off Oxff#progma ADDRESS 变量名 绝对地址如: #progma ADDRESS p7 3edH嵌入式MCU-m16c基础启动程序 1.启动程序的任务 为了使编好的程序能正常工作在执行程序前需先对单片机进行初始化,并设置堆栈,这些处理通常不是用C语言 编写的,而是用汇编语言写的,单独构 成“启动程序”,NC30的启动程序为“ncrt30.a30”和“ sec
17、t30.inc”嵌入式MCU-m16c基础其实现的功能如下: 1.划定堆栈的位置 2.单片机的初始化位置 3.初始化静态变量区 4.设置中断表格寄存器“INTB” 5.调用main函数 6.设置中断矢量表嵌入式MCU-m16c基础嵌入式MCU-m16c基础堆栈大小的计算: 在启动程序中要设置一个适当大小的堆栈区。堆栈过小会使程序失控,过大则会浪费存储单元,在NC30中使用堆栈的有: 1.自动变量 2.复杂计算所需的暂存区 3.返回地址 4.老的帧指针 5.函数的实参嵌入式MCU-m16c基础 堆栈的大小可以根据程序推算,但另一种较方便的方法是在启动NC30时使用开关量“showstackusa
18、ge”,这时在编译时会产生包含堆栈信息的文件“xxx.stk”,由此文件即可计算出堆栈的最大值,还可以运行stk30程序自动对堆栈的大小进行计算。嵌入式MCU-m16c基础嵌入式MCU-m16c基础启动程序的修改 1.堆栈大小的设置 2.中断矢量表起始地址的位置 3.处理器工作模式的设置 4.段的安排和各段起始地址的设置 5.可变矢量表的设置 6.固定矢量表的设置 7.单片模式下不使用“near ROM”和“far RAM”,把它们删除。嵌入式MCU-m16c基础 用NC运行例程的流程嵌入式MCU-m16c基础上图各部分的介绍:1.用nc30来编译C的源程序AA.c,然后用as30来汇编成可重
19、定位的(relocatable)目标文件AA.r30;2.启动程序nctr0.30和sect30.inc,其中包含段中的信息,是通过改变段映射、段大小和中断向量表的设置来达到系统的要求的;3.修改后的启动程序汇编成可重定位的目标文件ncrt0.a30;4.两个可重定位的目标文件AA.r30和ncrt0.a30通过连接器ln30,创建绝对模块文件AA.x30。而ln30是从nc30中运行的 嵌入式MCU-m16c基础调试 用KD30调试器确认程序的动作.KD30是运行于主机的调试器。KD30与存储于闪存的检测程序相通,提供高效率的调试环境。 KD30的特点: 1.汇编语言和结构汇编语言的源线路调
20、试,并且C语言是可以应用的。 2.指向一个通道计数里,断点的两个指针可以同时设定。 嵌入式MCU-m16c基础3.当不具有程序执行的实时性能而执行目标程序时,RAM检测功能允许你检测内存的内容。4.你可以应用C语言变量,在一个结构变量和一个全局变量里,也可以应用一个成员变量5.在调试软件PD30时,KD30在操作上有兼容性。嵌入式MCU-m16c基础启动KD30 1.点击开始菜单 start - program - MITSUBISHI-TOOL - KD30启动KD30。 2.当KD30启动时,显示下图所示的初始(Init)对话框。KD30的操作环境在这个窗口中设置。 嵌入式MCU-m16c
21、基础下图为初始对话框:嵌入式MCU-m16c基础 初始对话框中操作环境项目填写完之后,点击“ OK”按钮。当KD30能与OAKS16-BaordKit上检测程序连接(communicate)时,KD30自动启动,且KD30窗口(KD30的主窗口)如图所示。 嵌入式MCU-m16c基础嵌入式MCU-m16c基础当KD30不能正常连接时,出现下面的窗口: 点击错误窗口的“ok”,按钮后,初始化对话框如再次显示,注意检测连接是否错误。嵌入式MCU-m16c基础KD的操作 1.下载一个程序 指向菜单 File Download Load Module 嵌入式MCU-m16c基础然后下载窗口打开,点击对
22、象文件()以及“Open”按钮 嵌入式MCU-m16c基础2.显示源程序(the program source) 点击程序窗口上的 “View”,然后源程序窗口打开,指向你想显示的源程序的名称。嵌入式MCU-m16c基础源程序被显示: 嵌入式MCU-m16c基础基本的窗口菜单 :嵌入式MCU-m16c基础设置存储地址 :嵌入式MCU-m16c基础3.执行程序 设置启动地址到PC和中断地址,然后点击“GO”嵌入式MCU-m16c基础双击BRKBRK栏设置中断地址嵌入式MCU-m16c基础4.观察和改变C变量 嵌入式MCU-m16c基础为了改变变量的值,打开当地窗口(local window)嵌入
23、式MCU-m16c基础接着设置变量的值:嵌入式MCU-m16c基础写入ROM 将调试器上述符合规范的程序用Flashstart写入器写入到闪存ROM中,使其动作.到此开发工作完成. 综合前面所述开发流程如下:嵌入式MCU-m16c基础M16C/62学习板的存储器配置 与前面介绍的M30620FCAFP的存储器进行比较,其中RAM和ROM的一部分使用了监控程序 下图是M16C/62学习板的存储配置嵌入式MCU-m16c基础写入ROM时存储的配置 程序的写入要启动写入闪存用软件”Flashstart”,它写在M16C/62的bootROM中,bootROM是在通常使用的用户ROM之外,有8KB的内
24、存.出厂时存放在标准I/O模式的程序中. 下图是写入ROM时存储的配置嵌入式MCU-m16c基础嵌入式MCU-m16c基础FlashSta的介绍: FlashSta被用来在flash存储器上写程序。 当你写程序到flash存储器中的时候,与开始时写入flash存储器的KD30相通讯的监控程序被消除嵌入式MCU-m16c基础启动FlashSta 确保在启动FlashSta之前将你的PC与OAKS16-BoardKitOAKS16-BoardKit连接好 短接短接OAKS16-BoardKitOAKS16-BoardKit的JP1JP1连接器,并选择复位按钮 双击复制的“Flashsta.exe”
25、来启动FlashStaFlashSta,当FlashStaFlashSta启动时下面的窗口将打开,设置所用的端口嵌入式MCU-m16c基础嵌入式MCU-m16c基础当下面的窗口出现时,就要检查 OAKS16-OAKS16-BoardKitBoardKit连接是否正确或者电源是否打开。嵌入式MCU-m16c基础之后点击“OK”按钮,出现如下面的窗口:嵌入式MCU-m16c基础退出FlashSta 要退出FlashSta,选择“Exit”按钮 嵌入式MCU-m16c基础九.集成开发环境TM 集成开发环境TM(Tool Manager)是将编译器/汇编器/编辑器等工具群集成在图形界面内,改善软件开发
26、效率的工具. 在集成开发环境TM里,可以从TM工具栏里启动登陆在TM内的编辑器,编译器,调试器,闪存写入ROM等软件工具.编译器的启动用make来进行,以提高开发效率嵌入式MCU-m16c基础TM的操作界面 项目栏各按钮功能如下: Customize(制作)按钮 项目栏里有些按钮暂时不使用,虽然这些按钮不妨碍工作,但是将其删除后项目更清晰.这个按钮功能是打开进行项目栏设定的Customize对话框嵌入式MCU-m16c基础工具的登录 工具栏里可将用于开发的编辑器,调节器,闪存写入器等进行登录.用到按钮 调节器KD30的登录: 点击 会出现下面窗口嵌入式MCU-m16c基础 点击按钮 会出现如下
27、界面:嵌入式MCU-m16c基础 点击选择KD30的文件夹,选择KD.EXE文件,将之放到文件名中.将会显示:嵌入式MCU-m16c基础 点击OK,出现下面窗口 在DEBUG TOOL里选中KD30,点击OK.则调试器设定结束嵌入式MCU-m16c基础编辑器的登陆 点击工具栏中的 会出现如下,选择EDIT TOOL嵌入式MCU-m16c基础 显示出工具EDIT TOOL对话框,选上默认的Notepad即可.点击确定,则编辑器登录了.嵌入式MCU-m16c基础闪存ROM写入工具(Flashstrat)的登录 点击工具栏上的 在出现的窗口中选择APPLICATION,点击ADD按钮嵌入式MCU-m
28、16c基础 指定文件flashsta.exe,则会在Tool information对话框中显示如下,追加flashsta.exe文件,点击OK,则flashstart登陆成功.嵌入式MCU-m16c基础制作项目(新建项目) 基本项目制作的步骤如下: 1.点击工具栏中的嵌入式MCU-m16c基础2.显示项目编辑界面,如图: 在Project中键入工程名,如sampleA.指定路径.在Target中选中M16C Family嵌入式MCU-m16c基础指定目录后,点击按钮下一步.会出现下面的对话框: 3.选择C语言编辑器,点击下一步.嵌入式MCU-m16c基础出现下面的窗口: 4.指定编译器启动程
29、序,在Custom中指定M16C/62学习板的ncrt0.a30启动程序,然后点击下一步 嵌入式MCU-m16c基础 5.显示项目的确认画面,点击按钮 ,则设定完成.嵌入式MCU-m16c基础项目编辑 项目编辑是在项目编辑窗口中进行的,可进行包括在做成的项目内的源文件及编译时的任选项,生成顺序等的定义和更改. 在TM中,即使不知道make的编写方法,也可以用项目编辑器添加文件,指定命令任选项,在内部可自动生成makefile,并且点击build按钮,可执行make.exe软件,生成目的文件.嵌入式MCU-m16c基础项目编辑窗口构成 包括菜单栏,工具栏,生成顺序窗口,项目信息窗口,状态栏,成员
30、栏窗口,文本窗口.嵌入式MCU-m16c基础下图为项目信息栏窗口 项目信息窗口用生成顺序窗口显示选择项目信息的详细内容.嵌入式MCU-m16c基础文件的添加 下面介绍用项目编辑器添加文件的方法按照前面的方法新生成下面界面后:嵌入式MCU-m16c基础打开项目文件,点击all前面的”+”标志符显示所要的文件.嵌入式MCU-m16c基础添加文件: 选择sampleb.X30,点击鼠标右键,依次选择Edit Item/Add File,出现下面的窗口.嵌入式MCU-m16c基础选择已编好的后缀名为”.C”的文件,我们这里是Test01.c文件.嵌入式MCU-m16c基础添加后,点击”+”符号,显示全
31、部文件如下,至此,添加文件工作完成.嵌入式MCU-m16c基础摩托罗拉S格式文件的制作 在TM中使用Lmc30进行”工具使用”设定步骤如下: 1.打开项目编辑器,确认sampleb.x30的命令,显示LN30的启动命令,如下图嵌入式MCU-m16c基础2.从项目菜单上选择”Information”嵌入式MCU-m16c基础3.点击Tool,选择lmc30命令.嵌入式MCU-m16c基础 至此,就将绝对模块文件做成摩托罗拉S格式的文件了.在项目信息窗口的命令里添加了lmc30的启动文件.嵌入式MCU-m16c基础按钮build的使用 Build是用项目编辑器执行项目(显示的内容)命令的程序 TM的build有三种 1.build:和make一样,在目的文件不存在,或进行源文件变更的场合执行命令. 2.rebuild:执行记述有clean的命令以后,进行build(由于clean,中间生成文件,目的程序被删除) 3.部分build:用项目编辑器对选择的项进行build嵌入式MCU-m16c基础build的启动 选好项目文件名后,点击build按钮嵌入式MCU-m16c基础 执行build时是按照项目编辑器设定的make的步骤,依次进行编译,汇编,链接的,在进行过程中,若源文件的记述发生错误,则用编辑器打开源文件,并在builder的界面内显示出错误(error),build进行终止.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年南京信息职业技术学院单招职业适应性考试题库及答案详解(名师系列)
- 2026年兰州现代职业学院单招职业倾向性考试题库含答案详解ab卷
- 2026年兰州外语职业学院单招综合素质考试题库及答案详解(夺冠系列)
- 2026年克拉玛依职业技术学院单招职业适应性测试题库带答案详解(培优b卷)
- 2026年共青科技职业学院单招职业技能考试题库附答案详解(培优a卷)
- 现代物流管理理论与实践操作试题
- 2026年北海职业学院单招职业倾向性测试题库带答案详解(巩固)
- 2026年内蒙古呼和浩特市单招职业倾向性测试题库附参考答案详解(能力提升)
- 2026年南充文化旅游职业学院单招职业适应性测试题库附参考答案详解(满分必刷)
- 2026年内蒙古巴彦淖尔盟单招职业倾向性考试题库含答案详解(夺分金卷)
- DB37∕T 4985-2025 农村公路交通安全设施设置规范
- 湖南省常德市2025-2026学年度上学期2月高三检测考试(一模)政治试题( 含答案)
- 2026年春季学期学校共青团工作计划
- 2026年热流体力学基础
- 2025-2026学年第二学期学校办公室工作计划:创新赋能共促发展
- 中储粮招聘笔试试题及答案
- 系统运维培训课件
- 写作:考虑目的和对象:笔为心声 文因人定(情境任务教学设计)语文新教材统编版八年级下册
- 职业教育人工智能应用发展报告(2024-2025)
- 2025年山东城市服务职业学院单招职业适应性测试题库附答案
- 二装现场安全巡查课件
评论
0/150
提交评论