已阅读5页,还剩79页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要随着现代娱乐节目及其它游戏环节的需要,也为了完善节目的紧张气氛和观众的互动,就出现了多路抢答器。很多人都抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。抢答器的出现给人们带来极大的方便,它能准确无误的从若干名参赛选手中确定出最先抢答者,并且有显示,生效等功能。 本设计是以四路抢答为基本理念。考虑到依需设定限时回答的功能,利 用AT89S52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。关键词:抢答器;AT89S52 ABSTRACTWith modern entertainment programs and other game loop,also need in order to improve the program of tension and the audience interaction.Many people are scare-answering device as a tool, has been widely applied in all kinds of intelligence and knowledge competition situation.The emergence of the vies to answer first people brings great convenience .It can accurate from several of participating in the first vies to answer first determine.And have a show,sound effects and other functions.This design is 4 vies for basic ideas. Considering according to need to set limit to answer function, using AT89S52 and periphery interface implementation of scare-answering system, of the microcontroller timer/counter timing and numeration principle, software and hardware organically, and makes the system can correctly to the time, at the same time making digital tube can properly shows the time.Key words:scare-answering device;AT89S52 目 录1 设计课题任务、功能要求说明及方案介绍 11.1 设计课题任务 1 1.2 功能要求说明 1 1.3 设计总体方案介绍及原理说明 12 硬件系统的设计 32.1 硬件系统各模块功能简要介绍 3 2.2 元器件清单 33 软件系统的设计 5 3.1 使用单片机资源的情况 5 3.2 软件系统各模块功能简要介绍 5 3.3 软件系统程序流程框图 5 3.4 软件系统程序清单 94 设计结论、实际结果、误差分析、教学建议 20 4.1 设计结论20 4.2 设计实物使用说明20 4.3 设计课题的误差分析20 4.4 设计体会20 4.5 教学建议21结束语22致谢23参考文献24附录251 设计课题任务、功能要求说明及方案1.1 设计课题任务设计一个具有特定功能的抢答器。1.2 功能要求说明设计一个具有特定功能的抢答器。该抢答器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。1.3 设计总体方案介绍及工作原理说明本抢答器主要由单片机、按键电路、显示接口电路和复位电路构成,设计课题的总体方案如图1所示: 数码管及 上拉电阻 AT89S52复位电路 抢答器计时时间 调整及语音报警独立式按键键盘 图1 总体设计方案智能抢答器用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,采用单片机AT89S52。片内带有4KB的Flash存储器,并允许在系统内改写或用编程器编程。该系统的核心器件是AT89S52,其外部接上复位电路、上拉电阻、数码管、独立式按键及蜂鸣器。利用单片机定时器/计数器产生定时效果通过编程实现需要的定时时间,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现多路抢答,正确显示时间和台号的功能。2 硬件系统的设计2.1 硬件系统各模块功能简要介绍本设计的硬件系统主要采用以下基本模块实现:单片机最小系统模块,输入模块,输出模块,蜂鸣器模块,指示灯模块,电源模块,下载模块。(1) 单片机最小系统模块:单片机最小系统一般包括:单片机,晶振电路,复位电路,本模块以AT89S52为系统控制核心,单片机的复位由复位电路完成(2) 输入模块:输入模块采用独立式键盘。八个独立式按键S1-S8一端分别接在P1口P1.0-P1.7,另一端都连接在GND接地。当某一按键按下时,相应的口线发生电平变化,单片机进行扫描来确定某一按键的按下。进而判断某一选手按下抢答键,同时数码管显示电路显示相应的时间和选手号码。 (3)输出模块:输出模块采用数码管显示。本模块采用两个四位一体数码管(共阳极)作为显示窗口,位控端接有三极管,用8个PNP三极管来驱动数码管,既节约成本又简化电路。(4)蜂鸣器模块:蜂鸣器与三极管相连,三极管的一端连接在P3.1口线上,蜂鸣器电路的作用是,当无人抢答或者是抢答超时时起到报警作用。(5)指示灯模块:用八个发光二极管LED0-LED7一端并接在VDD(VCC+5V)上,另一端分别通过限流电阻470的电阻连接在P3口的P3.0-P3.7口线上。用来显示对应的台号以及抢答开始、结束及违规指示。(6)电源模块:电源模块直接由USB口直接供电,接+5V的电压。(7)下载模块:ISP下载功能,是通过单片机的SPI口实现的。2.2 硬件系统各模块功能简要介绍 抢答器元器件清单列表如表1所示:表1 元器件清单列表序号名称、大小数量1电阻2001个2电阻47024个3电阻1K4个4电容22F1个5电容33pF2个6AT89S521个7单排插若干8四位一体共阳数码管2个9LED9个10PNP9个11四脚按钮9个12六脚开关1个13USB电源接口1个14下载口1个15晶振12MHz1个16蜂鸣器1个3 软件系统的设计3.1 使用单片机资源的情况 AT89S52的P1口为输入,P0、P3口为输出RST为复位输入片内资源主要有:T/C0用于50ms时基信号的产生3.2 软件系统各模块功能简要介绍 本设计的软件系统主要采用以下基本模块来实现:主函数、定时器0中断服务函数、键盘扫描及处理函数、显示输出及更新函数、延时函数。(1) 主函数:主要是用于对输入信号的处理,输出信号的控制和对各个功能程序模块的运用及其控制。(2) 定时器0中断服务函数:30秒倒计时,判别30秒内是否有人抢答,并判别在有人抢答的情况下,答题时间是否超过30秒。(3)键盘扫描及处理函数:键盘扫描函数,函数返回值即键值;键处理则是处理与键盘相连的P1口的内容,作为键值。(4)显示输出及更新函数:显示输出是将相应的台号和时间在数码管上显示,显示更新函数即是设置一个显示缓冲函数用于数码管显示的更新,保证显示的稳定性。(5)延时函数:两个纯延时函数,一个为显示延时函数,一个为蜂鸣器报警延时函数,为了蜂鸣器报警声音更清晰,延时大约为0.5秒。3.3 软件系统程序流程框图系统软件采用C语言编写程序,然后通过Keil软件进行调试,生成hex文件后,通过Proteus软件进行电路仿真。程序总体流程框图如图2所示中断服务函数流程框图如图3所示键盘扫描函数流程框图如图4所示显示函数流程框图如图5所示 系统初始化键盘扫描有键按下开始键按下违规报警开始30秒倒计时10秒内有键按下执行相应键的功能,并同时开始30秒倒计时30秒内答题完超时报警蜂鸣器报警NYYNYNY按结束键结束YN返回开始 图2 程序总体流程框图 开 始 启动定时器 倒计时开始 倒计时到20S?NY 蜂鸣器报警N 倒计时到5SY LED闪烁,报警N结束灯亮,报警30S,有人抢答Y答题超过30S? N 抢答有效Y 违规灯亮,蜂鸣器报警 返 回 图3 中断服务函数流程框图Y开始是否有键按下延时去抖真的按下判键释放 执行键功能程序 返回NNYY 图4 键盘扫描程序流程框图 图5 显示程序流程框图3.4 软件系统程序清单 按键功能及指示灯指示: S2:抢答开始;S3:抢答结束; S4,S5,S6,S7为对应的四路抢答器按键;S9:主持人复位按键; LED0:抢答开始提示; LED1:抢答违规指示;LED2:抢答结束提示; LED3、LED4、LED5、LED6为对应的四路位置指示 #includereg52.h #includeintrins.h #includeabsacc.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long /* 定义定时器T0时间常数和方式控制字 */ #define v_th0 0x3c /计数初值初始化 #define v_tl0 0xb0 #define v_tmod 0x01 /TMOD初始化 uchar led_buf8; /显示缓冲数组 bit bdata qdks_biaozhi; /启动键的标志位 bit bdata biaozhi1; /有人开始抢答的标志位 bit bdata fuwei; /复位键标志位 /*定义LED显示字符段码*/ static struct uchar ascii; /*查代码的序号*/ uchar stroke;/*数码管显示段码*/ code led_strokes13= 0,0xc0,1,0xf9,2,0xa4,3,0xb0,4,0x99, 5,0x92,6,0x82,7,0xf8,8,0x80,9,0x90, -,0xbf,p,0x0c,m,0xff; /*定义时间结构*/ struct TIME uchar sec; /单位:秒 struct TIME time; /*显示延时程序*/ void delay(void) unsigned char a,b; for(b=4;b0;b-) for(a=248;a0;a-); /*蜂鸣器报警延时程序*/ void delay1(void) unsigned char a,b,c; for(a=10;a0;a-) for(b=100;b0;b-) for(c=248;c0;c-); /*显示缓冲区更新函数*/ void led_buf_auto_flush(void) reentrant led_buf0=-; led_buf1=time.sec%10+0x30; /获得秒个位led_buf2=time.sec/10+0x30; /获得秒十位led_buf3=-; /*定时器0中断服务函数*/ void timer0(void) interrupt 1 using 1 /选用定时器0工作方式为1 static uchar click=0; /定时器0定时中断次数 TH0=v_th0;TL0=v_tl0; /设置初始值50ms为循环20次为1s +click; if(click=20) /是否到1秒,到1秒,秒加1 click=0; time.sec-; if(time.sec=20) /倒计时到20s,蜂鸣器报警 if(biaozhi1=0) P3=0xfc; delay1(); P3=0xfe; if(5=time.sec0)/倒计时到5s,闪烁,蜂鸣器报警 P3=0xfd; delay1(); P3=0xfe; if(time.sec=0) /30s倒计时结束 if(biaozhi1=0) TR0=0; /关闭定时器0 fuwei=1; P3=0xf9;/30S内无人抢答结束灯LED2亮,蜂鸣器报警 biaozhi1=1; else TR0=0; fuwei=1; P3=0xfd; led_buf_auto_flush(); /LED显示缓冲区时间值更新 /*段码查找函数*/ uchar get_strokes(uchar c) uchar i=0; while(led_strokesi.ascii !=c) /根据显示信息(序号)查到相应的段控代码 i+; return (led_strokesi.stroke); /*显示输出函数*/ void put_on_leds(void) uchar dmask=0xfe; /位控码初始化 uchar pos=0; while(pos!=8) P0=get_strokes(led_bufpos); /取显示段码并输出到段控口 P2=dmask; /位控码输出到位控口 dmask=_crol_(dmask,1); /修改位控码 delay(); pos+; /* * 函数原型:void dsq_t0(void); * 功 能:对系统进行初始化并接受用户的初始化时间设置。 */ void dsq_t0(void) TMOD=v_tmod; TH0=v_th0; TL0=v_tl0; /设置时间初值 TR0=0; EA=1; ET0=1; /开启中断,关闭定时器 /* * 函数原型:keychuli(); * 功 能:处理与键盘相连的P1口的内容,作为键值。 */ uchar keychuli() uchar k; k=P1; /P1口内容送K k=k; /取反 k=(k&0xff); return(k); /返回键值 /* * 函数原型:key(); * 功 能:键盘扫描函数,函数返回值即键值。 */ uchar key() uchar keyzhi,keyzhii; /抢答器键盘按键键值临时存放 keyzhi=keychuli(); /调P1口处理函数 if(keyzhi!=0) /有键动作延时去抖动,否则函数返回 put_on_leds(); put_on_leds(); keyzhi=keychuli(); /再次调P1口处理函数 if(keyzhi!=0) /真正有键按下,取键值并暂存 keyzhii=keyzhi; while(keyzhi!=0) /判按键是否释放,没有释放延时去抖动等待释放 put_on_leds(); put_on_leds(); keyzhi=keychuli(); keyzhi=keyzhii; /按键释放后恢复按键键值 return(keyzhi); /返回按键键值 /*主函数 * * 函数原型:main(); * 功 能: 调用dsq_t0函数对系统初始化,调用put_on_leds()函数显示时间 */ void main() uint keycishu=0; /抢答器启动/停止键按键次数 uchar keyzhiii; /抢答器键盘按键键值 biaozhi1=0; /有人开始抢答的标志位为0 qdks_biaozhi=0; /抢答器启动按键标志位为0 dsq_t0(); /时钟初始化函数,定时器0关闭 led_buf0=m; /抢答器上电显示时间P. led_buf1=m; led_buf2=m; led_buf3=m; led_buf4=m; led_buf5=m; led_buf6=m; led_buf7=p; time.sec=30; while(1) put_on_leds(); /调显示函数 delay(); /调延时函数 keyzhiii=key(); /调键盘扫描函数得到按键键码 switch(keyzhiii) /按键功能控制 case 0: put_on_leds(); /没有键按下,则返回 delay(); break; /*S2开始抢答键功能程序*/ case 1: if(!qdks_biaozhi) qdks_biaozhi=1; /抢答器开始抢答标志为一,抢答开始 P3=0xfe; /抢答开始指示灯LED0亮 led_buf7=m; TR0=1;/开启定时器,更新显示缓冲单元的内容 led_buf_auto_flush(); put_on_leds(); delay(); /延时 break; else break; /*S3抢答结束键功能程序*/ case 2: if(biaozhi1=1) /抢答器开始后,抢答结束键才有效 if(fuwei=0) /复位键的标志位为0,结束键才有效 TR0=0; /回答完,关定时器,蜂鸣器报警,结束灯亮 P3=0xf9; fuwei=1; /复位键的标志位置一 delay1(); /延时 P3=0xfb; /结束灯LED2亮 break; else break; else break; /*S4第一路抢答键功能程序*/ case 4: if(qdks_biaozhi=1) /抢答开始标志为1则抢答有效 if(biaozhi1=1) break; else biaozhi1=1; P3=0xf5; /第一路抢答提示灯亮,蜂鸣器报警 delay1(); /延时 P3=0xf7; /第一路抢答提示灯亮 time.sec=30; /送30秒倒计时 led_buf7=1; /显示第一路抢答 dsq_t0(); TR0=1; led_buf_auto_flush(); put_on_leds();/调显示函数 break; else /* 第一路违规抢答程序 */ if(biaozhi1=1)break; else biaozhi1=1; P3=0xfd; /违规抢答,违规灯LED1亮,蜂鸣器报警 fuwei=1; TR0=0; led_buf7=1; /显示违规路的序号1 put_on_leds(); /调显示函数 delay(); /延时 P3=0xfd; /违规指示灯LED1亮 qdks_biaozhi=1; break; /*S5第二路抢答键功能程序*/ case 8: if(qdks_biaozhi=1) /抢答开始标志为1则抢答有效 if(biaozhi1=1) break; else biaozhi1=1; P3=0xed; /第二路抢答提示灯亮,蜂鸣器报警 delay1(); P3=0xef; /第二路抢答提示灯亮 time.sec=30; /送30秒倒计时 led_buf7=2; /显示第二路抢答 dsq_t0(); TR0=1; led_buf_auto_flush(); put_on_leds(); break; /* 第二路违规抢答程序 */ else if(biaozhi1=1) break; else biaozhi1=1; P3=0xfd;/违规抢答,违规灯LED1亮,蜂鸣器报警 fuwei=1; TR0=0; led_buf7=2; /显示违规路的序号2 put_on_leds(); /调显示函数 delay(); /延时 P3=0xfd; /违规指示灯LED1亮 qdks_biaozhi=1; break; /*S6第三路抢答键功能程序*/ case 16: if(qdks_biaozhi=1) /抢答开始标志为1则抢答有效 if(biaozhi1=1) break; else biaozhi1=1; P3=0xdd; /第三路抢答提示灯亮,蜂鸣器报警 delay1(); /延时 P3=0xdf; /第三路抢答提示灯亮 time.sec=30; led_buf7=3; /显示第三路抢答 dsq_t0(); TR0=1; led_buf_auto_flush(); put_on_leds(); break; /* 第三路违规抢答程序 */ else if(biaozhi1=1)break; else biaozhi1=1; P3=0xfd; /违规抢答,违规灯LED1亮,蜂鸣器报警 fuwei=1; TR0=0; led_buf7=3; /显示违规路的序号3 put_on_leds(); /调显示函数 delay(); /延时 P3=0xfd; /违规指示灯LED1亮 qdks_biaozhi=1; break; /*S7第四路抢答键功能程序*/ case 32: if(qdks_biaozhi=1) /抢答开始标志为1则抢答有效 if(biaozhi1=1) break; else biaozhi1=1; P3=0xbd; /第四路抢答提示灯亮,蜂鸣器报警 delay1(); /延时 P3=0xbf; /第四路抢答提示灯亮 time.sec=30; led_buf7=4; /显示第四路抢答 dsq_t0(); TR0=1; led_buf_auto_flush(); put_on_leds(); break; /* 第四路违规抢答程序 */ else if(biaozhi1=1)break; else biaozhi1=1; P3=0xfd; /违规抢答,违规灯LED1亮,蜂鸣器报警 fuwei=1; TR0=0; led_buf7=4; /显示违规路的序号4 put_on_leds(); /调显示函数 delay(); /延时 P3=0xfd; /违规指示灯LED1亮 qdks_biaozhi=1; break; /*S9复位键功能程序*/ case 128: if(fuwei=1)/复位键标志位为1才有效 fuwei=0;/复位键标志位清零 qdks_biaozhi=0;/启动键标志位清零 biaozhi1=0; P3=0xff; /所有指示灯全灭 dsq_t0(); led_buf0=m; /显示P. led_buf1=m; led_buf2=m; led_buf3=m; led_buf7=p; time.sec=30; /装倒计时初值30s break; 4 设计结论、实际结果、误差分析、教学建议4.1 设计结论本文研究与设计的四路多功能抢答器采用了通用的电子元器件,利用AT89S52单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来。实现抢答功能的是通过编写程序的方法集成在AT89S52内部。接着将程序下载到硬件电路中,配合周边的时钟电路,复位电路等,制作出符合设计要求的抢答器。 4.2 使用说明 (1)该抢答器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。(2)4名选手编号为:1,2,3,4。各有一个抢答按钮,按钮的编号与选手的编号对应,分别为S4,S5,S6,S7。(3)主持人按下开始按钮(S2)后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响。(4)主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,蜂鸣器发出音响,其它按钮不起作用。(5)正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30s,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号,蜂鸣器发出音响。(6)各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮(S9)。4.3 误差分析抢答器的误差主要是来源于定时和延时,定时器定时到,每次转去执行中断程序都是需要时间的,这个误差是不可避免的。当倒计时到5秒时,数码管闪烁,并且蜂鸣器报警,在这个过程中,数码管某一位可能会显示特别亮,就是因为在该过程中,可能碰巧遇到定时器中断来临,导致这种现象的产生。4.4 设计体会通过这次单片机课程设计,收获颇多。特别是通过实际动手,提高了动手能力,学到了很多书本上没有的东西。首先是硬件电路的制作。使用Protel软件绘制原理图,然后绘制PCB图,这个过程是比较复杂的,合理布局,合理布线是很重要的。在做实物的过程中,印制电路板,由于是双面板,所以需要小心翼翼的对孔。做好板子后,就是焊接元器件了。按照单片机最小系统的各个模块来焊接,没焊接一个模块,就用数字万用表检查一个模块,保证没有虚焊的出现,出现错误马上改正。硬件电路做完后,实物就算完成了,然后是软件系统的设计。编程语言采用比较方便的C语言,在Keil软件上建立工程编写程序,编写后调试的过程才是最复杂的。使用Proteus软件绘制仿真原理图,将Keil软件中生成的hex文件导入,实验以及观察现象。然后一直调试,直到符合功能指标。最后把程序导入实物,在实物上运行。由于开始标志位设置不当,开始出现了抢答违规后,按抢答开始键还有效的情况,随后修改程序解决了这个问题。在硬件和软件的设计过程中,体会到了动手的乐趣,大大的提高了实际动手能力,并将理论与实践有机的结合起来。在硬件电路的制作中没遇到什么问题,但是在编程过程中遇到了一些问题,主要是标志位设置不当导致逻辑混乱,通过不断调试程序以及导入实物进行观察和调试,最终完成了四路抢答器的设计。虽然耗费了一定的时间,但是在这个过程中,收获很多,看着完成的实物,也很有成就感。4.5 教学建议一个学期的单片机课程下来,自己真的学到了不少知识。在王老师的教导下,从单片机入门到能够独立编写程序,了解以及熟悉单片机知识。王老师严谨的教学态度,风趣幽默的教学方式,虽然无论是理论课,实验课,还是课程设计都对我们要求严格,但是这才是一个真正负责人的老师,一个希望学生能够多学点知识的老师。但是另外一个方面,有些同学的兴趣的确不在单片机上,而且有的同学真的私下里也有很努力的在学习单片机,希望老师也能了解情况,尽量能够给予每个同学一个公正的评价和肯定。结束语 单片机的课程设计已经告一段落了,通过这次课程设计,看到了自己的长处,同时更多的自身的欠缺。理论知识不是很扎实,经常要去翻书或者查找资料解决一些问题,课程设计中的软件设计部分的显示程序和键扫描程序也是借用老师的现成程序。但是这也是一次比较成功的设计,实现了四路抢答器功能,并且没有逻辑错误的出现,积累了宝贵的经验,将理论很好到运用到了实践中。由于设计的不完美,如果要想有更好的利用价值,还需要更进一步的改进,这样才有实际的推广应用价值。 致 谢 首先感谢王老师一个学期来的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国稀土招聘笔试题及答案
- 新房换房协议书范本
- 文化活动共建协议书
- 交换公司车辆协议书
- 水暖地暖安装合同范本
- 槟榔行业保密协议书
- 栏杆劳务分包合同范本
- 楼上住户签合同范本
- 2025年绵阳市中考化学试卷真题(含答案)
- 食堂服务安全协议合同
- 文员岗位技能提升培训教材
- 2025年考研基础医学考研真题解析(含答案)
- 2023年6月14日四川雅安事业单位笔试《综合知识》试题
- 2024年人教版九年级化学上册全册教案
- 2025福建宁德市蕉城区乡投集团有限公司、宁德市蕉城区园投集团有限公司招聘高层次人才2人笔试考试参考题库及答案解析
- 2025-2026学年人教版(2024)数学七年级上册期中测试卷
- 酒店员工礼仪培训
- 内镜后并发症处理方法
- 餐饮用电安全常识培训课件
- 物业危险源知识培训课件
- 2025云南楚雄州元谋县国有资产投资管理有限公司招聘工作人员18人笔试历年参考题库附带答案详解
评论
0/150
提交评论