版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1目录TOC\o"1-3"\h\u313021概述 基于52单片机可调式电子日历与时钟系统设计1概述1.1背景与意义此可调式电子日历与时钟小巧便于携带,界面清爽,一目了然,方便的使您知晓当前时间,并可对时间做出修改,实在是居家旅行日常生活之必备用品!1.2设计内容在现今的可调式电子日历与时钟具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。本次设计可分为两部分:硬件系统、软件系统。利用LED显示器能显示出当前的时间包括年月日时分秒的电子日历装置。由于LED显示器只有六个数码管所以同时显示年月日和时分秒。通过键盘的按键来改变的年月日时分秒,利用单片机将RC复位电路、动态显示电路、电源电路、去抖电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。2设计要求与方案论证2.1设计要求:(1)基本要求具有年、月、日、星期、时、分、秒等功能;时间与阴、阳历能够自动关联;具有温度计功能;具备年、月、日、星期、时、分、秒校准功能;2.2系统基本方案选择和论证2.2.1单片机芯片的选择方案和论证:根据设计内容,提出了如下两种方案:方案一:采用STC89C52芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-52系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用STC89C52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-52系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用STC89C52作为主控制系统.2.2.2显示模块选择方案和论证:根据设计内容,提出了如下三种方案:方案一:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏.方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。所以采用了LED数码管作为显示。2.2.3时钟芯片的选择方案和论证:根据设计内容,提出了如下两种方案:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.2.3电路设计最终方案决定综上各方案所述,对此次作品的方案选定:采用STC89C52作为主控制系统;DS1302提供时钟;LED数码管动态扫描作为显示。3.系统的硬件设计与实现STC89C52主控制模块3.1电路设计框图STC89C52主控制模块键盘模块LED数码管动态扫描显示模块键盘模块LED数码管动态扫描显示模块DS1302DS1302时钟模块3.2系统硬件概述本电路是由STC89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;3.3主要单元电路的设计3.3.1STC89C52单片机管脚说明图3-3-1AT89S52单片机管脚图ATMEL公司的STC89C52是一种高效微控制器。采用40引脚双列直插封装形式。STC89C52单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。P3口也可作为AT89S51的一些特殊功能口,如下表所示:P3口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。ALE/:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/VP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:反向振荡器的输出,如采用外部时钟源驱动器件,应不接。STC89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-52单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.3.3.2时钟电路模块的设计图2-3-3示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。图3-2-2DS1302的引脚图3.3.3电路原理及说明(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时,时钟开始运行。“是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。(2)DS1302的控制字节DS1302的控制字如表2-3-4所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出RAMRD1A4A/CK/WR图3-3-3DS1302的控制字格式图3-3-4(3)数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图-2所示此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。4系统的软件设计4.1程序流程框图开始开始初始化读、写日期、时间和温度分离日期\时间\温度显示值显示子程序农历自动更新子程序日期、时间修改子程序闰月子程返回定时闹铃子程序图4-1主程序流程图4.2时间调整程序流程图图4-2时间调整程序流程图4.3计算阳历程序流程图图4-3计算阳历程序流程图5系统调试与仿真系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行,硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。5.1软件调试问题分析LED显示问题:本次设计的最终方案是采用LED显示屏实现显示功能,最初LED显示不正常,出现闪烁现象。通过调试发现这是由于延时时间选择不当会使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间延时。由于一开始所选用的延时时间太短因此出现闪烁现象,在增加显示延时之后,数码管显示正常。5.2Proteus仿真Proteus软件是来自英国LabcenterElectronics公司的EDA工具软件,Proteus软件除了其具有和其它EDA工具一样的原理布图,PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!PROTUES的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。该软件的特点:1.全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。2.具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。3.目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。4.支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。5.3硬件测试电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1)LED数码管的断码错乱,原因出于没有认真看清 a、b、c等引脚信息。解决:重新排列74LS47的输出端,相应接入LED数码管,即可解决出现在的断码或乱码。(2)对万年历修改时间或日期时,有时LED数码管被屏蔽掉,造成不亮现象。解决:根据仪器的测试,发现电路的驱动能力不足,最后在DS1302时钟芯片的/CS、SCLK、RET端接入5.1K的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现象。5.4软件测试电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:1.烧入程序后,LED数码管显示闪动,而且亮度不均匀。解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。2.修改时间、日期时没有农历没有自动对应上。解决:把不相关的程序暂时屏蔽,地农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。最后把相应的十进制进行修改,使得可以与十六进制对应,最后解决了此问题.3.最小系统不亮。解决:换了个电容,电容值太小。5.5测试结果分析与结论5.5.1测试结果分析(1).在测试中遇到LED数码管为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏.(2).LED数码管显示不正常,还有亮度不够,首先使用试测仪对电路进行测试,观察电路是否存在短路现象。查看烧写的程序是否正确无误,对程序进行认真修改。5.5.2测试结论经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所学的知识得到很大的提高与巩固.5.5.3实物图5.5.4调试结果6电路板的制作与检查考虑到本系统所用元器件较少,大部分功能都是通过软件编程来实现,同时也出于对毕业设计成本的考虑,因此所用到的板子是自己手工制作的PCB板。在电路板的制作中,首先要进行线路的排布。利用PROTEL软件模拟实际电路板的线路走向,尽量避免线路出现交叉短路,电源线路尽量安排在电路板的最外圈。PCB板刻录完成之后,开始进行焊接工作。焊接完后进行电路板检查,将原线路图与实际焊接的电路板进行对比,由于线路不多,所以用万用表的欧姆档或是短路声响指示功能来做焊点的检测,如此可以避免焊接时漏焊、虚焊和配线错误的问题,同时保证了所制作出来的线路与原设计线路的一致性。 一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:1.焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。2.冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹。3.夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,则要"吃"净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。4.焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。5.焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。6.焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。最小系统的电路不工作,首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否符合电源电压,常用的是5V左右。接下来就是检测复位引脚的电压是否正常,EA引脚的电压要正常为5V左右。7作品总结在整个设计过程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了作品。达到了预期的目的,在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用。相互学习、相互讨论、研究。完了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同组员的讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都在有耐心。此次比赛中学到了很多很多东西,这是最重要的。总之,参加电子竞赛我们的能力得到了全方位的提高。通过这次课程设计懂得了很多,我们自己去图书馆,上网查资料然后自己和我们这组的成员一起合作商讨完成的,原以为会很简单的,但无论在制作与写作过程中我们都遇到了理论课上所不曾遇到的问题,第一是综合性太强,这次制作与论文不仅涉及到我们以前所学到的单片机,模拟电子技术,数字电子技术,高等数学等课程的知识还涉及到很多我们的选修及课外的知识像实训课上学到的手工焊接技术等等知识。第二是理论联系实际性太强,把所学的搜集到得知识运用的实际中不是一件容易的事,不仅由元件从课本上的符号到实物的认识还是理论的测量结果与实际值的误差。在不断的努力下我们组的课程设计终于完成了。在没有做课程设计以前觉得课程设计只是对这几年来所学知识的大概总结,但是真的面对课程设计时发现自己的想法基本是错误的。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。课程设计是我们对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;课程设计提高了我们理论联系实际的能力更在知识的巩固与实际的操作上的衔接提高了我们的能力,课程设计中遇到的困难与挫折以及解决这些问题的思路与方法更增加了我们对以后工作中遇到困难克服解决的信心,也让我们积累了经验,为以后的工作打下了良好的基础,同时也培养了我们遇到突发状况要稳定冷静的精神,也培养了我们学会怎么与别人合作的方法,怎么解决与合作的伙伴意见不同一时状况,为以后怎么和同事相处好奠定了基础。这次课程设计业也让我们懂得了分析问题,才能解决问题的道理,通过了这次更增加了我们以后能够干好自己工作的信心。参考文献刘勇编数字电路电子工业出版社2021陈正振编电子电路设计与制作广西交通职业技术学院信息工程系2021杨子文编单片机原理及应用西安电子科技大学出版社20214王法能编单片机原理及应用科学出版社2021附录附录一:基于52单片机可调式电子日历与时钟原理图附录二:基于52单片机可调式电子日历与时钟PCB图附录三:proteus仿真图附录四:基于52单片机可调式电子日历与时钟设计C语言程序清单#include<reg51.h>#include<string.h>#defineucharunsignedchar#defineuintunsignedintSbitSDA=P1^0SbitCLK=P1^1SbitRST=P1^2SbitRS=P2^0SbitRW=P2^1SbitEN=P2^2SbitK1=P3^4SbitK2=P3^5SbitK3=P3^6SbitK4=P3^7uchartCount=0ucharmonthsDays[]={0,31,0,31,30,31,30,31,31,30,31,30,31};uchar*WEEK[]={“SUN”,”MON”,”TUS”,”WEN”,”THU”,”FRI”,”SAT”};ucharLCD_DSY_BUFFER1[]={“DATE00-00-00”};ucharLCD_DSY_BUFFER2[]={“TIME00:00:00”};ucharDateTime[7];charAdjust_Index=-1;ucharChang_Flag[]=”-MHDM-Y”;voidSET_DS1302(){Uchari;Write_DS1302(0x8E,0x00);for(i=1;i<7;i++){Write_DS1302(0x80+2*i,(DateTime[i]/10<<4)|(DateTime[i]%10));}Write_DS1302(0x8E,0x80);}VoidGetTime(){Uchari;for(i=0;i<7;i++){DateTime[i]=Read_Data(0x81+2*i);}}ucharRead_LCD_State(){ ucharstate; RS=0;RW=1;EN=1;DelayMS(1); state=P0; EN=0;DelayMS(1); returnstate;}voidLCD_Busy_Wait(){ while((Read_LCD_State()&0x80)==0x80); DelayMS(5);}voidWrite_LCD_Data(uchardat){ LCD_Busy_Wait(); RS=1;RW=0;EN=0;P0=dat;EN=1;DelayMS(1);EN=0; }voidWrite_LCD_Command(ucharcmd){ LCD_Busy_Wait(); RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMS(1);EN=0; }voidInit_LCD(){ Write_LCD_Command(0x38); DelayMS(1); Write_LCD_Command(0x01); DelayMS(1); Write_LCD_Command(0x06); DelayMS(1); Write_LCD_Command(0x0c); DelayMS(1); }voidSet_LCD_POS(ucharp){ Write_LCD_Command(p|0x80); }VoidDisplay_LCD_String(ucharp,uchar*s){uchari;set_LCD_POS(p);for(i=0;i<16;i++){Write_LCD_Data(s[i]);DelayMs(s);}}voidFormat_DateTime(uchard,uchar*a){a[0]=d/10+”0”;a[1]=d%10+”0”;}UcharisLeapYear(uinty){return(y%4==0&&y%100!=0)||(y%400==0);}VoidRefreshWeekDay()uinti,d,w=5;for(i=2021;i<2021+DateTime[6];i++){d=isLeapYear(i)?366:365;w=(w+d)%7;}D=0;For(i=1;i<DateTime[4];i++)d+=MonthsDay[1];D+=DateTime[3];DateTime[5]=(w+d)%7+1;}VoidDateTime_Adjust(charx){switch(Adjust_Index){Case6:if(x==1&&DateTime[6]<99)DateTime[6]++;if(x==-1&&DateTime[6]>0)DateTime[6]--;MonthsDay[2]=isLeapYear(2021+DateTime[6])?29:28;if(DateTime[3]>MonthsDays[DateTime[4]])DateTime[3]=MonthsDays[DateTime[4]];RefreshWeekDay();break;Case4:if(x==1&&DateTime[4]<12)DateTime[4++;if(x==-1&&DateTime[4]>1)DateTime[4]--;MonthsDay[2]=isLeapYear(2021+DateTime[6])?29:28;if(DateTime[3]>MonthsDays[DateTime[4]])DateTime[3]=MonthsDays[DateTime[4]];RefreshWeekDay();break;Case3:MonthsDay[2]=isLeapYear(2021+DateTime[6])?29:28;if(x==1&&DateTime[3]<MonthsDays[DateTime[4]])DateTime[3]++;if(x==-1&&DateTime[3]>0)DateTime[3]--;RefreshWeekDay();break;Case2:if(x==1&&DateTime[2]<23)DateTime[2]++;if(x==-1&&DateTime[2]>0)DateTime[2]--break;Case1:if(x==1&&DateTime[1]<59)DateTime[1]++;if(x==-1&&DateTime[1]>0)DateTime[1]--;break;}}voidT0_INT()interrupt1{TH0=-50000/256;TL0=-50000%256;if(++tCount!=2)return;tCount=0;Format_DateTime(DateTimf[6],LCD_DSY_BUFFTER11+5);Format_DateTime(DateTimf[4],LCD_DSY_BUFFTER11+8);Format_DateTime(DateTimf[3],LCD_DSY_BUFFTER11+11);strcpy(LCD_DSY_BUFFER1+13,WEEK[DateTime[5]-1]);Format_DateTime(DateTimf[2],LCD_DSY_BUFFTER11+5);Format_DateTime(DateTimf[1],LCD_DSY_BUFFTER11+8);Format_DateTime(DateTimf[0],LCD_DSY_BUFFTER11+11);Display_LCD_String(0x00,LCD_DSY_BUFFER1);Display_LCD_String(0x00,LCD_DSY_BUFFER2);}voidEX_INT0()interrupt0{if(K1==0){while(K1==0);if(Adjust_Index==-1||Adjust_Index==1)Adjust_Index=7;Adjust_Index--;if(Adjust_Index==5)Adjust_Index=4;LCD_DSY_BUFFER2[13]=”[”LCD_DSY_BUFFER2[14]=Change_Flag[Adjust_Index];LCD_DSY_BUFFER2[15]=”]”}elseif(K2==0){while(K2==0);DateTime_Adjust(1);}elseif(K3==0){while(K3==0);DateTime_Adjust(-1);}elseif(K4==0){while(K4==0);SET_DS1302();LCD_DSY_BUFFER2[13]=””;LCD_DSY_BUFFER2[14]=””;LCD_DSY_BUFFER2[15]=””Adjust_Index=-1;}voidmain(){Init_LCD();IE=0x83;IP=0x01;IT0=0x01;TMOD=0x01;TH0=-50000/256;TL0=-50000%256;TR0=1;while(1){if(Adjust_Index==-1)GetTime();}}附录五:基于52单片机可调式电子日历与时钟设计器件目录表4个按钮、1个晶振、1个大电容、1个电位器、1个排阻、1个DS1302、1个74LS21、1个最小系统、1个LED显示屏。ganemploymenttribunalclaiEmploymenttribunalssortoutdisagreementsbetweenemployersandemployees.Youmayneedtomakeaclaimtoanemploymenttribunalif:youdon'tagreewiththedisciplinaryactionyouremployerhastakenagainstyou
社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能在今天就已经被淘汰掉了,中国的经济越和外面接轨,对于人才的要求就会越来越高,我们不只要学好学校里所学到的知识,还要不断从生活中,实践中学其他知识,不断地从各方面武装自已,才能在竞争中突出自已,表现自已。在餐厅里,别人一眼就能把我人出是一名正在读书的学生,我问他们为什么,他们总说从我的脸上就能看出来,也许没有经历过社会的人都有我这种不知名遭遇吧!我并没有因为我在他们面前没有经验而退后,我相信我也能做的像他们一样好.我的工作是在那做传菜生,每天9点钟-下午2点再从下午的4点-晚上8:30分上班,虽然时间长了点但,热情而年轻的我并没有丝毫的感到过累,我觉得这是一种激励,明白了人生,感悟了生活,接触了社会,了解了未来.在餐厅里虽然我是以传菜为主,但我不时还要做一些工作以外的事情,有时要做一些清洁的工作,在学校里也许有老师分配说今天做些什么,明天做些什么,但在这里,不一定有人会告诉你这些,你必须自觉地去做,而且要尽自已的努力做到最好,一件工作的效率就会得到别人不同的评价。在学校,只有学习的氛围,毕竟学校是学习的场所,每一个学生都在为取得更高的成绩而努力。而这里是工作的场所,每个人都会为了获得更多的报酬而努力,无论是学习还是工作,都存在着竞争,在竞争中就要不断学习别人先进的地方,也要不断学习别人怎样做人,以提高自已的能力!记得老师曾经说过大学是一个小社会,但我总觉得校园里总少不了那份纯真,那份真诚,尽管是大学高校,学生还终归保持着学生的身份。而走进企业,接触各种各样的客户、同事、上司等等,关系复杂,但我得去面对我从未面对过的一切。记得在我校举行的招聘会上所反映出来的其中一个问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工自动控制技术员岗前培训效果考核试卷含答案
- 2026广东江门开放大学招聘1人考试备考题库及答案解析
- 2026福建省尤溪城市建设投资集团有限公司招聘1人考试备考题库及答案解析
- 2026上海浦东职业技术学院教师招聘28人(第二批)考试备考题库及答案解析
- 2026江苏南京城市职业学院(南京开放大学)招聘高层次人才21人(第一批)考试参考题库及答案解析
- 2026年企业级大模型私有化部署技术架构设计指南
- 2026福建宁德古田县实验幼儿园招聘编外工作人员2人笔试参考题库及答案解析
- 2026江西武宁县船滩镇中心卫生院招聘1人考试备考试题及答案解析
- 2026年宁夏银川市永宁县第四中学招聘1人笔试参考题库及答案解析
- 2026青海海西州乌兰县紧密型县域医疗卫生共同体面向社会招聘工作人员8人笔试参考题库及答案解析
- 大学计算机计算思维与信息素养第12章
- 数学第一章数据描述性分析课件
- 2023年福建军融建设发展有限公司招聘笔试题库及答案解析
- 《美学》课件(第1-8讲)教学提纲
- 森林防火整改报告记录
- 《海洋里的好伙伴》课件
- 狼疮性肾炎最新版课件
- 冶金生产概论绪论课件
- 计算机应用基础英文版课件:4.OS
- 二年级上册数学教案 -《分一分》 西师大版
- 风生水起博主的投资周记
评论
0/150
提交评论