/************************************************
跳线设置:默认跳线位
晶振:12M
本站的51hei单片机开发板的数码管和发光管,都是用P0控制的,那么有没有办法,让数码管和led发光管同时显示我们所设置的值呢,答案是肯定的,用定时器分时控制,显示数码管的时候,关掉发光管显示发光管的时候 关掉数码管,这是基本思路
下面这个程序就可以让数码管显示数字变化,同时发光二极管做流水灯的实验
************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
sbit P14=P1^4;
unsigned long disnum0;
uchar temp;
uint count,num1;
uchar c;
unsigned long disnum0=765432;
uchar code tabduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
display(uchar,uchar,uchar,uchar,uchar,uchar,uchar);
void delay(uint);
void main()
{
EA=1;
ET1=1;
TMOD=0X11;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
P14=0;
wei=0;
c=0xfe;
while(1)
{
if(count==20)
{ P14=1;
wei=0;
count=0;
disnum0--;
if(disnum0==765380)
TR1=0;
}
display(disnum0/100000,disnum0%100000/10000,disnum0%10000/1000,disnum0%1000/100,disnum0%100/10,disnum0%10);
if(num1==10)
{
wei=0;
P14=0;
num1=0;
P0=c;
c=_crol_(c,1);
delay(5);
}
}
}
void tim1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
}
void tim0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num1++;
}
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
display(uchar shiwan,uchar wan,uchar qian,uchar bai,uchar shi,uchar ge)
{P14=1;
P0=0xff;
wei=1;
wei=0;
P0=tabduan[shiwan];
duan=1;
duan=0;
P0=0xfb;
wei=1;
wei=0;
delay(1);
P0=0xff;
wei=1;
wei=0;
P0=tabduan[wan];
duan=1;
duan=0;
P0=0xf7;
wei=1;
wei=0;
delay(1);
P0=0xff;
wei=1;
wei=0;
P0=tabduan[qian];
duan=1;
duan=0;
P0=0xef;
wei=1;
wei=0;
delay(1);
P0=0xff;
wei=1;
wei=0;
P0=tabduan[bai];
duan=1;
duan=0;
P0=0xdf;
wei=1;
wei=0;
delay(3);
P0=0xff;
wei=1;
wei=0;
P0=tabduan[shi];
duan=1;
duan=0;
P0=0xbf;
wei=1;
wei=0;
delay(1);
P0=0xff;
wei=1;
wei=0;
P0=tabduan[ge];
duan=1;
duan=0;
P0=0x7f;
wei=1;
wei=0;
delay(1);
}
这个程序是一个会员编写的,已经在我们的板子上调试成功了,数码管一边倒计时,流水灯同时,其实是分时的,只是我们的眼睛有视觉暂留效应,看起来是同时进行的.进行我觉得这个程序很有参考价值所以给大家共享出来.