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

📄 test.5.c

📁 zlg7289在51上的应用程序。经调试通过。
💻 C
字号:
#include "ZLG7289.h"
void Delay(unsigned int t)
{
 do
  {
   TH0 = 0xDC;
   TL0 = 0x00;
   TR0 = 1;
   while ( !TF0 );
   TF0 = 0;
   TR0 = 0;
  } while (--t);
}
void main()
{
 code char DispDat[11] ={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0xFF,0x7B,0x3E};	   /*数字0123456789V的字形数据*/
 bit dp_sign;
 unsigned char dat;
 unsigned char k;
 unsigned char temp[2]={0,0};
 unsigned char n;
 float input;
 TMOD = 0x01;
 Delay(30); //延时300ms,等待ZLG7289 复位完毕
 ZLG7289_Init(4); //调用ZLG7289 的初始化函数
 Delay(100);

 ZLG7289_Test();         /*测试*/
 Delay(200);
 
 ZLG7289_Reset();		 /*复位*/
 
 n=0;
 dp_sign=0; //dp_sign初值置为0
 for (;;)
  {
   if ( ZLG7289_pinINT == 0 ) //有键按下
    { 
     k = ZLG7289_Key();	   /*读取按键值*/
     switch(k)
      {
       case 16: dat= 0         ; break;  //0
       case 25: dat= 1         ; break;  //1
       case 17: dat= 2         ; break;  //2
       case  9: dat= 3         ; break;  //3
       case 26: dat= 4         ; break;  //4
       case 18: dat= 5         ; break;  //5
       case 10: dat= 6         ; break;  //6
       case 27: dat= 7         ; break;  //7
       case 19: dat= 8         ; break;  //8
       case 11: dat= 9         ; break;  //9
	   case 24: dat=DispDat[10]; break;  //V
	   case  3: dat=10         ; break;  //清零
	   case	 2: dat=11         ; break;  //增0.1
	   case  1: dat=12		   ; break;  //减0.1
	   case  0: dat=13         ; break;  //Enter
	   case  8: dat=14         ; break;  //小数点
      }
	 if(dat==10)
	  { 	   
	   ZLG7289_Reset();                  //清零后重新输入
	   dp_sign=0;
	   n=0;
      }
	 else if(dat==11)
	  {
	   if(dp_sign==1&&temp[n-1]<9)
	    {
		 temp[n-1]++;
		 ZLG7289_Download(1,6,0,temp[n-1]); 
		}                                          //有小数点且自增0.1不进位
	   else if(dp_sign==1&&temp[n-1]>=9)
	    {
		 ZLG7289_Download(1,6,0,0);                //在末位显示0
		 temp[n-2]++;
		 ZLG7289_Download(1,5,0,temp[n-2]);
		 ZLG7289_SegOn(47);
		 temp[n-1]=0;
		}                                          //有小数点且自增0.1进位
	   else
	    {
		 n++;
		 ZLG7289_SHL();
		 dp_sign=1;                                //dp_sign值置为1则有小数点输入
	     ZLG7289_SegOn(47);	                       //输入小数点
		 ZLG7289_Download(2,7,0,DispDat[10]);      //电压单位显示
		 ZLG7289_Download(1,6,0,1);                //在末位显示1
		 temp[n-1]=1;
		}                                          //无小数点,只在末位显示1
	  }                                            //自增0.1的实现
	 else if(dat==12)
	  {
	   if(dp_sign==1&&temp[n-1]>0)
	    {
		 temp[n-1]--;
		 ZLG7289_Download(1,6,0,temp[n-1]);
		}
	   else if(dp_sign==1&&temp[n-1]==0)
		{
		 temp[n-2]--;
		 ZLG7289_Download(1,5,0,temp[n-2]);
		 ZLG7289_Download(1,6,0,9);
		 temp[n-1]=9;
		 ZLG7289_SegOn(47);
		}
	   else
	    {
		 n++;
		 temp[n-2]--;
		 ZLG7289_Download(1,5,0,temp[n-2]);
		 ZLG7289_Download(1,6,0,9);
		 ZLG7289_SegOn(47);
		 dp_sign=1;
		 temp[n-1]=9;
		}
	  }
	 else if(dat==13)
	  {
	   if(n==1&&dp_sign==0)
	    input=temp[0];
	   else if(n==1&&dp_sign==1)
	    input=temp[0]*0.1;
	   else
	    input=temp[1]+temp[0]*0.1;
	  }
	 else if(dat==14)
	  {
	   dp_sign=1;                                          //dp_sign值置为1则有小数点输入
	   ZLG7289_SegOn(55);                                  //输入小数点
	  } 
	 else
	  {
	   ZLG7289_SHL();
	   ZLG7289_Download(2,7,0,DispDat[10]);                //电压单位显示
       ZLG7289_Download(1,6,0,dat);                        //按键值显示
	   temp[n]=dat;
	   n++;
	  }
                                                           /*等待按键抬起*/
     while ( !ZLG7289_pinINT );
     Delay(50); 
    }
  }
}

⌨️ 快捷键说明

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