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

📄 msp430-print.c

📁 本代码本人用MSP430单片机开发微型数据记录打印机时所写的打印接口程序。
💻 C
📖 第 1 页 / 共 2 页
字号:
/*************************机车型号表*****************************************

1,东风1   4,DF5  
2,东风3   5,DJ1
3,东风9   6,DJ2
///////////////////////////
7,东风4B  10,SS5
8,东风11  11,GK
9,东风12
//////////////////////
12,东风5D
13,韶山1  
14,韶山8
/////////////////////////
15,先锋号
16,龙段东风4C
17,龙段东风4D
////////////////////////
18,蓝箭DJJ1
19,大白鲨DDJ1
20,新时速X2000

*****************************************************************************/
#include "string.h"
extern Time Cur_time;
extern  jiance Cur_jiance;
 
/****************************************
打印初始化函数
*****************************************/
void print_init(void)
{  
  
  TXBUF0 =0x1b;
  while(!(U1TCTL & TXEPT));
  TXBUF0 =0x40;
  while(!(U1TCTL & TXEPT));
 TXBUF0 =0x0d;
  while(!(U1TCTL & TXEPT));
      
}

void PRINT_DONGFENG(void)          //打印“东风”
{
     TXBUF0 =0xb6;
    while(!(U0TCTL & TXEPT));
     TXBUF0 =0xab;
    while(!(U0TCTL & TXEPT));
     TXBUF0 =0xb7;
    while(!(U0TCTL & TXEPT));
     TXBUF0 =0xe7;
    while(!(U0TCTL & TXEPT));
}
void PRINT_CHN(void)              //发送中文打印指令
{
     TXBUF0 =0x1c;  
    while(!(U0TCTL & TXEPT));
     TXBUF0 =0x26;
    while(!(U0TCTL & TXEPT)); 
} 
void PRINT_CHN_CANCEL(void)       //取消中文打印
{
      TXBUF0 =0x1c;   
     while(!(U0TCTL & TXEPT));
      TXBUF0 =0x2e;
     while(!(U0TCTL & TXEPT));
}
void PRINT_CHAR(char i,char j)    //打印非中文字符
{
      TXBUF0 =i;
     while(!(U0TCTL & TXEPT));
      TXBUF0 =j;
     while(!(U0TCTL & TXEPT));
}

