用数码管及定时器实现简易时钟
使用微控制器 +数字管,您可以制作一个简单的时钟。#include
当s = 1 时,设置闹钟时间//(也通过调整时间,调整功能); {//当s = 2 时,闹钟起作用,并且时间与设定的时间一致,闹钟戒指//(可以在一分钟后自动关闭,并且可以手动关闭)。
switch = 0.keyscan():// sange switching(0-1 0)是对sec1 外部的影响)// k是秒表秒表(0-0。
0。
0。
Stopwatchoff; 1 秒表超出零; 2 sopwatch; 2 stopwatch sistit,tempus中的ostentantes {0 = 0 = 0 = 0 // = i; // = i; // = i 1 ,px0 = 1 ,px1 = 1 ; 5 5 3 6 -5 000 / 2 5 6 = 6 5 5 3 6 -5 000) 小时++:if(hour == 6 0)//分钟{小时= 0;}}}}}}}}}}}}}}}}}}}}} {0小时= 0; mini = 0; sec = 0;}} if(k == 2 ){3 ++ ++ interrupt2 ++; If (== 1 interrupting, {++; Rupt ****************************************************************************************************************), {if (2 (2 == (s == 2 ), if (2 (s == 2 ), {if) {if (2 (s == 2 ){if(2 (2 (2 (2 ,(2 ==) ()} b 我们的1 = 0;}} if(tiaofen == 0){delay(1 0); if(tiaofen == 0){minu1 ++; tiaofen);}} if(tiaoshi == 0){hour1 ++; if(hour1 == 2 4 ){hour1 = 0;} while(!tiaoshi);}} else // 时钟时间{if(qingling == 0){delaying(1 0); Ay(1 0); if(tiaofen == 0){minu0 ++){minu0 = 0;}){hour(0){hour0 = 0;} 展示功能************************************************************************************************************************************************************************************************************************************************** = h2 = h2 =小时%= m1 = minu / 1 0; = s2 = sec = 0xfl; 延迟(5 )= 0xff; 0xff; p2 = p2 = 0x4 0 [S1 ]; p0 =延迟(5 ); 时钟函数**************************** / voidSound(){sound =〜sounder; } / *********************** 延迟function ********************** / Voiddelay (Ucharz) {intx, y; for (x = z; x> 0; x -) for (y = 1 1 0; y> 0; y--);}
单片机控制多位数码管的电子时钟程序
使用微控制器在多位数的数字管上控制电子时钟,并使用独立的按钮来控制它,以显示时间和日期以及日历的恐怖。And the Date, and Hurricane Project C. Language C. C. Language: The Turbo Project C. Language: / ****************************************************************************************************************** **************************************************************************************************************************************************signedcharuntumwe, TT, T, Numdu, Set, Aclock, Rili; Unsignedlonginttime, Time1 = 0; Unsignedlongintsecond, Minute, Hour, Year = 2 01 2 ,月= 1 2 ,day = 3 1 ; uCharCodedu [] = {0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 D,0x07 ,0x7 f,0x6 f,0x6 f,0x7 7 ,0x7 c,0x7 7 ,0x7 c,0x3 9 ,0x5 e,0x3 9 ,0x5 e,0x3 9 ,0x5 e,0x7 9 ,0x7 1 }; 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 0,3 1 ,3 0,3 1 }; // //每月相应的天数ucharymth [1 3 ] = {0,2 ,9 ,2 ,2 ,1 ,2 ,1 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,1 ,2 ,2 }; sbitdula = p2 ^0; sbitwela = p2 ^1 ; sbitKey0; sbitKey0 = p3 = p3 ^2 ;/sept s bity a s bity a s bity a s bity a s bitikey1 sbitKey2 = p3 ^0; //设置警报sbitkey3 = p3 ^3 ; sbitbeep = p2 ^2 ; // ring voiddelay(uintdel); // delay Program void void void display(uintmm,uintmm,uinthy,uinthy); /// intclock(); //计算时间voidcalender(); 而(1 ){add(); if(rili == 1 )//指示显示(日,月,年); Elsedisplay(第二分钟小时); (i1 } vinthy(i1 == {; {==;},{= 1 ; = 1 =; = 1 =; = 1 =; = 1 =; = 1 = 1 = 1 = 1 =; = = = = = = = 1 =; = 1 =; = 1 = 1 = 1 = 1 = 0xff; dula = 1 = 1 {case0:p0 ==(tt == 1 set == 1 )? == [I1 == [1 ==]:0x00 ==]:du [i1 ==]:du [i1 == [i ==] case2 ==] == [1 ==]; 0x |; :( tt == 1 set == 3 )? 0x00:du [y2 / x]休息; CAS e3 =(tt == 1 set == 4 ) p0 =(rili!= 1 )?(tt == 1 set == 6 )? set == 7 ) 1 th0 =(6 5 5 3 6 -3 5 0000)// //计时器是高点//定时5 mstl0 =(6 5 5 3 6 -5 0000)%2 5 6 和工作 } intclock()//计算时间{if(t == 1 0 | t == 2 0)tt =! if(t == 2 0){t = 0;(set!= 0alock == 0) 分钟=(周期3 5 00) / 6 0,小时周期 / 3 5 00,if(== == {; {==; {==; {==; {==; {==; {==; {==; {0+0 ==; 0 ==; 0 ==; 0 ==; 0 ==; 0 =; 0 ==; 0 ==; 0 ==; 0 ==; j1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00》; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; J1 00; j1 00; J1 00; ++)} VITROUTTIMER0({Th0 Interrupt1 } {(8 ){(8 ),{death(2 ); if(key == 0){if(rili!= 1 ){if(2 set == | set == 5 )set = set +2 ;} elsisset ++; if(set == 9 ){}){delays(2 ); voidCalender()//计算日历{if(time == 8 6 4 00){day ++; 如果(4 %% 1 00%== 0)|(4 00 == 0))MTH [2 ] == 0)= 2 9 [月) {intge,ge1 ,shi,shi2 ,shi2 ,bai2 ,qian2 if(rili == 1 ){ge1 = 1 0%; y1 == 0){if(rili == 1 ){if(%4 == 0年%1 00!= 0年%1 00!= 0年%1 00!= 0))ymth 4 00 == 0)ymth [2 ] = 1 0; Qian2 + 1 )case2 ;AK; case5 :shi1 =(shi1 +1 )%2 ; break; case6 :ge1 =(shi1 == 1 )?(ge1 +1 )%3 :(ge1 +1 )%1 0; break; break; case7 :shi =(月== 2 )?(s HI)%:(SHI + 1 )%; case8 ; k;年= Qian2 * 1 000 + 1 00 + bai2 * + shi2 * + ge2 ; shi1 * 1 0 + ge1 (shi2 + 1 ); E7 :shi =(shi + 1 )%6 ; 休息; case8 :g2 =( + 1 0 + + +。
(==(1 ==(==(0); e(!key2 ); clock = 0;}}} PIN分别连接到8 p2 ^ 1 ^ eepent管; 3 p3 ^ 0是警报显示功能按钮 P3 ^ 1 是设置时钟时的数字调整,您可以设置键,您可以设置闹钟,日期和时间选择P3 ^ 3 是Hitachi和Time View键4 的转换。
效果: