⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.c

📁 步进电机控制 设计硬件电路和单片机程序
💻 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 + -