- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code q[10]={0x01,0x6d,0x22,0x82,0xc4,0x88,0x08,0xc3,0x00,0x80};
- sbit sda=P0^2;
- sbit scl=P0^3;
- sbit key=P1^0;
- uchar aa,a,b,c;
- void write_daty(uchar x)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- scl=0;
- x=x<<1;
- sda=CY;
- scl=1;
- }
- }
- void dalay(uchar z)
- {
- uchar x,y;
- for(x=z;x>0;x--)
- for(y=100;y>0;y--);
- }
- void timer0() interrupt 1
- {
- TH0=(65536-5000)/256;
- TL0=(65536-5000)%256;
- aa++;
- if(aa==1)
- {
- c=1;
- b++;
- if(b==10)
- {
- a++;
- if(a==10)a=0;
- b=0;
- }
- }
- }
- void main()
- {
- uchar y;
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=0;
- y=1;
- write_daty(q[0]);
- write_daty(q[0]);
- while(1)
- {
- while(y==1)
- {
- if(key==0)
- {
- dalay(5);
- while(key==0)
- {
- while(key==0);
- y=2;
- TR0=1;
- }
- }
- }
- while(y==2)
- {
- if(c==1)
- {
- write_daty(q[b]);
- write_daty(q[a]);
- c=2;
- }
- while(key==0)
- {
- dalay(5);
- while(key==0)
- {
- while(key==0);
- y=3;
- TR0=0;
- }
- }
- }
- while(y==3)
- {
- while(key==0)
- {
- dalay(5);
- while(key==0)
- {
- while(key==0);
- y=1;
- a=0;
- b=0;
- write_daty(q[0]);
- write_daty(q[0]);
- }
- }
- }
- }
復制代碼
|