📄 print.asm
字号:
movw bc,#01h
init_printer_end:
movw pass_bm_num,Pass_BmNum_Temp ;2005-03-31
mov position_flag,Position_FlagTemp ;2005-03-31
mov initing_flag,#INITED
pop whl
ret
;******************************************************************************
; 函数名:
; _init_pwroff
;
; 功能:
; 初始化掉电保护变量
; 输入:
; 输出:
;-------------------------------------------------------------------------------
_init_pwroff:
mov !!_Rb_PEFlag,#PE_UN_LACK ;2005-04-07 start
mov !!_Rb_PENum,#00H
mov !!_Rb_PositionFlag,#STEP_OVER_BM
mov !!_ucLfValueFlag,#LF_VALUE18
movw !!_Rw_checkBmFlag,#CHECK_UNBM
mov !!_ucHzBiDirFlag,#HZ_SI_DIR
mov !!_ucAsciiDoubleWidthFlag,#ASCII_SINGLE
mov !!_ucAscii7x7Flag,#ASCII_7X7
mov !!_ucHzAsciiModeFlag,#ASCII_MODE
mov !!_ucDoubleDensityFlag,#HZ_DOUBLE
mov !!_ucHzSmallSizeFlag,#HZ_SMALL
mov !!_ucFeedingFlag,#MOTOR_IDLE
mov !!_Rb_LastBMFlag,#LASTBM_WHITE
mov !!_ucPfDirFlag,#MOTOR_DIR_L_OR_B
movw !!_ucPfStepNum,#00h
mov !!_ucPfSpeedFlag,#MOTOR_SPEED_STOP
mov !!_ucPfStepCounter,#00h
mov !!_ucPwrOffPrnType, #00h
mov !!_ucPrnCharNum,#00h
mov !!_ucPwrOffPrnFlag, #00h
mov db_temp1,#00h
mov !!_ucLineProtectFlag,#00h
mov !!_ucPwrOffeedType,#00h
mov !!_ucStepTestFlag,#00h
ret ;2005-04-07 end
;******************************************************************************
; 函数名:
; poweroff_init_prn
;
; 功能:
; 掉电初始化打印机
;-------------------------------------------------------------------------------
_poweroff_init_prn:
push whl
mov initing_flag,#INITING ;正在初始化
mov logic_delta1_flag,#UN_LOGIC_DELTA ;逻辑补偿1不补偿
mov logic_delta2_flag,#UN_LOGIC_DELTA ;逻辑补偿2不补偿
mov db_PEFlag, #PE_UN_LACK ;不缺纸状态
mov db_PENum, #00H
push ax ;2005-04-07 start
movw ax,!!_Rw_PassBmNum
movw Pass_BmNum_Temp,ax
mov a,!!_Rb_PositionFlag
mov Position_FlagTemp,a
pop ax ;2005-04-07 end
call mos_on ;启动mos
call mos_off ;关闭mos
;MU110字车电机初始状态
call cm_hold_current
call set_cm_pha
call set_cm_phb
mov cm_hold_state,#00h
movw cr20w,#00h
;MU110走纸电机初始状态
call pf_hold_current
call set_pf_pha
call set_pf_phb
mov pf_hold_state,#00h
movw cr21w,#00h
movw position_x,#12
mov db_PinCmFlag,#PIN_CM_HOLD ;不翻转
mov lock_fk_flag,#FEED_PAPER_CLOSE ;走纸关闭 2005-03-25
mov esc_return_flag,#UN_ESC_RETURN ;无命令解析
mov esc_return_value,#00h
movw pass_bm_num,#01h
mov position_flag,#STEP_OVER_BM ;此时的步数为已走过黑标的步数
mov pf_limit_flag,#FEED_PAPER_OPEN ;走纸打开
mov lf_value_flag,#LF_VALUE18 ;1/8
mov line_head_lf_flag,#LINEHEAD_NO_LF ;行首不换行
mov line_head_lf_value,#01h
mov pbuff_sflag2,#00h
mov pbuff_sflag1,#00h
mov old_prt_data_temp,#00h
mov old_prt_data,#00h
mov feed_dir_flag,#FEED_DIR_IDLE ;走纸空闲
mov feed_lines,#00h
call _read_bm_num
call _EA_ucReadBMLen
mov blackmark_len, c
add blackmark_len, #10 ;10步的偏差值
movg whl,#000000h
movg pbuff_base_addr,whl
movw prt_buff_pointer,#00h
mov feed_to_bm_flag,#FEED_DIR_IDLE ;走纸空闲
mov find_bm_flag,#UNFOUND_BM ;黑标没找到
mov check_BM_flag,#CHECK_UNBM ;走纸过程检查无黑标
mov pf_with_cm_flag,#PF_WHEN_CM_STOP ;字车静止之后走纸
mov ascii_feed_flag,#PF_WHEN_CM_STOP
mov cm_logic_flag,#00h ;逻辑查询
movw stop_position,#00h
movw position_y,#00h
mov cm_idle_num,#00h
mov cm_idle_flag,#CM_PIN ;无空走
mov pin_out_flag,#UN_PIN_OUT ;不能出针
mov hz_bi_dir_flag,#HZ_BI_DIR ;HZ_BI_DIR-双向打印
mov ascii_double_width_flag,#ASCII_SINGLE ;西文单倍密度
mov ascii_7x7_flag,#ASCII_7X7 ;7*7
mov hz_ascii_mode_flag,#ASCII_MODE ;西文本
mov pbuff_mflag,#PBUFF1 ;当前缓冲区为1
mov hz_double_density_flag,#HZ_DOUBLE
mov hz_small_size_flag,#HZ_SMALL ;小字
mov _prt_char_num,#00h
mov print_map_flag,#PRINT_CHAR ;字符打印
mov map_len,#00h
mov map_line,#00h
mov feed_step_by_step_flag,#FEED_LINE ;行走纸
mov feeding_flag,#MOTOR_IDLE ;走纸电机空闲
mov printing_flag,#UN_PRINTING
movw printing_counter,#00h
mov cm_printing_flag,#MOTOR_IDLE ;字车电机空闲
mov db_LastBMFlag, #LASTBM_WHITE ;(黑标状态)白色
mov cm_init_flag,#MOTOR_IDLE ;字车电机空闲
mov cm_speed_state,#MOTOR_SPEED_STOP ;字车电机停止
mov cm_dir_flag,#MOTOR_DIR_L_OR_B ;控制字车电机向左
movw cm_step_num,#00h
mov cm_step_counter,#00h
mov cm_rush_flag,#MOTOR_HOLD_STATE ;字车保持状态
mov print_return_value,#PRNT_NORMAL ;正常(白色位置)
mov db_10Step12SwitchFlag,#DB_10STEP ;MU110 打印初始化10步
mov pf_dir_flag,#MOTOR_DIR_R_OR_F ;控制走纸电机正向 2005-04-07
movw pf_step_num,#00h
mov pf_rush_flag,#MOTOR_HOLD_STATE ;保持状态
mov pf_speed_flag,#MOTOR_SPEED_STOP ;走纸电机停止
mov stop_feed_paper_flag,#FEED_PAPER_OPEN ;走纸打开
mov pf_step_counter,#00h
mov allAscii_flag,#00h ;2005-03-28
mov allAscii_temp,#00h ;2005-03-28
mov db_EnterBMFlag, #ENTERBM_FORWORD ;2005-04-07
call paper_size
mov test_pin_not_out_flag,#TEST_PIN_OUT_NORMAL ;正常打印
call powerup_init
Pwroffinit_wait:
cmp cm_init_flag,#MOTOR_IDLE
bne $Pwroffinit_wait ;循环等待HP初始化结束
Pwroff_init_bm_signal:
mov db_LastBMFlag, #LASTBM_WHITE
call check_bm_info
bnc $Pwroffinit_printer_end
mov db_LastBMFlag, #LASTBM_BLACK
Pwroffinit_printer_end:
movw pass_bm_num,Pass_BmNum_Temp ;2005-04-07
mov position_flag,Position_FlagTemp ;2005-04-07
mov initing_flag,#INITED
pop whl
ret
;******************************************************************************
; 函数名:
; powerup_init
;
; 功能:
; 字车上电定位(加速10位)
;-------------------------------------------------------------------------------
powerup_init:
cmp cm_init_flag,#MOTOR_IDLE
bne $powerup_init
call hp_signal
bc $Cm_init_left ;判断HP信号高低
Cm_init_right:
movw cm_step_num,#240
mov cm_rush_flag,#MOTOR_RUSH_STATE
mov cm_init_flag,#MOTOR_INIT
mov cm_dir_flag,#MOTOR_DIR_R_OR_F
mov db_10Step12SwitchFlag,#DB_10STEP
mov cm_step_counter,#10
mov cm_speed_state,#MOTOR_SPEED_ACC
call timer20_init ;hp信号为低,向右no more than 230步
Cm_init_right_wait:
call hp_signal
bnc $Cm_init_right_wait1
cmp cm_speed_state,#MOTOR_SPEED_ACC
be $Cm_init_acc_high
cmp cm_speed_state,#MOTOR_SPEED_CONST
be $Cm_hp_here ;HP为低中的情况1
Cm_init_right_wait1:
cmp cm_init_flag,#MOTOR_IDLE
bne $Cm_init_right_wait
mov print_return_value,#PRNT_HP_ERR
ret ;停下还 hp signal低则还回硬件错误
Cm_init_acc_high:
push ax
push bc
movw ax,#32
movw bc,#00h
mov c,cm_step_counter
subw ax,bc
movw cm_step_num,ax
pop bc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -