stc89c52 0.01s
单片机源程序如下:
- #include<reg52.h>
- char code table1[]={
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- char code table2[]={
- 0xbf,0x86,0xdb,0xcf,
- 0xe6,0xed,0xfd,0x87,
- 0xff,0xef};
- sbit dula=P2^6;
- sbit wela=P2^7;
- int i=0,o=0,u=0,n=0,m=0,q=0;
- void delayms(int xms);
- void main(void)
- {
- TMOD=0x01;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- dula=1;
- P0=table2[m];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xfe;
- wela=0;
- delayms(5);
- dula=1;
- P0=table1[n];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xfd;
- wela=0;
- delayms(5);
- dula=1;
- P0=table1[q];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xfb;
- wela=0;
- delayms(5);
- }
- }
- void caculate() interrupt 0
- {
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- i++;
- o++;
- u++;
- {
- if(i==10)
- {
- i=0;
- q++;
- }
- if(o==100)
- {
- n++;
- o=0;
- }
- if(u==1000)
- {
- u=0;
- m++;
- }
- if(m==10)
- {
- m=0;
- }
- if(n==10)
- {
- n=0;
- }
- if(q==10)
- {
- q=0;
- }
- }
- }
- void delayms(int xms)
- {
- int a,b;
- for(a=xms;a>0;a--)
- for(b=110;b>0;b--);
- }
复制代码
所有资料51hei提供下载:
0.01s计时器.rar
(546 Bytes, 下载次数: 11)
|