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

📄 sam2t.l

📁 用SAM72N9写的电子秤文档
💻 L
📖 第 1 页 / 共 5 页
字号:
  733  01B6   21         	REF	RSMB_MemMapIO	; Select Memory Bank
  734  01B7   81 7C      	LD	EA,#01111100b	; Enable T/C0
  735  01B9   CD 90      	LD	TMOD0,EA        ; clear TCNT0 & Restart
  736  01BB   FE 8C      	BITR	IRQT0		; Clear Timer/Counter Request Flag
  737                    ;^*********************************^
  738                    
  739  01BD   20         	REF	RSMB_Variable	;
  740  01BE   81 57      	LD	EA,#DischargeDelay
  741                    
  742  01C0              DischargePeriod8
  743  01C0   CD 5E      	LD	CntTCNT,EA	;
  744  01C2   FE 8C      	BITR	IRQT0		; Clear Timer/Counter Request Flag
  745  01C4   77         	REF	RIRET_SB	;
  746                    
  747                    ;============================================================================
  748                    
  749                    ;***********************************************************
  750                    ;	F: Chk MaB key
  751                    ;	I: KeyKGLB, KeyFlozML, KeyHold,	KeyHeldNow
  752                    ;
  753  01C5              ChkMaBkey
  754  01C5   C2 21      	BTSF	KeyHeldNow	; if key held, exit
  755  01C7   C5         	RET			;
  756  01C8   8C 75      	LD	A,MaB_Key	;
  757  01CA   48         	DECS	A		;
  758  01CB   11         	JR	ChkMaBkey1	;
  759  01CC   C5         	RET			;
  760  01CD              ChkMaBkey1
  761  01CD   F3 26      	BTST	IdleBatLowNow	; if battery low now, skip
  762  01CF   14         	JR	ChkMaBkey2	;
  763  01D0   B0         	LD	A,#0		;
  764  01D1   89 75      	LD	MaB_Key,A	;
  765  01D3   C5         	RET
  766  01D4              ChkMaBkey2
  767  01D4   EA C2      	CALLS	Dly60		; Key delay 600ms
  768  01D6   C2 75      	BTSF	KeyKGLB		;
  769  01D8   19         	JR	MaB_KGLB	;
  770                    	
  771  01D9   E2 75      	BTSF	KeyHold		;
  772  01DB   92 0E      	JPS	MaB_Hold	;
  773                    	
  774  01DD   D2 75      	BTSF	KeyFlozML	;
  775  01DF   91 FE      	JPS	MaB_FlozML
  776  01E1   C5         	RET			;
  777                    
  778                    ;***********************************************************
  779                    ;	F: kg/lb button
  780                    ;	O: KeyKGLB
  781                    ;	N: MaB
  782                    ;
  783  01E2              MaB_KGLB
  784  01E2   E2 21      	BTSF	CntDspNow	; if CntDspNow = 1, exit
  785  01E4   C5         	RET			;
  786  01E5   C0 75      	BITR	KeyKGLB		;
  787                    		
  788  01E7   E2 24      	BTSF	HoldEn		; if hold enable, no funciton
  789  01E9   C5         	RET
  790                    
  791  01EA              SetSolMeasure
  792  01EA   F3 20      	BTST	SolLiqMode	;
  793  01EC   91 F1      	JPS	SetUnit		;
  794  01EE   F0 20      	BITR	SolLiqMode	; Set Solid mode
  795  01F0   17         	JR	RstMode		;
  796  01F1              SetUnit
  797  01F1   E7         	SCF			;
  798  01F2   83 20      	LD	HL,#OperFlg1	;
  799  01F4   F7 20      	BXOR	C,@H+UnitMode	; switch % g/lb
  800  01F6   FC 20      	LDB	@H+UnitMode,C	;
  801                    
  802  01F8              RstMode
  803  01F8   EA 8C      	CALLS	SetFactoryMode	;
  804  01FA   63         	REF	RSetBnd		;
  805                    	
  806  01FB   EF C5      	CALLS	MainCalculate2	;
  807  01FD   C5         	RET
  808                    ;-----------------------------------
  809                    ;	F: fl.oz/ml button
  810                    ;	O: SolLiqMode, UnitMode
  811                    ;	N: MaB
  812                    ;
  813  01FE              MaB_FlozML
  814  01FE   E2 21      	BTSF	CntDspNow	; if CntDspNow = 1, exit
  815  0200   C5         	RET			;
  816  0201   D0 75      	BITR	KeyFlozML	;
  817                    		
  818  0203   E2 24      	BTSF	HoldEn		; if hold enable, no funciton
  819  0205   C5         	RET
  820                    
  821  0206              SetLiqMeasure
  822  0206   F2 20      	BTSF	SolLiqMode	;
  823  0208   91 F1      	JPS	SetUnit		;
  824  020A   F1 20      	BITS	SolLiqMode	; Set Liquid mode
  825  020C   91 F8      	JPS	RstMode		;
  826                    
  827                    ;--------------------------------------------------------	
  828                    ; F: Hold key operation
  829  020E              MaB_Hold		
  830  020E   E0 75      	BITR	KeyHold
  831                    	
  832  0210   E2 24      	BTSF	HoldEn
  833  0212   1B         	JR	IsHoldKey2
  834  0213              IsHoldKey1
  835  0213   E1 24      	BITS	HoldEn
  836  0215   C1 88      	BITS	Icon_Hold		; Indicate Hold is enable now
  837  0217   BC         	LD	A,#HoldChkTime		; Reset Hold check interval timer
  838  0218   89 3F      	LD	HoldTimer,A		;
  839  021A   B0         	LD	A,#0
  840  021B   89 7F      	LD	HoldState,A
  841  021D   16         	JR	IsHoldKey3		;
  842  021E              IsHoldKey2
  843  021E   E0 24      	BITR	HoldEn
  844  0220   C0 88      	BITR	Icon_Hold		; Indicate Hold is disable
  845  0222   D0 7F      	BITR	HoldRd		; Set this flag to allow update the display
  846  0224              IsHoldKey3
  847  0224   C5         	RET
  848                    ;***********************************************************
  849                    ;	O: KeyHeldNow
  850                    ;	N: xxxx0000 - EA : Key scan input
  851                    ;	       |||'-- Off button
  852                    ;	       ||'--- kg/lb button
  853                    ;	       |'---- fl.oz/ml button
  854                    ;              '----- hold button
  855                    ;
  856  0225              ChkKeyPressed
  857  0225   DC F6      	LD	YZ,EA		;
  858  0227   ED 17      	CALLS	SetST_RL	; reset sleep timer
  859                    
  860  0229   47         	REF	RSkipSRC_YZ	;
  861  022A   91 10      	JPS	Sleep		; Off button
  862  022C   47         	REF	RSkipSRC_YZ	;
  863  022D   92 38      	JPS	IsKeyKGLB	; kg/lb button
  864  022F   47         	REF	RSkipSRC_YZ	;
  865  0230   92 3F      	JPS	IsKeyFLOZML	; fl.oz/ml button
  866  0232   47         	REF	RSkipSRC_YZ	;	
  867  0233   92 46      	JPS	IsHoldKey	; Hold key button
  868                    
  869  0235              ChkKeyPress9
  870  0235   C1 21      	BITS	KeyHeldNow	;
  871  0237              ChkKeyPressE
  872  0237   C5         	RET
  873                    
  874                    ;***********************************************************
  875                    ;	F: kg/lb button
  876                    ;	O: KeyKGLB
  877                    ;	N: MaB
  878                    ;
  879  0238              IsKeyKGLB
  880  0238   C3 21      	BTST	KeyHeldNow	; if key held,
  881  023A   C1 75      	BITS	KeyKGLB		;
  882  023C   DB 02 35   	JP	ChkKeyPress9	; exit
  883                    
  884                    ;***********************************************************
  885                    ;	F: kg/lb button
  886                    ;	O: KeyFlozML
  887                    ;	N: MaB
  888                    ;
  889  023F              IsKeyFLOZML
  890  023F   C3 21      	BTST	KeyHeldNow	; if key held,
  891  0241   D1 75      	BITS	KeyFlozML	;
  892  0243   DB 02 35   	JP	ChkKeyPress9	; exit
  893                    
  894                    ;-----------------------------------
  895                    ;	F: Hold key button 
  896                    ;	O: KeyHold
  897                    ;	N: MaB
  898                    ;
  899  0246              IsHoldKey
  900  0246   C3 21      	BTST	KeyHeldNow	; if key held,
  901  0248   E1 75      	BITS	KeyHold		;	
  902  024A   DB 02 35   	JP	ChkKeyPress9	; exit
  903                    
  904                    ;====== DISPLAY ROUTINE ============================================
  905                    
  906                    ;***********************************************************
  907                    ;	F: Set NewWeightBCD & spWeightBCD to display nothing
  908                    ;	O: NewWeightBCD[]
  909                    ;	D: EA
  910                    ;
  911  024D              InitWeightBCD
  912  024D   27         	REF	RLD_EA0
  913  024E   CD 90      	LD	NewWeightBCD0,EA	;
  914  0250   CD 92      	LD	NewWeightBCD2,EA	;
  915  0252   89 94      	LD	NewWeightBCD4,A		;
  916  0254   C5         	RET
  917                    
  918                    ;***********************************************************
  919                    ;	F: Clear weighting Symbol, retain low bat & timer icon
  920                    ;	O: Iconset0, Iconset1, Iconset2
  921                    ;	D: A
  922                    ;
  923  0255              ClearWgtSym
  924  0255   B0         	LD	A,#0			; Clear decpt1, colon, g, oz
  925  0256   89 86      	LD	Iconset0,A		; Clear lb, kg, decpt2, low bat
  926  0258   89 87      	LD	Iconset1,A		;
  927  025A   8C 89      	LD	A,Iconset3		; Clear one, decpt3
  928  025C   DD 12      	AND	A,#0010b		; retain tare icon
  929  025E   89 89      	LD	Iconset3,A		;
  930  0260   8C 88      	LD	A,Iconset2		; Clear S2, fl., ml
  931  0262   DD 11      	AND	A,#0001b		; retain Hold icon
  932  0264   89 88      	LD	Iconset2,A		;
  933  0266   C5         	RET
  934                    
  935                    ;***********************************************************
  936                    ;	F: Display Version Number
  937                    ;	O: NULL
  938                    ;
  939                    ;
  940  0267              DspVerNo
  941                    ;	CALL	DspWeightTare	; Clear Display
  942                    ;	LD	EA,#LDsp_5	; Display Samsung II
  943                    ;	LD	LDigit1xxx,EA	;
  944                    ;	LD	EA,#LDsp_2	;
  945                    ;	LD	LDigitx1xx,EA	;
  946                    ;	
  947                    ;	LD	EA,#VerD1	; Display Version
  948                    ;	REF	RLD_LDIGxx1xEA	;
  949                    ;	LD	EA,#VerD2	;
  950                    ;	REF	RLD_LDIGxxx1EA	;
  951                    ;	REF	RDsp4LDigit	; Display ???? Digits
  952  0267   C5         	RET
  953                    
  954                    
  955                    ;------------------------------------------
  956                    ; REMARK THESE BY HCY FOR TEST
  957                    ;***********************************************************
  958                    ;	F: Display Overload - "  EE"
  959                    ;	O: SDigitx_8
  960                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
  961                    ;
  962  0268              DspADInitErr
  963  0268              DspEE	;LD	EA,#LDsp_E	; Display "EE" when A/D init error
  964                    	;REF	RLD_LDIGxxx1EA	;
  965                    	;JR	DspHILO		;
  966                    
  967                    ;***********************************************************
  968                    ;	F: Display Overload - "  LO "
  969                    ;	O: SDigitx_8
  970                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
  971                    ;
  972  0268              DspLO	;LD	EA,#LDsp_O	;
  973                    	;REF	RLD_LDIGxxx1EA	;
  974                    	;LD	EA,#LDsp_L	;
  975                    	;JR	DspHILO		;
  976                    
  977                    ;***********************************************************
  978                    ;	F: Display Overload - "  HI "
  979                    ;	O: SDigitx_8
  980                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -