📄 display.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define Pdata P0
sbit D3=P2^3;
sbit D2=P2^2;
sbit D1=P2^1;
sbit D0=P2^0;
//共阳,Aled[10]='-',Aled[11]='S',Aled[12]='P'
unsigned char code Aled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,0xbf,0x92,0x8c,0x00};
unsigned char buff[4];
void Ldelay()
{
unsigned char j=100;
while(j--);
}
//d3,d2,d1,d0用以选择某一位的开和关,为0时亮,为1时灭,Idata是要显示的数据
void Display(uchar shift,uint Idata) //十进制转换段码功能模块,显示十进制数
{
uchar qian,bai,shi,ge;
bit d0=0;
bit d1=0;
bit d2=0;
bit d3=0;
qian=Idata/1000; //取出千位
bai=(Idata%1000)/100; //取出百位
shi=(Idata%100)/10; //取出十位
ge=Idata%10; //取出个位
if(shift==0)d3=1; //若shift=0,即正转标志,则数码管第四位灭
if(shift==1)qian=10; //若shift=1,即反转标志,则数码管最高位显示'-'号
if(shift==2){qian=11;bai=12;d1=1;}//若shift=2,即速度调节标志,则千位和百位显示'sp',各位显示速度值
buff[3]=Aled[qian];
buff[2]=Aled[bai];
buff[1]=Aled[shi];
buff[0]=Aled[ge];
D0=D1=D2=D3=1;
Pdata=buff[3];
D3=d3;
Ldelay();
D3=1;
Pdata=buff[2];
D2=d2;
Ldelay();
D2=1;
Pdata=buff[1];
D1=d1;
Ldelay();
D1=1;
Pdata=buff[0];
D0=d0;
Ldelay();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -