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

📄 printfunction.h

📁 9针式打印机驱动源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#include "absacc.h"
#define  u8  unsigned  char
#define  u16 unsigned  int
#define  u32 unsigned  long  int
#define  openint  EA=1
#define   closeint EA=0
#define	 openes		ES=1
#define	 closees	ES=0	
u16  code PACCTime[];
u16	 code PDECTime[];
u16  code ACCTime[];	
u16  code DECTime[];

//走纸马达电流配
#define  PaperION1  PSD_REG.DATAOUT_A|=0x40,PSD_REG.DATAOUT_A &=0x7F 
#define  PaperION2  PSD_REG.DATAOUT_A|=0x80,PSD_REG.DATAOUT_A &=0xBF
#define  PaperION3  PSD_REG.DATAOUT_A &=0x3F 
#define  PaperIOFF  PSD_REG.DATAOUT_A|=0xC0 
//字车马达电流配制   
#define  CarriageION1  PSD_REG.DATAOUT_A|=0x10,PSD_REG.DATAOUT_A &=0xDF
#define  CarriageION2  PSD_REG.DATAOUT_A|=0x20,PSD_REG.DATAOUT_A &=0xEF
#define  CarriageION3  PSD_REG.DATAOUT_A &=0xCF
#define  CarriageIOFF  PSD_REG.DATAOUT_A|=0x30

//走纸马达相位定义ab:00 01 11 10
#define  PaperPhase0  P47=0,P46=0  
#define  PaperPhase1  P47=0,P46=1  
#define  PaperPhase2  P47=1,P46=1  
#define  PaperPhase3  P47=1,P46=0  
//字车马达相位定义
#define  CarriagePhase0 P45=0,P44=0
#define  CarriagePhase1 P45=0,P44=1
#define  CarriagePhase2 P45=1,P44=1
#define  CarriagePhase3 P45=1,P44=0
//传感器定义
#define  PositionSensor  (PSD_REG.DATAIN_A&0x01)
#define	 PaperSensor	 (PSD_REG.DATAIN_A&0x04)	
//打印模式定义
#define	 chineseleftinterval	0x900
#define	 chineserightinterval	0x901
#define	 charrightinterval		0x902
#define	 forwardstep					0x903
#define	 backstep							0x904		
#define  forwardchar					0x905
#define	 backchar							0x906
#define	 charrowinterval			0x907
#define	 printcharcount				0x908
#define	 defaltcommandmark		0x90a
#define	 nextposition					0x90b
#define	 receivemark					0x90c	
#define	 receivelength				0x90d
#define	 chinesemethod				0x90e
#define	 uartintervaltime			0x90f
#define	 havepapertime				0x910
	
