




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机械与电气工程学院单片机原理及应用技术课程设计报告姓 名:徐聪晓学 号:1021090141班 级:10电自1班指导教师:高晓红 岑理章 课题名称 电子万年历1 设计任务与要求1.1 基本要求1、用字符型液晶显示模块LCD1602显示万年历的日期/时间等,如下图所示(仅供参考,可个性化差异设计,如显示学号等):2012/05/01 XCX16:47:58 01412、单片机与实时时钟芯片DS1302之间通过SPI接口实现“日期/时间”数据的采集。1.2 扩展功能用34行列式键盘进行校时,共有“1、2、3、4、5、6、7、8、9、0” 、“校时(闪烁)”和“(年/月/日/时/分/秒)切换”等十二个按键。2 系统基本模块方案的选择与论证2.1技术可行性随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。 单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。4、有优异的性能、价格比。2.2方案论证1.单片机的选择和论证:采用传统的AT89C51作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。2.显示的选择和论证方案:方案一:采用LCD数码管动态扫描,LED数码管价格适中,对显示数字最合适,而且采用动态扫描法和单片机连接时,占用的单片机口线少,但这里显示为数多,所要求是数码管多,成本高。方案二:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,虽价格昂贵,但接口线多,所以在此设计中采用LED液晶显示屏。3.时钟芯片的选择和论证:方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及润年补偿的年近计数,而且精度高,结果简单,所以采用DS1302时钟芯片。方案二:直接采用单片机定时计数器提供秒信号,实用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。且算法复杂,所以不采用此方案。经论证本次设计采用AT89c51作为主控制系统,DS1302提供时钟,采用LED液晶作为显示。3 硬件设计3.1显示模块的选择LCD1602主要技术参数:显示容量162字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WH)mm接口信号说明:编号符号引脚说明编号符号引脚说明1VSS电源地9D2DateI/02VDD电源正极10D3DateI/03VL液晶显示偏压信号11D4DateI/04RS数据/命令选择端(H/L)12D5DateI/05R/W读/写选择端(H/L)13D6DateI/06E使能信号14D7DateI/07D0DateI/015BLA背光源正极8D1DateI/016BLK背光源负极控制器接口说明基本操作时序: 读状态: 输入: RS=L,RW=H,E=H 输出: D0D7=状态字 写指令: 输入: RS=L,RW=L, D0D7指令码,E= 高脉冲 输出:无 读数据: 输入: RS=H,RW=H,E=H 输出: D0D7=数据 写数据: 输入: RS=H,RW=L,D0D7=数据,E= 高脉冲 输出: 无 状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0-6当前数据地址指针的数值STA7 读写操作使能1: 禁止 0: 允许注:对控制器每次进行读写操作之前,都必须进行读写检测,确保STA为0指令说明 初始化设置 显示模式设置指令码功能00111000设置162显示,57点阵,8位数据接口 显示开/关及光标出设置指令码功能00001DCBD=1开显示;D=0 关显示C=1 显示光标; C=0 不显示光标B=1 光标闪烁; B=0 光标不显示000001NSN=1 当读或写一个字符后地址指针加一,且光标加一N=0 当读或写一个字符后地址指针减一,且光标减一S=1 当写一个字符,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果S=0 当写一个字符,整屏显示不移动 数据指针设置指令码功能80H+地址码(0-27H,40H-67H)设置数据地址指针3.2键盘模块的选择使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。3.3时钟电路模块DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 (1)DS1302的结构及工作原理1.引脚功能及结构 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。2. DS1302的控制字节 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 3. 数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 4. DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式 。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。(2)DS1302实时显示时间的软硬件 DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。1.DS1302与CPU的连接 实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有34线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2A (典型值),省电模式时小于1A,工作电压为2.4V3.3V,显示清晰。 2.DS1302实时时间流程 DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。 尤其是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。(3) 结论 DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。(1) 时钟芯片DS1302的工作原理DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。(2) DS1302的控制字节DS1302的控制字如表2-1所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出 RAM RD 1 A4 A3 A2 A1 A0 / CK /WR表2-1 DS1302的控制字格式(3) 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图2-2所示图2-2 DS1302读/写时序图(4) DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2-2。表2-2 DS1302的日历、时间寄存器此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 图 2-3示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。4 软件设计4.1 程序设计电子万年历的程序主要包括2个方面的内容:一是DS1302从单片机中读取数据进行计数,二是利用按键进行时间的调整。AT89C51单片机主要I/O口的分配。P1.0-P1.2分别接DS1302的CLK,IO,RST端。4.2主程序流程图:移动光标并显示日期初始化lcd移动光标并显示时间初始化内部定时器移动光标并显示温度初始化DS1302重复进行按键扫描从DS1302读取日期和时间5 设计体会1、通过本次实验,因为之前接触到的电子系统设计不多,所以一开始,感觉难以入手,就算上网载了很多程序,也看不懂。后来请求同学的帮助,了解了要对各种芯片编写程序时首先应找到该芯片的数据手册,根据数据手册上的说明、时序要求及流程图编写对应程序。2、其次,再次巩固了Keil C51工程文件的建立,程序编写以及编译的掌握程度。最重要的是,因为只是水平有限,要自己编写C程序很难,但在此实验中,最大的收获莫过于看懂别人的程序,分析之后,自己拼凑编写以实现不同的功能。并且掌握了52C程序的编写过程。3、因为自己要修改程序,所以单单花费在程序分析的时间就很多,为了更好的理解程序,我把每句主要程序的后面都注释了该语句的意思,详情可以见程序清单,发现注释语义的工作量也是非常大的。写实验报告时,每个模块的流程图都是自己画的,用WORD文档画图真的很麻烦,而且不是很美观。因为时间比较仓促,流程图写的条理性不够,不过相信以后多多练习,就可以做得更好。4、在这次实验中我遇到了很多故障,不过通过各种渠道解决了一些故障,虽然没有全部解决,但能在短短一周内通过此次作业,实现电子钟的功能,还是有点成就感的。在解决这些问题的过程中发现网络确实是一个很好的学习平台,利用前人的经验可以提高自己的解决实际问题的能力。通过这一个多礼拜的学习实践,使我对所学的知识进行了系统的复习和巩固,在以前学习中不够清晰的概念得到了更好的理解。相信通过不断的学习,能使自己扬长补短。附表1:程序#include #include sbit P3_2=P32;sbit P3_3=P33;sbit P3_4=P34;/定义行键盘sbit P1_4=P14;sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;/定义列键盘sbit BF=P07;sbit DI=P10;sbit RW=P11;sbit EN=P12;/定义1602控制脚sbit CLK=P37;sbit DATA=P20;sbit CE=P13; /定义ds1302管脚unsigned char year,month,date,hour,minute,second; /年 月 天 时 分 秒中间变量unsigned char key,ziduan; /按键中间变量,字位中间变量bit MODE; /设置模式参数unsigned char tdly,kdly; /等待时间的中间变量void lcd_wr0(unsigned char datum) /写1602指令 BF=1; DI=0;RW=1;EN=1; while(BF) _nop_(); RW=0;P0=datum;EN=0;void lcd_wr1(unsigned char datum) /写1602数据BF=1;DI=0;RW=1;EN=1;while(BF) _nop_();DI=1;RW=0;P0=datum;EN=0;void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) /写字符串 x表示水平位置 ,y=0 表示第一行 y=1 表示第二行 if (y = 0) lcd_wr0(0x80 + x); /表示第一行 else lcd_wr0(0xC0 + x); /表示第二行 while (*s) lcd_wr1( *s); /写数据 s +; unsigned char DS1302_rd(unsigned char addr) /读1302数据unsigned char i,datum=0;CE=0;_nop_();_nop_();CLK=0;_nop_();_nop_();CE=1;_nop_();_nop_();for(i=0;i=1;DATA=CY;CLK=1;_nop_();_nop_();for(i=0;i=1;if(DATA) datum|=0x80;CLK=1;_nop_();_nop_();CLK=0;_nop_();_nop_();CE=0;_nop_();_nop_();return(datum);void DS1302_wr(unsigned char addr,unsigned char datum)/写1302数据unsigned char i;CE=0;_nop_();_nop_();CLK=0;_nop_();_nop_();CE=1;_nop_();_nop_();for(i=0;i=1;DATA=CY;CLK=1;_nop_();_nop_();for(i=0;i=1;DATA=CY;CLK=1;_nop_();_nop_();CLK=0;_nop_();_nop_();CE=0;_nop_();_nop_();void t0_int() interrupt 1/中断服务程序TH0=(65536-1000)/256;TL0=(65536-1000)%256; /定时1mstdly+;kdly+;void main()TMOD=0x01; /定时器选择工作方式1TH0=(65536-1000)/256;TL0=(65536-1000)%256;/重新赋值EA=1; /开总中断ET0=1;/开定时器0中断TR0=1; /开定时器0lcd_wr0(0x38);lcd_wr0(0x01);lcd_wr0(0x06);lcd_wr0(0x0C); /初始化1602LCD_Write_String(10,0, XCX); /写自己的名字必须带“”LCD_Write_String(10,1, 0141); /写自己的学号while(1) key=13;P3_2=0;P3_3=1;P3_4=1; /第一行打开 逐列一一扫描将值付给Keyif(!P1_4) key=1; if(!P1_5) key=2; if(!P1_6) key=3; if(!P1_7) key=4;P3_2=1;P3_3=0;P3_4=1; / 第二行打开同上if(!P1_4) key=5; if(!P1_5) key=6; if(!P1_6) key=7; if(!P1_7) key=8;P3_2=1;P3_3=1;P3_4=0; / 第三行打开同上if(!P1_4) key=9; if(!P1_5) key=10; if(!P1_6) key=11; if(!P1_7) key=12;if(11=key&kdly200) /按一下s11进入设置模式 等待时间大于200msMODE=!MODE; /按一下进入设置模式,按两下退出设置if(MODE)DS1302_wr(0x80,0x80);lcd_wr0(0x02);lcd_wr0(0x0D); /停止DS1302ziduan=0;else if(!MODE) /给1302写更改后的数据lcd_wr0(0x0C);DS1302_wr(0x8E,0x00);DS1302_wr(0x80,second);DS1302_wr(0x82,minute);DS1302_wr(0x84,hour);DS1302_wr(0x86,date);DS1302_wr(0x88,month);DS1302_wr(0x8C,year);DS1302_wr(0x8E,0x80); kdly=0; /扫描时间归零if(MODE&12=key&kdly200) /进入设置模式后 光标移位 /按S12按键光标右移 移16下位一周期ziduan+;lcd_wr0(0x14);if(8=ziduan) lcd_wr0(0x80+0x40);if(16=ziduan) lcd_wr0(0x80+0x00);ziduan=0;kdly=0;if(MODE&key200) /进入设置模式后选着设定的数值s1s9风别对应的19switch(ziduan)case 0: year%=16; year+=key*16;lcd_wr0(0x80+0x00);lcd_wr1(0x30+key);ziduan+; break;case 1: year/=16; year+=key;lcd_wr0(0x80+0x01);lcd_wr1(0x30+key);ziduan+; break;case 3: month%=16;month+=key*16;lcd_wr0(0x80+0x03);lcd_wr1(0x30+key);ziduan+;break;case 4: month/=16;month+=key; lcd_wr0(0x80+0x04);lcd_wr1(0x30+key);ziduan+;break;case 6: date%=16;date+=key*16;lcd_wr0(0x80+0x06);lcd_wr1(0x30+key);ziduan+; break;case 7: date/=16;date+=key;lcd_wr0(0x80+0x07);lcd_wr1(0x30+key);ziduan+; lcd_wr0(0x80+0x40);break;case 8: hour%=16;hour+=key*16;lcd_wr0(0x80+0x40);lcd_wr1(0x30+key);ziduan+;break;case 9: hour/=16;hour+=key;lcd_wr0(0x80+0x41);lcd_wr1(0x30+key);ziduan+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农庄步道铺设方案范本
- 焦作河涌清淤施工方案
- 淄博师范高等专科学校《基础阅读(一)》2023-2024学年第二学期期末试卷
- 昆明艺术职业学院《工程项目管理沙盘模拟实训》2023-2024学年第一学期期末试卷
- 如何设计课件:《成功开展家庭聚会》
- 银行点钞手法培训课件
- 烟台南山学院《分子与细胞生物学检测技术》2023-2024学年第二学期期末试卷
- 上海中医药大学《化学实验室安全技术》2023-2024学年第二学期期末试卷
- 梧州学院《nux系统及其应用》2023-2024学年第二学期期末试卷
- 临沂大学《科技应用与组合设计》2023-2024学年第二学期期末试卷
- 安全生产月“一把手”讲安全课件
- 初中文言文教学的现状与对策研究
- 全国水利ABC证单选题七
- 曾国藩人生修炼日课
- 深入浅出Serverless:技术原理与应用实践课件
- 公路施工技术高职PPT完整全套教学课件
- 年产十万吨丙烯腈生产工艺设计
- 人教版高中物理必修二全册同步课时练习
- 城市社区管理中存在的问题及对策研究正文内容
- 年产10吨功能益生菌冻干粉的工厂设计改
- (完整)人教版 高一物理课后习题答案
评论
0/150
提交评论