
//8位共阴数码管间隔0.5S循环左移依次显示 12345678、23456781、34567812 ...
//2011 12 09 E:\DPJ\OTHER\1\8位左移\8位左移.C #include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int uchar time,i,temp,temp1=0xfe;
uchar code tab[ ]={0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F};
bit flag;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7; void delay(int ms)
{
uchar j;
while(ms--)
for(j=0;j<123;j++);
}
void T0INTinit()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256; } void disp(); void main()
{
T0INTinit();
temp=0xfe;
while(1)
{
temp=temp1;
disp();
if(flag)
{
flag=0;
temp1=_cror_(temp1,1);
}
}
} void disp()
{
P0=tab[0];
P2=temp;
delay(1);
P2=0xff;
temp=_crol_(temp,1);
P0=tab[1];
P2=temp;
delay(1);
P2=0xff;
P0=tab[2];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[3];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[4];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[5];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[6];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[7];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
} void T0INT() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time==10)
{
time=0;
flag=1;
}
}
2012 01 06 更新。原来的写得不好,重写。
- //8位共阴数码管间隔0.5S循环左移依次显示 12345678、23456781、34567812 ...
- //2012 01 06 更新 E:\DPJ\OTHER\1\8位左移\8位左移-2.C
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar temp;
- uchar code tab[ ]={0x06,0x5B,0x4F,0x66,
- 0x6D,0x7D,0x07,0x7F};
- bit flag;
- void delay(int ms)
- {
- uchar j;
- while(ms--)
- for(j=0;j<123;j++);
- }
- void T0INTinit()
- {
- TMOD=0x01;
- EA=1;
- ET0=1;
- TR0=1;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- }
- void disp();
- void main()
- {
- T0INTinit();
- temp=0xfe;
- while(1)
- {
- disp();
- if(flag)
- {
- flag=0;
- temp=_cror_(temp,1);
- }
- }
- }
- void disp()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P0=tab[i];
- P2=temp;
- delay(1);
- P2=0xff;
- temp=_crol_(temp,1);
- }
- }
- void T0INT() interrupt 1
- {
- uchar time;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- time++;
- if(time==10)
- {
- time=0;
- flag=1;
- }
复制代码
|