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

📄 xd2008_ds_hz.h

📁 西安电子科技大学08单片机开发板综合运用源代码
💻 H
字号:

/*-----------有关显示字模-------------------*/      
unsigned int code dis_numb1[16]={0x4000,0x4FFE,0x4814,0x4824,0x4844,0x7F84,0x4804,0x4804,
  0x4804,0x7F84,0x4844,0x4844,0x4844,0x4FFE,0x4000,0x0000};//西
unsigned int code dis_numb2[16]={0x0101,0x0901,0x3101,0x2102,0x21E2,0x2F14,0xA514,0x6108, 
  0x2114,0x2124,0x21C2,0x2103,0x2902,0x3100,0x2100,0x0000};//安
unsigned int code dis_numb3[16]={0x0000,0x0000,0x1FF0,0x1220,0x1220,0x1220,0x1220,0xFFFC,
  0x1222,0x1222,0x1222,0x1222,0x1FF2,0x0002,0x000E,0x0000};//电
unsigned int code dis_numb4[16]={0x0080,0x0080,0x4080,0x4080,0x4080,0x4082,0x4081,0x47FE,
  0x4880,0x5080,0x6080,0x4080,0x0080,0x0180,0x0080,0x0000};//子
unsigned int code dis_numb5[16]={0x0820,0x4840,0x4980,0x4E00,0x7FFF,0x8A00,0x8920,0x0020,
  0x4420,0x3340,0x0040,0x0040,0xFFFF,0x0080,0x0080,0x0000};//科
unsigned int code dis_numb6[16]={0x1080,0x1082,0x1101,0xFFFE,0x1200,0x1402,0x0002,0x1304,
  0x12C8,0x1230,0xFE30,0x1248,0x1384,0x1206,0x1004,0x0000};//技
unsigned int code dis_numb7[16]={0x0400,0x0401,0x0402,0x0404,0x0408,0x0430,0x05C0,0xFE00,
  0x0580,0x0460,0x0410,0x040C,0x0406,0x0403,0x0402,0x0000};//大
unsigned int code dis_numb8[16]={0x0200,0x0C40,0x0840,0x4840,0x3A40,0x2A40,0x0A42,0x8A41,
  0x7AFE,0x2B40,0x0A40,0x1840,0xEA40,0x4C40,0x0840,0x0000};//学

unsigned int code dis_numb0[16]={0x0000,0x0060,0x03E0,0x0F90,0x3F88,0x3D84,0x6184,0x7D80,
  0x7D80,0x21C4,0x3FE4,0x1FC0,0x0F90,0x01D8,0x0040,0x0000};//Q
unsigned int code dis_numbz1[16]={0x0000,0x1010,0x3838,0x14C0,0x1100,0x1000,0x17FC,0x5002,
  0xF084,0x19C0,0x0430,0xC208,0x3400,0x0FFE,0x0200,0x0100};//你

unsigned int code dis_numbz2[16]={0x0000,0x0100,0x4100,0x6100,0x5100,0x4FFE,0x4101,0x4102,
  0x4100,0x0104,0x0FCE,0x0830,0xF828,0x0F44,0x08C2,0x0801};//好
unsigned int code dis_numbz3[16]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000};//!
unsigned int code dis_numbz[]={
                //不显示
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
                //实
  0x0000,0x2040,0x3040,0x2842,0x2047,0x2048,0x2050,0x6FE0,
  0xA050,0x2948,0x2DC4,0x3242,0x2042,0x3041,0x0841,0x0000, 
                //践
  0x0000,0x0906,0x2941,0x3922,0x491C,0x0970,0xFF88,0x0484,
  0x0482,0x0008,0x7C88,0x4488,0x47FC,0x4404,0x7CFC,0x0004,
                //很
  0x0000,0x0004,0x0046,0x7ECC,0x5258,0x5220,0x53C8,0x5204,
  0x5202,0x7FFF,0x0002,0x5800,0xC400,0x23FF,0x1100,0x0880,
                //重
  0x0000,0x1002,0x1002,0x1012,0x97D2,0x9552,0x9552,0x9552,
  0xFFFE,0x5552,0x5552,0x5552,0x57D2,0x5012,0x1002,0x1002,
                //要
  0x0000,0x4040,0x4042,0x5F43,0x5264,0x5254,0x7E48,0x5248,
  0x5248,0x5254,0x7FD4,0x5272,0x5242,0x5F41,0x4041,0x4040,
                //!
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000,

  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
  
unsigned int code dis_numbz0[]={
                //不显示
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
                //!
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000,
                //要
  0x0000,0x4040,0x4042,0x5F43,0x5264,0x5254,0x7E48,0x5248,
  0x5248,0x5254,0x7FD4,0x5272,0x5242,0x5F41,0x4041,0x4040,
                //重
  0x0000,0x1002,0x1002,0x1012,0x97D2,0x9552,0x9552,0x9552,
  0xFFFE,0x5552,0x5552,0x5552,0x57D2,0x5012,0x1002,0x1002,
                //很
  0x0000,0x0004,0x0046,0x7ECC,0x5258,0x5220,0x53C8,0x5204,
  0x5202,0x7FFF,0x0002,0x5800,0xC400,0x23FF,0x1100,0x0880,
   
                //践
  0x0000,0x0906,0x2941,0x3922,0x491C,0x0970,0xFF88,0x0484,
  0x0482,0x0008,0x7C88,0x4488,0x47FC,0x4404,0x7CFC,0x0004,
                //实
  0x0000,0x2040,0x3040,0x2842,0x2047,0x2048,0x2050,0x6FE0,
  0xA050,0x2948,0x2DC4,0x3242,0x2042,0x3041,0x0841,0x0000, 

  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
  unsigned int code r_numb0[]={
  0x03C0,0x0FF0,0x3818,0x6004,0x6006,0xC003,0x8003,0x8001,//图形
  0x8001,0x8003,0xC003,0xC006,0x6006,0x300C,0x1C38,0x07E0};
  unsigned int code r_numb1[]={
  0x0000,0x0FF0,0x0C30,0x0C30,0x0C30,0x7FFE,0x4C36,0x4C36,//图形
  0x4C36,0x4C36,0x4FF6,0x4006,0x4006,0x7FFE,0x7FFE,0x0000};
  unsigned int code r_numb2[]={
  0xFFFF,0xF00F,0xF3CF,0xF3CF,0xF3CF,0x8001,0xB3C9,0xB3C9,//图形
  0xB3C9,0xB3C9,0xB009,0xBFF9,0xBFF9,0x8001,0x8001,0xFFFF};
  



 unsigned int code d_num55[]={0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,
                              0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555};
 unsigned int code d_numaa[]={0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,
                              0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa};

unsigned char code d_num[]={0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,//0
                           0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,//1
                           0x00,0x00,0x72,0x92,0x92,0x92,0x4C,0x00,//2
                           0x00,0x00,0x6C,0x92,0x92,0x92,0x00,0x00,//3
                           0x00,0x00,0x10,0xFE,0x10,0x10,0xF0,0x00,//4   
                           0x00,0x00,0x8C,0x92,0x92,0xF2,0x00,0x00,//5 
                           0x00,0x00,0x0C,0x92,0x92,0x92,0x7C,0x00,//6
                           0x00,0x00,0xFE,0x80,0x80,0x80,0x80,0x00,//7
                           0x00,0x00,0x7C,0x92,0x92,0x92,0x7C,0x00,//8   
                           0x00,0x00,0x7C,0x92,0x92,0x92,0x60,0x00};//9 

/*

*/

void display_r(unsigned int numb) //显示一列数据
  { unsigned char i;
    unsigned int x;
    x=~numb;
    LEDALE=0,LEDCLK=0;
   for(i=0;i<16;i++)
     {
 	  /* if (x & 0x8000) LEDDI=1;
	     else LEDDI=0;*/
       LEDDI=(bit)(x & 0x8000);
       LEDCLK=1;LEDCLK=1;//delay_s(2);
       LEDCLK=0;LEDCLK=0;//delay_s(2);
       x=x<<1;
	 }
	Y0=led123 | 0x80; //关显示器
	LEDALE=1;//delay_s(2);
    LEDALE=0;
  }   
 //point 是小数点=1显示,=0不显示
void display_char(unsigned char n1,n2,n3,n4,point) //显示个汉字
  { unsigned char k1,k2,j;
    unsigned int x;

	unsigned char y0data=0,abcd=0,y1,y2;
	k1=n2*8;k2=n4*8;
    if(point==0)
	 {
   	  for (j=0;j<8;j++)
	   {
	    y1=d_num[k1+j];
        y2=d_num[k2+j];
        x=y1*256+y2;
        display_r(x);//显示一列
        abcd=abcd<<3;	
	    y0data=abcd |(led123 & 0x07);
        Y0=y0data; //显示一列数据
	    abcd=j+1;
	    delay_s(0x40); 
       }
     }
    else
	   {
   	    for (j=0;j<8;j++)
	     {
		   if(j==0) y1=(d_num[k1+j])|0x2;
		    else  y1=d_num[k1+j];
          y2=d_num[k2+j];
          x=y1*256+y2;
          display_r(x);//显示一列
          abcd=abcd<<3;	
	      y0data=abcd |(led123 & 0x07);
          Y0=y0data; //显示一列数据
	      abcd=j+1;
	      delay_s(0x40); 
         }
       }

	k1=n1*8;k2=n3*8;
	abcd=8;
    for (j=0;j<8;j++)
	 {
	  y1=d_num[k1+j];
      y2=d_num[k2+j];
      x=y1*256+y2;
	  display_r(x);//显示一列
      abcd=abcd<<3;	
	  y0data=abcd |(led123 & 0x07);
      Y0=y0data; //显示一列数据
	  abcd=j+9;
	  delay_s(0x40); 
     } 
  }

//--------------------------------------------
 void disp_16r(unsigned int numb[])//反显示
   {   
    unsigned char y0data=0,abcd=0,i,j;
	j=15;
   	for(i=0;i<16;i++)
	  {
        display_r(numb[j]);
        abcd=abcd<<3;	
		y0data=abcd |(led123 & 0x07);
        Y0=y0data; //显示一列数据
		abcd=i+1;
		j--;
	    delay_s(0x40);
      }
	    Y0=led123 | 0x80; //关显示器  
   }
 void disp_16rz(unsigned int numb[])//正显示16×16
   {   
    unsigned char y0data=0,abcd=0,i;
   	for(i=0;i<16;i++)
	  {
        display_r(numb[i]);//正显示
	    abcd=abcd<<3;	
		y0data=abcd |(led123 & 0x07);
        Y0=y0data; //显示一列数据
		abcd=i+1;
		delay_s(0x40);
      }
	    Y0=led123 | 0x80; //关显示器  
   }

void dis_xd(unsigned char delay_n) //跳跃显示
  { 
    unsigned char n,i;
    unsigned int j;
    n=delay_n;
    j=0x300;
    while (1)
    {
	  led123=0x01;  
      for(i=0;i<n;i++)
	   {
        disp_16r(dis_numb1); //西
        delay_l(j);
		if (K1==0) goto quit_xd1;
       }
	   for(i=0;i<n;i++)
	   {
       disp_16r(dis_numb2); //安
       delay_l(j);
	   if (K1==0) goto quit_xd1;
       }
	  for(i=0;i<n;i++)
	   {
       disp_16r(dis_numb3); //电
       delay_l(j);
	   if (K1==0) goto quit_xd1;
       }
	 led123=0x02;
	 for(i=0;i<n;i++)
	   {
       disp_16r(dis_numb4); //子
       delay_l(j);
	   if (K1==0) goto quit_xd1;
	   }
     for(i=0;i<n;i++)
	   {
       disp_16r(dis_numb5); //科
       delay_l(j);
	   if (K1==0) goto quit_xd1;
       }
 	 for(i=0;i<n;i++)
	   {
       disp_16r(dis_numb6); //技
       delay_l(j);
	   if (K1==0) goto quit_xd1;
	   }
	 led123=0x04;
	 for(i=0;i<n;i++)
	   {
      disp_16r(dis_numb7); //大
      delay_l(j);
	  if (K1==0) goto quit_xd1;
      }
	 for(i=0;i<n;i++)
	   {
       disp_16r(dis_numb8);//学
       delay_l(j);
	   if (K1==0) goto quit_xd1;
       }
  	  led123=0x01; 
     }
   quit_xd1: 
   speak_2();
  } 
/*-------------动态显示图形-------------*/
void disp_phzR( unsigned int *num)//正显示16×16
   {   
    unsigned char y0data=0,abcd=0,i;
   	for(i=0;i<16;i++)
	  {
        display_r( *num);//正显示
	    abcd=abcd<<3;	
		y0data=abcd |(led123 & 0x07);
        Y0=y0data; //显示一列数据
		num++;
		abcd=i+1;
		delay_s(0x40);
      }
	    Y0=led123 | 0x80; //关显示器  
    }
 //---n是延时数据0-255------
 void disp_7hz_R(unsigned char n)//右移汉字
   {   
    unsigned char i,k;
	unsigned int *p;
    while(1)
      {
	  
   	  for(k=0;k<0x68;k++)       //7个汉字//0x70
	    {  
		  p= &dis_numbz[k];     //取列数据的地址
		  for(i=0;i<n;i++) //延时n次
		   {
  	        disp_phzR(p);     //显示一个汉字     
			if(K1==0) goto quit_7hz;
           }
         led123=~led123;
         }//延时n次
		 speak(0x800);
       }
	 quit_7hz:
     speak_2();
 	 while(K1==0);delay_l(0x4000);
    }
//---n是延时数据0-255------
 void disp_7hz_L(unsigned char n)//左移汉字
   {   
    unsigned char i,k;
	unsigned int *p;
    while(1)
      {
       
   	   for(k=0;k<0x68;k++)       //7个汉字 //0x70
	    {  
		  p= &dis_numbz0[0x70-k];     //取列数据的地址
		  
		  for(i=0;i<n;i++) //延时n次
		   {
  	        disp_phzR(p);     //显示一个汉字     
			if(K1==0) goto quit_7hz;
           }
		 led123=~led123; 
         }//延时n次
		 speak(0x800);
       }
	 quit_7hz:
     speak_2();
 	 while(K1==0);delay_l(0x4000);

    }

  /*---------显示温度函数---------*/
 void display_wd(void)
     {  unsigned int a; 
	    float t;
		pot=1;//显示小数点
        while(K1==1)
		 {
          //clwd:
	      t=Read_Temperature();
   	      //EA=1;
		  //if((t>130)|| (t <0)) goto clwd;
		  a=t*100;
		  qs=(unsigned char)(a/1000);
		  bs=(unsigned char)(a%1000/100);
		  ss=(unsigned char)(a%100/10);
		  gs=(unsigned char)(a%10);
		  //printf("\n qs=%d bs=%d ss=%d gs=%d",(unsigned int)qs,(unsigned int)bs,(unsigned int)ss,(unsigned int)gs);
		  printf("\n%.3f",t);
		  led123=~led123;
		 }
      }
 /*---------显示增1函数---------【演示】*/
  void display_123(void)
     { unsigned int a; 
	   pot=0;
       while(K1==1)
        {
        for(a=0;a<9999;a++)
	  	  { 
	       qs=(unsigned char)(a/1000);
		   bs=(unsigned char)(a%1000/100);
		   ss=(unsigned char)(a%100/10);
		   gs=(unsigned char)(a%10);
		   delay_l(0x3000);
		   led123=~led123;
		   if(K1==0) goto sub1;
	      }
        }
	sub1:
	 ;
	}

/*-------显示图形----------*/
 void disp_tx1(void)
    {
	 unsigned int idata i;
	 led123=0x05;
	 for(i=0;i<0x80;i++)
	   {
        //disp_16r(dis_numb0); //Q
		disp_16r(r_numb1);
        delay_l(0x100);
		led123=~led123;
		if (K1==0) goto quit_xdq;
       }   
    quit_xdq:
	speak_2();
    while(K1==0);
   }
   void disp_tx2(void)
    {
	 unsigned int idata i;
	 led123=0x05;
	 for(i=0;i<0x80;i++)
	   {
        //disp_16r(dis_numb0); //Q
		disp_16r(r_numb2);
        delay_l(0x80);
		led123=~led123;
		if (K1==0) goto quit_xdq;
       }   
    quit_xdq:
	speak_2();
    while(K1==0);
   }

 /*-------全屏测试---------*/
 void disp_55_aa(unsigned int x,y)
    {unsigned int j;
     for(j=1;j<0x50;j++)//0x50次自动跳出
     {
	  unsigned int idata i;
	  led123=~led123;
	  for(i=0;i<x;i++)
	    {
        disp_16r(d_num55); //显示55H
        if (K1==0) goto quit_55;
        }
      delay_l(y);
     for(i=0;i<x;i++)
	    {
        disp_16r(d_numaa); //显示AAH
        if (K1==0) goto quit_55;
        }
      }     
    quit_55:
	speak_2();
    while(K1==0);
   }

  //-----------练习程序----------------
  void disp_16line( unsigned int y)//正显示16×16
   {   
    unsigned char idata y0data=0,abcd=0,i,j,k;
	unsigned int idata x;
   	for(i=0;i<16;i++)
	  {
	    x=0x8000;
		//display_r(x);//正显示一列
		//y0data=abcd |(led123 & 0x07);
		abcd=abcd<<3;
        for(k=0;k<16;k++)
 	     {
		  display_r(x);//正显示一列
		  y0data=abcd |(led123 & 0x07);
	      for(j=0;j<0x40;j++)
		   {
		    //display_r(x);//正显示一列
			//y0data=abcd |(led123 & 0x07);
		    Y0=y0data; //显示一列数据
			}
	 	 delay_l(y);
		 x=x>>1;
		 if(K1==0) goto quit_line;
         }  
	    //abcd=abcd<<3;	
		//y0data=abcd |(led123 & 0x07);
        //Y0=y0data; //显示一列数据
		delay_l(0x2000);
		abcd=i+1;
		speak(0x500);
		led123=~led123;
      }
	    quit_line:
		//while(K1==0);
		//speak_2();
	    Y0=led123 | 0x80; //关显示器  

   }

⌨️ 快捷键说明

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