利用AT89C51单片机设计简易电子钟(六位),通过8位LED数码管实现时间显示;系统可以通过三个按键实现时间
编程想法:1 使用微控制器的内部计时器作为计时器访问计时器函数; 以下包含一系列程序作为参考。
#include #include #definucharunsignedchar#Defuintunsignedintconstuchable [1 0] = {0x3 f, 0x06 .0x5 b, 0x6 6 .0x6 d, 0x7 d, 0x07 .0x7 f, 0x6 f, 0x7 d, 0x7 d, 0x7 d, 0x7 d, 0x7 d 0x6 f | 符号constucharkey_value [1 6 ] = {0.1 .2 ,3 ,4 ,5 ,6 ,8 ,9 ,1 1 ,1 1 ,1 3 ,1 4 ,1 5 }; uc harddata [4 ] = {0}; //初始值为0UintCount = 0; 版本= 0xff; d是低4 位输出portd = 0x0f;} voiddelay(uintj)// delay函数{uintk; SEL = 0x01 ; ; sel = sel
STC89c52单片机设计6位数码管电子钟时钟
#include #defineucharunsignedchar#defineuintunsnsnsnsnsnsnsnstiwela = p2 ^7 ; peekdula = p2 ^6 ; sbitrs = p3 ^5 ; sbitlcden = p3 ^4 ; sbitrw = p3 ^6 ; sbits1 = p3 ^0; sbits2 = p3 ^ 1 ; sbits3 = p3 ^2 ; scardd = p3 ^7 ; Uchacodetable [] =“ 2 01 2 -6 -09 SAT”; Uchacodetable1 [] =“ 2 0:00:00”; Ucharcount,s1 num,shi,fen,M.Iao; voiddelay(uintz){uintx,y; 对于(x = z; x> 0; x-)for(y = 1 0; y> 0; y-);} voidwrite_com(ucharcom){rs = 0; rw = 0; lcden = 0; p0 = com; 延迟(1 0); lcden = 1 ; 延迟(1 0); lcden = 0;} voidwrite_date(uchardetto){rs = 1 ; rw = 0; lcden = 0; p0 = date; 延迟(1 0); lcden = 1 ; 延迟(1 0); lcden = 0;} voidwrite_sfm(ucharadd,ucha rdate){ucharshi,ge; shi =日期/1 0; GE =数据%1 0; write_com(0x8 0+0x4 0+add); write_date(0x3 0+shi); write_date(0x3 0+ge);} voidkeyscan(){if(s1 == 0){delay(5 ); if(s1 == 0){s1 num ++; 而(!s1 ); if(s1 num == 1 ){tr0 = 0; write_com(0x8 0+0x4 0+1 1 ); write_com(0x0f);} if(s1 num == 2 ){write_com(0x8 0+0x4 0+8 ?0){if(s2 == 0){delays(5 ); if(s2 == 0){while(!s2 ); if(s1 num == 1 ){miao ++; if(miao == 6 0)miao = 0; write_sfm(1 0,miao); write_com(0x8 0+0x4 0+1 0);} if(s1 num == 2 ){fen ++; 如果(fen == 6 0)fen = 0; write_sf m(7 ,fen); write_com(0x8 0+0x4 0+7 );} if(s1 num == 3 ){shi ++; if(shi == 2 4 )shi = 0; write_sfm(4 ,shi); write_com(0x8 0 +0x4 0 +4 );}}}} if(s3 == 0){delay(5 ); if(s3 == 0){while(!s3 ); if(s1 num == 1 ){miao-; if(miao = -1 )miao = 5 9 ; write_sfm(1 0,miao); write_com(0x8 0+0x4 0+1 0);} if(s1 num == 2 ){fen-; 如果(fen == -1 )fen = 5 9 ; write_sfm(7 ,fen); write_com(0x8 0+0x4 0+7 );} if(s1 num == 3 ){shi-; if(shi == -1 )shi = 2 3 ; write_sfm(4 ,shi); write_com(0x8 0+0x4 0+4 );}}}}}}}}}}}} voidInit(){ucharnum; rw = 0; dula = 0; wela = 0; lcden = 0; write_com(0x3 8 ); 延迟(2 0); write_com(0x0c); 延迟(2 0); write_com(0x06 ); 延迟(2 0); write_com(0x01 ); 延迟(2 0); write_com(0x8 0); 延迟(2 0); for(number = 0; num
设计单片机控制6位数码管动态显示电路,并编程实现让数码管同时显示
#包括#decineucharunsignedchar#defineuintunsignedtucharcodedsy_code [= = = = {0xc0,0xf9 ,0xa4 .0xb0.0x9 9 .0x9 2 .0x9 2 .0x8 2 .0x8 2 .0x8 .0x8 0 x8 0.0x8 0.0x9 0.0x8 8 , 6 ,0x8 e,0xff}; voddelayms(uintx){uchart; 同时(x-)(t = 1 2 0; t> 0; t-); p0 = 0x00; 1 ){p0 = 〜dsy_code [i]; i =(i+1 )%1 6 ;/*显示0 -f*/delays(4 00);}}}