动态扫描显示
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
sbit G=P2^0;
sbit S=P2^1;
void time50ms(uchar j)
{
uchar k;
for(k=0;k<j;k++)
{
TL0=(65536-500)%256;
TH0=(65536-500)/256;
TR0=1;
while(!TF0);
TF0=0;
}
}
void main(void)
{
uint i,m;
uchar seg[]={0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0};
TMOD=0x01;
while(1)
{
for(i=0;i<100;i++)
{
for(m=0;m<1000;m++)
{
S=0;G=0;
P1=seg[i/10];
S=0;G=1;
time50ms(1);
S=0;G=0;
P1=seg[i%10];
S=1;G=0;
time50ms(1);
S=0;G=0;
}
}
}
}
静态扫描显示
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void time50ms(uint i)
{
while(i--)
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
TR0=1;
while(! TF0);
TF0=0;
}
}
void main(void)
{
TMOD=0x01;
uchar k,j,seg[]={0x90;0x80;0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0,0x01};
while(1)
{
for(k=0;k<100;k++)
{
P1=seg[k/10]; //P1作十位
for(j=10;j<20;j++)
{
P2=seg[j%10]; //作个位
}
time50ms(20);
}
}
}