51单片机电子钟程序数码管显示
..,确定= 1 ,wei; unsignIntpp; unsignCharCodetab le [] = {0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 D,0x07 ,0x7 f,0x6 f,0x7 7 ,0x7 c,0x3 9 ,0x5 e,0x3 9 ,0x5 e,0x7 9 ,0x7 1 k> 0; 0 x7 9 ,0x7 1 k> 0; k-);} voiddisplay(ucharshi2 ,ucharshi1 ,ucharfen2 ,ucharfen1 ,ucharmiao2 ,ucharmiao1 ){dula = 0,fb; wela = 1 ; wela = 0; 迟到(5 ); p0 =表[fen1 ] | 0x8 0; dula = 1 ; dula = 0; p0 =表[fen1 ] | 0x8 0; dula = 1 ; dula = 0; p0 = 0; p0 = 0xf7 ; wela = 1 ; wela = 0; 迟到(5 ); p0 = table [miao2 ]; dula = 1 ; dula = 0; p0 = 0xef; wela = 1 ; {p3 = 0xfb; temp = p3 ; temp = temp&0xf0; if(temp!= 0xf0){late(1 0); i f(temp!= 0xf0){temp = p3 ; switch(temp){case0xbb:ok = 0; 休息; ){temp = p3 ; switch(temp){case0xee:key = 0; wei ++; 休息; case0xde:key = 1 ; wei ++; 休息; case0xbe:key = 2 ; 0){晚(1 0); 如果(temp!= 0xf0){temp = p3 ; switch(temp){case0xed:key = 4 ; wei ++; 休息; case0xdd:key = 5 ; ; temp = temp&0xf0; if(temp!= 0xf0){late(1 0); 如果(temp!= 0xf0){temp = p3 ; switch(temp){case0xeb:key = 8 ; wei ++; 休息; case0xdb:key = 9 ; 。
TL0 =(6 5 5 3 6 -4 6 08 0)%2 5 6 ; // 4 6 08 0的起源为5 0000*1 1 .05 9 2 /1 2 et0 = 1 ; EA = 1 ; f == 6 0){f = 0; S ++; 如果(s == 2 4 )//那是2 4 小时的循环。
{s = 0;}}}} a0 = s%1 0; A1 = S/1 0; B0 = F%1 0; B1 = f/1 0; C0 = m%1 0; c1 est小时为2 a1 =键; 其他 休息; case2 :if(a1 == 1 | a1 == 0)a0 = key; 7 )//分钟的最高位是6 b1 =键; 1 ,b0,c1 ,c0);}}}} voidIdime0()中断1 {th0 =(6 5 5 3 6 -4 6 08 0)/2 5 6 ;
利用51单片机的定时器和实验仪的数码管电路设计一个电子时钟,显示格式XX XX XX,依次为 时、分、秒。
我会给您一个电路和一个程序,//几天前,我将为一个网络编写微控制器时钟调整功能的网络。
****************************************** p2 ^4 ; ^5 ; UTK = 0; unsigned c har value_shio = 8 ; unsigned char value_feno = 4 0; 无标志性的char value_miao = 0; 0x4 0,0x7 9 ,0x2 4 ,0x3 0,0x1 9 ,0x1 2 ,0x02 ,0x7 8 ,0x00,0x1 0}; /void disp_layledetkmd(void){/***小时***/shug_01 = 1 ; ***分钟***/shug_03 = 1 ; ***************************************************************************************************************。
***************************************************************************************************************。
;/***秒***/shug_05 igit显示 ****************************************************************************************** ****************************************************************************************** ****************************************************************************************** ************************************************************************************************** g_06 = 0;}/** tim -Timing 5 0ms **/void tero_init(void){tmod = 0x01 ; = 0){delay_1 ms(1 0); O = 5 9 ; o == -1 ){value_shio = 2 3 ; == 6 0){value_feno = 0; _shio ++; //执行程序}}}/**计时器中断服务程序**/void tmerero()interrus pt 1 {th0 = 0x4 c; (value_shio == 2 4 ){value_shio = 0;
51单片机设计数码管显示时钟的程序怎么写
#include #define uchar unchar unsigned charyuchar代码ledtab [] = {0x3 f,0x06 .0x5 b,0x6 6 .0x6 d,0x7 d,0x07 .0x7 f,0x6 7 f,0x6 f,0x6 f,0x6 f,0x6 f, 0x4 0}; // 0-9 unsigned arreded = 0,病房HBIT,模式,时间; {unsigned int i,j; 对于(i = 0; i
disdat [7 ] = hour/1 0;} void flash(){switch(flashbit){情况0:break; 情况1 :disdat [6 ] = 0x1 0; disdat [7 ] = 0x1 0; 延迟(5 0); dischg(); 延迟(8 0); 违反; 情况2 :disdat [3 ] = 0x1 0; disdat [4 ] = 0x1 0; 延迟(5 0); dischg(); 延迟(8 0); 违反; 情况3 :disdat [0] = 0x1 0; disdat [1 ] = 0x1 0; 延迟(5 0); d t0isr()中断1 //第二次{th0 = 0x3 c; TL0 = 0xB0; 时间++; switch(mode){情况0:if(time == 2 0){time = 0; SEC ++; if(sec> 5 9 ){sec = 0; 最小++; if(min> 5 9 ){min = 0; 小时++; 如果(小时> 2 3 )小时= 0;}}}休息; 案例1 :if(time == 2 0){time = 0; if(sec> 0)sec-; r> 0){sec = 5 9 ; 最小= 5 9 ; 小时 - ;} else {hour = 0; min = 0; sec = 0;}} break;} dischg();} void t1 isr()中断3 //显示{th1 = 0xec; TL1 = 0x7 8 ; 开关(扫描){情况0:p2 = 0x01 ; p0 = 〜LEDTAB [disdat [7 ]]; 休息; 情况1 :p2 = 0x02 ; p0 = 〜LEDTAB [disdat [6 ]; 案例3 :p2 = 0x08 ; p0 = 〜LEDTAB [disdat [4 ]]; 休息; 情况4 :p2 = 0x1 0; p0 = 〜LEDTAB [disdat [3 ]]; 休息; CA SE 5 :P2 = 0x2 0; p0 = 〜LEDTAB [disdat [2 ]]; 休息; 案例6 :p2 = 0x4 0; p0 = 〜LEDTAB [disdat [1 ]]; 休息; 案例7 :P 0x3 C; TL0 = 0xB0; th1 = 0xec; TL1 = 0x7 8 ; tr1 = 1 ; tr0 = 1 ; ET0 = 1 ; ET1 = 1 ; EA = 1 ; sec = 5 5 ; 最小= 5 9 ; 小时= 2 3 ; fla shbit = 0; 扫描= 0; 时间= 0; 模式= 0; dischg(); 而(1 ){flash(); // flash if((P3 &0x0f)!= 0x0f){key = p3 &0x0f; while((p3 &0x0f)!= 0x0f); 讲座时间,分钟和第二个TR0 = 0; flashbit+= 1 ; if(flashbit> 3 ){flashbit = 0; tr0 = 1 ;} break; 案例0x02 ://p3 .2 tuning if(flashbit == 0)break; if(flashbit == 1 ){hor ++; 如果(小时> 9 9 )小时= 0;} if(flashbit == 2 ){min ++; if(min> 5 9 )min = 0;} if(flashbit == 3 ){sec ++; if(sec> 5 9 )sec = 0;} break; 案例0x04 :// selector/in倒数tr0 = 0; {sec = 0; min = 0; hor = 0;} dischg(); 休息; 案例0x08 :// start/pace tr0 = 〜tr0; 休息; 默认值:break;}}}}}}}}}
用c语言循环语句怎么写一个51单片机的时钟啊,用8个数码管显示时间。
#include #defineucharunsignedcharucharcodeledtab [] = {0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 d,0x07 ,0x7 f,0x0x6 f,0x6 6 f,0x6 f,0x4 0};/0x4 0}; //0-0-9 unsignedcha rsec = 0,min = 0,小时= 1 2 ,扫描; unsignedCharkey,flashbit,mode,time; unsignedchardisdat [8 ]; sbitled = p1 ^0; voidDelay(unsignEdIntx){unsignedin ti,j; for(i = 0; i 5 9 ){sec = 0; min ++; min ++; if(min> 5 9 ) 休息; case1 :如果(时间== 2 0){time = 0; if(sec> 0)sec-; elseif(min> 0){sec = 5 9 ; min - ;} elseif(hour> 0){sec = 5 9 ; min = 5 9 ; min = 5 9 ; hour - ;} else {seals = 0; hour = 0; min = 0; min = 0; sec = 0; sec = 0;}}}}} dischg;} dischg;} dischg() {th1 = 0xec; tl1 = 0x7 8 ; switch(扫描){case0:p2 = 0x01 ; p0 = 〜ledtab [disdat [7 ]]; break; break; case1 :p2 = 0x02 ; p0 = 〜ledtab [disdat [6 ]]; break; break; case2 :p2 :p2 :p2 = 0x 04 ; p0 = 〜LEDTAB [disdat [5 ]]; break; case3 :p2 = 0x08 ; p0 = 〜LEDTAB [disdat [4 ]]; break; case4 :p2 = 0x1 0; p0 = 〜ledtab [disdat [3 ]; breack; breack; breack; case5 :p2 = 0x2 0; p2 ; p2 = 0x2 0; p 0 = 〜LEDTAB [disdat [2 ]; break; case6 :p2 = 0x4 0; p0 = 〜ledtab [disdat [1 ]]; break; case7 :p2 = 0x8 0; p0 = 〜ledtab [disdat [0]]; brek; breack; breack; breack; breack; breack; brek brek;} scanled scanled ++;扫描%= 8 ;} main(){tmod = 0x1 1 ; th0 = 0x3 c; tl0 = 0xb0; th1 = 0xec; tl1 = 0x7 8 ; tr1 = 1 ; tr0 = 1 ; tr0 = 1 ; et0 = 1 ; et1 = 1 ; et1 = 1 ; et1 = 1 ; eT = 1 ; ea = 1 ; sec = 1 ; sec = 1 ; sec = 5 5 ; min = 5 9 ; min = 5 9 ; hour = 5 9 ; hour = 2 3 ; sca; sca; sca; acca; acca; acca》; sca nled = 0; time = 0; mode = 0; dischg(); while(1 ){flash(); // flash if((((p3 &0x0f)!= 0x0f){key = p3 &0x0f; while(p3 &0x0f); 时间,分钟和第二个TR0 = 0; flashbit+= 1 ;如果(flashbit> 3 ){flashbit = 0; tr0 = 1 ;} break; case0x02 ://p3 .2 调整号 ;if(flashbit==1 ){hour++;if(hour>9 9 )hour=0;}if(flashbit==2 ){min++;if(min>5 9 )min=0;}if(flashbit==3 ){sec++;if(sec>5 9 )sec=0;}break;case0x04 : //Select positive/inverted TR0=0;mode++;mode&=0x01 ;if(mode==0){sec=0;min=0;hour=0;}dischg();break;case0x08 : //Start/pause TR0=~TR0;break;default:break;}}}}