|
stc89c51單片機(jī)定時(shí)器實(shí)現(xiàn)24秒計(jì)時(shí)
單片機(jī)源程序如下:
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit du=P2^6;
- sbit s1=P3^0;
- sbit s2=P3^1;
- sbit s3=P3^2;
- sbit di=P3^7;
- sbit shiwe=P2^1;
- sbit gewe=P2^2;
- sbit dianwe=P2^3;
- sbit deng=P1^1;
- uchar code dd[]={
- 0x3f,0x06,0x5b,0x4f,0x66,0x6d,
- 0x7d,0x07,0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71,0x00
- };
- uchar shi,ge,dian,num,tt,flag,flag1,i;
- void delay(uint x)
- {
- uint y;
- for(;x>0;x--)
- for(y=124;y>0;y--);
- }
- void display()
- {
- shi=num/100;
- ge=num/10%10;
- dian=num%10;
- P0=dd[shi];
- du=1;
- du=0;
- shiwe=1;
- delay(10);
- shiwe=0;
- P0=dd[ge]|0x80;
- du=1;
- du=0;
- gewe=1;
- delay(10);
- gewe=0;
- P0=dd[dian];
- du=1;
- du=0;
- dianwe=1;
- delay(10);
- dianwe=0;
-
- }
- void init()
- {
- flag=0;
- num=240;
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- TR0=0;
- ET0=1;
- }
- void main()
- {
- while(1)
- {
- display();
- TR0=0;
- if(s1==0)
- TR0=1;
- if(s2==0)
- {
- delay(5);
- if(s2==0)
- {
- flag++;
- while(!s2);
- if(flag==1)
- {
- TR0=0;
- }
- else
- {
- flag=0;
- TR0=1;
- }
- }
- if(flag1==1)
- {
- for(i=3;i>0;i--)
- {
- deng=1;
- delay(500);
- deng=0;
- }
- }
- }
-
- }
- }
- void as() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- tt++;
- if(tt==20)
- {
- num=num-10;
- display();
- if(num==0)
- flag1=1;
- }
- }
復(fù)制代碼
程序工程文件51hei提供下載:
24秒計(jì)時(shí).rar
(10.85 KB, 下載次數(shù): 20)
2019-6-25 16:31 上傳
點(diǎn)擊文件名下載附件
51單片機(jī)定時(shí)器實(shí)現(xiàn)24秒計(jì)時(shí)
|
|