void print(void)
{
     int i; 
      TXBUF0 =0x1c;  //中文打印
     while(!(U0TCTL & TXEPT));
     TXBUF0 =0x26;
    while(!(U0TCTL & TXEPT));
     /******要打印的中文  机车************/
     TXBUF0 =0xbb;
    while(!(U0TCTL & TXEPT));
     TXBUF0 =0xfa;
     while(!(U0TCTL & TXEPT));
     TXBUF0 =0xb3;
    while(!(U0TCTL & TXEPT));
     TXBUF0 =0xb5;
    while(!(U0TCTL & TXEPT));
/*******************************/
      TXBUF0 =0x1c;   //取消中文打印
     while(!(U0TCTL & TXEPT));
      TXBUF0 =0x2e;
     while(!(U0TCTL & TXEPT));
     TXBUF0 =':';
     while(!(U0TCTL & TXEPT));
     TXBUF0 =0x0d;
     while(!(U0TCTL & TXEPT));
     switch(Cur_jiance.jiche)  //打印机车类型
     {
/******************* 东风1 *********************/ 
 case 1: 
      PRINT_CHN();
      PRINT_DONGFENG();       
      PRINT_CHN_CANCEL();

      TXBUF0 ='1';     
      while(!(U0TCTL & TXEPT));
      break;  
/******************* 东风3 *********************/ 
 case 2: 
      PRINT_CHN();
      PRINT_DONGFENG();      
      PRINT_CHN_CANCEL();

      TXBUF0 ='3';
      while(!(U0TCTL & TXEPT));      
      break;   
/******************* 东风9 *********************/              
 case 3:  
      PRINT_CHN();
      PRINT_DONGFENG ();      
      PRINT_CHN_CANCEL();

      TXBUF0 ='9';
      while(!(U0TCTL & TXEPT));     
      break;
/******************* DF5 *********************/             
 case 4:  
      PRINT_CHAR('D','F');   
      TXBUF0 ='5';
      while(!(U0TCTL & TXEPT));
      break;       
/******************* DJ1 *********************/          
 case 5: 
      PRINT_CHAR('D','J');
      TXBUF0 ='1';
      while(!(U0TCTL & TXEPT));                 
      break;    
/******************* DJ2 *********************/          
 case 6:
      PRINT_CHAR('D','J');   
      TXBUF0 ='2';
      while(!(U0TCTL & TXEPT));            
      break;   
/******************* 东风4B *********************/               
 case 7: 
      PRINT_CHN();     
      PRINT_DONGFENG();      
      PRINT_CHN_CANCEL();
      PRINT_CHAR('4','B');
      break;
/******************* 东风11 *********************/                  
 case 8: 
      PRINT_CHN();
      PRINT_DONGFENG();      
      PRINT_CHN_CANCEL();
      PRINT_CHAR('1','1');
      break;     
/******************* 东风12 *********************/                
 case 9: 
      PRINT_CHN();
      PRINT_DONGFENG();      
      PRINT_CHN_CANCEL();
      PRINT_CHAR('1','2');
      break;            
/******************* SS5 *********************/ 
 case 10: 
      PRINT_CHAR('S','S'); 
      TXBUF0 ='5';
      while(!(U0TCTL & TXEPT));               
      break;      
/******************* GK *********************/             
 case 11:  
      PRINT_CHAR('G','K');
      break;   
/******************* 东风5D *********************/              
 case 12:
      PRINT_CHN();
      PRINT_DONGFENG();      
      PRINT_CHN_CANCEL();
      PRINT_CHAR('5','D');
      break;  
/******************* 韶山1 *********************/ 
 case 13:
      PRINT_CHN();
       TXBUF0 =0xC9;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xD8;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xC9;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xBC;
      while(!(U0TCTL & TXEPT));
      PRINT_CHN_CANCEL();
  
      TXBUF0 ='1';
      while(!(U0TCTL & TXEPT));     
      break;   
/*****************韶山8********************/
 case 14:
      PRINT_CHN();     
       TXBUF0 =0xC9;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xD8;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xC9;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xBC;
      while(!(U0TCTL & TXEPT));
      PRINT_CHN_CANCEL();
     
      TXBUF0 ='8';
      while(!(U0TCTL & TXEPT));            
      break;                        
/*****************先锋号**************************/
 case 15:                     
       PRINT_CHN();
       TXBUF0 =0xCF;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xC8;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xB7;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xE6;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xBA;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xC5;
      while(!(U0TCTL & TXEPT));
      PRINT_CHN_CANCEL();           
      break;                  
/*******************龙段东风4C*********************/
 case 16:
       PRINT_CHN();
       TXBUF0 =0xC1;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xFA;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xB6;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xCe;
      while(!(U0TCTL & TXEPT));
      PRINT_DONGFENG ();       
      PRINT_CHN_CANCEL();
      PRINT_CHAR('4','C');
      break;           
/*******************龙段东风4D*********************/               
 case 17:
      PRINT_CHN();
       TXBUF0 =0xC1;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xFA;     
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xB6;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xCe;
      while(!(U0TCTL & TXEPT));
      PRINT_DONGFENG();       
      PRINT_CHN_CANCEL();
      PRINT_CHAR('4','D');
      break;         
/******************* 蓝箭DJJ1 *********************/            
 case 18:
       PRINT_CHN();
       TXBUF0 =0xC0;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xB6;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xBC;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xFD;
      while(!(U0TCTL & TXEPT));
      PRINT_CHN_CANCEL(); 
      PRINT_CHAR('D','J');
      PRINT_CHAR('J','1');     
      break;            
/******************* 大白鲨DDJ1 *********************/ 
 case 19:
      PRINT_CHN();
       TXBUF0 =0xB4;
      while(!(U0TCTL & TXEPT));
       TXBUF0 =0xF3;

⌨️ 快捷键说明

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