




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的自动打铃控制器摘要单片机正不断成为科技社会应用中的新浪潮,正是单片机的加入,推动了自动化行业的发展,给生活带来极大的便利。然而单片机仅仅是微控制器,只有结合系统的硬件电路与软件算法控制才能完成目标的任务。简易自动打铃系统主要为学校服务,旨在减轻学校工作量、提高学校工作效率,避免因打铃不及时产生的大量不守时情况。本课题基于单片机STC89C52芯片搭建的自动打铃系统,简单方便,操作简单,易于实现。自动打铃系统应用广泛,在工业自动化中有广泛应该用,能够实时监控并精准定时报警,该设计加入了时钟显示,便于观察,更加人性化,更满足生产需要。经过调试,本课题实时性、可操作性都已达到了要求。关键
2、词:单片机 自动打铃 时钟显示Single Chip Microcomputer Automatic Ring SystemAbstractMCU is becoming a new wave in the application of science and technology society. It is the joining of MCU that promotes the development of automation industry and brings great convenience to life.However, MCU is only a microcontro
3、ller, only the combination of the systems hardware circuit and software algorithm control to complete the target task.The simple automatic bell ringing system mainly serves for the school, aiming to reduce the school workload, improve the school work efficiency, and avoid the large amount of unpunct
4、uality caused by the late bell ringing.This subject is based on the microcontroller STC89C52 chip set up automatic ringing system, simple and convenient, simple operation, easy to achieve.Automatic bell ringing system is widely used, which should be widely used in industrial automation. It can be us
5、ed for real-time monitoring and accurate timing alarm. The design adds clock display, which is convenient for observation, more humanized and more satisfying for production needs.After debugging, the project has reached the real-time, operable requirements.Key Words:single chip microcomputer; Automa
6、tic ringing the bell; Clock Display目录1. 设计方案论证21.1 设计要求21.2 设计方案选择21.2.1 方案一:数字电路设计的自动打铃系统21.2.2 方案二:基于单片机的自动打铃系统设计21.2.3 方案三:基于单片机与DS1302时钟芯片的自动打铃系统设计31.2.4 方案确定31.3 基本方案31.3.1设计课题简要概述31.3.2系统软硬件划分31.3.3单片机选型41.4总体设计框图42. 硬件电路设计42.1 基本原理概述42.2 主要原件参数及功能简介52.2.1 主控器AT89C5152.2.2 DS130272.3 单元电路的设计10
7、2.3.1显示电路设计102.3.2键盘接口电路设计112.3.3 响铃电路设计112.3.4 时钟电路设计122.4 总体运行进程123. 软件电路设计及流程图143.1 基本原理概述143.1.1 时钟程序设计143.1.2 显示程序设计和按键判断与按键处理程序设计143.2.1 系统主程序流程图153.2.1 系统子程序流程图164. 系统程序设计174.1 程序设计概要174.2 源程序清单175. 自动打铃硬件原理图606. 毕业设计总结61致 谢62参考文献63常熟理工学院毕业设计1. 绪论1.1发展现状19世纪70年代,工业领域诞生了单片机。它是相当于一台微型计算机的芯片,对大多
8、数人来说芯片领域是一个极其陌生的领域,实际上它并不那么高深莫测,我们每天见到的红绿灯、家用电器,握在手中无法离开的手机等等,芯片都是它们的组成部分,所以可以说芯片是所有人生活的组成部分,在自动化控制领域单片机已经是最具代表性的,能够利用好单片机对科技社会的发展是具有巨大的推动作用。当今社会,技术与信息更新速度飞速加快并且随着要求不断提高,单片机从早期的8位、4位发展到了现今的16位、32位,因为它优越的性能、小体积、低成本等优点,将传统控制系统取而代之变成了理所当然的发展趋势。单片机伴随着电子产品在我们的生活里与我们如影随形,所以在这里要介绍一个以单片机为核心器件,以C语言编程的将主要应用于学
9、校的自动打铃系统。1.2 研究意义该课题主要研究以单片机为主要核心的自动打铃控制器,我们知道,在工厂、学校和许多公司都需要这种具有可以预先设定时间,到时则自动提醒功能的产品,在本文中设计的自动打铃系统所涉及到的是AT89C52单片机 ,自动打铃系统是专为学校打造的,学校是需求时间系统的典型机构,为其提供自动提醒功能的设施最具实际意义。1. 设计方案论证1.1 设计要求在此设计过程中所获得的产品,将能当做为时钟电路,针对当前时间进行跟踪显示。利用按键实现了调时间并且设置完成打铃时间的设置。按键可分为:向上加时间,向下减时间,强制打铃。其将能细分为下述部分:其中重点涵盖时间设置电路以及相应的显示电
10、路。除此之外,还涉及到计时电路以及相应的定时打铃控制电路。本文旨在基于常熟理工学院,所表现出的打铃情况,进行更深层次的细致设计,详细如下:1.2 设计方案选择1.2.1 方案一:数字电路设计的自动打铃系统在此方案中,旨在基于搭建数字电路,通过函数信号发生器的作用,来持续发出相对稳定的各类脉冲信号,并且以74160N为基础来实现十进制进位。与此同时,本方案还借助于数码显示器的作用,来针对当前时间进行跟踪显示,并且借助于组合逻辑电路以及非门等各种类型的电路元件,进行彼此衔接,从而针对打铃操作,进行科学有效的控制。1.2.2 方案二:基于单片机的自动打铃系统设计利用STC89C52的定时器计时,产生
11、1秒定时中断。通过循环的嵌套,完成了时分秒的定时。采用计数方式,利用全局标志位,采用局部变量计数,若在中断中计数分值达到60,标志位置1。局部变量清0,用于重新计数;对于分、时的设置也是如此。如果在主程序已经处于进位检测的情况下,则可将信息时间表当中所含有的作息时间,和真实时间进行相对深入相对细致对比,来检验两者之间的一致性。若两者完全一致,则可执行打铃操作;反之,如果两者并不完全一致,则将即刻返回相应的主程序。1.2.3 方案三:基于DS1302时钟芯片方案设计本方案选择DS1302作为实时时钟驱动程序,因为该芯片包含一个实时时钟/日历,时钟芯片结合EEPROM可擦除存储芯片,缓存打铃时间,
12、并且有自动校正偏差功能。建立好实时时钟系统后,再建立定时自动打铃和打铃输出功能。并将当前时间和预先设定好的时间进行比较,如果相同,则自动打铃;若两者并不完全一致,则将即刻返回相应的主程序。1.2.4 方案确定如果基于方案一的角度进行综合考量,则其仅可提前拟定相应的打铃时间,无法实现自动化打铃。与此同时,其难以针对打铃所持续的时间,进行恰当适宜的修改。如果基于方案二的角度进行综合考量,则其将可达到自动化操作,但由于使用单片机内部存储器作为时钟电路,走时不精确,并且不能自动校正。方案三DS1302的基本特征为:借助于串行数据的作用进行传输,从而为某特定的掉电保护电源,提供能够进行编程的良好充电功能
13、,除此之外,还为其提供能够实时关闭充电的基本功能。该项方案,旨在借助于常规32.768kHz晶振的作用。走时精确,并且有闰年自动校正补偿功能,能自动判定当月是否满足31天并在月末自动修改。因此我选择方案三作为本次毕业设计的主要思路。1.3 基本方案1.3.1设计课题简要概述从本质上来来看,自动打铃控制器装置,已经在多样化领域中,均逐步获得相对广泛的实际应用,其中重点涵盖工厂以及学校等地域。尤其对于学校而言,其对时间的把控,必须要求精准且每天要反复使用打铃器的地方,所以本设计是按照学校的作息时问设定的,有显示屏可以查看时间,模拟电子钟。还可以根据学校的作息时间预先设置多个时间点,按时打铃。这次设
14、计还采用了DS1302时钟芯片,有走时更精准等许多优点。对于此类打铃器而言,其累计涵盖4 个按钮,其所含有的功用依次如下:对时分进行精准调节、对秒进行精准调节、强制进行打铃、强制进行关铃。这些按钮所含的功能,将能切实保障当前显示的实际时间,时刻和标准时间完全一致,并且在产生突发情况时可以采取应急打铃措施。本文之初,旨在针对打铃器所涉及的硬件电路示意图,进行科学合理的综合设计。其次,在电路图的基础上,将可针对电气的基本原理示意图,进行相对深入的细致设计。与此同时,还可阐述其所秉持的工作原理,并且基于各种类型的设计技术参数,来针对多样化软件程序以及相应的硬件程序,进行更深层次的细致设计。1.3.2
15、系统软硬件划分因为打铃器的综合设计过程,必须涉及到单片机所含有的最小系统设计,故而当针对诸多硬件成本进行综合考量之后,本人决定将绝大部分可用软件进行实现的多样化功能,均借助于软件的作用来进行实现。例如:按键去抖,即可借助于延时的作用进行消抖;与此同时,显示部分将可借助于LED数码管的作用,来达到良好的动态显示效果等。唯有如此,打铃器所含的硬件部分,才能借助于单片机最小系统的作用来进行实现。值得一提的是,最小系统的基本含义为:凭借程序存储器以及相应的时钟电路,再辅以简单的复位电路,所成功构建出的单片机系统。1.3.3单片机选型基于本课题所含的基本内容以及其所应当满足的任务要求,再结合其必须实现的
16、计时以及定时等一系列基本功能,通过综合考量以及科学合理的综合对比之后,本文决定将系统选定为可和MSC-51单片机彼此之间,达到良好兼容效果的某特定AT89C51单片机,此类单片机的关键特性即为低功耗。1.4总体设计框图如下图所示,本次设计的主要部分由时钟电路、电源(电池盒供电)、LED显示、键盘电路、驱动电路和蜂鸣器模块组成,时钟电路采用的是DS1302时钟芯片,该芯片能提供时、分、秒、年、月、日和星期各时间,并且走时比单片机内部计时器更精准。电池采用的是电池盒供电,由三节1.5V五号电池构成。显示电路由八位数码管构成,采用的是循环扫描方法显示时间。键盘电路是四个独立的按键,每个按键都有不同的
17、作用,分别是选择键、加键、减键和强制打铃/关铃键。电铃为普通蜂鸣器。图1总体框图2. 硬件电路设计2.1 基本原理概述对于本文所设计的打铃器而言,其中,重点涵盖微处理器模块以及相应的显示模块等;除此之外,还涉及到DS1302时钟模块以及相应的键盘接口模块。此类打铃器在实际工作过程中所遵循的基本原理如下:借助于内部定时的作用来形成中断,以此来切实推进电铃执行打铃操作。因为动态显示法必须借助于数据锁存等一系列硬件的作用,故而接口相较之下显得相对复杂,与此同时,因为显示仅存在六位,并且系统不存在其他多样化复杂的相关处理程序。故而本文经由综合考量,决定借助于动态扫描LED的作用,来针对当前时间进行跟踪
18、显示。在此系统中,旨在借助于四个独立按键的作用。值得一提的是,如果在时钟显示时间,和提前拟定的时间数值完全一致的情况下,驱动程序将会即刻执行动作,并实现自动打铃。除此之外,打铃的维持时间通常为15S。2.2 主要原件参数及功能简介2.2.1 主控器AT89C511)AT89C51概述此类单片机实则经由AT89C51公司完成自主研发并投入生产,其表现出尤为显著的性能,借助于静态89C51的作用来实现设计。整体而言,其选用当前时期高端前沿的加工工艺进行制造,并且含有表现为突出非易失性的某特定FLASH 程序存储器。不仅如此,其还含有8位CMOS微处理芯片,无需耗费较高的功耗,即可达到极为优良的实际
19、性能,故而在当前市场当中,逐步获得相对广泛的实际应用。其中此类单片机所含的基本特征如下:该单片机内部含有4K FLASH 程序存储器;该单片机内部含有256 字节RAM;该单片机内部含有良好的电源控制模式:其中涉及到空闲模式以及掉电模式。该单片机内部含有6个中断源;该单片机内部含有4个中断优先级;该单片机内部含有4个8位I/O口;该单片机内部含有全双工增强型UART;该单片机内部含有2个16位的定时器以及相应的计数器。图2 AT89C512)AT89C51引脚阐述:VCC:旨在代表供电电压。GND:旨在代表接地引脚。P0口:对于此接口而言,其实则表现为8位漏级开路的某特定双向I/O口,其中所涉
20、及的全部引脚,均能用来吸收8TTL门电流。值得一提的是,P1口所含的管脚在首次写1的情况下,将会看作为高阻输入。事实上,P0将可应用于外部程序数据存储器,这是由于,其能够看作为数据/地址当中所存在的第八位。当进行FIASH编程的过程中,P0口旨在代表原码输入口,一旦在FIASH处于校验的过程中,P0将会跟踪输出原码。在此期间,P0外部需要持续拉高。 P1口:对于此接口而言,其实则表现为提供上拉电阻的某特定8位双向I/O口,其所涉及的缓冲器,将可接收来源于输出4TTL门所发送的电流。需要注意的是,在P1口管脚成功写入1的情况下,将会拉高成为输入口,若其表现出低电平状态,则将可输出电流。此外,当进
21、行FLASH编程及其后期校验的情况下,通常情况下,P1口将会代表第八位地址,从而实现接收。P2口:对于此接口而言,其实则表现为携带上拉电阻的某特定8位双向I/O口,其所涉及的缓冲器,将可接收来源于输出4TTL门所发送的电流。需要注意的是,在P2口管脚成功写入1的情况下,将会拉高成为输入口,若其表现出低电平状态,则将可输出电流。除此之外,当P2口应用于外部程序存储器的情况下,P2口将会代表第八位地址,来进行输出。而在进行FLASH编程及其后期校验的情况下,通常情况下,P2口将会代表第八位地址,来成功接收地址信号以及相应的控制信号。 P3口:对于此接口而言,其实则表现为携带上拉电阻的某特定8位双向
22、I/O口,其所涉及的缓冲器,将可接收来源于输出4TTL门所发送的电流。需要注意的是,在P3口管脚成功写入1的情况下,将会拉高成为输入口,若其表现出低电平状态,则将可输出电流。值得一提的是,P3口也能当做为AT89C51单片机中所含的其他功能口,详见下表: RST:该引脚代表复位输入引脚。一旦在振荡器针对相关元器件,进行复位的情况下,必须切实保障RST脚,得以保持两个机器周期的不间断高电平状态。 ALE/PROG:对于此类引脚而言,当其针对外部存储器,进行实际访问的过程中,地址锁存所能允许的某特定输出电平,将能当做为锁存地址中含有的地位字节。而当处于FLASH编程的过程中,该引脚将会成为编程脉冲
23、的实际输入端。通常情况下,ALE端将会保持恒定的频率周期,来针对相关正脉冲信号进行实时输出,并且输出频率表现为振荡器实际频率的1/6。正因如此,其才能针对某些脉冲进行外部输出。但是,值得一提的是,当其行使外部数据存储器作用的情况下,必将会不可避免的跳过某特定的ALE脉冲。故而若想切实规避ALE的输出行为,将可于SFR8EH地址当中进行置0。在此情况下,ALE当执行MOVX的过程中,唯有MOVC指令才含有效用。除此之外,此类引脚将会逐步拉高。 /PSEN:对于此类引脚而言,其旨在代表外部程序存储器当中所含有的选通信号。通常情况下,对于外部程序存储器而言,当其处于取指的过程中,单个机器周期将会出现
24、两次行之有效的/PSEN信号。然而,若针对外部数据存储器,进行正常访问的情况下,将不会产生此类信号。 /EA/VPP:对于此类引脚而言,若/EA呈现出低电平状态的情况下,则将主要作用于外 部程序存储器。值得一提的是,若在加密方式表现为1的情况下,则/EA将会定义为RESET;如果在/EA端呈现出高电平的情况下,则将旨在作用于内部程序存储器。除此之外,当处于FLASH编程的过程中,此类引脚将会安装至12V编程电源当中。 XTAL1:对于此类引脚而言,其旨在代表反向振荡放大器所含有的实际输入端,以及时钟工作所含有的实际输入端。XTAL2:对于此类引脚而言,其旨在代表反向振荡器所涉及的实际输出端。2
25、.2.2 DS13021)DS1302时钟芯片阐述DS1302时钟芯片旨在经由DALLAS公司进行研发,其本质为性能优良的涓流充电时钟芯片之一。2001年,MAXIM公司正式收购DALLAS公司,故而在DS1302时钟芯片的数据手册当中,不仅含有DALLAS公司的标志,而且含有MAXIM公司的标志; 当前时期,DS1302时钟芯片在多样化领域当中,均逐步获得相对广泛的实际应用。例如:电话以及各种类型的便携式仪器等一系列领域。DS1302是由DS1202改进过来的,其所含有的基本性能指标详细如下:1、对于此类芯片而言,其将能提供秒、时以及年等基本信息,与此同时,当其处于闰年时,还能进行自主调节。
26、除此之外,当针对AM/PM进行合理配置,将可自由选定是否选择24小时格式,亦或为相应的12小时格式。2、此类芯片含有31字节的数据存储RAM。3、此类芯片秉持串行I/O的通信方式,这类方式相较于并行而言,将可有效节约不必要的IO口成本。4、DS1302时钟芯片所表现出的工作电压相对较宽,通常情况下,当其处于2.0-5.5V的范围内时,即能进行正常工作。值得一提的是,其旨在借助于双电源来进行供电,如果其主电源的实际电压,相较于备用电源还超过0.2V的情况下,则旨在由前者进行供电,反之则用后者进行供电。通常情况下,此类芯片的供电电池为纽扣电池。5、此类芯片往往不会消耗过高的功耗,当其处于2.0工作
27、电压的情况下,所需耗费的工作电流往往不超过300nA。6、DS1302累计含有8个引脚,并且表现出两类截然不同的封装形式。其中重点涵盖DIP-8封装,在此封装方式中,芯片的实际宽度表现为300mil。除此之外,还涉及到SOP-8封装,在此封装方式中,芯片的实际宽度表现为两种,其中包含150mil,此外包含208mil。 2)管脚描述对于DS1302单片机而言,其所含有的外部引脚基本功能详解,详见图3:图3 DS1302封装图对于DS1302单片机而言,其内部所含的基本结构示意图,详见图4。此类单片机重点涵盖移位寄存器、振荡器以及相应的RAM等基本元件。即使数据已经细分为两大类别。然而相对于单片
28、机程序来说,两者的本质完全一致,即针对某特定的地址,进行科学得当的读写操作。图4 DS1302的基本结构示意图DS1302含充电电路,可外接电池进行断电保护,使走时更加精确。并可选择充电使能和串入的二极管数目,以调节电池充电电压。3)DS1302的基本原理DS1302单片机在正常工作的情况下,为使得数据传送过程实现初始化,必须使得RST引脚表现为高电平状态,与此同时,还需将8位地址以及相应的命令信息,均传递至对应的移位寄存器。在此之后,相关数据将会伴随着时钟的攀升,逐步进行串行输入,并将前8位作用于指定对应的访问地址。随后,如果命令字已经成功传送至移位寄存器时,则时钟周期将可在执行读操作以及写
29、操作的过程中,针对某特定数据进行输出。值得一提的是,时钟脉冲的实际数量,当处于单字节方式的作用下,将呈现为8+8,然而,当其处于多字节方式的作用下,甚至将能呈现为248。4)DS1302的时序图上图即为单字节写入过程中,所呈现出的基本时序示意图,由此得知,首先,可将使能端进行拉高,以进行恰当适宜的选择,其次,将可于时钟上升沿位置,写入某特定字节。对于DS1302单片机而言,其在读写操作的过程中,至少应该读写两个字节,其中包含控制字节,来阐述此操作究竟为读操作亦或为写操作。此外还涉及到读写数据字节。当面对单字节写入的情况下,则SCLK仅在表现为低电平状态的情况下,才可使得CE置高电平。故而首先需
30、要将SCLK置低,并且将CE置高;其次,将所需写入字节传递至IO口,再持续跳变SCLK。最后,当处于SCLK下降沿的情况下,来实现相关数据的写入。2.3 单元电路的设计2.3.1显示电路设计本单片机所涉及的显示部分,旨在借助于常规的数码管显示作用,来进行简单概述。图5 显示电路基本示意图2.3.2键盘接口电路设计在此次设计过程中,旨在涵盖四个独立键盘,借助于查询法将可实现读键功能。图6 按键电路基本示意图如图所示,按键S2一端接地,另一端a端与单片机P3.3相接;按键S3一端接地,另一端b端与单片机P3.4相接;按键S4一端接地,另一端c端与单片机P3.5相接;按键S5一端接地,另一端d端与单
31、片机P3.6相接。2.3.3 响铃电路设计在此设计过程中,响铃电路重点涵盖蜂鸣器以及1K电阻等基本元件。其中,蜂鸣器两端依次与地以及三极管进行良好连接。此外,三极管的另外一端,将会串联电阻,并径直并入至P3.7接口当中。图7 响铃电路基本示意图2.3.4 时钟电路设计如图所示,8号引脚连接一块3V纽扣电池并接地;7号引脚与单片机P1.3引脚相接;6号引脚与单片机P1.4引脚相接;5号引脚与单片机P1.5引脚相接。X1、X2引脚与一块特定晶振相接,晶振频率为32.768KHz。2.4 总体运行进程本文之初,需要基于8位数码管,直观并清晰显示出24小时制电子钟,显示格式为时-分-秒,时分秒三者中分
32、别有一个分隔符:23-59-59。当已经到达提前设定的时间时,蜂鸣器将会进行自动打铃,其中包含上下课铃,一种是起床、熄灯铃。值得一提的是,本系统旨在借助于4个按键来进行基本操作,其中3个按键均为针对当前时间,来进行调整的按键,仅有1个行使强制打铃的功能。3. 软件电路设计及流程图3.1 基本原理概述主程序若想得以顺利运行,需要首先进行初始化,重点为DS1302时钟芯片初始化,定时器初始化。随后即调用相应的显示子程序。事实上,主程序所涉及的起始存储地址,即为0000H单元,然而,因为此类系统旨在秉持定时器T0中断,故而主程序所涉及的中断服务程序入口地址,将被设定为000BH。在此情况下,基于00
33、00H单元将能存储某特定的短调转指令AJMP,从该角度来看,主程序直至0300H单元才会进行存储。3.1.1 时钟程序设计本次设计中时钟模块由DS1302芯片提供,与单片机数码管结合显示时间,可自动交替显示秒、分、时、年、日、月和星期,也可按键显示。3.1.2 显示程序设计和按键判断与按键处理程序设计该单片机的显示程序,旨在达到动态显示的效果,无论为段控亦或为位控,均需基于反相器,并一律表现为共阳特性的显示代码。需要注意的是,当针对位控信号,进行实际输出的情况下,将表现出有效的高电平状态。对于显示子程序而言,首先要进行的环节即为拆字,在此环节中,显示缓冲区往往控制在2FH2AH的范围内;其次,
34、要进行的环节即为查字型码以及相应的位控信号等,因为其旨在秉持动态显示,故而在输出段控信号的过程中,必将经历一段时间的延迟,故而LED显示器所跟踪显示出的字符时,实则相对稳定。值得一提的是,当按键判断程序出现编写的情况下,需要关注于按键所表现出的去抖动情况。对于此类系统而言,其旨在借助于延时去抖动的基本方法,来控制此类现象,而延时则需调用相关子程序才能进行。3.2 流程图3.2.1 主程序基本流程示意图主程序基本流程设计框图3.2.1 按键子程序基本流程示意图按键子程序基本流程设计框图4. 系统程序设计4.1 程序设计概要程序名称:基于单片机的自动打铃控制器设计实现功能:成功显示24 小时制电子
35、钟,并借助于8位LED数码管的作用进行显示,格式如下:23-59-59。若已经达到提前设定的时间,则蜂鸣器将自动打铃,BEEP如下: P3.7。打铃方式可细分为三种,其中包含起床以及熄灯打铃,此外还涉及到上课以及下课打铃。在此设计过程中,旨在设定4个按键,其中,3 个按键作用于针对当前时间进行跟踪调整,而1个按键行使定时打铃作用。set-key: PI.0口;旨在代表选择键,按下选中位闪烁,通过选择键可确定修改位置。add-key:PI.1口;旨在代表加1键。dec-key: PI.2口;旨在代表减1键。如果长按加键亦或为减键,则经由识别即可快进亦或为快退。在此过程中,停止闪烁。若选中秒位,则
36、无论增加亦或减少,均为清零。DALING_KEY: P1.3;旨在代表定时打铃按键,P2 口输出数码管位选信号。4.2 源程序清单 void write_eeprom()SectorErase(0x2000);byte_write(0x2000, fen1); /第1个打铃的时间byte_write(0x2001, shi1);byte_write(0x2002, fen2); /第2个打铃的时间byte_write(0x2003, shi2);byte_write(0x2004, fen3); /第3个打铃的时间byte_write(0x2005, shi3);byte_write(0x20
37、06, fen4); /第4个打铃的时间byte_write(0x2007, shi4);byte_write(0x2008, fen5); /第5个打铃的时间byte_write(0x2009, shi5);byte_write(0x2010, fen6); /第6个打铃的时间byte_write(0x2011, shi6);byte_write(0x2012, fen7); /第7个打铃的时间byte_write(0x2013, shi7);byte_write(0x2014, fen8); /第8个打铃的时间byte_write(0x2015, shi8);byte_write(0x20
38、16, fen9); /第9个打铃的时间byte_write(0x2017, shi9);byte_write(0x2018, fen10); /第10个打铃的时间byte_write(0x2019, shi10);byte_write(0x2020, fen11); /第11个打铃的时间byte_write(0x2021, shi11);byte_write(0x2022, fen12); /第12个打铃的时间byte_write(0x2023, shi12);byte_write(0x2024, fen13); /第13个打铃的时间byte_write(0x2025, shi13);byt
39、e_write(0x2026, fen14); /第14个打铃的时间byte_write(0x2027, shi14);byte_write(0x2028, fen15); /第15个打铃的时间byte_write(0x2029, shi15);byte_write(0x2030, fen16); /第16个打铃的时间byte_write(0x2031, shi16);byte_write(0x2032, fen17); /第17个打铃的时间byte_write(0x2033, shi17);byte_write(0x2034, fen18); /第18个打铃的时间byte_write(0x2
40、035, shi18);byte_write(0x2036, fen19); /第19个打铃的时间byte_write(0x2037, shi19);byte_write(0x2038, fen20); /第20个打铃的时间byte_write(0x2039, shi20);byte_write(0x2040, fen21); /第21个打铃的时间byte_write(0x2041, shi21);byte_write(0x2042, fen22); /第22个打铃的时间byte_write(0x2043, shi22);byte_write(0x2044, fen23); /第23个打铃的时
41、间byte_write(0x2045, shi23);byte_write(0x2046, fen24); /第24个打铃的时间byte_write(0x2047, shi24);byte_write(0x2048, fen25); /第25个打铃的时间byte_write(0x2049, shi25);byte_write(0x2050, fen26); /第26个打铃的时间/*把数据从单片机内部eeprom中读出来*/shi3 = byte_read(0x2005);fen4 = byte_read(0x2006); /第4个打铃的时间shi4 = byte_read(0x2007);fe
42、n5 = byte_read(0x2008); /第5个打铃的时间shi5 = byte_read(0x2009);fen6 = byte_read(0x2010); /第6个打铃的时间shi6 = byte_read(0x2011);fen7 = byte_read(0x2012); /第7个打铃的时间shi7 = byte_read(0x2013);fen8 = byte_read(0x2014); /第8个打铃的时间shi8 = byte_read(0x2015);fen9 = byte_read(0x2016); /第9个打铃的时间shi9 = byte_read(0x2017);fe
43、n10 = byte_read(0x2018); /第10个打铃的时间shi10 = byte_read(0x2019);fen20 = byte_read(0x2038); /第20个打铃的时间shi20 = byte_read(0x2039);fen21 = byte_read(0x2040); /第21个打铃的时间shi21 = byte_read(0x2041);fen22 = byte_read(0x2042); /第22个打铃的时间shi22 = byte_read(0x2043);fen23 = byte_read(0x2044); /第23个打铃的时间shi23 = byte_
44、read(0x2045);fen24 = byte_read(0x2046); /第24个打铃的时间shi24 = byte_read(0x2047);fen25 = byte_read(0x2048); /第25个打铃的时间shi25 = byte_read(0x2049);fen26 = byte_read(0x2050); /第26个打铃的时间shi26 = byte_read(0x2051);a_a = byte_read(0x2058);void init_eeprom()read_eeprom();/先读a_a = 25;write_eeprom(); /保存数据/控制数码管闪烁的
45、函数28常熟理工学院毕业设计void smg_s(uchar dat)B = dat;if(dat0 = 1)dis_smg0 = 0xff;if(dat1 = 1)dis_smg1 = 0xff;if(dat2 = 1)dis_smg2 = 0xff;if(dat3 = 1)dis_smg3 = 0xff;if(dat4 = 1)dis_smg4 = 0xff;if(dat5 = 1)dis_smg5 = 0xff;if(dat6 = 1)dis_smg6 = 0xff;if(dat7 = 1)dis_smg7 = 0xff;常熟理工学院毕业设计/*延时函数*/*1ms延时函数*/*独立按键
46、程序*/else/*设置函数*/ flag_s = 0x03;if(menu_1 = 3) /设置星期闹钟的开和关flag_s = 0x03;if(menu_1 = 4)if(menu_1 % 2 = 0) / 设置分flag_s = 0x03;else / 设置时flag_s = 0x18;if(menu_1 55) /回到正常显示menu_1 = 0;flag_s = 0;if(key_can = 2)/选择键flag_200ms = 1;flag_s = 0xc0;if(menu_1 3) /回到正常显示menu_1 = 0;flag_s = 0;if(menu_1 = 1) /if(m
47、enu_2 = 1) /设置秒if(key_can = 3)/加set_ds1302time(1,&miao,0x60);if(key_can = 4)/减set_ds1302time(0,&miao,0x60);if(menu_2 = 2) /设置分if(key_can = 3)/加set_ds1302time(1,&fen,0x60);if(key_can = 4)/减set_ds1302time(0,&fen,0x60);if(menu_2 = 3) /设置时if(key_can = 3)/加set_ds1302time(1,&shi,0x24);if(key_can = 4)/减set
48、_ds1302time(0,&shi,0x24);write_time(); /把时间写进去if(menu_1 = 2) / 设置年月日if(menu_2 = 1) /设置日if(key_can = 3)/加set_ds1302time(1,&ri,0x32);if(key_can = 4)/减set_ds1302time(0,&ri,0x32);if(menu_2 = 2) /设置月if(key_can = 3)/加set_ds1302time(1,&yue,0x13);if(key_can = 4)/减set_ds1302time(0,&yue,0x13);if(menu_2 = 3) /
49、设置时if(key_can = 3)/年set_ds1302time(1,&nian,0x99);if(key_can = 4)/减set_ds1302time(0,&nian,0x99);write_time(); /把时间写进去if(menu_1 = 3) / 设置星期if(menu_2 = 1) /设置星期if(key_can = 3)/加set_ds1302time(1,&week,0x8);if(key_can = 4)/减set_ds1302time(1,&week,0x8);write_time(); /把时间写进去if(menu_1 = 4) | (menu_1 = 5) /设
50、置第1打铃时间if(menu_1 = 4)if(key_can = 3)/加set_ds1302time(1,&fen1,0x60);if(key_can = 4)/减set_ds1302time(0,&fen1,0x60);if(menu_1 = 5)if(key_can = 3)/加set_ds1302time(1,&shi1,0x24);if(key_can = 4)/减set_ds1302time(0,&shi1,0x24);if(menu_1 = 6) | (menu_1 = 7) /设置第2打铃时间if(menu_1 = 6)if(key_can = 3)/加set_ds1302time(1,&fen2,0x60);if(key_can = 4)/减set_ds1302time(0,&fen2,0x60);if(menu_1 = 7)if(key_can = 3)/加set_ds1302time(1,&shi2,0x24);if(key_can = 4)/减set_ds1302time(0,&shi2,0x24);if(menu_1 = 8) /设置第3打铃时间if(key_can = 3)/加s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度建筑材料采购合同模板
- 2025年租赁合同主体变更的具体规定
- 2025电视台广告合作合同模板
- 2025深圳室内装修合同
- 2025没有合同被辞退应该如何计算补偿
- 关于房屋买卖合同
- 2025年签订“租赁合同”应注意哪些事项综合指南
- 药材买卖合同范文买卖
- 会议场所租赁合同样本2025
- 技能培训专题飞机场案例分析2
- GB/T 26354-2025旅游信息咨询服务
- 2025年国家国防科技工业局军工项目审核中心招聘笔试参考题库附带答案详解
- GA/T 966-2011物证的封装要求
- 全套课件公共部门人力资源管理
- 科学素养大赛题库及答案(500题)
- 2023年绥滨县社区工作者招聘考试笔试题库及答案解析
- 双心治疗课件
- 广东省肇庆市各县区乡镇行政村村庄村名明细及行政区划代码
- 缓和医疗精品课件
- 儿童功能性独立评定量表(WeeFIM)
- 工程(产品)交付后顾客满意度调查表
评论
0/150
提交评论