版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.基于单片机的同步电子时钟设计摘要单片计算机既单片微型计算机。由RAM,ROM,CUP构成,定时,计数和多种接口与一体的微型控制器。他体积小,本钱低,功能强,广泛应用于智能产业和工业自动化上。而51/52系列单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而到达学习,设计的能力。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对“时〞、“分〞、“秒〞数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。本设计使用单片机AT89C52以AT89C52芯片为核心,DS1302为时钟芯片,实现在LCD上显示日期、时间,通过两个键来实现自动同步和手动同步,在实现各功能时LCD进展相应显示,时间同步成功时蜂鸣器响。通过软硬件结合到达最终目的。关键词:单片机,数字钟,DS1302,LCD,C语言SYNCHRONOUSELECTRONICCLOCKDESIGNBASEDONSCMABSTRACTAmonolithicputerissinglechipmicroputer.ByRAM,ROM,CUP,timing,countingandmultipleinterfacesandtheintegrationofthemicrocontroller.Hehastheadvantagesofsmallvolume,lowcost,strongfunction,widelyusedinsmartindustries,andindustrialautomation.And51SeriesSCMisthemosttypicalandthemostrepresentativeone.Thegraduationdesignthroughthestudy,application,toachievethestudy,designability.SCMmodulearethemostmondigitalclock,adigitalclockisakindofdigitalcircuittechnologyimplementation,minutesandsecondstimingdevice,andthemechanicalclockparedwithhigheraccuracyandintuitive,andwithoutamechanicaldevice,hasmorelongerservicelife,soithasbeenwidelyused.Adigitalclockisadoptingdigitalcircuitimplementationof"hour""points"and"second"digitaldisplaytimerdevice.Adigitalclockprecision,stabilitythanoldmechanicalclock.Thisdesignusesa12MHZcrystaltoconnectwiththemachineAT89C52,takesAT89C52chipsascore,DS1302chipisusedasthelockchip,weareabletoshowdate,timeandfi*thetime,onLCD.Wecanuse5keytoconstitutedate,adjusttime,enactthebellandsetthecountdowntimer.Whentheelectriccarryingouteachfunction,theLCDshowsthetightfunction.Whenthealarmclockandthecountdowntimerwerereached,thevoicebegins.ThesoftwarepartisrealizedbyClanguage.Itwasdividedintotoshow,delay,adjust,makebell,infi*edtime,andadjustdateetc.part.Wegettheendpurposebiningthesoftwareandthehardware.KEYWORDS:SCM,digitalclock,DS1302,LCD,Clanguage目录前言1第1章绪论2§1.1摘要2§1.2设计要求2§1.3各模块方案选择与论证 2第2章GPS模块4§2.1GPS介绍4§2.2GPS协议分析4§2.3如何传输数据5第3章系统硬件与时钟同步 7§3.1硬件芯片介绍 7§3.1.1单片机AT89C527§3.1.2DS1302简介 15§3.2时钟同步 17§3.2.1自动同步--18§3.2.2手动同步18第4章系统软件设计 21§4.1软件设计的总体说明21§4.2主程序流程图21第5章系统的仿真及调试22§5.1系统软硬件调试22§5.2系统的仿真23§5.2.1仿真软件的简介23§5.2.2电子钟系统PROTUES仿真结果24结论26参考文献27致28附录29第1章设计要求与方案选择§1.1设计目的设计一种有线连接的可以实现主机同从机通过串行口协议来到达时间同步的同步电子时钟,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而到达综合运用所学的专业知识进展电子产品设计、制作与调试的能力。§1.2设计要求根本功能:同步电子时钟的主机时间能与从机时间保持同步可以显示年月日时分秒可以实现调时功能具有定时闹钟功能具有复位功能做出实物§1.3各模块方案选择与论证根据设计要求,系统可分为单片机模块,液晶显示模块,按键模块,晶振模块,外部时钟控制模块,复位模块,闹铃模块。单片机模块:采用型号为AT89C52的单片机。因为:AT89C52是一个低电压,高性能CMOS8位单片机,片含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。设计一种有线连接的可以实现主机同从机通过串行口协议来到达时间同步的同步电子时钟,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而到达综合运用所学的专业知识进展电子产品设计、制作与调试的能力。gps模块就是gps信号接收器,它是一个可以用无线蓝牙或有线方式和电脑或手机连接,将它接收到的gps信号传递给电脑或手机中的gps软件进展处理。GPS即全球定位系统〔GlobalPositioningSystem〕。简单地说,这是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻,地球上任意一点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、第2章GSP模块§2.1GPS介绍本设计采用AT89C52单片机芯片配合DS1302时钟芯片为主构成的主机和从机以有线连接而到达时间同步的电子时钟。文中设计了一个显时、调时、定时闹钟以及时间同步功能的电子钟。电子钟使用12MHz晶振与DS1302时钟芯片相连接,通过晶振为时钟芯片提供最为根本的脉冲信号的方法实现了在时钟芯片中的计时作用,再经过单片机的编程作用,而到达在LCD液晶屏上显示年月日时分秒,并可以调时、定时,在定时时间到时有蜂鸣器报警。设计通过主机和从机的配合作用,采用在主机和从机之间用有线连接,签订串行口协议,而实现主机和从机的时间同步功能。该电子钟设有同步〔P3.3〕,闹铃〔P3.4〕,选定(P3.5),加(P3.6),减(P3.7)等五个根本按键。每按一下同步按键可以使主机与从机时间到达同步,按下闹铃键,在到达定时时间时有蜂鸣器报警,按下选定键可以选定年月日时分秒的每一位,再按加、减键,而到达调时效果。§2.2系统硬件描述基于单片机系统的同步电子时钟根本构造框架如图2-1所示:图2-1系统根本构造框图该系统所需要的器件包括单片机AT89C52芯片两块,时钟芯片DS1302两块,液晶显示屏LCD1602一块,蜂鸣器一个,12MHz的晶振两个,排针排线假设干组,电容电阻假设干导线假设干,按钮七个。§2.3系统软件描述系统程序实现三局部功能:一、实现年、月、日、时、分、秒的显示和设置;二、实现主机和从机之间的时间同步。如图2-2所示:图2-2功能整体流程框图§2.4设计流程和预期结果该设计的主要流程如下:首先阅读大量参考文献,进展设计方案确实定,然后在Protues上进展原理图的绘制和修改,在电器检查无误的情况下,购置所需要的元器件〔元器件应该考虑裕量〕。接着把元器件焊接到各个功能电路的模块上,并结合程序进展调试。最后将各个功能的电路程序组合起来,然后再进展总体调试直到成功。本设计能到达以下结果:显示年、月、日、时、分、秒,并能通过按键设置。可以定时闹钟,定时时间到达时,蜂鸣器报警。可以通过按键来实现主机和从机的时间同步。第3章系统硬件电路设计与实现§3.1硬件芯片介绍§3.1.1单片机AT89C52AT89C52有40个引脚,32个外部双向输入/输出〔I/O〕端口,同时含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进展编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。兼容MCS51指令系统·8k可反复擦写(>1000次〕FlashROM·32个双向I/O口·256*8bit部RAM·3个16位可编程定时/计数器中断·时钟频率0-24MHz·2个串行中断·可编程UART串行通道·2个外部中断源·共6个中断源·2个读写中断口线·3级加密位·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51核,在部功能及管脚排布上与通用的8*c52一样,其主要用于会聚调整时的功能控制。功能包括对会聚主IC部存放器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:*TAL1〔19脚〕和*TAL2〔18脚〕为振荡器输入输出端口,外接12MHz晶振。RST/Vpd〔9脚〕为复位输入端口,外接电阻电容组成的复位电路。VCC〔40脚〕和VSS〔20脚〕为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口〔32~39脚〕被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS〔18脚〕和SCLS〔19脚〕端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1〞时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址〔低8位〕和数据总线复用,在访问期间激活部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口P1是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口写“1〞,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻,*个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入〔P1.0/T2〕和输入〔P1.1/T2E*〕,参见表1。Flash编程和程序校验期间,P1接收低8位地址。引脚号功能特性P1.0T2,时钟输出P1.1T2E*〔定时/计数器2〕表1P2口P2是一个带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口P2写“1〞,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,*个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器〔例如执行MOV*DPTR指令〕时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器〔如执行MOV*RI指令〕时,P2口输出P2锁存器的容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3口P3口是一组带有部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对P3口写入“1〞时,它们被部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流〔IIL〕。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲〔PROG〕。如有必要,可通过对特殊功能存放器〔SFR〕区中的8EH单元的D0位置位,可制止ALE操作。该位置位后,只有一条MOV*和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE制止位无效。PSEN程序储存允许〔PSEN〕输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令〔或数据〕时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器〔地址为0000H—FFFFH〕,EA端必须保持低电平〔接地〕。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。如EA端为高电平〔接Vcc端〕,CPU则执行部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。*TAL1振荡器反相放大器的及部时钟发生器的输入端。*TAL2振荡器反相放大器的输出端。定时器0和定时器1:AT89C52的定时器0和定时器1的工作方式与AT89C51一样。定时器2定时器2是一个16位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能存放器T2CON〔如表3〕的C/T2位选择。定时器2有三种工作方式:捕获方式,自动重装载〔向上或向下计数〕方式和波特率发生器方式,工作方式由T2CON的控制位来选择。定时器2由两个8位存放器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2存放器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,存放器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进展采样。假设在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1期间存放器加1。由于识别1至0的跳变需要2个机器周期〔24个振荡周期〕,因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。自动重装载〔向上或向下计数器〕方式当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能存放器T2CON〔见表5〕的DCEN位〔允许向下计数〕来选择的。复位时,DCEN位置“0〞,定时器2默认设置为向上计数。当DCEN置位时,定时器2既可向上计数也可向下计数,这取决于T2E*引脚的值,参见图5,当DCEN=0时,定时器2自动设置为向上计数,在这种方式下,T2CON中的E*EN2控制位有两种选择,假设E*EN2=0,定时器2为向上计数至0FFFFH溢出,置位TF2激活中断,同时把16位计数存放器RCAP2H和RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置。假设E*EN2=1,定时器2的16位重装载由溢出或外部输入端T2E*从1至0的下降沿触发。这个脉冲使E*F2置位,如果中断允许,同样产生中断。定时器2的中断入口地址是:002BH——0032H。当DCEN=1时,允许定时器2向上或向下计数,如图6所示。这种方式下,T2E*引脚控制计数器方向。T2E*引脚为逻辑“1〞时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数存放器RCAP2H和RCAP2L重装载到TH2和TL2中。T2E*引脚为逻辑“0〞时,定时器2向下计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH数值重新装入定时存放器中。当定时/计数器2向上溢出或向下溢出时,置位E*F2位。波特率发生器当T2CON〔表3〕中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。如果定时/计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。假设RCLK和TCLK置位,则定时器2工作于波特率发生器方式。波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的存放器用RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:方式1和3的波特率=定时器的溢出率/16定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式〔C/T2=0〕。定时器2作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期〔1/12振荡频率〕存放器的值加1,而作为波特率发生器使用时,在每个状态时间〔1/2振荡频率〕存放器的值加1。波特率的计算公式如下:方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}式中〔RCAP2H,RCAP2L〕是RCAP2H和RCAP2L中的16位无符号数。定时器2作为波特率发生器使用的电路如图7所示。T2CON中的RCLK或TCLK=1时,波特率工作方式才有效。在波特率发生器工作方式中,TH2翻转不能使TF2置位,故而不产生中断。但假设E*EN2置位,且T2E*端产生由1至0的负跳变,则会使E*F2置位,此时并不能将〔RCAP2H,RCAP2L〕的容重新装入TH2和TL2中。所以,当定时器2作为波特率发生器使用时,T2E*可作为附加的外部中断源来使用。需要注意的是,当定时器2工作于波特率器时,作为定时器运行〔TR2=1〕时,并不能访问TH2和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值。然而,对RCAP2则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器2或RCAP2存放器之前,应将定时器关闭〔去除TR2〕。可编程时钟输出定时器2可通过编程从P1.0输出一个占空比为50%的时钟信号,如图8所示。P1.0引脚除了是一个标准的I/O口外,还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz时,输出时钟频率围为61Hz—4MHz。当设置定时/计数器2为时钟发生器时,C/T2〔T2CON.1〕=0,T2OE〔T2MOD.1〕=1,必须由TR2〔T2CON.2〕启动或停顿定时器。时钟输出频率取决于振荡频率和定时器2捕获存放器〔RCAP2H,RCAP2L〕的重新装载值,公式如下:输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L和RCAP2L。UARTAT89C52的UART工作方式与AT89C51工作方式一样。中断AT89C52共有6个中断向量:两个外中断〔INT0和INT1〕,3个定时器中断〔定时器0、1、2〕和串行口中断。所有这些中断源如图9所示。这些中断源可通过分别设置专用存放器IE的置位或清0来控制每一个中断的允许或制止。IE也有一个总制止位EA,它能控制所有中断的允许或制止。注意表5中的IE.6为保存位,在AT89C51中IE.5也是保存位。程序员不应将“1〞写入这些位,它们是将来AT89系列产品作为扩展用的。定时器2的中断是由T2CON中的TF2和E*F2逻辑或产生的,当转向中断效劳程序时,这些标志位不能被硬件去除,事实上,效劳程序需确定是TF2或E*F2产生中断,而由软件去除中断标志位。定时器0和定时器1的标志位TF0和TF1在定时器溢出那个机器周期的S5P2状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2的标志位TF2在定时器溢出的那个机器周期的S2P2状态置位,并在同一个机器周期查询到该标志。时钟振荡器AT89C52中有一个用于构成部振荡器的高增益反相放大器,引脚*TAL1和*TAL2分别是该放大器的输入端和输出端。这个放大器与作为反应元件的片外石英晶体或瓷谐振器一起构成自激振荡器,振荡电路参见图10。外接石英晶体〔或瓷谐振器〕及电容C1、C2接在放大器的反应回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用瓷谐振器建议选择40pF±10F。用户也可以采用外部时钟。采用外部时钟的电路如图10右图所示。这种情况下,外部时钟脉冲接到*TAL1端,即部时钟发生器的输入端,*TAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。Flash存储器的编程AT89C52单片机部有8k字节的FlashPEROM,这个Flash存储阵列出厂时已处于擦除状态〔即所有存储单元的容均为FFH〕,用户随时可对其进展编程。编程接口可接收高电压〔+12V〕或低电压〔Vcc〕的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。AT89C52单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片的签名字节获得该信息。AT89C52的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片的PEROM程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的容去除。编程方法编程前,须按表9和图11所示设置好地址、数据及控制信号,AT89C52编程方法如下:1.在地址线上加上要编程单元的地址信号。2.在数据线上加上要写入的数据字节。3.激活相应的控制信号。4.在高电压编程方式时,将EA/Vpp端加上+12V编程电压。5.每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。每个字节写入周期是自身定时的,通常约为1.5ms。重复1—5步骤,改变编程单元的地址和写入的数据,直到全部文件编程完毕。§3.1.2DS1302简介DS1302的构造及工作原理DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进展计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进展同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302部有一个31×8的用于临时性存放数据的RAM存放器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进展涓细电流充电的能力。引脚功能及构造DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。*1和*2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位存放器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进展操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。下列图为DS1302的引脚功能图:\o"查看图片"DS1302封装图DS1302的控制字节DS1302的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进展写操作,为1表示进展读操作,控制字节总是从最低位开场输出。数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开场。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。DS1302的存放器DS1302有12个存放器,其中有7个存放器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间存放器及其控制字见表1。此外,DS1302还有年份存放器、控制存放器、充电存放器、时钟突发存放器及与RAM相关的存放器等。时钟突发存放器可一次性顺序读写除充电存放器外的所有存放器容。DS1302与RAM相关的存放器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM存放器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。§3.2系统硬件架构本设计以模块化的方式来进展硬件电路的设计和调试。单片机的模块化就是把系统分成各个具有独立功能又可以互相衔接的简单模块,将复杂难懂的指令、语法、编程及其电路分解,使设计简单化。本设计的电路模块可以分为稳压电源模块、时钟模块、晶振模块、液晶显示模块、按键模块、蜂鸣器报警模块等。§3.2.1电源局部图3-1稳压电源如图3.1所示,从外部引入4.5V的直流电,为时钟芯片、单片机、复位电路等提供电源。§3.2.2复位与晶振电路图3-2复位电路图3-3晶振电路如图3.2所示,复位电路主要由型号为10UF的电容,10K的电阻以及按键S1构成,S1接芯片的相应引脚RST,当开关按下时引脚RST为高电平1,断开时引脚为低电平0。晶振电路中晶振为12MHz与DS1302时钟芯片相连接,为时钟芯片提供最为根本的脉冲信号的方法实现了在时钟芯片中的计时作用。实验板的时钟振荡源电路如图3.3所示。该电路提供单片机工作所需的振荡频率,计算定时器初值即需此晶振频率,在通信时也需知道晶振频率,以对波特率进展计算。§3.2.3液晶显示电路图3-4液晶显示电路液晶显示电路局部,通过液晶屏与单片机相连接,再经过进一步的编程,使电子时钟的时间、调时、定时、同步都能够明确的显示出来,使人一目了然。§3.2.4按键电路图3-5按键电路电子钟的按键电路设有同步〔P3.3〕,闹铃〔P3.4〕,选定(P3.5),加(P3.6),减(P3.7)等五个根本按键。每按一下同步按键可以使主机与从机时间到达同步,按下闹铃键,在到达定时时间时有蜂鸣报警,按下选定键可以选定年月日时分秒的每一位,再按加、减键,而到达调时效果。
第4章系统软件设计§4.1软件设计的总体说明本系统的程序采用C语言编写,为了便于修改和调试,系统软件采用模块化设计,程序的编写编译在Keil软件中完成。
首先对AT89C52、DS1302、LCD1602进展初始化,日历和时间信息通过LCD1602显示出来。主机中有自动同步键和手动同步键。通过按键可对系统时间分别进展自动和手动同步;当按下自动同步键,主机可通过 GPS时间采集确定主机时间同时主机再把时间同步给从机;在非自动情况下,GPS先给主机确定时间从机保存初始时间,当按下手动同步时主机再把时间同步给从机,并通过LCD显示出来。§4.2主程序流程图图4-1主程序流程图第5章系统的仿真及调试§5.1系统软硬件调试调试工作分硬件调试和软件调试两局部,调试方法介绍如下:首先,硬件调试主要是先搭建硬件平台,然后利用万用表等工具对电路检查,最后应用程序进展功能调试。硬件调试比拟费时,需要细心和耐心,也需要熟练掌握电路原理。然后,可以直接应用一些编辑或仿真软件进展软件调试,比方单片机C51编辑软件Keil。该软件提供了一个集成开发环境uVision,它包括C编辑器、宏编辑器、连接器、库管理和一个功能强人的仿真调试器。通过编译、运行,可以检查程序错误。但应用此方法,仍需要十分了解所使用元器件的工作方式和管脚连接方式。存软件调试过程中要仔细耐心,即便是多写或少写一两个字符,都无法编译成功。而有时往往在Keil巾编译、运行无错,但烧录到单片机中运行起来就会出错,很可能是编程时管脚或时序编辑得不对。还有一种方式,即应用仿真软件搭建电路的软件平台,再导入程序进展仿真调试。如果电路出错,可以在计算机上方便的修改电路,程序出错可以重新编辑程序,这种方法节时、省力,经济、方便。笔者应用的仿真软件为Proteus。总之,调试过程是一个软硬件相结合调试的过程,硬件电路是根底,软件是检测硬件电路和实现其功能的关键。在调试过程中,首先必须明确调试顺序。例如:本设计是在单片机系统根底上建立起米的,所以必须先确定单片机根底电路能否正常工作。为了正确显示时间,接下来还要确定显示电路能否正常工作。硬件调试的过程,也是软件调试的过程。然后,要准备好调试的工具。硬件调试需要万用表、示波器等,软件调试一般需要诸如Keil等仿真编辑器。笔者根据自己实际制作该多功能电时钟的经历,将调试过程介绍如下:软件调试时先进展单元测试,分别对各个代码模块进展测试,看其是否实现了规定功能,再把已经测试过的模块组合起来进展测试,一旦不能正确运行,要找出程序中的错误,确定大致的出错位置,研究有关局部的错误程序,找出错误原因,修改设计和代码,以排除错误。我们在程序编写完成后,就可以利用仿真器进展初步调试,观察在计算机里能否通过编译与运行并到达设计的根本要求。在根本符合的情况下,利用仿真器与工作正常的硬件连接进展仿真调试;或用编程器把程序烧写到芯片中,直接观察能否正常运行。如果达不到设计要求或者不能正常运行,可以直接在程序中进展修改。在系统上电开场测量前,要用万用表的电压档对被测电压进展估测,然后以此选择适当的量程,防止电压过大烧坏硬件。首先用万用表按照原理图逐步检查印刷板中各器件的电源及各引脚的连接是否正确,有否断路、短路或者虚焊,尤其是给电路供电的电源局部要重点检查,如果电压没有到达要求,要及时排查给予解决,以免烧坏芯片和其他元器件。系统调试中遇到的问题及解决的方法:1〕由于源程序的多处错误,使得仿真无法通过,后经过单步调试,把存在的错误一一排除,通过了软件仿真。2〕程序下载到硬件上之后,在检查过程中发现年历中的日期中出现了00日,所以软件编程时出错,经过改正之后重新下载调试正确。3〕在烧录芯片的过程中,由于选择烧录文件的错误及芯片自身问题,经过屡次屡次烧录,才烧录正确。§5.2系统的仿真§5.2.1仿真软件的简介本电子钟的设计用的pretues仿真软件设计电路并仿真。ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、存放器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。因为pretues仿真软件中所有的情况都是在理想想的条件下,但是与实际电路的工作还是有很大的差异,所以我们必需考虑到实际情况应接入驱动限流等电路它才能被实际所应用。§5.2.2电子钟系统PROTUES仿真结果按下同步按键前:按下同步按键后:此仿真结果的主要实现〔1)将其电源键翻开,按下电源开关即开场常工作,LCD液晶显示屏显示年、月、日、时、分、秒。〔2)按键说明:①复位键,当发现系统运行不正常,进入死循环,显示数值。严重失真时,按复位键,其部功能为使用单片机复位。强行使单片机从头开场运行,跳出错误区。②闹钟显示键,该键接外部中断零〔1NT0引脚)。通过中断效劳子程序来到达显示闹钟时间的目的。中断程序只进展一秒后返回主程序,显示年、月、日、时、分、秒。③调时键〔选定〕按下此键进入调时子程序,按一下调分钟,两下调时,三下调日期,四下调月份,五下调年份。加键每按一下增加一,减键每按一下减少一,三个键组合在一起完成调时功能。按闹钟键可以显示定时闹钟时间,并通过按选定、加、减三键可以进展具体日期时间调整,当定时设定后,到预定时间后,时钟会发出连续的蜂鸣声。按同步键可以实现主机和从机的时间同步。结论本文通过对同步电子时钟的设计仿真,使自己对单片机和C语言有了进一步的温故掌握。在设计过程中,吸收了前辈的一些先进的理论成果,我在设计中总结出了一个重要的经历:一切问题都要结合实际进展设计。因为不同的设计技术或者设计思想都有自身的优点和局限性,只有根据具体的设计要求,才能顺利地进展设计仿真,也才能对己有的设计方法进展创新。本装置所实现的功能为同步时钟功能。由于时间和日期都是通过特定的芯片来获得的,单片机只起到控制和转换的作用,在精度方面不受单片机性能和程序的限制,故容易保障其精度和效率。本次设计有较大的进展,取得了较好的效果,对单片机软硬件资源和接日扩展都有深入的学习。也学习了时钟芯片DS1302的根本原理和使用方法。本设计是学习单片机的较佳选择。但是设计还有诸多功能没有完善,以后有时机会继续完善其相应的功能。设计缺乏:有些时间功能未能准确实现;由于时间比拟紧迫,未能开发出更多的功能以表达单片机电子时钟的优越性。
本系统上可实现的功能:1.实现日历时钟功能;2.实现闹铃功能,当所定的时间到时,产生断续的蜂鸣声;3.实现同步时钟功能即实现主机和从机时间同步。电子时钟的无线时间同步开发也具有可行性,这也就是单片机可扩展功能的优越性之所见,有待于继续开发。参考文献[1]微型计算机控制技术[M].于海生.清华大学.1999-6[2]MCS-51系列单片机原理及应用[M].涵芳.航空航天大学.1996-4[3]综合电子设计与实践[M].黄正谨.东南大学.2002-3[4]电子设计从零开场[M].欣等.清华大学.2005-10[5]电子线路[M].嘉奎.高等教育.2003-2[6]电路原理图与电路设计教程Protel99SE[M].夏路易,石宗义.希望电子.2002[7]数字电路逻辑设计[M].王毓银.高等教育.2004-2[8]电路[M].邱关源.高等教育.2003-2[9]51系列单片机高级实例开发指南.军.航空航天[10]AT89系列单片机原理与接口技术.王幸之.航空航天[11]C程序设计.潭浩强.航空航天[12]电路根本分析.石生.高等教育[13]电子系统设计.何小艇.大学,2004.[14]模拟电子技术.胡宴如.高等教育,2004.[15]电路根底.胡翔俊.高等教育,2004.[16]数字电子技术.树.高等教育,2004.致本课题的研究和论文的完成是在何社阳教师的悉心指导和热情关心下完成的。教师严谨的治学态度、丰富的实践经历、兢兢业业的工作精神使我受益匪浅。教师豁达的胸怀对我树立正确的人生观和价值观产生了积极的影响。在教师的指导和帮助下,我的专业知识水平和学习能力都得到了很大的提高。我在人生道路上的每一个脚印都凝聚着教师的心血。跟随教师学习这两年所获得的知识将是我一生中最珍贵的财富。在此谨向何教师表示崇高的敬意和衷心的感!
感教师在研究工作中对我进展的悉心指导,并为我的学习提供了良好的条件,使我的论文的撰写得以顺利进展。感何教师在我的学习和生活中给予的教导和帮助。在课题的讨论和论文的撰写过程中,与传猛等同学有益讨论使我受益匪浅。
最后感生我育我的父母!感你们一直以来对我的无私关爱和默默奉献。
附录PCB板主机PCB板从机PCB板二、主机程序代码头文件/*REG52.HHeaderfileforgeneric80C52and80C32microcontroller.Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.Allrightsreserved.*/*ifndef__REG52_H__*define__REG52_H__/*BYTERegisters*/sfrP0=0*80;sfrP1=0*90;sfrP2=0*A0;sfrP3=0*B0;sfrPSW=0*D0;sfrACC=0*E0;sfrB=0*F0;sfrSP=0*81;sfrDPL=0*82;sfrDPH=0*83;sfrPCON=0*87;sfrTCON=0*88;sfrTMOD=0*89;sfrTL0=0*8A;sfrTL1=0*8B;sfrTH0=0*8C;sfrTH1=0*8D;sfrIE=0*A8;sfrIP=0*B8;sfrSCON=0*98;sfrSBUF=0*99;/*8052E*tensions*/sfrT2CON=0*C8;sfrRCAP2L=0*CA;sfrRCAP2H=0*CB;sfrTL2=0*CC;sfrTH2=0*CD;/*BITRegisters*//*PSW*/sbitCY=PSW^7;sbitAC=PSW^6;sbitF0=PSW^5;sbitRS1=PSW^4;sbitRS0=PSW^3;sbitOV=PSW^2;sbitP=PSW^0;//8052only/*TCON*/sbitTF1=TCON^7;sbitTR1=TCON^6;sbitTF0=TCON^5;sbitTR0=TCON^4;sbitIE1=TCON^3;sbitIT1=TCON^2;sbitIE0=TCON^1;sbitIT0=TCON^0;/*IE*/sbitEA=IE^7;sbitET2=IE^5;//8052onlysbitES=IE^4;sbitET1=IE^3;sbitE*1=IE^2;sbitET0=IE^1;sbitE*0=IE^0;/*IP*/sbitPT2=IP^5;sbitPS=IP^4;sbitPT1=IP^3;sbitP*1=IP^2;sbitPT0=IP^1;sbitP*0=IP^0;/*P3*/sbitRD=P3^7;sbitWR=P3^6;sbitT1=P3^5;sbitT0=P3^4;sbitINT1=P3^3;sbitINT0=P3^2;sbitT*D=P3^1;sbitR*D=P3^0;/*SCON*/sbitSM0=SCON^7;sbitSM1=SCON^6;sbitSM2=SCON^5;sbitREN=SCON^4;sbitTB8=SCON^3;sbitRB8=SCON^2;sbitTI=SCON^1;sbitRI=SCON^0;/*P1*/sbitT2E*=P1^1;//8052onlysbitT2=P1^0;//8052only/*T2CON*/sbitTF2=T2CON^7;sbitE*F2=T2CON^6;sbitRCLK=T2CON^5;sbitTCLK=T2CON^4;sbitE*EN2=T2CON^3;sbitTR2=T2CON^2;sbitC_T2=T2CON^1;sbitCP_RL2=T2CON^0;*endif初始化程序$NOMOD51;;ThisfileispartoftheC51pilerpackage;Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.;;STARTUP.A51:Thiscodeise*ecutedafterprocessorreset.;;TotranslatethisfileuseA51withthefollowinginvocation:;;A51STARTUP.A51;;TolinkthemodifiedSTARTUP.OBJfiletoyourapplicationusethefollowing;BL51invocation:;;BL51<yourobjectfilelist>,STARTUP.OBJ<controls>;;;;User-definedPower-OnInitializationofMemory;;WiththefollowingEQUstatementstheinitializationofmemory;atprocessorresetcanbedefined:;;;theabsolutestart-addressofIDATAmemoryisalways0IDATALENEQU80H;thelengthofIDATAmemoryinbytes.;*DATASTARTEQU0H;theabsolutestart-addressof*DATAmemory*DATALENEQU0H;thelengthof*DATAmemoryinbytes.;PDATASTARTEQU0H;theabsolutestart-addressofPDATAmemoryPDATALENEQU0H;thelengthofPDATAmemoryinbytes.;;Notes:TheIDATAspaceoverlapsphysicallytheDATAandBITareasofthe;8051CPU.AtminimumthememoryspaceoccupiedfromtheC51;run-timeroutinesmustbesettozero.;;;ReentrantStackInitilization;;ThefollowingEQUstatementsdefinethestackpointerforreentrant;functionsandinitializedit:;;StackSpaceforreentrantfunctionsintheSMALLmodel.IBPSTACKEQU0;setto1ifsmallreentrantisused.IBPSTACKTOPEQU0FFH+1;settopofstacktohighestlocation+1.;;StackSpaceforreentrantfunctionsintheLARGEmodel.*BPSTACKEQU0;setto1iflargereentrantisused.*BPSTACKTOPEQU0FFFFH+1;settopofstacktohighestlocation+1.;;StackSpaceforreentrantfunctionsinthePACTmodel.PBPSTACKEQU0;setto1ifpactreentrantisused.PBPSTACKTOPEQU0FFFFH+1;settopofstacktohighestlocation+1.;;;;PageDefinitionforUsingthepactModelwith64KByte*dataRAM;;ThefollowingEQUstatementsdefinethe*datapageusedforpdata;variables.TheEQUPPAGEmustconformwiththePPAGEcontrolused;inthelinkerinvocation.;PPAGEENABLEEQU0;setto1ifpdataobjectareused.;PPAGEEQU0;definePPAGEnumber.;PPAGE_SFRDATA0A0H;SFRthatsuppliesuppermostaddressbyte;(most8051variantsuseP2asuppermostaddressbyte);;;StandardSFRSymbolsACCDATA0E0HBDATA0F0HSPDATA81HDPLDATA82HDPHDATA83HNAME"C_STARTUP"C_C51STARTUPSEGMENTCODE"STACKSEGMENTIDATARSEG"STACKDS1E*TRNCODE("C_START)PUBLIC"C_STARTUPCSEGAT0"C_STARTUP:LJMPSTARTUP1RSEG"C_C51STARTUPSTARTUP1:IFIDATALEN<>0MOVR0,*IDATALEN-1CLRAIDATALOOP:MOVR0,ADJNZR0,IDATALOOPENDIFIF*DATALEN<>0MOVDPTR,**DATASTARTMOVR7,*LOW(*DATALEN)IF(LOW(*DATALEN))<>0MOVR6,*(HIGH(*DATALEN))+1ELSEMOVR6,*HIGH(*DATALEN)ENDIFCLRA*DATALOOP:MOV*DPTR,AINCDPTRDJNZR7,*DATALOOPDJNZR6,*DATALOOPENDIFIFPPAGEENABLE<>0MOVPPAGE_SFR,*PPAGEENDIFIFPDATALEN<>0MOVR0,*LOW(PDATASTART)MOVR7,*LOW(PDATALEN)CLRAPDATALOOP:MOV*R0,AINCR0DJNZR7,PDATALOOPENDIFIFIBPSTACK<>0E*TRNDATA("C_IBP)MOV"C_IBP,*LOWIBPSTACKTOPENDIFIF*BPSTACK<>0E*TRNDATA("C_*BP)MOV"C_*BP,*HIGH*BPSTACKTOPMOV"C_*BP+1,*LOW*BPSTACKTOPENDIFIFPBPSTACK<>0E*TRNDATA("C_PBP)MOV"C_PBP,*LOWPBPSTACKTOPENDIFMOVSP,*"STACK-1;ThiscodeisrequiredifyouuseL51_BANK.A51withBankingMode4;E*TRNCODE("B_SWITCH0);CALL"B_SWITCH0;initbankmechanismtocodebank0LJMP"C_STARTEND主程序代码*include<reg52.h>*include"delay.h"*include"ds1302.h"//DS1302驱动程序*include"lcd1602.h"//LCD1302驱动程序*define_OK_0*f0*define_END_0*ffsbitk1=P3^5; sbitk2=P3^6;sbitk3=P3^7;sbitk4=P3^4; sbitk5=P3^3;sbitbeep=P2^7;ucharkey1=1;ucharkey2,key3;ucharstate=0;uchartab_num[]="0123456789:-";uchartab_t[]="Time:";uchartab_d[]="Date:";uchartab_am[]="AM";uchartab_pm[]="PM";uchartab_set[]="SET";uchartab_ring[]="Rin";uchartab_state[]="SA";//0调整时间1调整闹钟//===========================================//LCD1602显示函数//===========================================voidlcd_disp(){LCD_ShowString(0,0,tab_t);LCD_ShowString(1,0,tab_d);LCD_ShowNumber(0,5,tab_1302[state][2]);//小时LCD_ShowCharacter(0,7,':');LCD_ShowNumber(0,8,tab_1302[state][1]);//分LCD_ShowCharacter(0,10,':');LCD_ShowNumber(0,11,tab_1302[state][0]);//秒if(tab_1302[state][2]<12){LCD_ShowString(0,14,tab_am); } else { LCD_ShowString(0,14,tab_pm); } LCD_ShowNumber(1,5,20); LCD_ShowNumber(1,7,tab_1302[state][6]);//年 LCD_ShowCharacter(1,9,'-'); LCD_ShowNumber(1,10,tab_1302[state][4]);//月LCD_ShowCharacter(1,12,'-');LCD_ShowNumber(1,13,tab_1302[state][3]);//日LCD_ShowCharacter(1,15,tab_state[state]);//显示状态}//=============================================//时间日期调节函数//k1选定,k2加1,k3减1,k4切换模式//=============================================voidkey(){ uchari; //当k4被按下时if(k4==0){ DelayMS(20);//延时函数,用于销抖 if(k4==0){state++;if(state>1)//一共要调2个{state=0; //tab_1302[0]存储现在的时间 //tab_1302[1]存储闹铃调整的时间 //tab_1302[2]闹铃的定时时间//刷新存储闹铃时间缓存 for(i=0;i<6;i++)tab_1302[2][i]=tab_1302[1][i];}} //当k4被释放后,离开函数while(k4==0);}if(k1==0){DelayMS(20);if(k1==0){key1++;if(key1==7)//一共要调6个key1=1; } while(k1==0); } if(k2==0)//加一{DelayMS(20);if(k2==0)//当k2==0时,用于增加现在的时间和闹铃的时间 { switch(key1) { case1:tab_1302[state][0]++; if(tab_1302[state][0]>=60) tab_1302[state][0]=0; break;case2:tab_1302[state][1]++; if(tab_1302[state][1]>=60) tab_1302[state][1]=0; break;case3:tab_1302[state][2]++; if(tab_1302[state][2]>=24) tab_1302[state][2]=0; break;case4:tab_1302[state][3]++; switch(tab_1302[state][4]) { case1: if(tab_1302[state][3]>31) tab_1302[state][3]=1; break; case2: if(tab_1302[state][3]>29) tab_1302[state][3]=1; break; case3: if(tab_1302[state][3]>31) tab_1302[state][3]=1; bre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- BIM工程师《BIM技术概论》试卷真题及解析(2026年下半年)
- 先秦国学常识测试题目与答案
- 2025年建筑材料试验工职业技能鉴定考试试题及答案
- 2025年国际经济法考试题库(附答案)
- 35kV输电线路工程施工方案
- 声学计量员复测测试考核试卷含答案
- 氯化苯装置操作工安全操作能力考核试卷含答案
- 瓦斯检查工QC管理能力考核试卷含答案
- 缩聚磷酸盐生产工岗前工艺规程考核试卷含答案
- 甲壳素项目可行性研究报告
- 2025年给排水专业面试题及答案
- 1.1.1集合的概念与表示课件-高一上学期数学北师大版
- 万达集团财务管理制度
- JJF 2195-2025秒表校准规范
- 运动人体科学基础知识单选题100道及答案解析
- 第七章糖代谢与生物氧化
- 医院传染病防控
- 《养老机构服务合同》 GF-2016-2001
- 喷砂房安全规程
- 第六章 地理信息系统的应用模型
- 民航客舱服务与管理高职PPT完整全套教学课件
评论
0/150
提交评论