时钟可调时间可报时程序
单片机电子闹钟程序亲自编写-可用
单片机电子闹钟程序(亲自编写-可用)————————————————————————————————作者:————————————————————————————————日期:学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。
其中正常时间显示和闹钟时间显示可用一个开关来调整。
芯片选择STC89C52程序:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//定义显示段码uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};uchar codebbtime[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar clock[]={0,0,0,0};uchar clock1[]={12,30,0};uchar weikong[6];uchar bbduration=4;uchar lingtime=9;//学校打铃时间组uchar shangwu1[]={8,30};uchar shangwu2[]={10,0};uchar shangwu3[]={10,20};uchar shangwu4[]={11,50};uchar xiawu1[]={13,30};uchar xiawu2[]={15,00};uchar xiawu3[]={15,15};uchar xiawu4[]={16,45};//按键定义sbit mode=P1^7;sbit sec_clr=P1^0;sbit min_set_add=P1^3;sbit min_set_sub=P1^4;sbit hour_set_add=P1^1;sbit hour_set_sub=P1^2;sbit bb_set_add=P1^5;sbit bb_set_sub=P1^6;sbit speaker=P2^6;//延时函数void delay(unsigned int t){while(t--);//时钟进位函数void clockjinwei(){clock[0]++;if(clock[0]==20){clock[1]++;clock[0]=0;if(clock[1]==60){clock[2]++;clock[1]=0;if(clock[2]==60){clock[3]++;clock[2]=0;if(clock[3]==24)clock[3]=0;}}}}//定时器0中断服务函数void timer0(void) interrupt 1 using 1 {TMOD=0x01;TH0=0x3c;TL0=0xb0;clockjinwei();}//时钟分位显示函数void fenwei(){weikong[0]=clock[3]/10;weikong[1]=clock[3]%10;weikong[2]=clock[2]/10;weikong[3]=clock[2]%10;weikong[4]=clock[1]/10;weikong[5]=clock[1]%10;}//闹钟分位显示函数void naofen(){weikong[0]=clock1[0]/10;weikong[1]=clock1[0]%10;weikong[2]=clock1[1]/10;weikong[3]=clock1[1]%10;weikong[4]=clock1[2]/10;weikong[5]=clock1[2]%10; }//闹钟定时显示函数void naozhongdisplay(){uchar z,s;uchar x=0x01;naofen();for(z=0;z<6;z++){P2=0;P0=table[weikong[z]];P2=x;x=_crol_(x,1);for(s=0;s<255;s++);}}//时钟显示函数void display(){uchar i,j;uchar x=0x01;fenwei();for(i=0;i<6;i++){P2=0;P0=table[weikong[i]];P2=x;x=_crol_(x,1);for(j=0;j<255;j++);}}//总显示函数void zhongxian(){if(mode==1)delay(100);if(mode==1)display();if(mode==0)delay(100);if(mode==0)naozhongdisplay();}//按键处理程序void key_set(){zhongxian();P1=0xff;if(min_set_add==0){delay(100);if(min_set_add==0){if(mode==1){clock[2]++;if(clock[2]==60){clock[2]=0;}while(min_set_add==0)zhongxian();}}if(mode==0){clock1[1]++;if(clock1[1]==60){clock1[1]=0;}while(min_set_add==0)zhongxian();}}//if(min_set_sub==0){delay(100);if(min_set_sub==0){if(mode==1){clock[2]--;if(clock[2]==0)clock[2]=59;}while(min_set_sub==0)zhongxian();if(mode==0){clock1[1]--;if(clock1[1]==0)clock1[1]=59;}while(min_set_sub==0)zhongxian();}}//if(hour_set_add==0){delay(100);if(hour_set_add==0){if(mode==1){clock[3]++;if(clock[3]==24){clock[3]=0;}while(hour_set_add==0)zhongxian();}if(mode==0){clock1[0]++;if(clock1[0]==24){clock1[0]=0;}while(hour_set_add==0)zhongxian();}}}//if(hour_set_sub==0){delay(100);if(hour_set_sub==0){if(mode==1){clock[3]--;if(clock[3]==0)clock[3]=23;}while(hour_set_sub==0)zhongxian();if(mode==0){clock1[0]--;if(clock1[0]==0)clock1[0]=23;}while(hour_set_sub==0)zhongxian();}}//if(sec_clr==0){delay(100);if(sec_clr==0){clock[1]=0;}while(sec_clr==0)zhongxian();}}//闹钟响铃函数void bb(){if(clock[1]<=bbduration){speaker=1;delay(100);speaker=0;}else speaker=0;}//打铃函数void daling(){if(clock[1]<=lingtime){speaker=1;delay(100);speaker=0;}else speaker=0;}//时间比较函数void bijiao(){if(clock[3]==shangwu1[0]){if(clock[2]==shangwu1[1])daling();}if(clock[3]==shangwu2[0]){if(clock[2]==shangwu2[1])daling();}if(clock[3]==shangwu3[0]){if(clock[2]==shangwu3[1])daling();}if(clock[3]==shangwu4[0]){if(clock[2]==shangwu4[1])daling();}if(clock[3]==xiawu1[0]){if(clock[2]==xiawu1[1])daling();}if(clock[3]==xiawu2[0]){if(clock[2]==xiawu2[1])daling();}if(clock[3]==xiawu3[0]){if(clock[2]==xiawu3[1])daling();}if(clock[3]==xiawu4[0]){if(clock[2]==xiawu4[1])daling();}}//闹钟比较void naobijiao(){if(clock[3]==clock1[0]){if(clock[2]==clock1[1]||clock[2]==clock1[1]+1||clock[2]==clock1[1]+2) bb();}}//响铃时长显示函数void bbtimeshow(){P3=bbtime[bbduration];if(bbduration>15)bbduration=0;}//响铃按键处理函数void bbtime_set(){bbtimeshow();if(bb_set_add==0){delay(100);if(bb_set_add==0)bbduration++;while(bb_set_add==0)bbtimeshow();}if(bb_set_sub==0){delay(100);if(bb_set_sub==0)bbduration--;while(bb_set_sub==0)bbtimeshow();}}//主程序void main(){EA=1;ET0=1;TR0=1;while(1){key_set();bijiao();bbtime_set();naobijiao();}}电路图:分四部分显示:如果在学习这个程序过程中有什么问题,可以发邮件到询问。
自动报时数字钟-方案二
电子课程设计——自动报时数字钟学院:电子信息工程学院班级:自动化051501姓名:蔡燕学号:0102指导老师:闫晓梅2008年1月目录第一部分设计任务与要求---------------------------------------------1 第二部分总体框图------------------------------------------------------1 第三部分选择器件------------------------------------------------------73.1 74LS161-----------------------------------------------------------73.2 74LS160-----------------------------------------------------------93.3 74LS00------------------------------------------------------------113.4四2输入与门74LS08-----------------------------------------113.5 555定时器-------------------------------------------------------133.6七段数码显示管------------------------------------------------133.7开关功能---------------------------------------------------------143.8信号发生器------------------------------------------------------14 第四部分功能模块------------------------------------------------------144.1 时分秒显示电路----------------------------------------------------144.2 555定时器产生频率电路------------------------------------------18 4.3 整点报时电路-------------------------------------------------------20第五部分总体设计电路图---------------------------------------------21 5.1整体原理电路及注释-----------------------------------------------21 5.2 实验箱上操作现象及故障分析----------------------------------22 5.3课程设计心得体会--------------------------------------------------22参考文献-----------------------------------------------------------------23自动报时数字钟一.设计任务与要求1)课程设计的任务1.能进行正常的时分秒功能2.具有校时功能3.具有整点报时功能且12小时循环一次2)课程设计的基本要求通过课程设计各环节的实践,应达到如下要求:1.初步掌握数字逻辑电路分析和设计的基本方法。
电子闹钟报时工作原理
电子闹钟报时工作原理电子闹钟是我们日常生活中常见的一种时间显示设备,其不仅可以显示具体的时间,还可以通过报时功能提醒人们按时完成各项活动。
那么,电子闹钟是如何实现报时功能的呢?本文将介绍电子闹钟的工作原理。
一、电子闹钟的组成部分电子闹钟由以下几个主要组成部分构成:1. 时钟芯片:负责计时和显示时间的核心芯片。
2. 显示器:通常采用液晶显示器或LED数码管,用于显示具体时间。
3. 报警装置:包括蜂鸣器或者无线传输模块,用于发出报时提醒信号。
4. 按键:用于设置、调整时间以及其他功能的操作。
5. 供电模块:提供电源给电子闹钟。
二、电子闹钟的工作原理电子闹钟的工作原理可以分为以下几个步骤:1. 供电:将电子闹钟插入电源插座或装入电池后,供电模块将提供电源给电子闹钟,使其开始工作。
2. 计时:时钟芯片根据供电信号开始计时,并实时更新时间。
3. 显示时间:时钟芯片将实时计算得到的时间数据传输给显示器,显示器即可展示具体的时间信息。
4. 报时功能:当设定的闹钟时间到达时,时钟芯片将触发报警装置发出提醒信号。
蜂鸣器或者无线传输模块会根据设定进行声音或者无线信号的输出,提醒人们按时进行相应的活动。
5. 操作和设置:通过按键可以对电子闹钟的时间进行调整、设置报时时间以及其他功能,以满足个人需求。
三、电子闹钟的优势相比于传统机械闹钟,电子闹钟具有以下优势:1. 精准度高:电子闹钟采用时钟芯片进行计时,准确度更高,不易受外界环境影响。
2. 显示清晰:多数电子闹钟采用液晶显示器或LED数码管,显示效果清晰可见。
3. 功能丰富:电子闹钟可以具备显示日期、天气预报、温度等功能,满足用户对于时间信息的需求。
4. 操作简便:通过按键进行设置和调整,操作简单便捷。
5. 体积小巧:电子闹钟体积小巧,易于携带和放置。
总结:电子闹钟通过时钟芯片的计时功能和报警装置的触发,实现了精确报时的功能。
相比传统机械闹钟,电子闹钟具有更高的准确度、清晰的显示效果和更丰富的功能。
具有整点报时功能的可校时数字钟
第一章数字钟的工作原理第一节介绍20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品跟新换代的节奏也越来越快。
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,节省了电能。
因此在许多电子设备中被广泛使用。
数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。
通过设计加深对刚刚学习了的数字电子技术的认识。
本次设计以数字电子为主,分别对一秒信号源、秒计时显示、分计时显示、小时计时显示、整点报时及校时电路进行设计,然后将它们组合来完成时、分、秒的显示并且具有整点报时和走时校时的功能。
并通过本场设计加深对数字电子技术的理解以及更熟练是有计数器、触发起和各种逻辑门电路的能力。
电路主要使用集成计数器,例如74LS160、CD4518、译码集成电路,例如CD4511、LED数码管及各种门电路和基本的触发器等,电路使用5号电池供电,很合适在日常生活中使用。
第二节设计方案论证方案一:采用小规模集成电路实现采用集成逻辑电路设计具有能实现,时分秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。
方案二:EDA技术实现采用EDA作为主控制外围电路进行电压,时钟控制键盘和LED控制,此方案逻辑电路复杂,且灵活性较低,不利于各种功能的扩展,在对电路进行检测比较困难。
方案三:单片机编程实现在按键较少的情况下,采用独立式4个按键,经软件设计指定的I/O 口,送出逻辑电平,控制数码管显示,根据数字电子钟的设计要求与原理以及特性,本系统采用单片机AT89C52串口输出的形式来设计电路,使功能及效果更完美。
电子钟怎么调时间
电子钟怎么调时间
这一般都有说明书的吧……没有说明书只能猜,ON/OFF的应该是闹钟,ON为开启,OFF为关闭。
从左到右5个按钮的中文分别为下、上、设置、计时、模式,下和上比较好理解,就是用来调时间和日期的,而这两个按钮应该在屏幕中间对应的数字一闪一闪时才有用。
1、先按一下“调整”按钮,数字开始闪动。
2、想调哪一个数就多按几次,按到的这个数就会闪动。
3、再用“上调”、或者“下调”来调整。
4、在正常的显示下,按一下“闹钟”按钮,会在“开”和“关”之间转换。
按一下“喇叭”按钮,会在“开”和“关”的功能切换。
最后按复位。
扩展资料
1、电子钟的时钟功能:具有可选的24h(小时)或12h(小时)的计时方式,显示时、分、秒;具有快速校准时、分、秒的功能;能设置起闹时刻、响闹时间为1min(分钟),超过1min(分钟)自动停止;具有人工止闹功能,止闹后不再重新操作,将不再发生起闹;具有整点报时功能。
随着科技的进步与发达,部分电子钟还带投影功能,同时衍生为许多其他产品的辅助功能。
2、与传统的机械钟相比,电子钟具有更突出的优点。
由于电子钟采用数字集成电路的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,电子钟用于定时自动报警、按时自动打铃、时间程序自动控制、定时广播及自动控制等各个领域。
报时表使用说明书
报时表使用说明书注:型号不同调校方法相同显示符号的作用/按键位置:整点报时开指示PM:下午时间状态B1∶MODEB3:HOUR :闹铃开指示AL:闹铃设定指示B2:MINUTEB4:TALKING1、模式转换按动B1键时按如下顺序循环改变模式:2、设定时间在正常时间模式下,按B1(MODE )键一次,进入时间设定模式,同时显示数字闪烁,按B2(MlNUTE )、B3(HOUR )键可分别设定分钟、小时到正确时间。
3、设定闹铃时间在正常时间模式下,按B1(MODE )键二次,进入闹铃时间设定模式,“AL ”符号显示,同时显示数字闪烁,按B2(MINUTE )、B3(HOUR )键可分别设定分钟、小时到所需的闹铃时间。
4、选择闹铃音及开/关闹铃在正常时间模式下按B3(HOUR )键,可设定闹铃声与闹铃开启或关闭。
设定为有闹铃声时,播放闹铃声且LCD 会显示闹铃时间,闹铃功能为开启,闹铃音播放完后恢复显示正常时间。
设定无闹铃声时闹铃功能为关闭(无闹铃符号)播报“Di ”。
5、打开/关闭整点报时功能在正常时间模式下,按B2(MlNUTE )键,可打开或关闭整点报时功能。
当整点报时功能启动时,“”符号显示,到整点自动报时,当关闭整点报时功能时,“”符号消失。
6、贪睡功能使用在闹铃响闹时按B4(TALKING )键可中止响闹并启动贪睡功能,贪睡功能启动后间隔5分钟再次响闹。
7、播报当前时间在正常时间模式下,按一下B4(TALKING )键可播报当前时间。
电池的更换当显示字体模糊、消失、声音变小或功能操作不正常时,需更换新电池。
保养/注意事项1.当手表无WATER RESISTANT 标记时为非防水型手表,谨防受潮;当手表标记WATER RESISTANT 时,能承受溅水或雨水,但不能掉入水中;当手表标记30M WATER RESISTANT (3BAR )时,能用于游泳、洗车,但不能在水中操作按键;当手表标记50M WATER RESISTANT (5BAR )时,能用于游泳、泳池边跳水,但不能在水中操作按键。
多功能时钟流程图
多功能时钟流程图一. 功能确认● 时钟功能:1. 时钟显示小时和分钟2. 用户可以通过按键调整时钟的时间3. 无论当前时钟是否在前台显示,时钟始终是运行的。
● 定时闹铃功能:1. 用户可以通过按键设置闹铃时间(小时和分钟),设置完成后可以按确定键退出设置。
2. 当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟。
3. 用户可以设置两个闹铃。
● 秒表功能:1. 用户可以通过按键进入秒表功能,也可以退出秒表状态。
2. 秒表高2位显示秒,低2位显示百分之一秒。
3. 可以通过按键暂停、(继续)运行秒表,可以通过按键对秒表清零。
二. 状态分析及模块分割根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间可以通过按键来切换,且各个功能内部仍需要使用按键来处理,故可以考虑将系统定义为三个状态(statu s ):时钟状态、设置定时状态、秒表状态。
显然,同一个按键在不同状态下的功能是不一样的。
这样,在某种状态下,按下某个按键,代表唯一确定的含义。
这种处理方法可以称为“状态—按键”法。
这样我们可以把程序对应地分成以下三个任务模块。
这个流程就可以作为主流程(main ()函数),当然,A 、B 、C 三框内部的流程仍(处理时钟状态下的所有事务)(处理设置闹铃状态下的所有事务)(处理秒表状态下的所有事务)有待于细化。
三.详细设计A框内部要处理的事务见第一部分:功能确认。
在此,为了完成时钟调整功能,我们可以定义K ey_2为小时调整键,Key_3为分钟调整键,每次按下键,小时数或分钟数加1。
当然,当用户没有按键的时候,我们还得经常保持显示屏上的时间刷新。
A框:时钟状态下的处理流程:B框要处理的功能是设置定时闹铃的事务,这里需要预设闹铃时间,同样可以定义Key_2为小时预设键,Key_3为分钟预设键,而Key_1则负责状态切换,当我们预设好时间之后,按下Key_1,就算完成了闹铃预设,让系统离开当前状态,转到秒表状态上去。
51单片机设置的电子闹钟(可调时间和闹钟)
#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0 // 数码管的段选#define LIGHT P1 // 时分秒位的指示灯#define WS P2 // 数码管的位选sbit key1=P3^0; // 时间暂停/开始sbit key2=P3^1; // 时间/闹钟设置sbit key3=P3^2; // 增加sbit key4=P3^3; // 减少sbit alarm=P3^6; // 闹铃uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9uchar tab_dp[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 0.-9.(带小数点)uchar data1[]={0,0,0,0,0,0};uchar data2[]={0,0,0,0,0,0};uint t,k,kk,k1,flag;uint bbh,bbm,bbs,bbh1,bbm1,bbs1;uint sec,min,hour,sec1,min1,hour1; // 定义秒,分,时void init();void display();void display_bb();void delay( uint );void keyscan();void main(){init();while(1){keyscan();if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if((bbh==hour)&&(bbm==min)&&data1[4]==0&&data1[5]==5) // 5s报时{alarm=~alarm;delay(1);}if((bbs==sec)&&(bbm==min)&&(bbh==hour)) // 可调报时{alarm=~alarm;delay(1);}}}void init(){WS=LIGHT=flag=0;sec=min=hour=0; // 将0赋给时分秒TMOD=0x01; // 方式1 P129(见课本)TH0=0x3c; // 65536-50000=15536=0x3cb0(50ms) P128(见课本)TL0=0xb0;EA=1; // 开总中断P161(见课本)TR0=1; // 定时/计数器0开启ET0=1; // 定时器/计数器0溢出中断启动P161(见课本)}void delay( unsigned int t) // 延时函数{unsigned int i;while(t--)for(i=0;i<125;i++);}void display() // 显示时间函数{if(TF0==1) // 定时器/计数器溢出P130(见课本){TF0=0; // 清中断标志位t++;if(t==20) // (50ms*20=1s){t=0;sec++; // 秒加1if(sec==60) // 秒为60,则清零,分加1{sec=0;min++;}if(min==60) // 分为60,则清零,时加1{min=0;hour++;}if(hour==24)// 时为24,则清零{hour=0;}}}data1[5]=sec%10;data1[4]=sec/10;data1[3]=min%10;data1[2]=min/10;data1[1]=hour%10;data1[0]=hour/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data1[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data1[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data1[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data1[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data1[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data1[0]];delay(1);}void display_bb() // 显示闹钟函数{data2[5]=bbs%10;data2[4]=bbs/10;data2[3]=bbm%10;data2[2]=bbm/10;data2[1]=bbh%10;data2[0]=bbh/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data2[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data2[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data2[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data2[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data2[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data2[0]];delay(1);}void keyscan() // 键盘扫描{if(key1==0) // 暂停/开始{++kk;while(!key1){display();if(kk==1){TR0=0;if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if(key2==0) // 模式选择(调节时间/闹钟){k1++;while(!key2){if(k1==1) // 第1次按下{sec1=sec; // 保存秒的数值sec=88; // 显示88,表示可以调节秒的数值了display(); // 显示88sec=sec1; // 恢复前一刻秒的数值}if(k1==2){min1=min;min=88;display();delay(1);min=min1;}if(k1==3){hour1=hour;hour=88;delay(1);hour=hour1;}if(k1==4){sec1=bbs; // 保存秒的数值bbs=66; // 显示66,表示可以调节秒的数值了display_bb(); // 显示66bbs=sec1; // 恢复前一刻秒的数值}if(k1==5){min1=bbm;bbm=66;display_bb();delay(10);bbm=min1;}if(k1==6){hour1=bbh;bbh=66;display_bb();delay(10);bbh=hour1;}if(k1==7){k1=0;display();}}}if(key3==0) // 时间/闹钟增加设置{while(!key3){if(k1==1){sec++;// 秒加1if(sec==60)sec=0;display();}if(k1==2){min++;delay(60);if(min==60)min=0;display();}if(k1==3){hour++;delay(60);if(hour==24)hour=0;display();}if(k1==4){bbs++; // 秒加1delay(60);if(bbs==60)bbs=0;display_bb();}if(k1==5){bbm++;delay(60);if(bbm==60)bbm=0;display_bb();}if(k1==6){bbh++;delay(60);if(bbh==24)bbh=0;display_bb();if(k1==7){k1=0;display();}}}if(key4==0) // 时间/闹钟减少设置{while(!key4){if(k1==1){sec--; // 秒加1delay(60);if(sec==0)sec=60;display();}if(k1==2){min--;delay(60);if(min==0)min=60;display();}if(k1==3){hour--;delay(60);if(hour==0)hour=24;display();}if(k1==4){bbs--; // 秒减1delay(60);if(bbs==0)bbs=60;display_bb();if(k1==5){bbm--;delay(60);if(bbm==0)bbm=60;display_bb();}if(k1==6){bbh--;delay(60);if(bbh==0)bbh=24;display_bb();}if(k1==7){k1=0;display();}}}}}if(kk==2){kk=0;k1=0;TR0=1;}}}。
数字电子钟设计报告(显示、调整、报时、万年历、闹钟、秒表)
目录一、引言 (2)二、方案论证选择 (3)2.1设计要求 (3)1.基本要求 (3)2.发挥部分 (3)2.2系统框图 (3)分钟+调整 (3)秒钟 (3)时钟+调整 (3)秒表 (3)闹钟功能 (3)定时报闹 (3)万年历功能 (3)三、电路仿真与设计 (4)3.1核心芯片及芯片管脚图 (4)3.2时、分计数电路模块设计 (4)3.3切换电路模块设计 (5)3.4调整电路模块设计 (6)(1)方案一:利用74125的三态。
(6)(2)方案二:利用74162的置数端(LOAD),置数调整。
(7)3.5整点报时电路模块设计 (8)3.6秒表电路模块设计 (9)3.6定时报闹电路模块设计 (11)3.7万年历电路模块设计 (12)四、遇到的问题.......................................................................... 错误!未定义书签。
五、心得体会.............................................................................. 错误!未定义书签。
一、引言电子钟亦称数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。
相对于其他时钟类型,它的特点可归结为“两强一弱”:比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显时较为单调。
数字钟的核心即数字电子技术课程中有关时序逻辑电路、组合逻辑电路的内容。
这些也是我们学电子的学生应该掌握的最基本知识。
通过这次试验,不仅可以加深我对数字电子技术课程的理解,也可以提高自己的动手能力以及实际问题中解决问题的能力,培养对数字电子技术的兴趣。
佳宜9905报时钟说明书
佳宜9905报时钟说明书
时间日期设置
1、按mode选定时间界面
2、长按set日期一栏的年开始闪动
3、按up调节年,选定后按set一下,月开始闪动,按up调节,选定月按一下set调日选项,设置顺序为年月日时分(注意年没有循环选项,如果调过啦,拔电池重新设置)
4、日期时间调好后,按mode回正常界面
闹钟调节
1、按mode一下选闹钟界面
2、长按set,界面闪of是闹钟关闭状态(铃铛标志不亮),按up键开启显示on(警方标志亮为闹钟开启)
3、闹钟开启后,(界面显示on,并闪烁)按set显示定时界面,调节定时法同时间设置
关闭整点报时
长按up3秒,滴声后表示已关闭,或开启
按上当长按键自动报时无法在设置项内关闭
打开后盖在芯片板上找到take的两个焊点,从开关按钮的一端将线剪断,先放开线不管,找到两个按钮连接的线,从刚才剪断的线的按钮一侧将两按钮连接的线剪断,找到take的两个焊点中靠右侧的一个焊点,把已剪断的一头播出金属丝,与留有线的按钮的左侧线
连接,注意按钮装进槽内以免接反线,接好后找到芯片板右上角Led 焊点,讲按钮右侧的线与它连接,没有焊锡可以将线播出来,钩起来扭成一股就能通电,链接好后,此时按钮,就只起到,亮灯的作用,按下按钮灯亮松开灯灭,take的左侧焊点没有用处啦,可以把线剪掉。
电子时钟使用说明
单片机电子时钟使用说明
如图所示从左至右,按键功能分别是:【调时】,【加】,【减】
主要功能包括:时间,闹钟,整点报时,温度
查看方法:
1、查看时间:
打开电源开关,即可看到时间显示
2、查看闹钟:
时间正常运行状态下,按一次【加】键,即可看到此时闹钟的时间,默认为7:00,再按一次【加】键,切换到时间显示。
3、查看温度:
时间正常运行状态下,按一次【减】键,即可看到此时的温度值,温度是实时变化的,再按一次【减】键,切换到时间显示。
调整方法:
1、调时间:
在时间运行状态下,按下【调时】键,此时,时间暂停,同时小时位闪烁显示,此时再按【加】,【减】键可以对小时进行加减调整,再按一下【调时】键,分钟位闪烁显示,
此时再按【加】,【减】键可以对分钟进行加减调整。
2、调闹钟:
在时间运行状态下,按下【加】键,此时,显示切换到闹钟时间,再按一次【调时】键,闹钟小时位闪烁显示,此时按【加】,【减】键可对闹钟小时进行加减调整,再按一次【调时】键,此时闹钟分钟位闪烁显示,此时按【加】,【减】键可对闹钟分钟位时行加减调整。
功能开启与关闭
1、闹钟开启与关闭
按下【调时】+【加】键,可听到蜂鸣器提示音,当蜂鸣器提示一声表示闹钟开启,两声表示闹钟关闭。
注:需要先按下【调时】键,再同时按下【减】键。
2、整点报时开启与关闭
按下【调时】+【减】键,可听到蜂鸣器提示音,当蜂鸣器提示一声表示整点报时开启,两声表示闹钟关闭。
注:需要先按下【调时】键,再同时按下【减】键。
(注:默认闹钟及整点报时都为关闭,需要开启时请按以上方法操作!!!)。
基于单片机C语言电子时钟完整版(闹钟,整点报时)
《单片机技术》课程设计说明书数字电子钟系、部:电气与信息工程学院学生姓名:指导教师:职称专业:班级:完成时间:2013-06-07摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value.Key words Electronic clock;;AT89S52;Hardware Design;Software Design目录1设计课题任务、功能要求说明及方案介绍 (1)1.1设计课题任务 (1)1.2功能要求说明 (1)1.3设计总体方案介绍及原理说明 (1)2设计课题硬件系统的设计 (2)2.1设计课题硬件系统各模块功能简要介绍 (2)2.2设计课题电路原理图、PCB图、元器件布局图 (2)2.3设计课题元器件清单 (5)3设计课题软件系统的设计 (6)3.1设计课题使用单片机资源的情况 (6)3.2设计课题软件系统各模块功能简要介绍 (6)3.3设计课题软件系统程序流程框图 (6)3.4设计课题软件系统程序清单 (10)4设计结论、仿真结果、误差分析、教学建议 (21)4.1设计课题的设计结论及使用说明 (21)4.2设计课题的仿真结果 (21)4.3设计课题的误差分析 (22)4.4设计体会 (22)4.5教学建议 (22)结束语 (23)参考文献 (24)致谢 (25)附录 (26)1 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。
手机整点报时怎么设置方法
手机整点报时怎么设置方法在日常生活中,我们经常需要用到手机报时功能,尤其是在需要掌握时间的场合,比如做饭、上班、上课等等。
因此,设置手机整点报时功能对于很多人来说是非常有必要的。
接下来,我将为大家介绍手机整点报时的设置方法。
首先,我们需要打开手机的时钟应用。
在大多数手机上,时钟应用通常是默认安装的,一般可以在主屏幕上找到。
如果找不到,也可以通过在应用商店搜索“时钟”来下载安装。
接着,我们进入时钟应用后,找到设置功能。
在不同的手机品牌和系统版本中,设置功能的位置可能会有所不同,但通常都可以在时钟应用的界面上找到。
找到设置后,我们点击进入设置界面。
在设置界面中,我们可以找到报时功能的设置选项。
一般来说,报时功能会有开关控制,我们需要将报时功能打开。
在一些手机上,还可以设置报时的时间间隔,比如每小时报时、每半小时报时等等。
根据个人需求,我们可以选择合适的时间间隔。
除了时间间隔,有些手机还可以设置报时的方式。
一般来说,报时可以选择为语音报时或者振动报时。
语音报时就是在整点的时候,手机会发出语音报时的提示,而振动报时则是通过手机的振动来进行提示。
根据个人喜好,我们可以选择合适的报时方式。
在设置完报时功能后,我们可以返回时钟应用的主界面。
此时,我们可以等待到整点的时候,手机就会根据我们设置的方式进行报时了。
比如,如果我们设置了每小时报时,并选择了语音报时,那么在每个整点的时候,手机就会发出语音报时的提示。
需要注意的是,有些手机的报时功能可能会受到系统设置的影响。
比如,如果我们将手机调成了静音模式,那么报时功能可能会失效。
因此,在设置报时功能的同时,我们也需要留意手机的系统设置,确保报时功能能够正常使用。
总的来说,设置手机整点报时功能并不复杂,只需要通过简单的操作就可以轻松实现。
希望通过本文的介绍,大家能够顺利设置好手机的整点报时功能,让手机成为我们生活中的贴心小助手。
单片机c 语言编程时钟及闹钟程序
一·功能1、计时功能,数码管显示数值从00:00:00--23:59:59循环替换,且周期时间与实际时间吻合。
2、定时闹钟功能,按下“定时”键后,可以设定所需要的任意时间,定时完成后,当到达设定时间后,蜂鸣器发声。
3、调整时间功能,根据此项功能可将时钟调至正确的时间。
4、查看定时功能,当设定完成后可以查看上次定时的时间,且能在此基础上进行重新定时。
二·按键说明设定键:按一次开始设定时间,并将设定过程显示在数码管上。
若未按此键,则其他按键无效。
设定过程中,再按一次此键,定时结束,数码管显示返回时钟。
当第一次按下设定键时,显示值为00:00:00,在此基础上调节定时时间。
第一次设定完成后,以后再按设定键,显示初值则为上次定时的时间。
确定键:在定时过程中按下此键,则保留当前设定的时间为定时时间。
若定时过程未按此键,定时无效。
向上键:按下此键,使得当前设定值在现有数值上加一,当加至满位时,当前值变为零。
向下键:按下此键,使得当前设定值在现有数值上减一,当减至零时,当前值变为满位减一。
向左键:按下此键,使得设定值移向左边一位,若已经在最左边,则移至最右边。
向右键:按下此键,使得设定值移向右边一位,若已经在最右边,则移至最左边。
三·具体操作演示(一)·定时及查看定时演示1.仿真开始。
如图:2、按键如图:3、按下设定键,开始设定时间,如图:4、如图所示,当前设定时位。
按向上键,使数值加一。
5、按下向右键,设定位移至分位。
6、按下向下键,使数字减一。
7、按确定键,确定当前设定的时间。
再按设定键,退出定时,开始时钟显示。
8、设定完成后按设定键,显示前次设定值,可在此基础上重新设定,也可直接再按设定键推出。
9、当时钟运行到设定时间时,蜂鸣器发声。
(二)·调整时间演示1、计时开始。
2、按照定时的方法开始设定时间,使其显示20:10:09。
3、调整到正确时间后,按下确定键不放,同时再按一下设定键,将目前设定值送入时钟,使其开始从设定值计时。
数电课设数字时钟+三分钟一报时
学院(系): 专业班级: 姓名: 学号:数字时钟的设计与制作一、基本功能及用途功能:数字电子钟由信号发生器、“时、分、秒”计数器、LED 数码管、校时电路、整点报时电路等功能。
用途:可以实现时分秒时钟显示,可以自己设置时间,具有音乐报时功能。
我们设计的带校时功能的电子时钟可以帮助同学们加强时间观念,更好地利用电子时钟安排好学习与生活。
二、功能框图三、设计内容⒈ 参数选择⑴数码显示管:七段数码显示器,共阴极学院(系): 专业班级: 姓名: 学号:分别显示0、1、2、3、4、5、6、7,共八个数。
⑵显示译码器:4511译码是指把给定的代码进行翻译的过程。
计数器采用的码制不同,译码电路也不同。
CC4511驱动器是与8421BCD编码计数器配合用的七段译码驱动器。
⑶计数器:74LS160是四位十进同步计数器.有四位数置数功能,清除功能,有使能功能可让计数停止或计数.有动态进位输出功能.⑷秒脉冲发生电路:采用由集成电路定时器555与RC组成的多谐振荡器。
如图1所示。
设振荡频率f=1KHz,R为可调电阻,微调R1可以调出1Hz输出555定时器的功能表学院(系): 专业班级: 姓名: 学号:⑸高频振荡发生器:数字钟在指定的时刻发出信号,或驱动音响电路“闹时”,或对某装置的电源进行接通或断开“控制”。
⒉单元电路的设计⑴计时电路:秒脉冲信号经过6级计数器,分别得到“秒”个位、十位、“分”个位、十位以及“时”个位、十位的计时。
“秒”“分”计数器为六十进制,小时为十二进制。
①六十进制秒计数器由分频器来的秒脉冲信号,首先送到“秒”计数器进行累加计数,秒计数器应完成一分钟之内秒数目的累加,并达到60秒时产生一个进位信号,所以,选用两片74LS160组成六十进制计数器,采用反馈归零的方法来实现六十进制计数。
其中,“秒”十位是六进制,“秒”个位是十进制。
如图1学院(系): 专业班级: 姓名: 学号:②六十进制分计数器由分频器来的秒脉冲信号,首先送到“秒”计数器进行累加计数,秒计数器应完成一分钟之内秒数目的累加,并达到60秒时产生一个进位信号,所以,选用两片74LS160组成六十进制计数器,采用反馈归零的方法来实现六十进制计数。
时间调节器使用方法
时间调节器使用方法
时间调节器可以通过不同的方式使用,具体方法取决于使用的设备和应用场景。
以下是一些常见的使用方法:
1. 手表:手表通常有一个旋钮或按钮可以调节时间。
通过转动旋钮或按下按钮,可以调整小时、分钟和秒的显示。
一些手表还可以调节日期和星期。
具体操作方法可以参考手表说明书。
2. 手机:手机的时间可以在设置菜单中调节。
打开手机设置,找到日期和时间选项,就可以调节当前的时间和时区。
有些手机还可以自动从网络获取时间,无需手动调节。
3. 电子钟:电子钟通常有一个或多个按钮可以调节时间。
通过按下按钮或者旋转调节钮,可以调节小时、分钟和秒的显示。
有些电子钟还可以调节闹钟和计时器。
4. 电脑:电脑的系统时间可以在时间和日期设置中调节。
打开控制面板,找到日期和时间选项,就可以调节系统时间。
有些电脑还可以自动从互联网获取时间,无需手动调节。
无论使用什么设备,调节时间都需要注意准确性和时区问题,确保时间的准确性和一致性。
手机整点报时怎么设置方法
手机整点报时怎么设置方法手机作为我们日常生活中不可或缺的工具,除了通讯、娱乐功能之外,还可以作为我们的报时工具。
在某些特定的场合,我们可能需要手机进行整点报时,那么手机整点报时怎么设置呢?接下来,我将为大家详细介绍手机整点报时的设置方法。
首先,我们需要打开手机的时钟应用。
大部分手机都会预装时钟应用,如果您的手机没有预装时钟应用,可以前往应用商店进行下载安装。
接着,我们进入时钟应用后,找到“闹钟”功能。
在“闹钟”功能中,我们可以设置手机的整点报时功能。
在“闹钟”功能中,我们可以选择“新建闹钟”来设置新的报时闹钟。
在新建闹钟界面中,我们可以设置报时的时间。
在时间设定中,我们选择整点的时间,比如每天的8点、9点、10点等等。
这样手机在设定的时间到达时,会自动进行报时提醒。
另外,在设置报时的时间之后,我们可以选择报时的铃声。
手机通常会预装一些铃声,我们可以在铃声列表中选择自己喜欢的铃声作为整点报时的提醒音。
除了选择铃声之外,有些手机还支持自定义铃声。
如果您有特殊的整点报时铃声,可以将其设置为报时铃声,这样会更加个性化和有趣。
在设置完报时时间和报时铃声之后,我们还可以选择是否开启震动提醒。
有些时候,我们可能处于会议、演讲等需要安静的场合,这时开启震动提醒会更加贴心。
另外,在一些特殊情况下,我们可能需要暂时关闭整点报时功能。
在这种情况下,我们可以选择“暂停闹钟”来暂时关闭整点报时功能,等到需要再次开启即可。
总的来说,手机整点报时的设置方法非常简单。
通过时钟应用中的闹钟功能,我们可以轻松地设置整点报时的时间和铃声,让手机成为我们生活中的贴心小助手。
希望以上内容对大家有所帮助,谢谢阅读!。
报时石英钟的操作方法
报时石英钟的操作方法
1. 用一节AA 碱性电池给时钟供电。
2. 确保时钟的秒针开始移动,然后将时钟放在平稳且震动小的表面上。
3. 从表盘的后面找到时间设定按钮或拨轮。
有些时钟可能需要您拆卸后盖才能找到设置按钮。
4. 用手指或小工具轻轻按下或转动按钮或拨轮,以便将时间设为正确的小时和分钟。
5. 记得按照AM 或PM 格式设定时间。
6. 确保时间设定好后,时钟开始自动工作。
时钟会准确地报告当前的时间,无论是小时还是分钟。
7. 记得在日常使用时保持时钟充电状态,在电池电量过低时及时更换新电池,以保持时钟准确工作。
电脑的日历闹钟软件下载推荐
电脑的日历闹钟软件下载推荐1、梦畅闹钟梦畅电脑闹钟电脑闹钟提醒起床是一款电脑闹钟软件,可设定多组定时闹铃可自定义文字、铃声、定时执行指定文件如文本文件,MP3文件、可执行程序、定时关机、整点报时等计划。
每个计划都可以设定周期、具体时间,您可以随时删除不需要的计划,可以自定义提醒内容、铃声,定时关机人性化地添加了倒计时的功能,以防您在未被告知的情况下被强制关机,整点报时提供多种方式供您选择,有响铃和文字提醒,当到达设定计划的时间时,软件有抖动并播放铃声提醒您,您随时可以退出。
软件界面美观大方,占用系统资源少,支持后台运行可设定开机启动。
2、咪咪桌面时钟咪咪桌面时钟是一款界面清爽、功能齐全的电脑桌面时钟,集电子时钟、指针时钟、日历、标准时间网络校时、天气预报等功能于一体的实用小软件。
软件的时钟功能可以为您精确报时、定时事务提醒、定时执行任务,另外还支持热键语音报时,在您按下设定的热键时,就会有语音播报当前时间。
日历功能可以快速查询日期,可显示阳历、阴历、节气、干支、节假日等,同时可以在日历表中标记日期支持阳历、阴历标记,添加备忘录,它会在您标记的日期提醒你注意。
3、吉祥万年历吉祥万年历是一款可以同时显示公历、农历、节气、国际节日、年月日时干支、生肖、时辰的电子日历,并附带一个十分轻巧的桌面时钟,而且内附有闹铃,你有事可以用它来提醒等软件,事件提醒器会提醒你重要的日期或是时间,你可以设定提醒的次数是每日、每星期、每日或是每一年;并有日程安排管理,你可以随意设置提示音及闹铃;界面配置魔术师;自定义节日:可将你喜欢的节日或你的生日定义到日历当中,使日历更具个性化;通讯录管理:将你的通讯录分类管理;条型化窗口:把电子台历缩小到如同不知不觉背单词一样的小窗口条,节省了屏幕空间。
设置非常灵活、查看非常方便!感谢您的阅读,祝您生活愉快。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/////////////////////////////////////////////////////////// 工程名称:可调时报时电子钟// 使用描述:// K1 按一次进入时间调整模块调完后,再按一次恢复时间// K2 非时间调整模式下,按键报时时间调整模块下,按键选择调整秒分时// K3 时间调整模块下,时间值增加// K4 时间调整模块下,时间值减小// 硬件连接:IOA0~IOA7接SEG IOA8~IOA15接1*8KEY// IOB0~IOB7接DIG 2*4KEY.D_dp接高电平// 维护记录:2012-8-15 增加时间调整功能,增加报时功能/////////////////////////////////////////////////////////////#include "spce061a.h"#include "Sound.h"#include "Clock_Speech.h"//定义各种宏#define P_IOA_Data (volatile unsigned int *)0x7000#define P_IOA_Buffer (volatile unsigned int *)0x7001#define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x7003#define P_IOB_Data (volatile unsigned int *)0x7005#define P_IOB_Buffer (volatile unsigned int *)0x7006#define P_IOB_Dir (volatile unsigned int *)0x7007#define P_IOB_Attrib (volatile unsigned int *)0x7008#define P_Watchdog_Clear (volatile unsigned int *)0x7012#define P_INT_Ctrl (volatile unsigned int *)0x7010#define P_INT_Clear (volatile unsigned int *)0x7011#define uint unsigned int#define KEY_ALL 0xff00int DispTbl[10] = { 0x003F,0x0006,0x005B,0x004F,0x0066,0x006D,0x007D,0x0007,0x007F,0x006F};uint sec=0,min=0,hour=0;uint Start_End_Flag=0;uint Adjust_Wei=4;uint flag=1;uint Sleep_flag=1;volatile uint Count=0;//中断服务程序void IRQ5(void) __attribute__ ((ISR));void IRQ5(void){Count++;if(Count==2) //处理时分秒的进位{Count=0;sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24)hour=0;}}}if(flag==0)flag=1;elseflag=0;*P_INT_Clear=0x0004;}//数码管显示延时void DelayShort(){unsigned c;for(c=0;c<0xB5;c++)*P_Watchdog_Clear = 0x0001;}//在数码管显示数值void Display(uint hour,uint min,uint sec){if(flag==1)*P_IOB_Data=0x0080;else*P_IOB_Data=0x0000;DelayShort();*P_IOB_Data=0x0020;*P_IOA_Data=DispTbl[sec%10];DelayShort();*P_IOA_Data=0x0000;*P_IOB_Data=0x0010;*P_IOA_Data=DispTbl[sec/10];DelayShort();*P_IOB_Data=0x0008;*P_IOA_Data=DispTbl[min%10];DelayShort();*P_IOB_Data=0x0004;*P_IOA_Data=DispTbl[min/10];DelayShort();*P_IOB_Data=0x0002;*P_IOA_Data=DispTbl[hour%10];DelayShort();*P_IOB_Data=0x0001;*P_IOA_Data=DispTbl[hour/10];DelayShort();}//键盘扫描是否有键按下uint Key_scan(){uint Keystatic=0;*P_IOA_Dir=0x00ff;*P_IOA_Attrib =0x00ff;*P_IOA_Buffer|=0xff00;if((*P_IOA_Data & KEY_ALL)^KEY_ALL){DelayShort(); //消抖DelayShort();if((*P_IOA_Data & KEY_ALL)^KEY_ALL){Keystatic=(*P_IOA_Data&KEY_ALL)^KEY_ALL;while((*P_IOA_Data & KEY_ALL)^KEY_ALL)*P_Watchdog_Clear=0x0001;}}return Keystatic;}//按键值检测void JudgeKey(uint Dis_Val){switch(Dis_Val){case 0x0100:{if(Start_End_Flag==0) //第一次按键计时停止,第二次按键计时开始{ asm("IRQ OFF"); Start_End_Flag=1; Count=0;flag=1; }else{ asm("IRQ ON"); Start_End_Flag=0;}}break;case 0x0200:{if(Start_End_Flag==1){Adjust_Wei--;//调整位选择3改变秒2改变分1改变时if(Adjust_Wei==0)Adjust_Wei=3;}elsePlayTime(hour,min,sec+7);}break;case 0x0400:{if(Start_End_Flag==1)Adjust_Time_Add(Adjust_Wei);}break;case 0x0800:{if(Start_End_Flag==1)Adjust_Time_Jian(Adjust_Wei);}break;default:break;}*P_Watchdog_Clear=0x0001;}// 时分秒增加void Adjust_Time_Add(uint Adjust_Wei){switch(Adjust_Wei){case 3:{ sec+=1; if(sec==60) sec=0; } break;case 2:{ min+=1; if(min==60) min=0; } break;case 1:{ hour+=1; if(hour>=24) hour=0;} break;default:break;}*P_Watchdog_Clear=0x0001;}// 时分秒减少void Adjust_Time_Jian(uint Adjust_Wei){switch(Adjust_Wei){case 3:{sec-=1; if(sec==-1) sec=59; } break;case 2:{ min-=1; if(min==-1) min=59; } break;case 1:{ hour-=1; if(hour==-1) hour=23; } break;default:break;}*P_Watchdog_Clear=0x0001;}//主函数void main(){uint Key;*P_IOA_Dir=0xffff;*P_IOA_Attrib=0xffff;*P_IOA_Data=0x0000;*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x0000;*P_INT_Ctrl=0x0004; //2时基中断asm("INT IRQ");while(1){Key=Key_scan();if(Key)JudgeKey(Key);Display(hour,min,sec);}}。