亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? 這是驅(qū)動出租車開票打印機的程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
 TL0=up_time_l;           //載入抬起時間
 TH0=up_time_h;

 if(insert_line>0)
   {if(plc==0||plc==12)
     {insert_line--;  main_delay(30); IE1=0; EX1=1; goto nodot;}
    }

 if(plc==0)         {if(del_1==1) plc+=2;}
    else if(plc==12) {if(del_2==1) plc+=2;}
    else if(plc==10) {if(del_1==1) plc+=1;}
    else if(plc==22) {if(del_2==1) plc+=1;}

 if(insert_line==0) insert_line=insert_line_bak;

 TR0=1;

 dot_done=0;              //清點打印完成數(shù)
 dot_count=0;             //清點計數(shù)
 up_or_down=1;            //打印頭為抬起
 line_over=0;             //一行打完的標志清零


// if(int_counter==1)       //如果第一次計時
 /// { TR0=1;  back=0;}                 //開定時器
 // else if(int_counter==2) //如果是假計時,
 //   {TR0=0; int_counter=0; EX1=1; }    //關(guān)打點計時,清行中斷計數(shù),從新打開自己的行中斷
  //  else {TR0=0; EX1=1;}
 nodot:
 next_dota=1; next_dotb=1; next_dotc=1; next_dotd=1;

}

//============================================================================

void dot_int(void) interrupt 1 //T0       //點中斷
{
 if(back==1)    //如果是在打印頭返回狀態(tài)
     {if(back_counter<35)
          { TL0=down_time_l; TH0=down_time_h;  back_counter++; back=1;}  //重載計數(shù)器,計數(shù)器加
        else
            { back=0; back_counter=0; TR0=0;line_over=1;  IE1=0; EX1=1; }
              //若沒返回到一行,返回標志清零,計數(shù)器清0,關(guān)打點中斷,
      }
   else prt_dotline();
}


//===================================================================
void prt_dotline(void)
{unsigned char x,y;
 if(up_or_down && ET0)      //如果在針抬起狀態(tài)
    { TL0=down_time_l;            //載入抬起時間地位
      TH0=down_time_h;            //高位
      up_or_down=!up_or_down;     //針狀態(tài)為打下



      dot_done++;                //一點行已打印過的點數(shù)++
      if(dot_done<=(ch_per_head*24)  )  EX1=0;   //如果沒到144點,關(guān)行復位中斷
      else { back=1; m_a=1; m_b=1; m_c=1; m_d=1;
             plc++;      //打完一行,行計數(shù)加
            if(plc==12)           //若打完12行
                { flash=1;    //要求更新緩沖
                  if(p_over) {IE1=0; EX1=0; ET0=0;}   //若已打完,關(guān)全部中斷
                 }
               else if(plc==24)   //若兩行都打完
                  {flash=2; plc=0; del_1=del_bak1; del_2=del_bak2;
                   if(p_over)                  //若已打完,關(guān)全部中斷
                     { IE1=0; EX1=0; ET0=0;}
                  }    //要求更新點緩沖
            }
        //若到了144點,關(guān)打點中斷,置點行打完標志,點行計數(shù)器++,從0--23點行往返
        //若開始打新緩沖頁,允許更新緩沖

      x=dot_count/(ch_per_head*6);             //判斷是哪個針頭打
      m_a=1; m_b=1; m_c=1; m_d=1;
      switch (x)
      {case 0: m_a=next_dota;     //針打下已準備好的電緩沖
               x=dot_count/6;     //緩沖中第幾個字節(jié)
               y=dot_count%6;     //該字節(jié) 第幾位
               if((prt_buf[plc].n[x]<<y)&0x80) next_dota=0; //準備下一個點
                else next_dota=1;
         break;
       case 1: m_b=next_dotb;     //針打下已準備好的電緩沖
               x=dot_count/6;     //緩沖中第幾個字節(jié)
               y=dot_count%6;     //該字節(jié) 第幾位
               if((prt_buf[plc].n[x]<<y)&0x80) next_dotb=0; //準備下一個點
                else next_dotb=1;
         break;
       case 2: m_c=next_dotc;     //針打下已準備好的電緩沖
               x=dot_count/6;     //緩沖中第幾個字節(jié)
               y=dot_count%6;     //該字節(jié) 第幾位
               if((prt_buf[plc].n[x]<<y)&0x80) next_dotc=0; //準備下一個點
                else next_dotc=1;
         break;
       case 3: m_d=next_dotd;     //針打下已準備好的電緩沖
               x=dot_count/6;     //緩沖中第幾個字節(jié)
               y=dot_count%6;     //該字節(jié) 第幾位
               if((prt_buf[plc].n[x]<<y)&0x80) next_dotd=0; //準備下一個點
                else next_dotd=1;
         break;
       }
     }
   else if((up_or_down==0) && ET0)    //若針是打下的
      { TL0=up_time_l;    TH0=up_time_h;     //載入打下時間
       // m_a=1; m_b=1; m_c=1; m_d=1;          //針抬起
        up_or_down=!up_or_down;              //置針頭標志為抬起
         dot_count+=(ch_per_head*6);         //修改下一個取點位置
        if(dot_count>=(ch_per_head*24-1))  dot_count=dot_count-(ch_per_head*24-1); //修改下一個點的位置
       }

}

//=============================================

void rec_text(void) //interrupt 4
{unsigned char ch=0,k;
 unsigned long int n=0;
 busy=0; rlc=0; p_over=0; del_bak1=1; del_bak2=1;


 while(rlc<max_rec_line )        //當緩沖沒滿4行
    {while(ch<24)        //當一行沒滿24字節(jié)
      {if(RI==1)         //當串口標志位
           {k=SBUF; RI=0; n=0; if((rlc==max_rec_line -1)&&(ch==1)) busy=1; //收數(shù)據(jù),清標志位,當最后一行,變忙
       if((k!=0x0d)&&(k!=0x0a))         //若不是回車
           {rec_buf[rlc].n[ch]=k; ch++;     //接收字符
            if(k>=0xb0)                     //若有中文
                 {if(rlc==0) del_bak1=0;    //抽行標志位
                   else if(rlc==1) del_bak2=0;}
            }                               //若不是回車,寫入緩沖
       else if(k==0x0d)                 //若是回車,這一行緩沖剩下的用空格0x00填補
             {if((ch==0)&&((temp!=0x0d)&&(temp!=0x0a)))  nop;
                 else
                     {while(ch<24) {rec_buf[rlc].n[ch]=' ';
                      if((rlc==max_rec_line -1)&&(ch==1)) busy=1; ch++;}
                      }
              }
            else if(k==0x0a&&temp!=0x0d)
              {while(ch<24) {rec_buf[rlc].n[ch]=' '; if((rlc==max_rec_line -1)&&(ch==1)) busy=1; ch++;}
               }
          temp=k;
         }
       //if(rlc>0&&ch>0)
        n++; if(n>15000)
          {p_over=1; first_bag=1; busy=1; goto end;}  //若不是第一行,并且沒有數(shù)據(jù)
       }                                                    //退出
      if(ch>=24) {rlc++;  ch=0;}
     }
 end:
 if(rlc== max_rec_line ||ch==0)
   { rlc--; }
   else if((ch!=0)&&(rlc< max_rec_line ))
     { while(ch<24) {rec_buf[rlc].n[ch]=' '; ch++;}  }
 k=rlc;
 for(;k<max_rec_line ;k--) rec_buf[k].mark=1;
 busy=1;
}

//===============================================================================

void rec_pemeter(void)
{ unsigned char i=0;
  busy=0;
  while(RI==0) ;
  i=SBUF;
  if(i!=0x28) goto no_pemeter;
    else ;

  while(i<17)
  {if(RI==1) {pemeter[i]=SBUF; RI=0; i++;}
   }
 insert_line_bak=pemeter[0];
no_pemeter:
 first_bag=0;
}

//========================================================================

void explain(unsigned char hang)
{unsigned l,c,d;
 unsigned long int add=0;
 if(hang==0) l=0;        //如果在打第一字行 預存字模定位到第二頁緩沖區(qū)
   else if(hang==1) l=12; //如果在打第二字行 預存字模定位到第一頁緩沖區(qū)
     else if(hang==2) l=0;
       else if(hang==3) l=12;

 for(d=0;d<12;d++)       //取一個字行的點緩沖
 {for(c=0;c<24;c++)     //取一點行數(shù)據(jù)
   {if(rec_buf[hang].n[c]<=0x7f)
      {add=rec_buf[hang].n[c]*12;
       prt_buf[d+l].n[c]=READ_SPI_DATA(add+d); }     //如果字符為ASC,取第n行的模
      else if(rec_buf[hang].n[c]>=0xb0)                   //如果為漢字
        {add=((rec_buf[hang].n[c]-0xb0)*96)+(rec_buf[hang].n[c+1]-0xa0);     //取本字節(jié)和下個字節(jié)的模,并拼成一個漢字,
         add*=24;  add+=0x600;                                 //漢字第二個打印的模,為前一字節(jié)的低2位做高位,加后一字節(jié)右移2位
         prt_buf[d+l].n[c]=READ_SPI_DATA(add+d*2); prt_buf[d+l].n[c+1]=READ_SPI_DATA(add+d*2+1);
         prt_buf[d+l].n[c+1]=(prt_buf[d+l].n[c]<<6)+(prt_buf[d+l].n[c+1]>>2);  c++;}      //若為漢字,額外加數(shù)據(jù)指針
     }
  }
 //for(d=0;d<12;d++) prt_buf[d+l].n[0]&=0x7f;
}
//==============================================








//===============================================================

void main_delay(unsigned int i)
{while(i-->0) nop;}

//===============================================================

void uart_init(void)
{SCON  = 0x50;  TMOD = 0x20;
 TH1   = 0xFA;  TL1  = 0xFA;
 PCON &= 0x7f;  TR1  = 1;    ES=0;
}

//================================================================

void system_init(void)
{busy=1;             //置忙
 xdata_used;
 motor=1;            //關(guān)電機
 m_a=1; m_b=1; m_c=1; m_d=1;   //針抬起

 EA=0;               //關(guān)中斷
 IP=0x06;            //中斷優(yōu)先 int3,tr0

 ES=0; TI=0; RI=0;   //關(guān)串口中斷,清標志位
 TR0=0; ET0=0;       //關(guān)定時中斷,關(guān)定時器
 EX1=0; IT1=1;       //關(guān)行中斷,邊沿出發(fā)

}

//================================================================

void prt_init(void)
{
 up_or_down=1;  //1=up; 0=down
 next_dota=1;   //定義下一個要打的a點,
 next_dotb=1;   //定義下一個要打的b點,
 next_dotc=1;   //定義下一個要打的c點,
 next_dotd=1;   //定義下一個要打的d點,
 line_over=0;   //點行打完標志位
 p_over=0;      //打印結(jié)束位
 back=0;        //返回過程中標志位
 first_bag=0;   //第一包開始
 del_1=0;       //第一字行緩沖要刪行標志位
 del_2=0;       //第二字行緩沖要刪行標志位
 del_bak1=0;   //第一字行緩沖要刪行標志位預存
 del_bak2=0;   //第二字行緩沖要刪行標志位預存
 line_over=0;       //一行打完標志=0
 rec_buf[0].mark=0; //接受行標志=0
 rec_buf[1].mark=0; //接受行標志=0
 dot_done=0;        //清點打印完成數(shù)
 dot_count=0;       //清點計數(shù)
 plc=0;             //已打印行=0
 insert_line_bak=0; //插入點行=0
 insert_line=0;
 motor=1;


 IE1=0;              //清行中斷標志位
 EX1=0;              //開行中斷
}









?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费视频| 国产乱子伦视频一区二区三区| 中文字幕一区二区三区乱码在线| 国产亚洲视频系列| 国产蜜臀av在线一区二区三区| 久久香蕉国产线看观看99| 久久久不卡影院| 国产无人区一区二区三区| 中文久久乱码一区二区| 亚洲天堂中文字幕| 一区二区三区不卡视频在线观看| 亚洲一区欧美一区| 日韩成人精品在线| 久久精品国产99| 国产成人午夜精品影院观看视频| 大白屁股一区二区视频| 99久久精品国产麻豆演员表| 91在线观看视频| 欧美亚洲综合在线| 欧美一级日韩不卡播放免费| 久久综合99re88久久爱| 国产精品视频麻豆| 亚洲国产日韩精品| 久久精品免费看| 国产suv精品一区二区三区| 91免费视频观看| 精品视频在线视频| 精品国产乱码91久久久久久网站| 久久女同互慰一区二区三区| 成人欧美一区二区三区黑人麻豆 | 精品国产免费一区二区三区香蕉| 久久日韩精品一区二区五区| 欧美经典三级视频一区二区三区| 亚洲男人的天堂在线观看| 亚洲成人黄色影院| 国产精品一区二区三区四区| 97精品超碰一区二区三区| 欧美在线观看视频一区二区| 精品电影一区二区| 最近中文字幕一区二区三区| 日韩成人一级片| 国产成a人亚洲| 欧美性生活大片视频| 精品国产伦理网| 亚洲美女视频一区| 激情综合亚洲精品| 在线观看91精品国产入口| 欧美一区二区福利视频| 中文字幕第一区二区| 午夜精品久久久久久不卡8050| 国产精品123| 欧美日韩在线播放三区四区| 国产日韩欧美亚洲| 日韩高清一级片| voyeur盗摄精品| 日韩一级在线观看| 亚洲欧洲综合另类| 国产在线不卡一区| 在线电影欧美成精品| 日韩理论片中文av| 国产中文一区二区三区| 欧美日韩在线观看一区二区| 国产精品视频免费看| 久久国产精品99精品国产| 欧洲国产伦久久久久久久| 久久精品一区二区三区不卡牛牛 | 亚洲最大的成人av| 国产成人精品免费视频网站| 7777精品伊人久久久大香线蕉完整版| 国产精品美女久久久久高潮| 奇米色777欧美一区二区| 在线观看欧美黄色| 国产精品毛片大码女人| 国产一区二区三区不卡在线观看 | 亚洲欧美日韩精品久久久久| 国产一区二区免费看| 精品视频1区2区| 亚洲精品免费视频| 成+人+亚洲+综合天堂| 国产亚洲成aⅴ人片在线观看| 日本午夜一本久久久综合| 欧美日韩综合不卡| 一区二区三区中文字幕电影 | 欧美午夜精品久久久| 国产精品国产三级国产aⅴ中文 | 日本午夜一本久久久综合| 欧美三区免费完整视频在线观看| 中文字幕亚洲精品在线观看 | 久久久99精品免费观看不卡| 免费看日韩a级影片| 在线电影欧美成精品| 婷婷综合五月天| 4438x亚洲最大成人网| 亚洲福利一二三区| 欧美三级日本三级少妇99| 亚洲一区欧美一区| 欧洲精品视频在线观看| 亚洲综合视频在线| 精品视频1区2区3区| 五月天欧美精品| 欧美一区二区日韩一区二区| 午夜精品久久久久| 91精品国产色综合久久久蜜香臀| 日韩和欧美一区二区三区| 欧美高清一级片在线| 天堂成人免费av电影一区| 91麻豆精品国产91久久久使用方法 | www.99精品| 亚洲人xxxx| 在线观看亚洲专区| 亚洲成av人片在线| 777色狠狠一区二区三区| 麻豆久久久久久久| 久久新电视剧免费观看| 成人性生交大合| 亚洲免费视频成人| 欧美男人的天堂一二区| 日韩福利电影在线观看| 精品欧美久久久| 国产高清在线精品| 亚洲图片激情小说| 欧美日韩免费观看一区二区三区| 日韩二区在线观看| 欧美成人官网二区| 成人丝袜18视频在线观看| 一区二区三区在线影院| 欧美高清精品3d| 狠狠v欧美v日韩v亚洲ⅴ| 欧美国产激情二区三区| 色综合天天综合网天天狠天天| 亚洲第一av色| 久久久久久免费网| 色综合天天综合| 奇米色一区二区| 国产精品欧美一级免费| 欧美日韩中文字幕一区二区| 九九国产精品视频| 亚洲视频一区二区免费在线观看| 欧美亚洲国产bt| 激情综合色播五月| 亚洲黄色录像片| 欧美第一区第二区| 99re亚洲国产精品| 美女脱光内衣内裤视频久久网站| 国产欧美日韩综合| 欧美日韩成人高清| 成人午夜在线免费| 午夜一区二区三区视频| 国产片一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 精品国产一区二区三区四区四| 不卡av免费在线观看| 午夜精品久久久久久不卡8050| 国产丝袜欧美中文另类| 欧美巨大另类极品videosbest| 国产传媒一区在线| 日韩中文字幕亚洲一区二区va在线| 中文字幕不卡的av| 日韩视频免费观看高清完整版在线观看| 成人丝袜视频网| 理论片日本一区| 亚洲香蕉伊在人在线观| 国产嫩草影院久久久久| 欧美一区二区三区影视| 91丨porny丨中文| 国产美女娇喘av呻吟久久| 午夜精品久久久久久久久| 中文字幕欧美国产| 日韩欧美国产综合在线一区二区三区| 一本色道综合亚洲| 懂色av中文字幕一区二区三区 | 精品一区二区三区视频| 一区二区三区国产精华| 国产嫩草影院久久久久| 欧美va亚洲va香蕉在线| 欧美日韩精品一区二区天天拍小说 | 亚洲一二三四区不卡| 国产精品情趣视频| 久久久久久亚洲综合影院红桃| 欧美男同性恋视频网站| 色8久久人人97超碰香蕉987| 成人中文字幕合集| 国产真实乱偷精品视频免| 奇米四色…亚洲| 三级欧美韩日大片在线看| 亚洲综合久久久久| ...xxx性欧美| 欧美国产精品专区| 久久久久9999亚洲精品| 精品欧美一区二区三区精品久久 | 欧美一区二区三区四区久久| 欧美在线综合视频| 91一区二区在线| 99久久99久久精品国产片果冻 | 7777精品伊人久久久大香线蕉| 91九色最新地址| 色综合一区二区| 色哟哟一区二区在线观看| 一本久久综合亚洲鲁鲁五月天| 99久久综合精品|