




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子万年历的仿真与设计方案一、方案论证1、 技术可行性 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关: (1)单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。 (2)系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。 (3)由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。 (4)有优异的性能、价格比。2、 单片机的选择方案一:采用传统的AT89C52作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。方案二:采用FTC10F04单片机,还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。选用方案一作为主方案,方案二作为备用方案。3、时钟模块的选择方案一:用单片机的定时器产生1S的时基信号,然后用程序来实现时钟的时、分、秒计时,同时用程序来产生年、月、日。该方案优点是减少使用外设芯片;缺点是用单片机模拟时钟,使编程量增大,且用定时器产生时基信号,精度不高。方案二:使用时钟芯片DS12C887。优点是8位数据线并行控制,控制简单;自带有锂电池,外部掉电时,其内部时间信息还能够保持 10年之久。缺点是并行控制,占用太多的IO口,且价格很高,不适合一般的电子制作。方案三:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V-5.5V范围内,2.5V时耗电小于300Ma。仅使用3个IO口,占用最少的单片机资源;其内部功能强大。更重要的是其价格便宜,具有非常高的性价比。缺点是串行通信,控制比较复杂。 综上,由于本设计对时间要求较精准,且具闰年计算功能,因此本设计选择方案三,采用时钟芯片DS1302。4、 显示模块的选择 方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机相连接时,占用的单片机口线少,但所需要的数码管数量太多,焊接困难极易出错,所以不采用LED数码管作为显示。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如果用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多。本设计所需显示较多且需要文字,又基于设计要求,所以在本次设计中采用方案三,使用LCD1602液晶显示屏。 5、温度检测模块的选择方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换,此设计方案需要A/D转换电路,增加了硬件成本而且热敏电阻的感温特性曲线并不是严格性的,会产生较大的测量误差。方案二:采用数字式温度传感器DS18B20,此类传感器为数字式传感器,而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低了硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高,测量范围广等优点。根据上述论述,本设计采用方案二,选择数字式温度传感器DS18B20。6、 设置模块的选择在对日期、温度和闹钟进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。方案一:使用独立式键盘。独立式键盘是指直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。根据以上的论述,因本系统需要的按键不多,日期加加减,月数加减,年数加减,分数加减,时数加减,设置切换键,要求简单,只需要四个按键即可满足要求。所以采用方案一独立式键盘。7、闹钟模块此模块采用无源蜂鸣器实现,只要编写相应的程序即可实现发出不同频率的声音。8、最终方案决定综上各方案所述,对此次设计的方案选定:采用AT89C52作为主控制系统;DS1302提供时钟;LCD1602液晶显示器作为显示;以DS18B20作为检测温度的传感器;用蜂鸣器实现闹钟响铃。二、仿真系统硬件设计1、电路设计框图AT89C52主控制模 块设置模块1602液晶显示模块 闹钟模块DS1302时钟模块DS18B20温度检测 图(1) 总体设计框图 2、单片机控制系统单片机中央处理系统的方案设计,选用AT89C52单片机作为中央处理器,如图(2)所示。该单片机除了拥有MCS-51系列单片机的所有优点外,内部还具有8K的在系统可编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。3、DS1302时钟电路时钟电路主要由时钟芯片DS1302、晶振等几部分组成,如下图所示。DS1302采用3线串行接口,占用引脚少,内部集成了可编程日历时钟,用户可以根据需要通过单片机的控制来自行设置,支持双电源供电,可以使用外部主电源和备用电源,备份电源能够使时钟芯片继续工作。 图(3) DS1302管脚图 图(4) DS1302时钟电路DS1302各引脚的功能为:8: Vcc1:备用电池端;1: Vcc2:5V电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电;7: SCLK:串行时钟,输入; 6: I/O:数据输入输出口;5: CE/RST:复位脚;2、3: X1、X2 是外接晶振脚 (32.768KHZ的晶振);4: 地(GND)。DS1302有关日历、时间的寄存器:图(5)DS1302有关日历、时间的寄存器1、秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当初始上电时该位置为1,时钟振荡器停止,DS1302处于低功耗状态;只有将秒寄器的该位置改写为0时,时钟才能开始运行。2、小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是 ,当为1时,表示PM。在24小时模式时,位5是第二个10小时位3、控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在对任何的时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,只有首先将WP改写为0,才能进行其它寄存器的写操作。DS1302读写时序 DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。DS1302的控制字如图(6):图(6)DS1302的控制字图控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4A0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。读数据:读数据时在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据是从最低位到最高位。写数据:控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入也是从最低位(0位)开始。4、显示电路1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。显示电路采用LCD1602液晶显示,如图(7)所示,图中只画出了其相应的接口,3脚用于调节LCD1602的背光,4、5、6为LCD1602的控制口,用于控制其写入或是读出指令,7至14脚为LCD1602的数据口,将数传送到LCD1602中。 图(7) LCD1602显示电路LCD1602的特性:+5V电压,对比度可调;内含复位电路;提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器DDRAM;内建有160个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM;基本操作时序: 读状态:输入:RS=L,RW=H,E=H;输出:DB0DB7=状态字 ;写指令:输入:RS=L,RW=L,E=下降沿脉冲,DB0DB7=指令码 ;输出:无。读数据:输入:RS=H,RW=H,E=H;输出:DB0DB7=数据 ;写数据:输入:RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据 ;输出:无。LCD1602的各种指令不再一一说明。5、DS18B20温度检测电路通过1820进行读数据,将读出来的数据进行进制转换,转换后送到12864显示。工作原理介绍:DS18B20是单总线的数字温度传感器。其与单片机的接口只需要一根数据线即可。当然连线简单意味着软件处理上可能要麻烦一点。DS18B20的内部存储器分为以下几部分 ROM:存放该器件的编码。前8位为单线系列的编码(DS18B20的编码是19H)后面48位为芯片的唯一序列号。在出场的时候就已经设置好,用户无法更改。最后8位是以上56位的CRC码。 RAM:DS18B20的内部暂存器共9个字节。其中第一个和第二个字节存放转换后的温度值。第二个和第三个字节分别存放高温和低温告警值。(可以用RAM指令将其拷贝到EEPROM中)第四个字节为配置寄存器。第57个字节保留。第9个字节为前8个字节的CRC码。 图(8) DS18B20的温度存放 图(9)DS18B20电路其中S位符号位。当温度值为负值时,S = 1 ,反之则S = 0 。我们把得到的温度数据乘上对应的分辨率即可以得到转换后的温度值。 DS18B20的通讯协议: 在对DS18B20进行读写编程时,必须严格保证读写的时序。否则将无法读取测温结果。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令。这样才能对DS18B20进行预定的操作。 复位要求主机将数据线下拉500us,然后释放,DS18B20收到信号后等待16160us然后发出60240us的存在低脉冲,主机收到此信号表示复位成功。图(10)DS18B20的复位时序图。 图(11)读操作的时序图 图(12) 写操作的时序图6、按键电路按键电路由四个轻触开关组成,如图(12)所示。按键用来调整时间,其一端直接接到单片机的端口,另一端接地,当按下按键时,相应的端口变为低电平,通过与个各键相连的端口P1.4,P1.5,P1.6,P1.7可以判断是哪个键按下,从而作相应的操作。 图(13) 按键电路7、蜂鸣器电路闹钟模块采用单片机输出一定频率的方波从而使蜂鸣器发出声音。 图(14) 方波信号 图(15) 蜂鸣器电路 三、仿真系统软件设计软件设计是本设计的关键,软件程序编写的好坏直接影响着系统运行情况的良好。因本程序涉及的模块较多,所以程序编写也采用模块化设计,C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用C51编写。开始整个软件系统采用规模化的程序设计方法,共分为时间设定、闹铃设定、倒计时和温度检测系统。软件系统的主要特点是整个过程完全在键盘的控制之下,实现了完全的友好的人机交互功能。程序框图如下:初始化DS1302,1602从DS1302读取信息1602液晶显示相关信息判断是否有按键按下时间、日期、温度、闹钟和倒计时设置模块没有按键按下温度检测模块四、调试结果及分析电路设计中单片机采用AT89C52,编译环境为keil,程序使用C语言进行编写,使用proteus仿真软件进行仿真调试,设计硬件制作比较顺利,很快就把硬件电路做好。接着,主要是程序的调试。程序调试的难点在于设计的功能模块过多,程序结构比较复杂,使得调试起来比较费时间。在软件调试过程中,当调节时间和日期后,单片机上电后更新的是PC的时间,后来查找资料发现,是设置ds1302的问题,还有一个问题,在按键操作时有时会出现功能不稳定,这是由于按键存在抖动,所以后来加个去抖动的延时后在判断,基本就可以解决问题。仿真正确显示了时间,在LCD1602中正确显示了当前日期、时间,通过按按键K1,就可以开始设置时间或闹铃,依次按K1依次在年、月、日、时、分之间切换,按K2键用于加1操作,K3键用于减1操作,K4是取消按钮,单独按加减按键可以显示温度和进入倒计时。通过调试和仿真,基本实现了设计所要求的所有功能。1:显示年、月、日、时、分、秒信息。 2:具有可调整日期和时间功能。 3:DS1302自带闰年补偿功能,可自动判断平闰年,正确显示时间。4:实现闹钟提醒功能,且闹钟可设置至年,月,日,时,分,秒。5:实时显示环境温度。6:显示60秒倒计时功能。但唯一不足的是不能实现一年的温度记忆功能,我用AT2404调了很长时间,还是不能实现温度的存储和显示,可能是我不太会用那个芯片,看了它的资料,还是不能写出正确的程序。结束语本系统以AT89C52为核心部件,使用串行时钟芯片DS1302,实现时间和闹钟的功能设置,用温度传感器DS18B20实现对环境实时温度的检测。通过键盘和液晶显示屏可方便地校对时钟、设置闹钟时间和显示温度,本系统基本完成了实用电子钟的功能,并添加了许多附加功能,使电子万年历更具多样化,特色化。尽量做到了硬件电路简单稳定,减少电磁干扰和其他环境干扰。在该系统设计,调试完成之后,对最后的成功进行分析,同时结合在调试过程中出现的错误和不足进行综合分析,总结在实际系统设计和调试过程中的宝贵经验。虽然还有一点功能不能实现,但我不会放弃,在以后的业余时间里我会多查资料,多分析,多请教老师同学,争取把它做完善。同时也希望各位老师批评指正,提供你们的宝贵经验,我相信我会做得更好。在本次专业方向设计过程当中,收获知识的同时,还收获了阅历,收获了成熟,通过查找大量资料,请教老师同学,以及不懈的努力,不仅培养了独立思考、 动手制作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法,知道了理论和实践的巨大差别。而这是以后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。同时在与老师和同学的交流过程中,互动学习,将知识融会贯通。通过自己的努力,做出了一个万年历,对以后的学习是一个莫大的鼓舞,激起了我的学习兴趣和开发创新思维。致谢感谢学院给我们提供了一个展现自己的舞台,给我们一次难得煅炼的机会,使得我们的动手能力和专业技能都有了很大的提高。感谢提供相关技术帮助的老师和同学,你们的支持和鼓励使我对这次的作品完成有了信心和动力,也给了我们很多无私的帮助和支持,我在此深表谢意。【参考文献】【1】 于永学、葛健,1-WIRE总线数字温度传感器DS18B20及应用J,电子产品世界2003(4)16-24【2】 马云峰、陈子夫、李全培,数字温度传感器DS18B20的原理与应用EB/OL1-25【3】 胡振宇、刘鲁源、杜振辉,DS18B20接口的C语言程序设计J,单片机与嵌入式系统应用,2002-24-43【4】 李钢,1-WIRE总线数字温度传感器DS18B20原理及应用,现代电子技术 J,2005(8)21-23【5】 陈明义,电工电子技术课程设计指导M,中南大学出版社,2002【6】 郭天祥,新概念51单片机c语言教程,电子工业出版社,2009【7】 陈跃东,DS18B20集成温度传感器原理与应用J,安徽教育出版社,2002(4)5-23【8】 李广弟,单片机基础M,北京航空航天大学出版社,1994,1-56【9】 谭浩强,C程序设计(第二版)M,清华大学出版社,2003 【10】 付家才,单片机控制工程实践技术M,化学工业出版社,2004附录一 仿真电路图 图(16) 电路原理图 图(17) 显示实时时间 图(18) 调整日期 图(19) 调整时间 图(20) 进入后台日期时间调整图(21) 闹钟设置界面图(22) 实时温度显示 图(23) 倒计时显示附录二 源程序代码#include#includeunsigned char code digit=0123456789; /数字代码unsigned char mode,TH,TL,TN,TD,length,amode,alarmmode,count=60,minutes,hours,minutea,seconda,seconds,houra=12,yeara=12,montha=01,daya=01,years,months,days;sbit SCLK=P10;/DS1302时钟输入sbit DATE=P11;/DS1302数据输入sbit REST=P12;/DS1302复位端口sbit SET=P14;/DS1302设置模式选择位sbit ADD=P15;/增加sbit RED=P16;/减小sbit CANL=P17;int down_flag=0;void delay1ms(int i)/1毫秒延时 int j,k; while(i-) for(j=76;j1;j-); for(k=29;k1;k-); void delaynus(unsigned char n) /延时若干微秒 unsigned char i; for(i=0;i0;i-) _nop_(); void xiangling(unsigned char n) unsigned char x,i; while(n-) for(i=0;i5;i+) for(x=0;x200;x+) beep=beep; dely500(); for(i=0;i3;i+) for(x=0;x200;x+) beep=beep; dely500(); dely500(); /*DS1302模块*/ void Write1302(unsigned char date)/向1302写数据 unsigned char i;SCLK=0;delaynus(2);for(i=0;i=1; void WriteSet1302(unsigned char cmd,unsigned char date) /根据相应的命令输入相应的数据 REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(5);Write1302(date);SCLK=1;REST=0; unsigned char Read1302(void)/读取1302数据 unsigned char i,date;delaynus(2);for(i=0;i=1;if(DATE=1)date|=0x80;SCLK=1;delaynus(2);SCLK=0;delaynus(2);return date; unsigned char ReadSet1302(unsigned char cmd)/根据命令读取1302相应的值unsigned char date;REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(2);date=Read1302();SCLK=1;REST=0;return date;void IntDS1302(void) /DS1302初始化 unsigned char flag; flag= ReadSet1302(0x81);if(flag&0x80) /判断时钟芯片是否关闭 WriteSet1302(0x8E,0x00); /根据写状态寄存器命令字,写入不保护指令 WriteSet1302(0x80,(0/10)4|(0%10); /根据写秒寄存器命令字,写入秒的初始值WriteSet1302(0x82,(0/10)4|(0%10); /根据写分寄存器命令字,写入分的初始值WriteSet1302(0x84,(0/10)4|(0%10); /根据写小时寄存器命令字,写入小时的初始值WriteSet1302(0x86,(0/10)4|(0%10); /根据写日寄存器命令字,写入日的初始值WriteSet1302(0x88,(0/10)4|(0%10); /根据写月寄存器命令字,写入月的初始值WriteSet1302(0x8c,(10/10)4)*10+(value&0x0f);display_Second(seconds);value=ReadSet1302(0x83);minutes=(value&0x70)4)*10+(value&0x0f);display_Minute(minutes);value=ReadSet1302(0x85);hours=(value&0x70)4)*10+(value&0x0f);display_Hour(hours);value=ReadSet1302(0x87);days=(value&0x70)4)*10+(value&0x0f);display_Day(days);value=ReadSet1302(0x89);months=(value&0x70)4)*10+(value&0x0f);display_Month(months);value=ReadSet1302(0x8D);years=(value&0xf0)4)*10+(value&0x0f);display_Year(years);void gbdisplay(unsigned char address) /时间调整时光标闪烁Write_Address(address);delay1ms(5);Write_com(0x0f);delay1ms(5); /*时间调整部分*/void hourset(void)/调时unsigned char timevalue,hour;delay1ms(500);/防止多次触发WriteSet1302(0x8e,0x00);/将写保护去掉,确保能正常将调整后的数值写入DS1302timevalue=ReadSet1302(0x85); /读取此时的数值hour=(timevalue&0x70)4)*10+(timevalue&0x0f);while(1)if(ADD=0)delay1ms(50);if(ADD=0)hour+;delay1ms(300);while(ADD=0);if(RED=0)delay1ms(50);if(RED=0)hour-;delay1ms(300);if(hour=0) hour=23;while(RED=0);timevalue=(hour)/10)=24) hour=0;delay1ms(5);if(CANL=0) mode=0;Write_com(0x0c);break;if(SET=0) break;WriteSet1302(0x8e,0x80);void minuteset(void) /调分unsigned char timevalue,minute;delay1ms(500);WriteSet1302(0x8e,0x00);timevalue=ReadSet1302(0x83);minute=(timevalue&0x70)4)*10+(timevalue&0x0f);while(1)if(ADD=0)delay1ms(10);if(ADD=0)minute+;if(minute=60) timevalue=0;while(ADD=0);if(RED=0)delay1ms(10);if(RED=0)minute-;delay1ms(300);if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年南通初一考试试卷及答案
- 2025年丹东生物中考试题及答案
- 2025年阳江公务员考试题目及答案
- 枝江生物地理考试试卷及答案
- 云南音乐中考试卷及答案
- 消防常识考试题目及答案
- 油漆安全考试题及答案
- 上海高二考试试题及答案
- 急救培训知识大全课件
- 消控室考试试题及答案
- 进修汇报材料课件
- 第三单元一《伐檀》公开课一等奖创新教案-【中职专用】(中职语文高教版2023-2024-基础模块上册)
- 连锁经营原理与实务 第4版 课件 l.2连锁经营的内涵
- 名校教学设计:综合与实践-哪个城市夏天更热2
- JCT799-2016 装饰石膏板标准
- 第1课 美术作品的创作 课件-2023-2024学年高中美术人教版(2019)美术鉴赏
- 行政事业单位综合办公管理平台建设方案详细
- 苏少版四年级上册音乐教学计划及进度安排(定稿)
- 精麻药品培训试题
- 尿道损伤专题知识讲座
- 长沙会战优质获奖课件
评论
0/150
提交评论