《基于51单片机的数码时钟》由会员分享,可在线阅读,更多相关《基于51单片机的数码时钟(3页珍藏版)》请在金锄头文库上搜索。
1、数码时钟,计时器#include #defineuchar unsigned char #define uint unsigned int uchar code shuma = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; uint x,count,dism,disf,diss; sbit wei=P27; sbit duan=P26;/数码管显示时间 void display (uint miao,uint fen,uint shi) /显示秒表 uint ma,mb,fena,fenb,shia,shib; ma=miao/10; m
2、b=miao%10; /显示分钟 fena=fen/10; fenb=fen%10; /显示时钟 shia=shi/10; shib=shi%10;/时针 if(shi0) P0=0xff;wei=1;wei=0;/去除余晖; P0=shumashia;duan=1;duan=0; P0=0xfe;wei=1;wei=0; P0=0xff;wei=1;wei=0; P0=shumashib|0x80;duan=1;duan=0; /与 0x80 按位或,取小数点 P0=0xfd;wei=1;wei=0; /分针 if(fen0) P0=0xff;wei=1;wei=0; P0=shumafen
3、a;duan=1;duan=0; P0=0xfb;wei=1;wei=0;P0=0xff;wei=1;wei=0; P0=shumafenb|0x80;duan=1;duan=0; P0=0xf7;wei=1;wei=0; /秒针P0=0xff;wei=1;wei=0; P0=shumama;duan=1;duan=0; P0=0xef;wei=1;wei=0; P0=0xff;wei=1;wei=0; P0=shumamb;duan=1;duan=0; P0=0xdf;wei=1;wei=0;/主函数 void main () EA=1; ET1=1; TMOD=0X10;TH1=(65536-50000)/256; TL1=(65536-50000)%256; TR1=1; count=0; dism=0;disf=0;diss=0; while(1) display(dism,disf,diss); if(count=5) count=0; dism+; if(dism=60)disf+; dism=0; if(disf=60) diss+; disf=0; /定时器 1 中断 void time1() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; count+;