打铃情况设计内容时间起床6:30早自习7:30-8:10第一节课8:20-9:00第二节课9:10-9:50第三节课10:00-10:40第四节课10:50-11:30第五节课13:30-14:10第六节课14:20-15:00第七节课15:20-16:00第八节课16:10-16:50晚自习19:00-20:30熄灯22:30程序如下,请勿模仿,仅供参考,笔者的劳动成果,请勿窃取,请您付出相应的奖赏。说明:实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示)。到预定时问启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7。打铃方式分起床、熄幻铃和上、下课铃两种。系统使用4只按键,3只按键用来调整时间,另一只为闹钟按钮即定时扫铃。键SET_KFY:PI.0;通过选择键选择调整位,选中位闪烁。增加键ADD_KEY:PI.1;按一次使选中位加1。减少键DEC_KEY:PI.2;按一次使选中位位。1如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁。如果选中位是秒,则按增加键或减少键都是将秒清零。源程序清单#includereg52.h//调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义变量范围0~255#defineuintunsignedint//无符号整型宏定义变量范围0~65535#includeeeprom52.hbitflag_200ms;bitflag_100ms;sbitbeep=P3^7;//蜂鸣器定义bitflag_beep_en;uintclock_value;//用作闹钟用的ucharmenu_1,menu_2;ucharkey_time,flag_value;//用做连加的中间变量bitkey_500ms;//#includekey.h#includeds1302.h#includelcd1602.hucharfen1=0x30,shi1=0x06;//第1个打铃的时间起床ucharfen2=0x30,shi2=0x07;//第2个打铃的时间早自习ucharfen3=0x10,shi3=0x08;//第3个打铃的时间早自习下ucharfen4=0x20,shi4=0x08;//第4个打铃的时间第一节上课ucharfen5=0x00,shi5=0x09;//第5个打铃的时间第一节下课ucharfen6=0x10,shi6=0x09;//第6个打铃的时间第二节上课ucharfen7=0x50,shi7=0x09;//第7个打铃的时间第二节下课ucharfen8=0x00,shi8=0x10;//第8个打铃的时间第三节上课ucharfen9=0x40,shi9=0x10;//第9个打铃的时间第三节下课ucharfen10=0x50,shi10=0x10;//第10个打铃的时间第四节上课ucharfen11=0x30,shi11=0x11;//第11个打铃的时间第四节下课ucharfen12=0x30,shi12=0x13;//第12个打铃的时间第五节上课ucharfen13=0x10,shi13=0x14;//第13个打铃的时间第五节下课ucharfen14=0x20,shi14=0x14;//第14个打铃的时间第六节上课ucharfen15=0x00,shi15=0x15;//第15个打铃的时间第六节下课ucharfen16=0x20,shi16=0x15;//第16个打铃的时间第七节上课ucharfen17=0x00,shi17=0x16;//第17个打铃的时间第七节下课ucharfen18=0x10,shi18=0x16;//第18个打铃的时间第八节上课ucharfen19=0x50,shi19=0x16;//第19个打铃的时间第八节下课ucharfen20=0x00,shi20=0x19;//第20个打铃的时间晚自习上课ucharfen21=0x30,shi21=0x20;//第21个打铃的时间晚自习下课ucharfen22=0x30,shi22=0x22;//第22个打铃的时间熄灯ucharfen23=0x00,shi23=0x00;//第23个打铃的时间ucharfen24=0x00,shi24=0x00;//第24个打铃的时间ucharfen25=0x00,shi25=0x00;//第25个打铃的时间ucharfen26=0x00,shi26=0x00;//第26个打铃的时间/******************把数据保存到单片机内部eeprom中******************/voidwrite_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(0x2006,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(0x2016,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);byte_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(0x2035,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个打铃的时间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个打铃的时间byte_write(0x2051,shi26);byte_write(0x2058,a_a);}/******************把数据从单片机内部eeprom中读出来*****************/voidread_eeprom(){fen1=byte_read(0x2000);//第1个打铃的时间shi1=byte_read(0x2001);fen2=byte_read(0x2002);//第2个打铃的时间shi2=byte_read(0x2003);fen3=byte_read(0x2004);//第3个打铃的时间shi3=byte_read(0x2005);fen4=byte_read(0x2006);//第4个打铃的时间shi4=byte_read(0x2007);fen5=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);fen10=byte_read(0x2018);//第10个打铃的时间shi10=byte_read(0x2019);fen11=byte_read(0x2020);//第11个打铃的时间shi11=byte_read(0x2021);fen12=byte_read(0x2022);//第12个打铃的时间shi12=byte_read(0x2023);fen13=byte_read(0x2024);//第13个打铃的时间shi13=byte_read(0x2025);fen14=byte_read(0x2026);//第14个打铃的时间shi14=byte_read(0x2027);fen15=byte_read(0x2028);//第15个打铃的时间shi15=byte_read(0x2029);fen16=byte_read(0x2030);//第16个打铃的时间shi16=byte_read(0x2031);fen17=byte_read(0x2032);//第17个打铃的时间shi17=byte_read(0x2033);fen18=byte_read(0x2034);//第18个打铃的时间shi18=byte_read(0x2035);fen19=byte_read(0x2036);//第19个打铃的时间shi19=byte_read(0x2037);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_read(0x2045);fen24=byte_read(0x2046);//第24