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

📄 print.asm

📁 linux下打印驱动源代码 适用于双步进针打驱动
💻 ASM
📖 第 1 页 / 共 5 页
字号:
  	NAME    PRINT
;******************************************************************************
; 版权所有 (C) 2004, 福建实达电脑设备有限公司

; 文件名称:

;  ..\ctrl\print.asm

; 当前版本:
;     01-01

; 内容摘要:

;     针式打印模块功能实现
;
; 包含的函数:

; 历史纪录:
;     修改人     日期               版本         日志
;     瞿铃鉴    2004-08-02           01-01       Create this file
;     卢禹杉    2004-11-12     		         修改了判断打印机闲忙状态的函数
;     袁金颖    2004-11-22     		         修改了黑标定位完毕的初始状态,黑标为正向,距离黑标位置为0
;      叶宏     2004-11-28                       增加判断是否正在打印API,TIMER3打印工程中不扫描按键,add by yeh 2004-11-28
;     瞿铃鉴    2004-12-13                       STAR与EPSON的整合
;     瞿铃鉴    2005-01-06           01-01       添加掉电保护
;     瞿铃鉴    2005-01-18-11:40     01-01       字体改动
;     瞿铃鉴    2005-01-18-17:00     01-01       添加判黑标掉电保护
;     瞿铃鉴    2005-01-19-10:10     01-01       pop错误,_init_printer错误
;     瞿铃鉴    2005-01-20-10:10     01-01       打印字体类型不做掉电保护
;     瞿铃鉴    2005-01-20-14:20     01-01       去掉出针延迟
;     瞿铃鉴    2005-01-24-14:40     01-01       掉电保护初始化
;     瞿铃鉴	2005-01-27-14:15     01-01	 打印换行走纸结束标志
;     瞿铃鉴	2005-01-28-10:35     01-01	 添加行走纸标志_ucLineProtectFlag
;     瞿铃鉴	2005-01-29-14:25     01-01	 添加掉电保护电源状态判断
;     瞿铃鉴	2005-01-30-20:21     01-01	 添加掉电保护电源状态二次判断			
;     瞿铃鉴	2005-01-31-14:50     01-01	 添加走纸掉电保护电源状态二次判断
;     瞿铃鉴    2005-02-02-15:20                 行走纸添加等待
;     瞿铃鉴    2005.02.21     			 软件升级为TCR-80V3.0
;     瞿铃鉴    2005-02-22                       BUFFER口线做调整
;     瞿铃鉴    2005-03-02		 	 timer21_int0改为MU_MPtimer21_int
;						 mos_on和mos_off中口线地址OUT3CS ->  OUT4CS
;     瞿铃鉴    2005-03-10			 ( 从走纸函数将相应的行或步数送入缓冲区 
;						   to 开始启动走纸电机)进行掉电保护
;     瞿铃鉴    2005-03-15                       走纸掉电补充
;     瞿铃鉴    2005-03-25			 添加(在不进行掉电保护的时候)pass_bm_num保护
;      						 _poweroff_init_prn中lock_fk_flag改为锁定状态
;     瞿铃鉴    2005-03-28                       1.打印机在动作的时候,获取当前黑标检测头到黑标的距离函数要求不能够返回0     
;						 2.打印机固定为19行,修改目前的 西文18行,汉字19行  
;						 3.修改1/6英寸行宽步数,使其在中文打印和西文打印时都走24步
;                                                (以前的做法在中文时走25步)  
;     瞿铃鉴    2005-03-31                       判黑标去抖动,pass_bm_num保护
;     瞿铃鉴    2005-04-07			 初始化掉电保护变量及刚上电打印判缺纸
;     瞿铃鉴    2005-05-18			 解决打印行末尾只打印半个字的问题
;     瞿铃鉴    2005-05-26			 原先只对默认字体掉电保护,现在也对其它字体进行掉电保护
;     瞿铃鉴    2005-05-30                       解决双向打印效果好后对单向打印的影响
;     瞿铃鉴    2005-08-03                       去掉M512的代码
;********************************************************************************
; INC文件
;********************************************************************************
$INCLUDE (DPRINT.INC)

;********************************************************************************
; PUBLIC 与 EXTRN 函数与变量声明
;********************************************************************************
; 全局函数与变量
                                           
public  _pe_bm_signal,_test_bm_num
public  _init_pwroff,_init_printer, _s_printer, _printer_dot, _feed_mark, _EI_ucGetPrntItem
public  _print_process_stat
public  _EI_ucGetAsciiType, _EI_ucGetHzType, _EI_ucGetPrntDir,_EI_ucGetLineDis
public  _EI_vCardCanWork,_EI_vPrintWork
public  start_pf_motor,cm_return                                     
public  timer21_int         		;走纸中断                       
public  timer20_int         		;字车中断                                                                              

