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

📄 display.c

📁 这是一个简单的步进电机的程序,用C51编写,主要可以定时控制电机进行180度的旋转
💻 C
字号:
//文件名:display.c
//入口参数:待显示的时间数组
//功能:显示
#include<reg51.h>
#define uchar unsigned char 

extern bit Glint_enable_flag,Pause_flag;
extern bit volatile Glint_time_flag;
extern uchar Counter;
extern bit Time_set_mode;

uchar code Control_table[]={0x1e,0x1d,0x1b,0x17,0x0f};//显示位控制码
                          //p1.0,p1.1,p1.2,p1.3,p1.4 
uchar  Dis_bit_p=0;//控制位指针

uchar code Table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
                  /*共阳LED显示查表*/ /* 0    1     2    3    4    5    6    7    8    9  -  不显示*/

extern uchar Time[5];

void interrupt_t1() interrupt 3 using 2///////////////////////////////////////////////////
{
 uchar tmp,tmp1,sndacc;
 TH1=0xf8;//5ms
 TL1=0xcd;
 
if(Time_set_mode==1||Pause_flag==1)
 {
  sndacc++;
  if(sndacc==250)
  {
   Glint_time_flag=!Glint_time_flag;
   sndacc=0;
  }
 }

 if(Glint_enable_flag==1&&Glint_time_flag!=0&&(Counter-1)==Dis_bit_p )//闪烁
 
  //如果是调时位,则跳过,不让其显示
  //@@@@@@Dis_bit_p++;
  {
  Dis_bit_p++;
  if(Dis_bit_p>4)
  Dis_bit_p=0;
  }
  tmp=P1;
  tmp=tmp&0xe0;//保存高三位1110,0000
  tmp1=tmp|Control_table[Dis_bit_p];//取控制码
  P1=tmp1;
  if(Glint_enable_flag==1&&Glint_time_flag!=0&&Pause_flag==1/*&&(Counter-1)==Dis_bit_p */)//闪烁
  P2=0xff;
  else


   {
   switch(Dis_bit_p)
   {
    case 0: P2=Table[Time[0]];break;
    case 1: P2=Table[Time[1]];break;
    case 2: P2=Table[Time[2]];break;
    case 3: P2=Table[Time[3]];break;
    case 4: P2=Table[Time[4]];break;
   }
   }
 
 Dis_bit_p++;
 if(Dis_bit_p>4)
 Dis_bit_p=0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -