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

📄 wdt4mdefination.h

📁 射频卡水表源代码 射频卡水表源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
	
//**************************** 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 + -