138译码器动态显示1-100
时间:10-02
整理:3721RD
点击:
我用138译码器动态显示1-100,结果只是显示三个零,代码如下。请多指教【抱拳】
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
u8 temp,bai,shi,ge,a;
sbit LSA=P2^2; //138译码器三个输入口
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void init(); //初始化函数
void display(u8 bai,u8 shi,u8 ge);
void delay(u16 z);
void main()
{
init();
while(1)
{
if(a==20)
{
a=0;
temp++;
if(temp==100)
temp=0;
bai=temp/100;
shi=temp%100/10;
ge=temp%10;
}
display(bai,shi,ge);
}
}
void init() //初始化函数
{
temp=0;
a=0;
bai=0;
shi=0;
ge=0;
TMOD=0x01;
TH0=(25535-50000)/256;
TL0=(25535-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void display(u8 bai,u8 shi,u8 ge) //显示函数
{
LSA=0;
LSB=0;
LSC=0;
P0=smgduan[ge];
delay(1);
//P0=0x00;
LSA=1;
LSB=0;
LSC=0;
P0=smgduan[shi];
delay(1);
//P0=0x00;
LSA=0;
LSB=1;
LSC=0;
P0=smgduan[bai];
delay(1);
//P0=0x00;
}
void delay(u16 z) //延时函数
{
u16 x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Timer0() interrupt 0 //中断函数
{
TH0=(25535-50000)/256;
TL0=(25535-50000)%256;
a++;
}
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
u8 temp,bai,shi,ge,a;
sbit LSA=P2^2; //138译码器三个输入口
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void init(); //初始化函数
void display(u8 bai,u8 shi,u8 ge);
void delay(u16 z);
void main()
{
init();
while(1)
{
if(a==20)
{
a=0;
temp++;
if(temp==100)
temp=0;
bai=temp/100;
shi=temp%100/10;
ge=temp%10;
}
display(bai,shi,ge);
}
}
void init() //初始化函数
{
temp=0;
a=0;
bai=0;
shi=0;
ge=0;
TMOD=0x01;
TH0=(25535-50000)/256;
TL0=(25535-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void display(u8 bai,u8 shi,u8 ge) //显示函数
{
LSA=0;
LSB=0;
LSC=0;
P0=smgduan[ge];
delay(1);
//P0=0x00;
LSA=1;
LSB=0;
LSC=0;
P0=smgduan[shi];
delay(1);
//P0=0x00;
LSA=0;
LSB=1;
LSC=0;
P0=smgduan[bai];
delay(1);
//P0=0x00;
}
void delay(u16 z) //延时函数
{
u16 x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Timer0() interrupt 0 //中断函数
{
TH0=(25535-50000)/256;
TL0=(25535-50000)%256;
a++;
}