?? print.asm
字號:
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 + -