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

📄 p_hot.c

📁 aduc812驱动热敏打印程序,在keil c下开发,是一个完整的工程文件.
💻 C
📖 第 1 页 / 共 4 页
字号:
                    if(ss>9){ss=0;flag1=1;}
                    break;

                    case 15:                    //在横坐标轴上打印坐标 15  共9行
                    ss++;
                    if(ss>9){ss=0;flag1=1;}
                    break;

                    case 20:                    //在横坐标轴上打印坐标 20  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;


                    case 25:                    //在横坐标轴上打印坐标 25  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    case 30:                    //在横坐标轴上打印坐标 30  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    case 35:                    //在横坐标轴上打印坐标 35  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;


                    case 40:                    //在横坐标轴上打印坐标 40  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    case 45:                    //在横坐标轴上打印坐标 45  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    case 50:                    //在横坐标轴上打印坐标 50  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    case 55:                    //在横坐标轴上打印坐标 55  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;


                    case 60:                    //在横坐标轴上打印坐标 60  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;


                    case 65:                    //在横坐标轴上打印坐标 65  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    case 70:                    //在横坐标轴上打印坐标 70  共10行
                    ss++;
                    if(ss>10){ss=0;flag1=1;}
                    break;

                    }
                  }

                    if(ss>0){print_data=print_data+9;}                //除 1 外,其他数据都是5* 7点阵,x=x+2+9
                    else
                    {print_data=print_data+2;}                       //把两点之间的阶跃空白补上
                    send(print_data);                     // 将要打印x个点
                    for(tempi1=tempmin;tempi1<=tempmax;)  //打印x个点
                     {   send(tempi1);
                         tempi1++;
                     }

                   if(ss>0)
                   {
                     ss1=ss-1;

                     switch(j2)
                     {
                     case 5:
                     for(i2=0;i2<7;)            //打印数字 5 的点阵
                     {  tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                      }
                      i2=0;
                     break;

                     case 10:                   //打印数字 10 的点阵

                        if(ss1<=3)
                      {
                        for(i2=0;i2<7;)
                        {
                        tempi1=ll1[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                        else
                      {
                       ss1=ss1-4;
                        for(i2=0;i2<7;)
                       {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                          i2++;
                        }

                     }
                     break;

                      case 15:                  //打印数字 15 的点阵

                        if(ss1<=3)
                      {
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll1[ss1][i2];
                        send(tempi1);
                        i2++;
                         }
                      }
                         else
                     {
                        ss1=ss1-4;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                           i2++;
                        }

                     }
                     break;

                     case 20:                   //打印数字 20 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll2[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 25:                      //打印数字 25 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll2[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 30:                      //打印数字 30 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll3[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 35:                      //打印数字 35 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll3[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 40:                      //打印数字 40 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll4[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 45:                      //打印数字 45 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll4[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 50:                      //打印数字 50 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 55:                      //打印数字 55 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 60:                              //打印数字 60 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll6[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 65:                      //打印数字 65 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll6[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll5[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                          case 70:                      //打印数字 70 的点阵

                        if(ss1<=4)
                     {
                         for(i2=0;i2<7;)
                       {
                        tempi1=ll7[ss1][i2];
                        send(tempi1);
                        i2++;
                        }
                      }
                         else
                      {
                       ss1=ss1-5;
                         for(i2=0;i2<7;)
                        {
                        tempi1=ll0[ss1][i2];
                        send(tempi1);
                        i2++;
                        }

                     }
                     break;

                    }                           //switch 语句结束
                }                               //if语句结束
                    send(0xc8);                  //横坐标轴点
                    send(0x0d);                  //回车换行

              }

}
//////////////////////////////////////////////////////////画曲线子程序
void draw(unsigned int start_id,unsigned int end_id)
{
unsigned int temp_start,temp_end;
unsigned int temp_many,temp_many1;
unsigned int i,j;
unsigned char temp1,temp2,i1;
unsigned int temp3;
temp_start=start_id;
temp_end=end_id;
temp_many=(temp_end-temp_start)/2;
temp_many1=(temp_end-temp_start)/14;
if(flag168==1)
{
 for(i=0;i<temp_many1;i++)
 {
  j=i*14;
  temp3=temp_start+j;
  fpread(temp3);
  temp1=flash_read;
  temp2=flash_read;
  for(i1=0;i1<14;i1++)
  {
   temp3=temp_start+j+i1;
   fpread(temp3);
   if(temp1<flash_read){temp1=flash_read;}
   if(temp2>flash_read){temp2=flash_read;}
  }

        j1=i%20;                     //判断是否在第20个点上
        if(i!=0&j1==0){j2++;}
        j3=i%100;
   key_i=in1;
   if(key_i==0x7f)goto end_draw;
lian(temp1,temp2);
 }
}

else
{
  for(i=0;i<temp_many;i++)
  {
   j=i*2;
   temp3=temp_start+j;
   fpread(temp3);
   temp1=flash_read;

   temp3=temp_start+j+1;
   fpread(temp3);
   temp2=flash_read;

        j1=i%20;                     //判断是否在第20个点上
        if(i!=0&j1==0){j2++;}
        j3=i%100;

   key_i=in1;
   if(key_i==0x7f)goto end_draw;

        lian(temp1,temp2);

   }
}
goto end_xx;

end_draw:
flag_end=1;

end_xx:
temp1=0;
temp2=0;

}

////////////////////////////////////////////////////////////a/d转换中断
void adc(void) interrupt 6
{
unsigned char adcdl,adcdh;
adcdl=ADCDATAL;
adcdh=ADCDATAH;
flag_ad=1;


adcdh=adcdh&0x0f;
ad_data=adcdh;
ad_data=ad_data<<8;
ad_data=ad_data|adcdl;


     if(max_c==0){max_temp=ad_data;max_c=1;}          //一分钟数据取最大值,最小值
          else{if(ad_data>max_temp)max_temp=ad_data;}
        if(min_c==0){min_temp=ad_data;min_c=1;}
          else{if(ad_data<min_temp)min_temp=ad_data;}
}
/////////////////////////////////////////////////////
void get_time()                              //取时间
{
unsigned char tempm1,tempm2,i;
   for(i=1;i<5;)
  {
    tempm1=(i+1)*2-1;
    tempm2=i-1;
tempm1=tempm1+0x80;

write_cm(tempm1);
read_ds();
cs=0;
////delay1(2);
sclk=0;
geted_time[tempm2]=xx2;
i++;
   }

write_cm(0x8d);                 //取年
read_ds();

cs=0;
//delay1(2);
sclk=0;
geted_time[4]=xx2;

write_cm(0x81);                 //取miao
read_ds();

cs=0;
//delay1(2);
sclk=0;
geted_time[5]=xx2;
}
///////////////////////////
void led_clear()
{
led_7219(6,led_bcd[10]);
led_7219(5,0x4e);
led_7219(4,0x0e);
led_7219(3,0x4f);
led_7219(2,0x77);
led_7219(1,0x05);
}
/////////////////////////////
void led_print()
{
led_7219(6,0x67);
led_7219(5,0x05);
led_7219(4,led_bcd[10]);
if(flag168==1){led_7219(3,led_bcd[1]);}
else{led_7219(3,led_bcd[10]);}

if(flag168==1){led_7219(2,led_bcd[6]);}
if(flag24==1){led_7219(2,led_bcd[2]);}
if(flag8==1){led_7219(2,led_bcd[10]);}

if(flag168==1){led_7219(1,led_bcd[8]);}
if(flag24==1){led_7219(1,led_bcd[4]);}
if(flag8==1){led_7219(1,led_bcd[8]);}
}
//////////////////////////////////
void ledlp()                         //显示 lp
{
led_7219(6,0x0e);
led_7219(5,0x67);
led_7219(4,0x80);
led_7219(3,0x80);
led_7219(2,0x80);
led_7219(1,0x80);
}
//////////////////////////
void led_wei()
{
led_7219(1,led_bcd[0]);

if(fan_wei==0){led_7219(2,led_bcd[2]);}
else{led_7219(2,led_bcd[6]);}

if(fan_wei==0){led_7219(3,led_bcd[1]);}
else{led_7219(3,led_bcd[10]);}

led_7219(4,led_bcd[10]);
led_7219(5,led_bcd[10]);
led_7219(6,0x47);
}
///////////////////////////
void led_dog(unsigned char dog)                    //显示电流变比
{
led_7219(1,led_bcd[5]);
led_7219(2,1);

if(dog==1){led_7219(3,led_bcd[5]);}
if(dog==2){led_7219(3,led_bcd[0]);}
if(dog==3){led_7219(3,led_bcd[0]);}
if(dog==4){led_7219(3,led_bcd[0]);}

if(dog==1){led_7219(4,led_bcd[7]);}
if(dog==2){led_7219(4,led_bcd[0]);}
if(dog==3){led_7219(4,led_bcd[5]);}
if(dog==4){led_7219(4,led_bcd[0]);}

if(dog==1){led_7219(5,led_bcd[10]);}
if(dog==2){led_7219(5,led_bcd[1]);}
if(dog==3){led_7219(5,led_bcd[1]);}
if(dog==4){led_7219(5,led_bcd[2]);}

led_7219(6,0x1f);
}
///////////////////////////////////
void led_time(void)
{
unsigned char op1,np1,np2;
unsigned char temp1;

get_time();


⌨️ 快捷键说明

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