#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit P10=P1^0;
sbit P11=P1^1; //λ´a¿Ú
sbit P12=P1^2;
sbit P13=P1^3;
sbit P32=P3^2;
unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //Œ¦‘ª(y¨©ng)0---9
unsigned char Data_Buffer[4]={0,0,0,0}; //´æ·Å½y(t¨¯ng)Ó‹µÄ”µ(sh¨´)“þ(j¨´)¡£ †Îλžé£¨100uS£©
uint time=0;
void fenge() //·Ö¸î”µ(sh¨´)“þ(j¨´)£¬ÒÔ±ãÓÚ½y(t¨¯ng)Ó‹Ý^´óég¸ô•rég¡£
{
Data_Buffer[0]=time/1000;
Data_Buffer[1]=time/100%10;
Data_Buffer[2]=time/10%10;
Data_Buffer[3]=time%10;
}
void display() //ÓÃÓÚËÄ‚€”µ(sh¨´)´a¹Üï@ʾ”µ(sh¨´)“þ(j¨´)
{
uchar Bit=0;
while(1)
{
Bit++;
if(Bit>=4)
Bit=0;
P0=Duan[Data_Buffer[Bit]]; //”µ(sh¨´)“þ(j¨´)µÄÝ”³ö
switch(Bit)//é_λ´a
{
case 0: P10=0;break;
case 1: P11=0;break;
case 2: P12=0;break;
case 3: P13=0;break;
}
}
}
void mian()
{
EX0=0;
EA=1;
IT0=0;//µÍëŠÆ½ÓÐЧ
TMOD=0x02; //ÔO(sh¨¨)ÖÞé×Ô„ÓÖØÝd·½Ê½
TH0=0x92; //ÔO(sh¨¨)ÖÞé100uSµÄÓ‹”µ(sh¨´)
TL0=0x92;
TR0=0;
while(1)
{
fenge();
display();
time=0; //®”(d¨¡ng)ǰï@ʾÍê®…ºó£¬Çå®”(d¨¡ng)ǰtimeµÄÖµ
EX0=1; //é_†¢ÍⲿÖДà
}
}
void zhongduan() interrupt 0
{
TR0=1;
if(TH0==1) //100uS¶¨•rÆ÷Òç³ö
{
time++; //½y(t¨¯ng)Ó‹ƒÉ‚€Ã}›_µÄ•rég
TH0=0;
}
if(P32==1) //Èç¹ûÍⲿÖДà׃?y¨u)é¸ßëŠÆ½£¬êP(gu¨¡n)é]ÖДࡣ±£×C½y(t¨¯ng)Ó‹µÄÊǃɂ€Ã}›_µÄég¸ô•rég¡£žéÖ÷º¯”µ(sh¨´)ï@ʾ”µ(sh¨´)“þ(j¨´) ŽÈ¡•rég¡£
EX0=0;
}
ÓÐüc†–î}£¬ÕlÄÜŽÍÎҸĸĆᣡ
šgÓ¹âÅR (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |