




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章8051内部资源的C编程 8 1中断8 2定时器 计数器8 3串行口 8 1中断 中断的基本概念 所谓中断是指CPU对系统中或系统外发生的某个事件的一种响应过程 即CPU暂时停止现行程序的执行 而自动转去执行预先安排好的处理该事件的服务子程序 当处理结束后 再返回到被暂停程序的断点处 继续执行原来的程序 实现这种中断功能的硬件系统和软件系统称为中断系统 8 1 1中断源 1 8051中断源 2 定时器 计数器控制寄存器 TCON IT0 IT1 外部中断0 或1 触发方式控制位 IT0 或IT1 被设置为0 则选择外部中断为电平触发方式 IT0 或IT1 被设置为1 则选择外部中断为边沿触发方式 电平触发方式 CPU在每个机器周期的S5P2采样INTx引脚 若INTx引脚为低电平 将直接触发外部中断 边沿触发方式 若第一个机器周期采样到INTx引脚为高电平 第二个机器周期采样到INTx引脚为低电平时 向CPU请求中断 IE0 IE1 外部中断0 或1 的中断请求标志位 当CPU响应中断转向中断服务程序时由硬件将IE0 或IE1 清零 TF0 TF1 定时器中断0 或1 的中断请求标志位 当CPU响应中断转向中断服务程序时由硬件将TF0 或TF1 清零 3 串行口控制寄存器 SCON RI TI 串行口收 发数据申请中断标志位 1申请中断 0不申请中断 8 1 2中断的控制 1 中断允许寄存器 IE MCS 51单片机中没有专设的开中断和关中断指令 对各中断源的中断开放或关闭是由内部的中断允许寄存器IE的各位来控制的 EA 中断允许总控位 EA 0 屏蔽所有的中断请求 EA 1 开放中断 EA的作用是使中断允许形成两级控制 即各中断源首先受EA位的控制 其次还要受各中断源自己的中断允许总控位控制 ET1 定时器 计数器T1的溢出中断允许位 ET1 0禁止T1中断 ET1 1允许T1中断 ES 串行口中断允许位 ES 0禁止串行口中断 ES 1允许串行口中断 EX1 外部中断1中断允许位 EX1 0禁止外部中断1中断 EX1 1允许外部中断1中断 2 中断优先级寄存器 IP MCS 51单片机的中断源有两个用户可控的中断优先级 从而可实现二级中断嵌套 中断系统遵循如下三条规则 1 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断 一直到该中断服务程序结束 返回了主程序且执行了主程序中的一条指令后 CPU才响应新的中断请求 2 正在进行的低优先级中断服务程序能被高优先级中断请求所中断 实现两级中断嵌套 3 CPU同时接收到几个中断请求时 首先响应优先级最高的中断请求 D7D6D5D4D3D2D1D0 IP 字节地址B8H PT2 定时器 计数器T2的中断优先级控制位 只用于52子系列 PS 串行口的中断优先级控制位 PT1 定时器 计数器T1的中断优先级控制位 PX1 外部中断1的中断优先级控制位 PT0 定时器 计数器T0的中断优先级控制位 PX0 外部中断0的中断优先级控制位 表8 2中断优先级 8 1 3中断响应 单片机响应中断的条件为中断源有请求 中断允许寄存器IE相应位置1 且CPU开中断 即EA 1 这样 在每个机器周期的S5P2期间 对所有中断源按用户设置的优先级和内部规定的优先级进行顺序检测 并可在S6期间找到所有有效的中断请求 如有中断请求 且满足下列条件 则在下一个机器周期的S1期间响应中断 否则将丢弃中断采样的结果 1 无同级或高级中断正在处理 2 现行指令执行到最后1个机器周期且已结束 3 若现行指令为RETI或访问IE IP的指令时 执行完该指令且紧随其后的另一条指令也已执行完毕 1 中断响应的条件 CPU响应中断后 由硬件自动执行如下的功能操作 1 根据中断请求源的优先级高低 对相应的优先级状态触发器置1 2 保护断点 即把程序计数器PC的内容压入堆栈保存 3 清内部硬件可清除的中断请求标志位 IE0 IE1 TF0 TF1 4 把被响应的中断服务程序入口地址送入PC 从而转入相应的中断服务程序执行 各中断服务程序的入口地址见表 2 中断响应过程 中断服务程序入口地址表 中断服务程序的函数定义的语法格式如下 void函数名 interruptm usingn 3 中断服务程序 C51编译器支持在C源程序中直接开发中断程序 中断服务程序是通过按规定语法格式定义的一个函数 interrupt属性的参数为0到31的整常数值 带操作数的表达式在函数原型中是不允许的 interrupt属性影响如下函数的目标代码 特殊功能寄存器ACCBDPHDPL和PSW的内容需要时在函数调用时保存在堆栈中 在中断函数中所用的寄存器如果不用using属性指定一个寄存器组就保存在堆栈中 保存在堆栈中的寄存器和SFR在退出函数前恢复 函数由指令RETI终止 另外Cx51编译器自动产生中断矢量 linelevelsource1externbitalarm 2intalarm count 345voidfalarm void interrupt1using3 61alarm count 2 71alarm 1 81 下面的例子程序说明了如何使用interrupt属性 程序同时显示进入和退出中断函数的代码 using函数属性用来选择和非中断程序不同的寄存器组 ASSEMBLYLISTINGOFGENERATEDOBJECTCODE0000C0E0PUSHACC0002C0D0PUSHPSW SOURCELINE 5 SOURCELINE 60004E500RMOVA alarm count 01H000625E0ADDA ACC0008F500RMOValarm count 01H A000AE500RMOVA alarm count000C33RLCA000DF500RMOValarm count A SOURCELINE 7000FD200ESETBalarm SOURCELINE 80011D0D0POPPSW0013D0E0POPACC001532RETI 但是因为在本函数中不需要工作寄存器为切换寄存器组而产生的代码被优化排除了 4 中断服务函数应用注意 中断函数没有函数参数 如果中断函数声明中带参数 编译器就产生错误信息 中断函数声明不能包含返回值 必须声明为VOID 如果定义了一个返回值 编译器就产生一个错误 暗含的int返回值被编译器忽略 编译器不允许直接的对中断函数的调用 对中断函数的直接调用是无意义的 编译器对每个中断函数产生一个中断矢量 矢量的代码是跳转到中断函数的起始 从一个中断程序中调用函数必须和中断使用相同的寄存器组 8 1 5中断编程 图所示是利用优先权解码芯片 在单片机8031的一个外部中断INT1上扩展多个中断源的原理电路图 includeunsignedcharstatus bitflag voidservice int1 interrupt2using2 INT1中断服务程序 flag 1 设置标志 status p1 存输入口状态 在中断服务程序中仅设置标志 并保存I O口输入状态 voidmain void IP 0 x04 置INT1为高优先级中断 等价PX1 1 IE 0 x84 INT1开中断 CPU开中断等价EA 1 EX1 1 for if flag 有中断 switch status 根据中断源分支 case0 break 处理IN0 case1 break 处理IN1 case2 break 处理IN2 case3 break 处理IN3 default flag 0 处理完成清标志 8 2定时器 计数器 2个16位定时器 计数器定时器 对片内机器时钟 周期方波 进行计数计数器 对Tx引脚输入的负脉冲进行计数 与Timer工作有关的特殊功能寄存器 TCON TMOD THx和TLx 8 2 0定时器概述 TIMER的作用 定时操作 定时采样 定时扫描 定时中断测量外部信号 累加统计 测量周期等定时输出 PWM等监视系统正常工作与否 定时器的一般结构和工作原理 实质是计数器 脉冲每一次下降沿 计数寄存器数值将加1 计数的脉冲如果来源于单片机内部的晶振 由于其周期极为准确 这时称为定时器 计数的脉冲如果来源于单片机外部的引脚 由于其周期一般不确定 可表示事件发生 这时称为计数器 1 计数寄存器TH与TL 2 定时器控制寄存器TCON 88H TRx Timer0 1运行控制位 1启动计数 0停止计数 8 2 1与定时器有关的特殊功能寄存器 TFx Timer0 1计数溢出标志位 1计数溢出 0计数未满TFx标志位可用于申请中断或供CPU查询 在进入中断服务程序时会自动清零 但在查询方式时必须软件清零 定时器T0 T1中断申请过程 在已经开放T0 T1中断允许且已被启动的前提下 T0 T1加满溢出时TF0 TF1标志位自动置 1 检测到TCON中TF0 TF1变 1 后 将产生指令 LCALL000BH LCALL001BH执行中断服务程序 TF0 TF1标志位会自动清 0 以备下次中断申请 3 定时器方式寄存器TMOD 89H C T 计数器 定时器选择位 1外部事件计数器 对Tx引脚的脉冲计数 0片内时钟定时器 对机器周期脉冲计数定时 GATE门控位 Timer可由软件与硬件两者控制 GATE 0 普通用法Timer的启 停由软件对TRx位写 1 0 控制 GATE 1 门控用法Timer的启 停由软件对TRx位写 1 0 和在INTx引脚上出现的信号的高 低共同控制 INTx引脚高电平允许定时 计数 M1 M0 工作方式定义位 定义4种方式 00 13位Timer01 16位Timer 经常用到 10 可自动重装的8位Timer 经常用到 11 T0分为2个8位Timer T1此时不工 4 定时器 计数器2控制寄存器TMOD 89H T2CONAddress 0C8HResetValue 00000000B TF2 溢出标志位 必须由软件清零 EXF2 外部标志 当EXEN2 1 且当T2EX引脚上出现负跳变而出现捕获或重装时 EXF2置位 申请中断 EXF2必须由软件清零 RCLK 接收时钟标志 1 用定时器2溢出作为串行口的接收时钟 0 用定时器1溢出作为串行口的接收时钟 TCLK 发送时钟标志 1 用定时器2溢出作为串行口的发送时钟 0 用定时器1溢出作为串行口的发送时钟 EXEN2 定时器2外部允许标志 1 若定时器2未作串行口波特率发生器 则T2EX端的负跳变引起定时器2的捕获或重装 0 T2EX端的外部信号不起作用 TR2 定时器2运行控制位 1 启动 0 停止 C T2 计数器 定时器选择位 1 计数器 0 定时器 CP RL2 捕获 重装标志 1 当EXEN2 1 且T2EX端的信号负跳变时 发生捕获操作 0 当定时器2溢出 或在EXEN2 1条件下T2EX端的信号负跳变时 发生自动重装操作 1 工作方式1 16位的定时 计数器 振荡器 12 TLxTHx 8位 8位 TFx 申请中断 Tx端 TRx位 GATE位 INTx端 1 C T 0 C T 1 控制 1开关接通 或门 与门 最大计数脉冲个数 65536 216 8 2 2定时器 计数器的工作方式 THx TLx赋初值 THx赋高8位 TLx赋低8位 工作方式1的编程要点 TMOD选方式 写 M1 M0 01b选方式1 若不用门控位 直接用软件写TRx控制启 停 若使用门控位 先置位TRx 然后由INTx端的高 低电平来控制其启 停 若要允许中断 还须先置位ETx EA等中断允许控制位 并编写中断服务程序 若不用中断 可查询 计数溢出标志TFx 的方式工作 但溢出标志TFx须软件清0 定时器的计数单元每个机器周期自动加1直到溢出T 12 fosc 2 16 a us 方式1 定时初值 定时时间计算 2 工作方式2 8位自动重装的定时 计数器 振荡器 12 TLx 8位 TFx 申请中断 Tx端 TRx位 GATE位 INTx端 1 C T 0 C T 1 控制 1开关接通 或门 与门 THx 8位 溢出位 门开 用于需要重复定时和计数的场合 最大计数值 256 28 THx TLx赋相同初值在TLx计数达到0FFH再加 1 时 TL0将溢出 TFx 置1去申请中断 同时THx中的值自动重装 Copy 进TLx 工作方式2的编程 TMOD寄存器选方式 写 M1 M0 10b选中方式2 其他用法与各种方式1完全相同 3 工作方式3 方式3只适用于定时器0 此时 定时器0的TH0 TL0成为两个独立的计数器 TL0可作为定时器 计数器 占用T0在TCON和TMOD中的控制位和标志位 TH0只能作为定时器使用 占用T1在TCON和TMOD中的控制位TR1和标志位TF1 4 定时器2的工作方式 第一种 捕捉方式 设置为捕捉方式时和定时器0或定时器1一样以16位方式工作 这种方式通过复位EXEN2来选择 当置位EXEN2时 如果T2EX有负跳变电平将把当前的数锁存在RCAP2H和RCAP2L中 这个事件可用来产生中断 通过软件设置T2CON 可使定时 计数器2以三种基本工作方式之一工作 用来产生串行口通讯所需的波特率 这通过同时或分别置位RCLK和TCLK来实现 第二种工作方式 为自动重装方式 其中包含的两个子功能由EXEN2来选择 当EXEN2复位时 16位定时器溢出将触发一个中断 并将RCAP2H和RCAP2L中的数装入定时器中 当EXEN2置位时 除上述功能外T2EX引脚的负跳变将产生一次重装操作 第三种工作方式 8 2 3定时器 计数器的初始化 1 初始化步骤 2 计算定时器 计数器的计数初值 并装载到TH和TL寄存器 1 确定定时器 计数器的工作方式 编程TMOD寄存器 3 定时器 计数器工作中断方式时 开CPU中断和源中断 编程IE寄存器 4 启动定时器 计数器 编程TCON寄存器中的TR0 TR1位 2 计数初值的计算 1 定时器的计数初值 在定时器方式下 是对机器周期脉冲进行计数 如果系统时钟为6MHz 一个机器周期为12 fosc 2us 方式0 13位定时器最大定时间隔 213 2us 16 384ms 方式1 16位定时器最大定时间隔 216 2us 131 072ms 方式2 8位定时器最大定时间隔 28 2us 512us 初值计算方法 T 12 fosc 216 X us 2 计数器的计数器初值 方式0 13位计数器最大计数值 213 8192 方式1 16位计数器最大计数值 216 65536 方式2 8位计数器最大计数值 28 256 初值计算方法 cnt 216 X 8 2 4定时器 计数器的应用实例 例1在频率为12MHz的标准51单片机上 用timer1产生10khz定时器滴答中断 P187 解 1 确定timer1工作方式 工作方式2 8位自动重装方式TMOD中的M1M0 10 2 确定timer1计数初值 X 256 100 156 3 中断方式控制字设定 EA 1 总开关 ET1 1 分开关 4 启动定时器 TR1 1 5 编程 1 流程图 主函数流程图中断函数流程图 2 代码编写 中断函数主函数 includesbitLED P1 0 sbitWAVE P1 1 staticunsignedlongoverflow count 0 定时器1中断服务程序 每100个时钟周期执行一次 voidtimer1 ISR void interrupt3 overflow count WAVE WAVE 主函数 定时器1设置为方式28位重装方式 voidmain void TMOD TMOD 例2在频率为12MHz的标准51单片机上 输出周期为2ms的方波 P188 1 用定时器0的方式1编程 采用查询方式 includesbitP10 P1 0 由P1 0输出波形voidmain void TMOD 0 x01 定时器工作方式0TR0 1 启动定时器0for TH0 65536 1000 256 装载计数初值TL0 65536 1000 256 do while TF0 查询等待定时中断信号P10 P10 取反TF0 0 软件清零TF0 2 用定时器0的方式1编程 采用中断方式 includesbitP10 P1 0 voidtimer0 isr void interrupt1 P10 P10 TH0 65536 1000 256 表达式的数学意义 初值恢复TL0 65536 1000 256 voidmain void TMOD 0 x01 TH0 65536 1000 256 TL0 65536 1000 256 EA 1 ET0 1 TR0 1 while 1 例3在频率为12MHz的标准51单片机上 使LED闪烁 周期为2s p189 includesbitLED P2 0 sbitWAVE P1 1 staticunsignedlongoverflow count 0 定时器1中断服务程序 每50ms执行一次 voidtimer1 ISR void interrupt3 TH1 65536 50000 256 定时器1赋初值TL1 65536 50000 256 50ms 1us 5000 晶振 overflow count WAVE WAVE 主函数 定时器1设置为方式1 voidmain void TMOD TMOD T1的中断系列 20个中断为1系列 每个中断50ms 例4在频率为12MHz的标准51单片机上 在P1 0引脚上输出周期为2 5S 占空比为20 的脉冲信号 P190 include defineduncharunsignedcharsbitWAVE P1 0 ucharperiod 250 ucharhigh 50 ucharoverflow count 0 voidtimer1 ISR void interrupt1 TH0 65536 10000 256 TL0 65536 10000 256 if overflow count high WAVE 0 elseif overflow count period overflow count 0 WAVE 1 8 3串行口 串行通讯 数据逐位顺序传送 传输线仅需1 2根 8 3 0基本概念 串行通信的基本特征是数据逐位顺序进行传送 串行通信的格式及约定 如 同步方式 通讯速率 数据块格式 信号电平 等 不同 形成了多种串行通信的协议与接口标准 常见的有 通用异步收发器 UART 本课程介绍的串口 通用串行总线 USB I2C总线 CAN总线 控制器局域网CAN ControllerAreaNet 是一种现场总线 SPI总线 SerialPeripheralInterface 串行外围接口 RS 485 等等 全双工串行接口 UART 全双工 串行通信 收 发可同时进行 手机 电话 半双工 串行通信 收 发不可同时进行 对讲机 单工 数据单向传送 异步串行通信 以字符为单位进行传送 同步串行通信 以数据块为单位进行传送 波特率 bps 每秒钟传输的数据位数 Bitspersecond 异步串行通信数据格式 低位先行 串行接口的组成 发送完TI才置1或接收完RI才置1 8 3 1与串行口有关的SFRp194 SM0SM1SM2RENTB8RB8TIR1 SCON SM0 SM1 串行口4种工作方式的选择位 00方式0 8位移位寄存器I O 波特率固定为fosc 1201方式1 8位UART 1 8 1位 波特率可变 按公式计算 10方式2 9位UART 1 8 1 1位 波特率固定 fosc 32或1 6411方式3 9位UART 1 8 1 1位 波特率可变 按公式计算 SM2 串行口多机通信控制位 作为方式2 方式3的附加控制位 1 串行口控制寄存器SCON 98H RI TI 串行口收 发数据申请中断标志位 1申请中断 0不申请中断 TB8 方式2 3中 是要发送的第9位数据 多机通信中 TB8 0表示发送的是数据 TB8 1表示发送的是地址 奇偶校验 RB8 在方式2 3中 是收到的第9位数据 在多机通信中 用作区别地址帧 数据帧的标志 奇偶校验 SM0SM1SM2RENTB8RB8TIR1 REN 串行口接收允许控制位 1表示允许接收 0禁止接收 SCON SMOD GF1GF0PD1DL 2 电源控制寄存器PCON 97H P 152 特殊功能寄存器PCON不能按位寻址 SMOD 在串行口工作方式1 2 3中是波特率加倍位 1时 波特率加倍 0时 波特率不加倍 在PCON中只有这一个位与串口有关 GF1 GF0 用户可自行定义使用的通用标志位 PCON 8 3 2串行口的工作方式 1 工作方式0 8位移位寄存器I O方式 发送 SBUF中的串行数据由RxD逐位移出 TxD输出移位时钟 波特率 fosc 12 每送出8位数据TI就自动置1 需要用软件清零TI 接收 串行数据由RxD逐位移入SBUF中 TxD输出移位时钟 波特率 fosc 12 每接收8位数据RI就自动置1 需要用软件清零RI 方式0时序图 并入串出写入SBUF RXD数据输出 TXD同步移位脉冲 TI中断标志 D0 D1 D2 D3 D4 D5 D6 D7 写REN 1RI 0 RXD输入 RI 接收时序 发送时序 TXD 串行口方式0的扩展应用 经常用到 串行口常用工作方式0扩展出并行I O口 工作方式1 2 3则常用于串行通信 AB CLK hgfedcba CLR AB CLK CLR AB CLK CLR 5V 74LS164 74LS164 74LS164 74LS164是串入并出芯片 hgfedcba hgfedcba 5V 共阳LED数码管 VCC TxD RxD 51单片机 2 串行口工作方式1 串行口为波特率可调的8位通用异步串行通信口 发送或接收一帧信息 包括1位起始位0 8位数据位和1位停止位1 其帧格式如图所示 方式1工作时 发送端自动添加一个起始位和一个停止位 接收端自动去掉一个起始位和一个停止位 1 方式1输出 发送时 数据从TXD端输出 当数据写入发送缓冲器SBUF后 启动发送器发送 当发送完一帧数据后 停止工作 置中断标志TI为1 2 方式1输入 接收时 由REN置1 允许接收 串行口采样RXD 当采样由1到0跳变时 确认是起始位 0 开始接收一帧数据 当RI 0 且停止位为1或SM2 0时 停止位进入RB8位 同时置中断标志RI 否则信息将丢失 所以 方式1接收时 应先用软件清除RI或SM2标志 a 发送时序图 b 接收时序图 3 串行口工作方式2 方式2下 串行口为9位UART 发送或接收一帧数据包括1位起始位0 8位数据位 1位可编程位 TB8 RB8 用于奇偶校验 和1位停止位 其帧格式如图所示 1 方式2的输出 写SBUF的指令 除了将8位数据送入SBUF外 同时还将TB8装入发送移位寄存器的第9位 并通知发送控制器进行一次发送 发送时 先根据通信协议由软件设置TB8 然后用指令将要发送的数据写入SBUF 启动发送器 在送完一帧信息后 TI被自动置1 在发送下一帧信息之前 TI必须由中断服务程序或查询程序清0 当REN 1时 允许串行口接收数据 数据由RXD端输入 接收11位的信息 当接收器采样到RXD端的负跳变 并判断起始位有效后 开始接收一帧信息 2 方式2的输入 当接收器接收到第9位数据后 若同时满足以下两个条件 RI 0和SM2 0或接收到的第9位数据为1 则接收数据有效 8位数据送入SBUF 第9位送入RB8 并置RI 1 若不满足上述两个条件 则信息丢失 方式3为波特率可变的11位UART通信方式 除了波特率以外 方式3和方式2完全相同 4 串行口工作方式3 8 3 2串行口的初始化 1 串行口的波特率 波特率为每秒钟传送二进制数码的位数 也叫比特数 单位为b s 即位 秒 波特率用于表征数据传输的速度 波特率越高 数据传输速度越快 1 方式0波特率在方式0中 波特率为时钟频率的1 12 即fosc 12 固定不变 2 方式2波特率在方式2中 波特率取决于PCON中的SMOD值 当SMOD 0时 波特率为fosc 64 当SMOD 1时 波特率为fosc 32 波特率 2SMOD T1的溢出率 32 在方式1和方式3下 波特率由定时器1的溢出率和SMOD共同决定 3 方式1和方式3的波特率 溢出率 T1溢出的频繁程度即 T1溢出一次所需时间的倒数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓库机械租赁合同范本
- 冻肉投放合同范本
- 加工制作合同范本门窗
- 产品推广居间合同范本
- 加盟合同范本奶茶
- 健身收购合同范本
- 出租黄色围挡合同范例
- 中国国家展览中心合同范例
- 住宅租赁房屋合同范例
- 2024年温州鹿城农商银行招聘笔试真题
- 2024年度-银行不良清收技巧培训课件(学员版)
- 《书籍装帧设计》 课件 项目3 书籍装帧整体设计
- 【可行性报告】2023年粮油加工项目可行性研究分析报告
- 部编版小学语文四年级下册第二单元教材分析
- (西师大版)数学二年级下册“双减”下的堂上作业设计
- 参考消息电子版在线阅读(角度区)
- 2024年山东省春季高考技能考试汽车专业试题库-上(单选题汇总)
- 2024年湖南高速铁路职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2016-2023年湖南铁路科技职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2016-2023年江苏农林职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 狼道的读后感课件
评论
0/150
提交评论