當前位置:編程學習大全網 - 編程語言 - 求助壹個 利用STC51為核心的,使兩個SM410564數碼管閃爍出數字的程序(啥內容都可以)

求助壹個 利用STC51為核心的,使兩個SM410564數碼管閃爍出數字的程序(啥內容都可以)

妳這圖有問題,少了個LE訊號,看妳這圖很像郭天祥的TX-1C,

給妳個程序參考下

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit suo1=P2^6;

sbit suo2=P2^7;

sbit led1=P1^0;

sbit led2=P1^1;

sbit key1=P3^4;

sbit key2=P3^5;

sbit key3=P3^6;

sbit key4=P3^7;

void delayms(uint);

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

void deplayms(uint);

void display(uchar,uchar,uchar,uchar,uchar,uchar);

uchar ge;

uchar num,num1,num2,shi;

uchar num3,num4;

uchar fen1,fen2;shi1,shi2;

void keyscant()

{

if(key1==0)

{

delayms(10);

if(key1==0)

{

num++;

if(num==60)

num=0;

while(!key1);

}

}

if(key2==0)

{

delayms(10);

if(key2==0)

{

num3++;

if(num3==60)

num3=0;

}

while(!key2);

}

if(key3==0)

{

delayms(10);

if(key3==0)

{num4++;

if(num4==24)

num4=0;

}

while(!key3);

}

if(key4==0)

{

delayms(10);

if(key4==0)

{

while(!key4);

TR1=~TR1;

} }

}

void main()

{if(key1==0)

TMOD=0x11;

//TMOD=0x10;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

// TH1=(65536-45872)/256;

// TL1=(65536-45872)%256;

EA=1;

ET0=1;

// ET1=1;

TR0=1;

// TR1=1;

num=38;

num4=16;

num3=30;

while(1)

{ keyscant();

//if ((num2 %10)==0) led1=~led1;

shi=num/10;

ge=num%10;

fen1=num3/10;

fen2=num3%10;

shi1=num4/10;

shi2=num4%10;

display(shi,ge,fen1,fen2,shi1,shi2);

}

}

void display(uchar shi,uchar ge,uchar fen1,uchar fen2,uchar shi1,uchar shi2)

{

P0=0xdf;

suo2=1;

suo2=0;

suo1=1;

P0=table[ge];

suo1=0;

deplayms(3);

P0=0xef;

suo2=1;

suo2=0;

suo1=1;

P0=table[shi];

suo1=0;

P0=0xff;

deplayms(3);

P0=0xf7;

suo2=1;

suo2=0;

suo1=1;

P0=table[fen2]+0x80;

suo1=0;

P0=0xff;

deplayms(3);

P0=0xfb;

suo2=1;

suo2=0;

suo1=1;

P0=table[fen1];

suo1=0;

P0=0xff;

deplayms(3);

P0=0xfd;

suo2=1;

suo2=0;

suo1=1;

P0=table[shi2]+0x80;

suo1=0;

P0=0xff;

deplayms(3);

P0=0xfe;

suo2=1;

suo2=0;

suo1=1;

P0=table[shi1];

suo1=0;

P0=0xff;

deplayms(3);

}

void deplayms(uint xm)

{

uint i,j;

for(i=xm;i>0;i--)

for(j=110;j>0;j--);

}

void delayms(uint xm)

{

uint i,j;

for(i=xm;i>0;i--)

for(j=110;j>0;j--);

}

void To_time() interrupt 1

{

//TH0=(65536-45872)/256;

//TL0=(65536-45872)%256;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

num1++;

if(num1==10)

led1=~led1;

if(num1==20)

{

led1=~led1;

num1=0;

num++;

if(num==60)

{

num=0;

num3++;

if(num3==60)

{

num3=0;

num4++;

if(num4==24)

num4=0;

}

}

}

}

/*

void T1_time() interrupt 3

{

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

num2++;

} */

  • 上一篇:C語言程序設計萬年歷怎麽編寫
  • 下一篇:GPRS技術原理
  • copyright 2024編程學習大全網