利用AT89C51写秒表程序

#include <REGX51.H> unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char a=0,b=0,c=0,d=0,e=0,f=0,timer=0,tt=0; #define k1 P3_2 #define k2 P3_3 #define k3 P3_4 unsigned char t1=0,t2=0,t3=0; void tiaoshi(); bit flag; bit aa=0,bb=0,cc=0,dd=0,m=0,n=0,v=0; void delay() { unsigned char j; for(j=0;j<200;j++); } void xianshi() { P0=led[a%10]; if(tt==3)P2_2=flag; else P2_2=0; delay(); P2_2=1;

P0=led[a/10]; if(tt==3) P2_3=flag; else P2_3=0; delay(); P2_3=1;

P0=led[b%10]; if(tt==2)P2_4=flag; else P2_4=0; P0_7=dd; delay(); P2_4=1;

P0=led[b/10]; if(tt==2) P2_5=flag; else P2_5=0; delay();P2_5=1;

P0=led[e%10]; if(tt==1) P2_6=flag; else P2_6=0; delay(); P2_6=1;

P0=led[e/10]; if(tt==1) P2_7=flag; else P2_7=0; delay(); P2_7=1; } void main() { TMOD=0X01; TH0=0X3C; TL0=0XB0; TR0=1; ET0=1; EA=1;

while(1) { xianshi(); tiaoshi(); } } void tiaoshi() { if(k3==0){bb=1;} if((k3==1)&&(bb==1)){bb=0;tt++;} if(tt==3)m=1; if(tt==2)n=1; if(tt==1)v=1; if(tt==4)tt=0; if(k1==0)aa=1; if(k2==0)cc=1; if((tt==3)&&(k1==1)&&(aa==1)&&(k3==1)&&(m==1)){aa=0;a++;}if(a==60)a=0;

if((tt==2)&&(k1==1)&&(aa==1)&&(k3==1)&&(n==1)){aa=0;b++;}if(b==60)b=0; if((tt==1)&&(k1==1)&&(aa==1)&&(k3==1)&&(v==1)){aa=0;e++;}if(e==24)e=0; if((tt==3)&&(k2==1)&&(cc==1)&&(k3==1)&&(m==1)){cc=0;a--;}if(a==-1)a=59; if((tt==2)&&(k2==1)&&(cc==1)&&(k3==1)&&(n==1)){cc=0;b--;}if(b==-1)b=59; if((tt==1)&&(k2==1)&&(cc==1)&&(k3==1)&&(v==1)){cc=0;e--;}if(e==-1)e=23; } void inter() interrupt 1 { TH0=0X3C; TL0=0XB0; timer++; if(timer==5)flag=~flag; if(timer==8)flag=~flag; if(timer==10)flag=~flag; if(timer==13)flag=~flag;if(timer==15)flag=~flag; //if(tt==3) m=~m; //if(tt==2) n=~n; //if(tt==1) v=~v; if(timer==10)dd=~dd; if(timer==19){timer=0;a++;} if(a>59){a=0;b++;} if(b>59){b=0;d++;} if(c>23)c=0; }


相关文档

99秒表程序--基于单片机at89c51
用汇编语言编写秒表程序
51单片机秒表程序设计
单片机AT89C51秒表设计
at89c51程序0-9简易秒表LED显示
计算机硬件基础秒表程序编写
AT89C51单片机课程设计_秒表计数器
电子秒表原理图及程序
基于at89c51秒表
52单片机 时钟 音乐 秒表 程序
电脑版