时钟时间相区分。闹铃时间可重新设置。
(3)程序执行后工作指示灯LED闪烁,表示时钟工作为时钟显示模式.LCD显示的初始时间为“23:58”。按下K2,闪烁显示的“00:00”为闹铃的时间,单击K3又返回时钟显示模式。时钟从“23:58”开始计时,定时时间“00:00”到时,继电器开关接通,控制电器的开启,且可发出声响(可控)。
时钟与闹铃时问的设置可通过4个功能按键Kl~K4实现,具体说明如下。
(1)时钟时间的设置:首先单击Kl进入时钟设置模式。此时每单击一下Kl,则小时增l,单击一下K2,则分钟增1,再单击K3则设置完成,返回时钟显示模式。此时小时和分钟均已发生变化。 (2)闹铃的时间设置:首先单击,K3进入闹铃的设置模式。此时每单击一下Kl,则小时增1,单击一下K2,则分钟增l,最后单击.K3则设置完成,返回闹铃显示模式。此时闹铃的小时和分钟均已发生变化。
(3) K4的功能:闹钟更换。
(4) K2单独的功能:显示闹铃时间。
6
3.1系统电路图实际图 LCD1LM016LVDDvddG1NDVSSvd2dVDD3VEERSRWErs4rw5e6GND7891011121314D0D1D2D3D4D5D6D7VCCC130pFU1X119XTAL1CRYSTAL18XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314e15rs161712345678RN1161514131211109RX8VCCC230pFC330pF9RSTD2LED-REDR11k2930vdd31PSENALEEAR3300BUZ1R215BUZZERSW-SPST12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SW1 3.2详细设计 程序部分主要采用了程序结构的模块化设计,避免了一些函数的不必要的重复书写,使程序变得单间易懂。程序在执行时,主程序要须通过调用子函数就可完成相应的功能 。主程序流程图如下 7 ND LM016LLCD13.3 1602LCD液晶显示器 G1NDVSSvd2dVDD3VEErs4rw5e6RSRWE8 7891011121314D0D1D2D3D4D5D6D7 4 问题及心得:
问题:由于准备的不够充分对于灯光的控制并没有完美实现。 心得:通过自己的不懈努力,我终于完成了设计的任务要求。功能上基本达标:时钟的显示,日期显示,调时功能、校时功能、上课下课功能。。在本次设计的过程中,我发现很多的问题,虽然以前没有做过这样的设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,比如写一个程序看其功能很少认为编写程序简单,但到编程的时候才发现一些细微的知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。
从这次的课程设计中,我们真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,,程序只有在经常的练习的过程中才能提高,我想这就是我在这次课程设计中的最大收获。
9
5具体程序图:#include
#define s_site_y 0 //y为所在列 #define m_site_x 3
#define m_site_y 0 //y为所在列 #define h_site_x 0
#define h_site_y 0 //y为所在列 static uchar hour,min,scond; //计时时间 static uchar s_hour,s_min,s_scond; //上课时间设置 static uchar s_hour2,s_min2,s_scond2; //下课时间设置 static uchar set_ok; //设置标志位
10