//通信缓冲地址定义
#define  signaladdr 		0x1000		//信号变量地址
#define	 phasevalueaddr	0x1020//相位值地址
#define	 phasedirectionaddr	0x1021//相位方向地址
#define	 stepcountaddr			0x1022//步进数地址	
//定义相位值
#define	  CRLP	XBYTE[0x1023]
#define	  CLRP	XBYTE[0x1024]
#define		PFP		XBYTE[0x1025]
#define		PBP		XBYTE[0x1026]	
#define		SDELAY	XBYTE[0x1027]	
//字车相位地置
//备份缓冲长度地址
#define	 tempbufaddr	0x1040
//行代码地址
#define  rowcodeaddr 			0x1050	
//打印行缓冲地址
#define	 printrowbaseaddr   0x1080
//打印行缓冲定义
#define  rowbufferaddr    0x1500
//打印缓冲定义
#define  printbufferaddr   0x2000
#define  printbufferlength 0x5000
//0x5000
//打印行缓冲数据地址定义
#define	 rowbufdataaddr			0x1600	
//打印行缓冲数据长度定义
#define	 rowdatalength    0x348	
//通信缓冲结构定义
typedef enum
{
    BUSY=1,
    ERR=2,
    PE=3,
    ACK=4
    
}statussignal;
typedef enum
{
    HT=1,
    LF=2,
    CR=3,
    ESCHome=4,
    ESCPrintInitial=5,
    ESCPaperForwardStep=6,
    ESCPaperBackStep=7,
    ESCPaperForwardByte=8,
    ESCPaperBackByte=9,
    FSEnterChinese=10,
    FSExitChinese=11,
    GSBlackMark=12
}commands;
//
typedef	 struct  tempbuflength
{
		u16		currentlength;
		u16		length;
};
//行缓冲结构
typedef	 struct  printrow
{
	u16		printrowaddr;
	u16		printrowcount;
};
//行代码结构定义
typedef	 struct	 rowcode		
{
		u16		addr;
		u8		count;
};
//打印缓冲结构定义
typedef  struct  buffer 
{
    //u8    xdata *pbuf;
    u8    pb[printbufferlength];
    u16   count;
    u16   length;
};
//打印行缓冲结构定义
typedef  struct  rowbuffer 
{
    u16   rowbufaddr;
    u8    count;
};
//打印行缓冲数据结构定义
typedef	 struct	 rowbufdata
{		
		u16   count;
		u8		pb[rowdatalength];
};

//字车相位结构

/*******************************************************************************
*	Function Name	 :PrintInitial
*	Description		 :打印机初始化
*	Input			 		 :none  								 
*	Return			 	 :none
*******************************************************************************/
void  PrintInitial(void);
/*******************************************************************************
*	Function Name	 :AutoPaperIn
*	Description		 :自动送纸
*	Input			 :none 								 
*	Return			 :none
*******************************************************************************/
void  AutoPaperIn(void);
/*******************************************************************************
*	Function Name	 :ReadStatusMessage
*	Description		 :状态信息
*	Input			 :statussignal position 								 
*	Return			 :状态内容
*******************************************************************************/
u8  ReadStatusMessage(statussignal position);
/*******************************************************************************
*	Function Name	 :NoPaperDeal
*	Description		 :无纸处理
*	Input			 :none 								 
*	Return			 :none
*******************************************************************************/
void  NoPaperDeal(void);
/*******************************************************************************
*	Function Name	 :WriteStatusMessage
*	Description		 :写状态信息
*	Input			 :statussignal position,u8 context 								 
*	Return			 :none
*******************************************************************************/
void  WriteStatusMessage(statussignal position,u8 context);
/*******************************************************************************
*	Function Name	 :ReceiveData
*	Description		 :接收数据
*	Input			 :none 								 
*	Return			 :none
*******************************************************************************/
void  ReceiveData(void);
/*******************************************************************************
*	Function Name	 :CarriageLeftToRight
*	Description		 : 字车电机右进
*	Input					 : u8	PhaseIn									 
*	Return				 : CurrentPhase	---0~3
*******************************************************************************/
u8	CarriageLeftToRight(u8 PhaseIn);
/*******************************************************************************
*	Function Name	 PhaseDirectionSwitch
*	Description		 :电机相位换向切换
*	Input					 :u8	PhaseIn
*	Return				 :phase
*******************************************************************************/
u8	PhaseDirectionSwitch(u8	PhaseIn);
/*******************************************************************************
*	Function Name	 :CarriageSpeedUpLeftToRight
*	Description		 : 字车电机右加速
*	Input					 : u8 PhaseIn								 
*	Return				 : CurrentPhase	---0~3
*******************************************************************************/
void	CarriageSpeedUpLeftToRight(u8 PhaseIn);
/*******************************************************************************
*	Function Name	 :CarriageSpeedDownLeftToRight
*	Description		 : 字车电机右减速
*	Input					 : u8 PhaseIn								 
*	Return				 : CurrentPhase	---0~3
*******************************************************************************/
void	CarriageSpeedDownLeftToRight(u8 PhaseIn);

⌨️ 快捷键说明

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