|
发表于 2019-12-30 10:50:02
|
显示全部楼层
本帖最后由 HC6800-ES-V2.0 于 2019-12-31 09:16 编辑
#include<reg51.h>
#define GPIO_DIG P0//数码管显示口
sbit LSA=P2^2;//138译码器
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code DIG_CODE[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管显示编码
unsigned char i;
void DigDisplay(unsigned char i)//数码管显示函数
{
unsigned char j,k;
for(j=0;j<7;j++)//只有2个数码管
{
switch(j) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第1位
case(3):
LSA=1;LSB=1;LSC=0; break;//显示第1位
case(4):
LSA=0;LSB=0;LSC=1; break;//显示第1位
case(5):
LSA=1;LSB=0;LSC=1; break;//显示第1位
case(6):
LSA=0;LSB=1;LSC=1; break;//显示第1位
}
GPIO_DIG=DIG_CODE;//发送段码
k=10; //扫描间隔时间设定
while(k--);
GPIO_DIG=0x00;//消隐
}
}
void main(void)
{
unsigned int j;
while(1)
{
for (i=1;i<9;i++)
{
for (j=0;j<1000;j++)
{
DigDisplay(i);
}
}
}
}
|
|