|
無標(biāo)題.jpg (209.9 KB, 下載次數(shù): 22)
下載附件
2020-4-12 21:27 上傳
樓主對(duì)比一下就知道問題在哪
- #include <AT89X52.H>
- sbit k1=P1^0;
- sbit k2=P1^1;
- sbit k3=P1^2;
- unsigned char code seg7cat[17] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,
- 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};//'-'
- unsigned char dis_buf[8];
- unsigned char m=0,s=0,ms=0;
- unsigned char i,j;
- bit k;
- void delayms(unsigned int td)
- {
- unsigned int i,j;
- for(i=0;i<td;i++)
- for(j=0;j<120;j++);
- }
- void seg7x8_display(unsigned char *p)
- {
- P0 = 0xff;
- P2 = 0xff;
- P2&=(0x01<<i);
- P0 =seg7cat[p[i]];
- i++;
- i%=8;
- }
- void main(void)
- {
- TMOD=0x01;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- ET0=1;
- EA =1;
- TR0=0;
- dis_buf[2] = 16;
- dis_buf[5] = 16;
- while(1)
- {
- if(!k1||!k2||!k3)
- {
- if(++j>=100&&k==0)
- {
- k=1;
- if(!k1)
- TR0=1;
- if(!k2)
- TR0=0;
- if(!k3)
- m=s=ms=0;
- }
- }
- else j=k=0;
- dis_buf[0] = m/10;
- dis_buf[1] = m%10;
- dis_buf[3] = s/10;
- dis_buf[4] = s%10;
- dis_buf[6] = ms/10;
- dis_buf[7] = ms%10;
- seg7x8_display(dis_buf);
- delayms(1);
- }
- }
- void timer0_isr(void) interrupt 1
- {
- TH0=(65536-10000)/256; //10ms???
- TL0=(65536-10000)%256;
- if(++ms >= 100)
- {
- ms=0;
- if(++s>=60)
- {
- s = 0;
- if(++m>=60)
- m = 0;
- }
- }
- }
復(fù)制代碼
|
|