📄 wdt4mdefination.h
字号:
//**************************** P2 port defination *************************//
CardIn SET 1H ;P2.0 卡接近开关(刷卡)
POAR SET 2H ;P2.1 窃用
BATOUT SET 4H ;P2.2 电池盒拉出
BIT23 SET 8H ;P2.3 充电
BUZ SET 10H ;P2.4 蜂鸣器
//**************************** P6 port defination *************************//
RFrd SET 1H ;P6.0 射频卡读
RFwr SET 2H ;P6.1 射频卡写
RFon SET 4H ;P6.2 U2270B唤醒
SDA SET 8H ;P6.3 EEROM数据
SCL SET 10H ;P6.4 24C01选通位
EEpow SET 20H ;P6.5 EEROM供电
Mo_H SET 40H ;P6.6 电机引脚1
Mo_L SET 80H ;P6.7 电机引脚2
ValveGap_ set 0aH ;Valve close dalay
Step SET 800H ;
//**************************** FLAG0 defination **************************//
#define TIMFG 0001H,&FLAG0 //1S时间到 //200H
#define RemindFG1 0002H,&FLAG0 //提醒1
#define ERRFG 0004H,&FLAG0 //出错标志(24C01,RF等)
#define LOSEFG 0008H,&FLAG0 //产生窃用信号
#define VLFG 0010H,&FLAG0 //电压低标志
#define VALVERuined 0020H,&FLAG0 //阀门坏标志
#define DSPFG 0040H,&FLAG0 //显示更新命令
#define NEWRFG 0080H,&FLAG0 //需要写C02
#define FirstPulse 0100H,&FLAG0 //the sign of first pulse
// #define TIMESFG 0200H,&FLAG0 //切换时间
#define OddBorrFG 0200H,&FLAG0 //040611
#define RF_ERRFG 0400H,&FLAG0 //射频卡读写错误
#define DataWrongFG 0800H,&FLAG0 //
#define CARDOP 1000H,&FLAG0 //正在对卡处理标志
#define OtherInt 2000H,&FLAG0 //
#define LowSpeed 4000H,&FLAG0 //低速标志
#define CARDFG 8000H,&FLAG0 //插卡标志
//**************************** FLAG1 defination **************************//
#define NFG 0001H,&FLAG1 //剩余量为负数标志 //202H
#define POARFG 0002H,&FLAG1 //处于窃用状态标志
#define RemindFG4 0004H,&FLAG1 //提醒4
#define ALARMFG 0008H,&FLAG1 //剩余量小于设定的最小量
#define WaterFlowFG 0010H,&FLAG1 //water is used
#define ValveOperatingFG 0020H,&FLAG1 //opening or closing valve
#define CloseValveFG 0040H,&FLAG1 //close valve
#define OpenValveFG 0080H,&FLAG1 //
#define POENDFG 0100H,&FLAG1 //
#define OVDRAFG 0200H,&FLAG1 //透支OVERDRAFT 标志
#define VALVEFG 0400H,&FLAG1 //阀门检验时的状态:1-开阀,0-关阀
#define OVERFG 0800H,&FLAG1 //余量过大>50000
#define RemindFG2 1000H,&FLAG1 ////提醒2
#define RemindFG3 2000H,&FLAG1 ////提醒3
#define GLERRFG 4000H,&FLAG1 //购量不一致
#define GCERRFG 8000H,&FLAG1 //购次不一致
//**************************** FLAG2 defination **************************//
//040817 #define ValOpenConFG 0001H,&FLAG2 //开阀控制标志 //204H
#define ValCloseConFG 0002H,&FLAG2 //关阀控制标志 //204H
//#define ConstantInc 0004H,&FLAG2 //表常数增加标志 //204H
#define CloseValve2FG 0004H,&FLAG2
//040608 #define ConstantDec 0008H,&FLAG2 //表常数增加标志 //204H
#define VolDectFG 0008H,&FLAG2 //电压检测标志 040608
#define ManageCardFG 0010H,&FLAG2 //管理卡标记
#define CheckCardFG 0040H,&FLAG2 //校验卡标记
#define UserCardFG 0080H,&FLAG2 //用户卡标记
#define ClearCardFG 0100H,&FLAG2 //清零卡标记
#define TestCardFG 0200H,&FLAG2 //测试卡标记
#define SetCardFG 0400H,&FLAG2 //设置卡标记
#define ExtraCardFG 0800H,&FLAG2 //临时卡标记
#define CalibrateCardFG 1000H,&FLAG2 //校准卡标记
#define EngineeringCardFG 2000H,&FLAG2 //工程卡标记
#define CardOpOKFG 4000H,&FLAG2 //读卡正确
#define UserCardWriteErrorFG 8000H,&FLAG2 //
HalfSecondPassed_ set 8000H
//**************************** User's register **************************//
SFRB AccountSign =220H ;开户标记
SFRW StealingTime =222H ;窃用时间
SFRB PurchasingTime =224H ;购买次数
SFRW OldLcdL =226H ;一吨内计数暂存
//040818 SFRW RegState =228H ;状态
SFRW LcdLDisp =228H ;040818
SFRW LcdL =22AH ;一吨内计数暂存
SFRW Q_GL =22CH ;本次购买量
SFRW Q_LJ =22EH ;累积流量
SFRW Dosage =230H ;1ml dosage
SFRW Oddment =232H ;0.01ml dosage
SFRW OddDisp =234H ;100ml以下待显示部分 040611
SFRW Q_YLDisp =236H ;显示的立方米部分 040818
SFRW Q_JB1 =0238H ;月基本用量1
SFRW Q_JB2 =023AH ;月基本用量2
SFRW Chao1 =023CH ;超出量1
SFRW Chao2 =023EH ;超出量2
SFRW Chao3 =0240H ;超出量3
SFRW Chao4 =0242H ;超出量4
SFRW RegOddment =244H ;0.01ml dosage
SFRW RegLcdL =246H ;一吨内计数暂存
SFRW RegQ_YL =248H ;剩余量3
SFRW Q_YL =24AH ;剩余量3
SFRW SystemCode =24CH ;系统码
SFRW State =24EH ;状态
SFRW YEAR =250H ;年
SFRB YEARL =250H ;年
SFRB YEARH =251H ;年
SFRB MON =252H ;月
SFRB DAY =253H ;日
SFRB HOUR =254H ;小时
SFRB MIN =255H ;分
SFRB SEC =256H ;秒
SFRB CardNumH =257H
SFRB CardNumM =258H
SFRB CardNumL =259H
SFRB MeterNumH =25AH ;表号高
SFRB MeterNumM =25BH ;表号中
SFRB MeterNumL =25CH ;表号低
;25DH单元在程序中已使用,该字节不能再分配 040817
MonthData SET 260H
SFRW January =260H
SFRW Fabruary =262H
SFRW March =264H
SFRW April =266H
SFRW May =268H
SFRW June =26AH
SFRW July =26CH
SFRW Augest =26EH
SFRW September =270H
SFRW October =272H
SFRW November =274H
SFRW December =276H
SFRW ThisMonth =278H
SFRW ValveState =27CH ;AA-open other-close
SFRW DataOK =27EH
SFRB T_V_TIM =280H ;阀门开关定时器
SFRB NoClear =281H ;剩余水量的极限值
SFRB DSPTM =282H ;LCD显示时间定时,单位为S
SFRB DSPNO =283H ;当前显示的编号?0购,1余,2累,3表号,4天,5时,6常数
SFRB DSPGAP =284H ;LCD显示切换的间隔,单位为S
SFRB BUZTM =285H ;蜂鸣器鸣叫时间,单位为S,1HZ鸣叫,0值则关BUZ
SFRB ClockTCount =286H ;
SFRB NoFlowTCount =287H ;
SFRB LowVatageTCount =288H ;
SFRB ValveGap =289H ;开关阀门的时间间隔
SFRB ReRead =28AH ;重复读卡次数
SFRB ReWrite =28BH ;重复写卡次数
SFRW StartTime =028CH
SFRB StartTimeL =028CH
SFRB StartTimeH =028DH
SFRW EndTime =028eH
SFRB EndTimeL =028eH
SFRB EndTimeH =028fH
SFRW RF_WB1 =0290H
SFRW RF_WB2 =0292H
SFRW RF_WB3 =0294H
SFRW RF_WB4 =0296H
SFRW RF_WB5 =0298H
SFRW RF_WB6 =029AH
SFRW RF_WB7 =029CH
SFRW RF_WB8 =029EH
SFRW FlashAddr =02A0H
SFRW PORTIME =02A2H
SFRW Interval =02A4H ;
SFRB CHVTM =02A7H ;
SFRB VCCOUNT =02A8H ;
SFRB VCP1INT =2A9H
SFRW FLAG0 =2AAh ;标志寄存器
SFRW FLAG1 =2ACh
SFRW FLAG2 =2AEh
;----------------------------------------------------------------
RFDataBuf SET 2B0H ;28字节的RF缓冲区
LcdDataBuf SET 200H ;10字节的LCD缓冲区
SystemDataRAM SET 200H ;128字节的系统数据区(in RAM)
SystemDataFlashA SET 1000H ;128字节的系统数据区(in Flash A)
SystemDataFlashB SET 1080H ;128字节的系统数据区(in Flash B)
SystemDataLength SET 080H ;数据区长度
;----------------------------------------------------------------------------
; CONSTANT DEFINITIONS
;-----------------------------------------------------------------------------
TIMEOUT EQU 100 ;defines SAMPLE FREQUENCY
;----------------定义LCD显示--------------------------
a equ 80h ;段的定义
b equ 40h
c equ 20h
d equ 10h
f equ 08h
g equ 04h
e equ 02h
h equ 01h
;
//************************* Some Macro for system design **********************//
/*
;宏定义
STOP MACRO ;STOP模式运行
jmp $
ENDM
;
BuzOn MACRO ;蜂鸣器开
bis.b #BUZ,&P2DIR
bis.b #BUZ,&P2OUT
ENDM
;
BuzOff MACRO ;蜂鸣器关
bic.b #BUZ,&P2SEL
bis.b #BUZ,&P2DIR
bic.b #BUZ,&P2OUT
ENDM
*/
//************************** Switch off the EEPROM *************************//
EE24ON MACRO
LOCAL EE24ON1
bis.b #EEpow,&P6DIR
bit.b #EEpow,&P6OUT
jnz EE24ON1
bis.b #EEpow,&P6OUT
NOP
NOP
NOP
NOP
EE24ON1 ENDM
//******************* Switch on the RF card basestation ********************//
RF_ON MACRO
LOCAL RF_ON1
bis.b #RFon+RFwr,&P6DIR ;电源和写端口为输出态
bic.b #RFrd,&P6DIR ;读端口为输入态
bis.b #RFon,&P6OUT ;电源ON
mov #0e000h,AX1 ;57344等待电源稳定
RF_ON1 dec AX1 ;1
JNZ RF_ON1 ;2
ENDM
//**************************** Shut off the EEPROM **************************//
EE24OFF MACRO
bic.b #SDA+SCL,&P6OUT
nop
nop
bic.b #EEpow,&P6OUT
ENDM
//**************************** **************************//
TA_ST MACRO
mov #TASSEL1+TACLR+ID1,&TACTL ;时钟SMCLK=4MHz
bis #MC1,&TACTL ;启动TA
ENDM
//**************************** **************************//
TA_RST MACRO
mov #0000000100100000B,&TACTL ;CLOCK = SCLK, /8,
ENDM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -