红外秒表计时器

    xiaoxiao2021-03-25  221

    #include<reg52.h> #define Y0C P2&=0x1f,P2|=0x00; #define Y1C P2&=0x1f,P2|=0x20; #define Y2C P2&=0x1f,P2|=0x40; #define Y3C P2&=0x1f,P2|=0x60; #define Y4C P2&=0x1f,P2|=0x80; #define Y5C P2&=0x1f,P2|=0xa0; #define Y6C P2&=0x1f,P2|=0xc0; #define Y7C P2&=0x1f,P2|=0xe0; #define C138 P2&=0x1f; sbit key1=P3^0; sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; sbit hw=P3^4; sbit BUZZ=P0^6; int flagmm=0; int mm=0; unsigned char smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned int s=0,min=0,hour=0,kk=14,t_hour=100,t_min=100; void pri(unsigned hour,unsigned min,unsigned s); void delay(unsigned int a); void close_buzz(); void delay(unsigned int a) {   unsigned int i,j; for(i=0;i<=a;i++) for(j=0;j<88;j++); } void close_buzz() { Y5C; BUZZ=0; C138; } void open_buzz() { Y5C; BUZZ=1; C138; } void main() {    unsigned int flag1=0;        close_buzz();  TMOD=0x01;  P3=0XFF;       TH0=(65536-50000)/256;  TL0=(65536-50000)%6;  EA=1;  ET0=1;  TR0=1;  EX0=1;       IT0=0;  while(1)  {   /* if(kk==19) {    kk=0; s++;  if(s==61)  {     s=0; min++;    if(min==61)    { min=0; hour++; if(hour==24) { hour=0; } }  }  } */  pri(hour,min,s);  if(mm>0&&hw==0)  { TR0=0;  }   } } void timer0() interrupt 1 {   TH0=(65536-50000)/256;   TL0= (65536-50000)%6;   flagmm=1;   if(hw==1)   { ++kk; mm++;    } } void pri(unsigned hour,unsigned min,unsigned s) {         Y6C; P0=0x01; C138; P0=smg[hour/10]; Y7C; delay(2); P0=0xff; C138; Y6C; P0=0x02; C138; P0=smg[hour]; Y7C; delay(2); P0=0xff; C138; Y6C; P0=0x04; C138;   P0=0xbf; Y7C; delay(2); P0=0xff; Y6C; P0=0x08; C138; P0=smg[min/10]; Y7C; delay(2); P0=0xff; C138; Y6C; P0=0x10; C138; P0=smg[min]; Y7C; delay(2); P0=0xff; C138; Y6C; P0=0x20; C138; P0=0xbf; Y7C; delay(2); P0=0xff; C138; Y6C; P0=0x40; C138; P0=smg[s/10]; Y7C; delay(2); P0=0xff; C138;   Y6C; P0=0x80; C138; P0=smg[s];    Y7C; delay(2); P0=0xff; C138; }
    转载请注明原文地址: https://ju.6miu.com/read-6095.html

    最新回复(0)