public  cm_rush_flag, cm_init_flag, lock_fk_flag            
public  pf_rush_flag, pf_dir_flag, pf_speed_flag, pf_step_num, stop_feed_paper_flag
public  feeding_flag, pf_limit_flag, initing_flag           
public  _db_BlackMarkNum, blackmark_flag,EA_ucCheckBMState,_EI_ucCheckBMState
public  db_PaperWideFlag,db_PEFlag,blackmark_len

;掉电保护相关 					;2004-01-06
public  _EI_vReadPrnCharBuff,_EI_vSetPara,_poweroff_init_prn                 
                                                                                                          
; 外部函数与变量
extrn   set_cm_pha,clr_cm_pha,set_cm_phb,clr_cm_phb,cm_hold_current,cm_driver_current   
extrn   mos_on,mos_off
extrn   set_pf_pha,clr_pf_pha,set_pf_phb,clr_pf_phb,pf_hold_current,pf_driver_current
extrn   _role_on,_role_off,paper_size,PaperStatusInfo
extrn   _set_mark_level,_read_bm_num,check_bm_info,_temp_signal,_temp_adc,hp_signal
extrn   _EA_vSetBMLen,_EA_ucReadBMLen,mark_adc,temp_adc
extrn   EI_vPaperLedOff, EI_vPaperLedOn  ;TCR200有,TCR80无

extrn   get_dot_ad_hz, get_dot_ad_ascii, get_dot_ad_zdy, get_dotzf_ad                                                         
extrn   _get_printer_status             
extrn   out3flag
;掉电保护相关					;2004-01-06
;;信息						
extrn   _ucPwrOffPrnType,_ucPrnCharNum,_ucPwrOffPrnFlag,db_temp1	
extrn   _ucLineProtectFlag,_ucPwrOffeedType,_ucStepTestFlag       ;2005-03-10
extrn   power_status			;2004-01-29-14:25

;;字体相关
extrn   _ucHzAsciiModeFlag, _ucAscii7x7Flag, _ucAsciiDoubleWidthFlag
extrn   _ucDoubleDensityFlag,_ucHzBiDirFlag, _ucHzSmallSizeFlag	

;;走纸电机相关
extrn  _ucFeedingFlag,_ucPfDirFlag,_ucPfStepCounter                
extrn  _ucPfSpeedFlag,_ucPfStepNum,_ucLfValueFlag

;;黑标相关参数
extrn   _Rb_PositionFlag, _Rw_PassBmNum, _Rb_LastBMFlag, _Rb_PEFlag, _Rb_PENum
extrn	_Rw_checkBmFlag					;2004-01-18-17:00
 
;******************************************************************************
; EQU 声明
;******************************************************************************
;******************************************************************************
; DS 变量声明
;******************************************************************************                                                                                                                
para1              dseg    saddr                                                                                                   
print_return_value:     ds  1   ;打印返回值0-正常(白色位置),1-黑标位置,2-hp错,3-打印头温度高,4-缺纸状态,5-命令输入错误                       
db_PaperWideFlag:       ds  1   ;纸张类型标志:    00-76mm        01-57mm  
;电机控制相关
cm_dir_flag:            ds  1   ;控制字车电机方向:00-向左  01-向右          
pf_dir_flag:            ds  1   ;控制走纸电机方向: 00-反向  01-正向   
cm_hold_state:          ds  1   ;字车电机相位状态               
pf_hold_state:          ds  1   ;走纸电机相位状态              
cm_step_counter:        ds  1   ;字车加(减)速步数计算           
pf_step_counter:        ds  1   ;走纸加(减)速步数计算
cm_speed_state:         ds  1   ;字车速度状态:    00-停止 01-加速 10-减速 11-匀速 ff-慢速                       
pf_speed_flag:          ds  1   ;走纸速度状态:    00-停止 01-加速 10-减速 11-匀速 ff-慢速
cm_step_num:            ds  2   ;字车控制步数
pf_step_num:            ds  2   ;走纸控制步数                              
cm_rush_flag:           ds  1   ;字车走动状态:    00-hold   state  01-rush state  11-drive state
pf_rush_flag:           ds  1   ;走纸走动状态:     00-normal state  01-rush state  11-drive state
cm_init_flag:           ds  1   ;字车初始化标志:  00-空闲          01-上电初始化 ff-字车电机走动         
feeding_flag:           ds  1   ;正在走纸标志                   
pf_with_cm_flag:        ds  1   ;字车走动同时走纸: 00-字车静止之后走纸 01-字车走动同时走纸,
ascii_feed_flag:	ds  1   ;????????
printing_flag:          ds  1   ;正在打印标志      00-不正在打印       01-正在打印
feed_dir_flag:          ds  1   ;走纸方向标志:    00-空闲,01-正向,10-反向    
feed_lines:             ds  1   ;命令走纸行数      
feed_step_by_step_flag: ds  1   ;单步走纸标志               
lock_fk_flag:           ds  1   ;走纸锁定标志:    00-打开按键      其他-锁定
cm_printing_flag:       ds  1   ;字车在走标志:    00-字车不走      01- 字车在走        
stop_feed_paper_flag:   ds  1   ;走纸按键停止标志  00-打开          01- 停止   
pf_limit_flag:          ds  1   ;按键走纸标志:    00-可以按键走纸  01-不能按键走纸
;--------------------------------(定义给M110用)
db_10Step12SwitchFlag:  ds  1   ;10步和12步的转换标志:  00-10步   01-12步
db_PinCmFlag:           ds  1   ;字车电机动作:          00-翻转   01-不翻转
;--------------------------------(定义给M110用)
;打印类型相关
lf_value_flag:          ds  1   ;00-1/8           01-1/6  
print_map_flag:         ds  1   ;00-字符打印      01-位图打印     
hz_ascii_mode_flag:     ds  1   ;00-西文本        01-中文             
ascii_7x7_flag:         ds  1   ;00-5*7           01-7*7               
ascii_double_width_flag:ds  1   ;00-西文单倍密度  01-西文双倍密度
hz_double_density_flag: ds  1   ;00-汉字单倍密度  01-汉字双倍密度
hz_bi_dir_flag:         ds  1   ;00-单向打印      01-双向打印      
hz_small_size_flag:     ds  1   ;00-大字          01-小字                                                   
hz_front:               ds  1   ;小字相关                           
hz_back:                ds  1   ;小字相关                            
hz_result0:             ds  1   ;小字相关                           
hz_result1:             ds  1   ;小字相关                                 
map_len:                ds  1   ;位图打印的字节数           
map_line:               ds  1   ;位图的行数 
_prt_char_num:          ds  1   ;打印字符缓冲区输入字符数   
prt_char_ptr:           ds  1   ;打印字符缓冲区的取字指针   
pbuff_mflag:            ds  1   ;当前缓冲区标志:       00-当前缓冲区为1    01-当前缓冲区为2                
pbuff_sflag2:           ds  1   ;2号缓冲区点阵情况          
pbuff_sflag1:           ds  1   ;1号缓冲区点阵情况
pbuff_base_addr:        ds  3   ;打印点阵缓冲区首地址
old_prt_data:           ds  1   ;打印点阵检验
old_prt_data_7x7:       ds  1   ;打印点阵检验                                                         
old_prt_data_temp:      ds  1   ;打印点阵检验
line_head_lf_flag:      ds  1   ;行首换行标志               
line_head_lf_value:     ds  1   ;行首换行数                 
prt_buff_ptr0:          ds  2   ;上半行指针                 
prt_buff_ptr1:          ds  2   ;下半行指针                                                                       
;黑标相关 
db_PEFlag:              ds  1   ;缺纸状态标志:          00-非缺纸状态   FFH-缺纸   其他-非黑色位置次数
db_PENum:               ds  1   ;判断缺纸使用的计数器   
db_LastBMFlag:          ds  1   ;上次黑标状态:          00-白色            01-黑色
db_EnterBMFlag:         ds  1   ;进入黑色位置的方向标志:00-反向            01-正向
feed_to_bm_flag:        ds  1   ;走纸到黑标方向标志:    01-正向走纸到黑标  10-反向走纸到黑标
find_bm_flag:           ds  1   ;黑标找到标志:          00-没有找到        01--找到
blackmark_flag:         ds  1   ;用口线或者AD转换的标志:00-口线            01--AD转换
_db_BlackMarkNum:       ds  1   ;黑标域值                   
blackmark_len:          ds  1   ;黑标长度
check_BM_flag:		ds  1	;走纸过程检查黑标	 00-无黑标	    01-判到黑标   
;逻辑查询相关
stop_position:          ds  2   ;马达将停止位置             
position_x:             ds  2   ;行首位置                            
position_y:             ds  2   ;行尾位置  
cm_idle_flag:           ds  1   ;空走状态标志
cm_idle_num:            ds  2   ;空走步数 
cm_logic_flag:          ds  1   ;加速、减速、匀速
logic_delta1_flag:      ds  1   ;逻辑补偿标志1              
logic_delta2_flag:      ds  1   ;逻辑补偿标志2 
;出针相关
pin_out_flag:           ds  1   ;出针标志位:              00-不能出针      01-可以出针 
printing_counter:       ds  2   ;出针数                     
prt_buff_pointer:       ds  2   ;出针偏移指针
;生产测试用相关                                             
esc_return_flag:        ds  1   ;在命令解析阶段有返回值:  00-无            01-有
esc_return_value:       ds  1   ;命令解析阶段返回值         
pass_bm_num:            ds  2   ;距离黑标的步数,最小为0    
position_flag:          ds  1   ;黑标定位标志             00-此时的步数为已走过黑标的步数  01-此时的步数为到达黑标要走的步数

⌨️ 快捷键说明

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