📄 timcard.h
字号:
/*=========================================
ProjectName: Time Card
McuType: EM78569
FileName: TimCard.h
===========================================*/
;Special RAM 0x10-->0x1F
;------------------------
RSRbak EQU 0x10
;------------------------
TimeFlag EQU 0x11
BetPower EQU 0x11
SecondFlag == 0
MinutFlag == 1
HourFlag == 2
Tim_05s == 6
halfSecond == 7
Bak_Tim == 3 ;1:当前为省电模式标记
Bet_10V == 4 ;电池有10V
Bet_13V == 5 ;电池有13V
;------------------------
SysFlag EQU 0x12
keyPressed == 0 ;1/0->有键按下/无键按下
keyTime == 1 ;1/0->时间到,5ms扫描一次
keyMult == 2 ;有多个键按下
keyUp == 3 ;0-是否松手
Fcontinue == 4 ;0/1--闪烁/不闪烁
FhaveCard == 5 ;Card in
FCardMove == 6 ;Card moved
FStepMark == 7 ;记录 Step 的位置
FclockHole == 3 ;Clock se sign
;------------------------
PowerFlag EQU 0x13
_onFlag == 0 ;0/1--off/on
CorFlag == 1 ;0/1--Black/Red
BellOnFlag == 2 ;0/1--Music off/on
isCKBell == 3 ;响铃
isCKBs == 4 ;变色
isCKFL == 5 ;换栏
FPErr == 6 ;出错
SCorFlag == 7 ;0/1--Black/Red,Setups
;----------------------------
SetupFlag EQU 0x14 ;7夏令时标记,6进入菜单功能时用
FhaveClr == 0 ;有自动变色功能
FhaveMusic == 1 ;有音乐功能
FhaveClm == 2 ;有自动移位功能
clr812 == 3 ;只用有功能设定中才用到,小心使用
_FAC == 5
;----------------------------
KeyBuf EQU 0x15
Key0Flag == 0
Key1Flag == 1
Key2Flag == 2
Key3Flag == 3
Key4Flag == 4
Key5Flag == 5
KeyBufBak EQU 0x16
;----------------------------
KeyStore EQU 0x17
;----------------------------
KeyPtr EQU 0x18 ;用于扫描次数计数
;----------------------------
ColumnFlag EQU 0x19 ;记录在哪一个栏位
_Lw1 == 0 ;以后要检测这几个栏位标志
_lw2 == 1 ;当前栏位
_lw3 == 2
_slw1 == 4 ;系统设定的栏位
_slw2 == 5
_slw3 == 6
;----------------------------
LWCNT EQU KeyBufBak ;计算栏位
LWCNT1 EQU KeyPtr
HW_CNT EQU 0x1A ;HwBak -> bank2
PrtFlag EQU 0x1B
FOver8 == 0 ;栏位多于256
FOver81 == 1 ;栏位多于256
FLine == 2 ;保护线
FcntLw == 3 ;计算栏位的宽
FcntLong == 4 ;计算栏位的深
FwaitOver == 5
Fhave0 == 6
Fhave1 == 7
;----------------------------
Cnt1Ptr EQU 0x1C ;980uS
Cnt2Ptr EQU 0x1D ;5ms
;----------------------------
BUZZER_PTR EQU 0x1E ;TemPTR1
TemPTR EQU 0x1F
S_W_PTR EQU TemPTR ;设定星期中用到,以后注意不要重用
;----------------------------
;Bank0 RAM 0x20-->0x3F;20-2F为系统的数据,30-3F为程序空间
;以后默认BANK为BANK0,主要做一些与系统相关的参数设定
s_Time_Addr EQU 0x20
s_Second EQU s_Time_Addr+0 ;0x20
s_Minute EQU s_Time_Addr+1 ;0x21
s_Hour EQU s_Time_Addr+2 ;0x22
s_Day EQU s_Time_Addr+3 ;0x23
s_Month EQU s_Time_Addr+4 ;0x24
s_Year EQU s_Time_Addr+5 ;0x25
s_week EQU s_Time_Addr+6 ;0x26以上为123setup
s_chgHour EQU 0x27 ;换日时间设定,4setup
s_ChgMinute EQU 0x28 ;
s_EndWeek EQU 0x29 ;周薪结算日
s_PrtHtz EQU 0x2A ;打印位置水平调正,8setup
s_PrtVtz EQU 0x2B ;竖直
;9夏时制设定
s_COLOR_P EQU 0x2C ;设定变色的指针
s_Music_P EQU 0x2D ;设定响铃的指针
s_Percent EQU 0x2E ;百分比设定,10Setup;00:60,01:100,02:12Hour
s_CardFlag EQU 0x2F ;6,夏令时经过零时标记,7,换日时间经过零时标记
CardType == 0 ;卡片类型,5setup:00正常打印,01上升一格
TimeFormat == 1 ;时间制,7setup,00-24,01-12
CardFace == 2 ;卡片的正反面,11setup,00-有识别,01-无识别
MoneyType == 3 ;6薪资分类设定 00:月薪,01:周薪
;--------------------------------------------------------------
;--------------------------------------------------------------
s_SetNo EQU 0x30 ;记录设定时的序号
H_856 EQU s_SetNo
D_SetNo EQU 0x31 ;显示设定的序号
S_856 EQU D_SetNo
;----------------------------
s_setFun EQU 0x32 ;记录设定时的功能选择
isColor == 0 ;变色设定
isMusic == 1 ;音乐设定
isColumn == 2 ;自动换栏
isNormal == 3 ;进入十一组一般的设定
LCDbak EQU s_setFun ;注意,这里是重用
;----------------------------
setFlag EQU 0X33
FunIn == 0 ;0/1,是否进入第一层设定
FunHave2 == 1 ;是否有第二层设定
FunIn2 == 2 ;0/1,前面两个/后面两个
CLR834 == 3 ;清楚834
FlashTime == 4 ;0/1--改变状态
SummerinEnd == 5 ;0设定开始,1设定结束
WmoneyEnd == 5 ;周薪的节算日,1-Week
_second_69 == 6 ;0设定第一部份,1设定第二部份
FErr == 7 ;检测日期是否有错
;----------------------------
;setFlag EQU 0X33
;FunIn == 0 ;0/1,是否进入第一层设定
;FunHave2 == 1 ;是否有第二层设定
;FunIn2 == 2 ;0/1,前面两个/后面两个
;CLR834 == 3 ;清楚834
;FlashTime == 4 ;0/1--改变状态
FselectW == 5 ;0/1--进入星期的设定
Fsecond_s == 6 ;进入Mode设定
FMusicT == 7 ;Music 的第二时间设定
;----------------------------
s_Colum_P EQU 0x34 ;设定自动换栏的指针
s_W_Retail EQU 0x35 ;每个星期的细节
s_878 EQU s_W_Retail
H_878 EQU S_878
;----------------------------
H_812 EQU 0x36 ;为十六进制,用于计算
s_812 EQU 0x37 ;只用于显示
H_834 EQU 0x38 ;
s_834 EQU 0x39 ;
;----------------------------
;KeyStore
;isColor == 0 ;变色设定
;isMusic == 1 ;音乐设定
;isColumn == 2 ;自动换栏
isDown == 3 ;Down
isUp == 4 ;Up
isEnter == 5 ;Enter
;----------------------------
;9夏时制设定
S_BgnMonth EQU 0x3A ;夏时制开始的:月日小时
S_BgnDay EQU 0x3B ;
S_BgnHour EQU 0x3C ;
S_EndMonth EQU 0x3D ;夏时制结束的:月日小时
S_EndDay EQU 0x3E ;
S_EndHour EQU 0x3F ;
;----------------------------
;----------------------------
;Bank1 RAM 0x20-->0x3F
ADD1H EQU 0x20 ;加数1
ADD1L EQU 0x21 ;
ADD2HH EQU 0x22 ;
ADD2H EQU 0x23 ;加数2
ADD2L EQU 0x24 ;
SUMHH EQU 0x22 ;和
SUMH EQU 0x23 ;
SUML EQU 0x24 ;
SUB1M EQU 0x20 ;减数
SUB1L EQU 0x21 ;
SUBH EQU 0x22 ;被减数/差
SUBM EQU 0x23 ;
SUBL EQU 0x24 ;
MUL1H EQU 0x20 ;乘数1
MUL1L EQU 0x21 ;
MUL2H EQU 0x25 ;乘数2
MUL2L EQU 0x26 ;
_MULH EQU 0x22 ;积
_MULM EQU 0x23 ;
_MULL EQU 0x24 ;
DIVH EQU 0x20 ;除数
DIVL EQU 0x21 ;
DIV_5 EQU 0x22 ;
DIV_4 EQU 0x23 ;
DIV_3 EQU 0x24 ;被除数
DIV_2 EQU 0x25 ;
DIV_1 EQU 0x26 ;
R_DIVH EQU 0x27 ;商
R_DIVL EQU 0x28 ;
REMAND_H EQU 0x23 ;余数
REMAND_L EQU 0x24 ;
HH_2 EQU 0x20 ;
HH_1 EQU 0x21 ;
DD_2 EQU 0x22 ;
DD_1 EQU 0x23 ;
DH_BUF EQU 0x25 ;
Math_PTR EQU 0x29 ;
PRT_TEM_PTR EQU Math_PTR
KS_DAY EQU 0x2A
D_Year EQU 0x3B ;
D_Month EQU 0x3C ;
D_Day EQU 0x3D ;显示的时间
D_Hour EQU 0x3E ;
D_Minute EQU 0x3F ;
PRT_Addr_Base EQU 0x20
Date_Ptr_H EQU PRT_Addr_Base+0
Date_Ptr_L EQU PRT_Addr_Base+1
Date_Date_Tem EQU PRT_Addr_Base+2
Date_Data_H EQU PRT_Addr_Base+4
Date_Data_L EQU PRT_Addr_Base+5
Hour_Ptr_H EQU Date_Ptr_H
Min_Ptr_H EQU Date_Ptr_H
;------------------------------
;Setup temp buf
N_P_Hour EQU 0x2E ;stop Power time
N_P_Min EQU 0x2F
_t_c_Hour EQU 0x30 ;for setup color
_t_c_Mintue EQU 0x31 ;Power off Bs
_t_c_week EQU 0x32
_t_c_Mode EQU 0x33
_t_M_Hour EQU 0x30 ;for setup Music
_t_M_Mintue EQU 0x31
_t_M_week EQU 0x32
_t_M_Mode EQU 0x33
_t_M_eMintue EQU 0x34
_t_M_eSecond EQU 0x35
_t_L_Hour EQU 0x30 ;for setup column
_t_L_Mintue EQU 0x31 ;Power off FL
_t_L_week EQU 0x32
_t_L_Mode EQU 0x33
ss_F_Ptr EQU 0x36
s_D_No EQU 0x37
sF_Fun_Ptr EQU 0x38 ;用于在设定中已有的组数
Del_Fun_Ptr EQU 0x38 ;计数多个键按下
Bell_Mintue EQu 0x39
Bell_Second EQU 0x3A
Tem_sHour EQU 0x20 ;存入只是临时用
Tem_SMintue EQU 0x21
Tem_sWeek EQU 0x22
Bell_Mode EQU 0x23
;----------------------------
;----------------------------
;Bank2 RAM 0x20-->0x3F
W_Card_Ctr EQU 0x20 ;计数等待取走卡时间
TureCardCtr EQU KeyBuf ;是否是卡,要注意变量
FL_Time_Cnt EQU 0x30 ;自动换栏时间
LWbak EQU 0x31 ;备份栏位
HwBak EQU 0x32 ;备份打印的深度
HwBakH EQU 0x33 ;备份打印深度高位
Clock_Hour EQU 0x34 ;用作计算时的临时变量
Clock_Min EQU 0x35 ;
Ac_Hour EQU 0x36 ;市电停时的变量
Ac_Min EQU 0x37
AD_H EQU 0x38 ;
AD_L EQU 0X39 ;
AD_PTR EQU 0x3B ;AD计数器
AD_FLAG EQU 0x3A ;
B_Bet_Icon == 0
B_INT_V1 == 1
B_INT_V2 == 2
B_INT_V3 == 3
B_INT_V4 == 4
B_INT_V5 == 5
AD_EndFlag == 7 ;
;_INT_V2 == 1
;_INT_V1 == 2
;_INT_V3 == 3
;_Bet_Icon == 5
;_INT_V5 == 6
;_INT_V4 == 7
DelayNoTem EQU 0x3C
_TEM_ICON EQU 0x3D
NumPtrH EQU 0x3E
NumPtrL EQU 0x3F
ERR_Second EQU 0x3E
ERR_NUM EQU 0x3F
;----------------------------
;Bank3 RAM 0x20-->0x3F
;R3E
;DATA_BAK EQU 0x35 ;
;TemPTR1 EQU 0x1E ;
;============================================
;Ram2560 PrtBuf 50Bytes,COLOR 4*24 = 96
;============================================
;Print Data Buf. 50Bytes
;----------------------------
;PRT_DATA_BUF EQU 0x20
;PRT_PTR EQU KeyBuf
;----------------------------
;0xA0--0xFF COLOR 4*24 = 96,
_scor_Hour EQU 0xA0
_scor_Mintue EQU _scor_Hour+1
_SCor_Week EQU _scor_Hour+2
_SCor_Mode EQU _scor_Hour+3
;-------------------------------------------
;Ram2561 保存24组Music,COLUMN的设定数据
;-------------------------------------------
;0x00--0x8F total 144bytes Music 6*24 = 144
_sMzc_Hour EQU 0x00
_sMzc_Mintue EQU _sMzc_Hour+1
_SMzc_Mode EQU _sMzc_Hour+2
_sMzc_lMintue EQU _sMzc_Hour+3
_sMzc_lsecond EQU _sMzc_Hour+4
_SMzc_Week EQU _sMzc_Hour+5
;-------------------------------------------
;0xA0--0xFF total 144bytes,Column 4*24 = 96
_scmn_Hour EQU 0xA0
_scmn_Mintue EQU _scmn_Hour+1
_Scmn_Mode EQU _scmn_Hour+2
_Scmn_Week EQU _scmn_Hour+3
;============================================
;The following is constant data.
;============================================
;The following is LCD data. Address LCD
s_Add_LCD81 EQU 0x00
S_ADD_LCD82 EQU 0x01
S_ADD_LCD83 EQU 0x02
S_ADD_LCD84 EQU 0x03
S_ADD_LCD85 EQU 0x04
S_ADD_LCD86 EQU 0x05
S_ADD_LCD87 EQU 0x06
S_ADD_LCD88 EQU 0x07
s_Add_LCDw EQU 0x06
S_ADD_LCDP1 EQU 0x07
S_ADD_LCDP2 EQU 0x09
_LCD_SAT == 1
_LCD_FRI == 2
_LCD_THU == 3
_LCD_WED == 4
_LCD_TUE == 5
_LCD_MON == 6
_LCD_SUN == 7
;S_ADD_LCDP1 EQU 0x07
_INT_V2 == 1
_INT_V1 == 2
_INT_V3 == 3
;S_ADD_LCDP2 EQU 0x09
_Ac_Icon == 4
_Bet_Icon == 5
_INT_V5 == 6
_INT_V4 == 7
s_LCD_NOL EQU 0x05 ;在设定中显示NORMAL的设定功能号
s_LCD_NOH EQU 0x06
s_LCD_YearL EQU 0x00 ;year low bytes
s_LCD_YearH EQU 0x01 ;year high bytes
;============================================
;----------------------------
LEDPORT EQU PORTB
LED_1 == 0
LED_2 == 1
LED_3 == 2
LED_4 == 3
LED_5 == 4
LED_6 == 5
LedCtrPort EQU PORTC
Led_En == 7
;----------------------------
Key_In_Line EQU PORT8
In_Line_1 == 0
In_Line_2 == 1
In_Line_3 == 2
M_CARIN EQU PORT8 ;入卡M
CARIN_I == 3
CARIN_O == 4
CardInPort EQU PORT8
PA_EN == 7 ;入卡的深度计数
PA_S0 == 6 ;起始住置
PA_S1 == 5 ;正反面
;----------------------------
Key_Out_Line EQU PORT7
Out_Line_1 == 6
Out_Line_2 == 7
SetupPort EQU PORT7
SetBit == 5 ;低电平进入设定
CarInt == 0 ;入卡中断产生
;----------------------------
;Port6
PowerPort EQU Port6
AC_ON == 7 ;检测市电
sw_12 == 5 ;12V swicth
PR_ST == 6 ;4做了AD ;One Time 12mm, start Print
PR_EN == 3
M_PRT EQU PORT6
M_PRTR == 1 ;电机方向
M_PRTL == 2 ;电磁铁方向
;----------------------------
StepM0PORT EQU Port9
M0A == 4 ;3 ;3
M0B == 5 ;2 ;2
M0C == 2 ;5 ;5
M0D == 3 ;4 ;4
CLOCK_SE == 4 ;CLOCK FACE SIGN
;----TEST------------
M0AR == 4
M0BR == 5
M0CR == 2
M0DR == 3
;----------------------------
;----------------------------
;----------------------------
PRT_D_PORT EQU PORTB
PRT_D_PORT1 EQU PORTC
PRT_BIT9 == 5
PRT_C_PORT EQU PORTC
PRT_EN == 6
;-----------------------------
;PORTC
Mic_con == 4 ;PORTC
REALY == 3 ;BELL
SCL == 0 ;电磁铁
Wavebit == 2 ;wave bit
;============================================
;Peter.yu Marked in DongGuan City 2004-4-1
;============================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -