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

📄 sam2_m.l

📁 用SAM72N9写的电子秤文档
💻 L
📖 第 1 页 / 共 5 页
字号:
  961  0243   DB 02 35   	JP	ChkKeyPress9	; exit
  962                    
  963                    ;-----------------------------------
  964                    ;	F: Hold key button 
  965                    ;	O: KeyHold
  966                    ;	N: MaB
  967                    ;
  968  0246              IsHoldKey
  969  0246   C3 21      	BTST	KeyHeldNow	; if key held,
  970  0248   E1 75      	BITS	KeyHold		;	
  971  024A   DB 02 35   	JP	ChkKeyPress9	; exit
  972                    
  973                    ;====== DISPLAY ROUTINE ============================================
  974                    
  975                    ;***********************************************************
  976                    ;	F: Set NewWeightBCD & spWeightBCD to display nothing
  977                    ;	O: NewWeightBCD[]
  978                    ;	D: EA
  979                    ;
  980  024D              InitWeightBCD
  981  024D   27         	REF	RLD_EA0
  982  024E   CD 90      	LD	NewWeightBCD0,EA	;
  983  0250   CD 92      	LD	NewWeightBCD2,EA	;
  984  0252   89 94      	LD	NewWeightBCD4,A		;
  985  0254   C5         	RET
  986                    
  987                    ;***********************************************************
  988                    ;	F: Clear weighting Symbol, retain low bat & timer icon
  989                    ;	O: Iconset0, Iconset1, Iconset2
  990                    ;	D: A
  991                    ;
  992  0255              ClearWgtSym
  993  0255   B0         	LD	A,#0			; Clear decpt1, colon, g, oz
  994  0256   89 86      	LD	Iconset0,A		; Clear lb, kg, decpt2, low bat
  995  0258   89 87      	LD	Iconset1,A		;
  996  025A   8C 89      	LD	A,Iconset3		; Clear one, decpt3
  997  025C   DD 12      	AND	A,#0010b		; retain tare icon
  998  025E   89 89      	LD	Iconset3,A		;
  999  0260   8C 88      	LD	A,Iconset2		; Clear S2, fl., ml
 1000  0262   DD 11      	AND	A,#0001b		; retain Hold icon
 1001  0264   89 88      	LD	Iconset2,A		;
 1002  0266   C5         	RET
 1003                    
 1004                    ;***********************************************************
 1005                    ;	F: Display Version Number
 1006                    ;	O: NULL
 1007                    ;
 1008                    ;
 1009                    ; 
 1010  0267              DspVerNo
 1011  0267   DB 42 9F   	CALL	DspWeightTare	; Clear Display
 1012  026A   81 05      	LD	EA,#LDsp_5	; Display Samsung II
 1013  026C   CD 54      	LD	LDigit1xxx,EA	;
 1014  026E   81 02      	LD	EA,#LDsp_2	;
 1015  0270   CD 52      	LD	LDigitx1xx,EA	;
 1016                    	
 1017  0272   81 01      	LD	EA,#VerD1	; Display Version
 1018  0274   35         	REF	RLD_LDIGxx1xEA	;
 1019  0275   81 08      	LD	EA,#VerD2	;
 1020  0277   34         	REF	RLD_LDIGxxx1EA	;
 1021  0278   55         	REF	RDsp4LDigit	; Display ???? Digits
 1022  0279   C5         	RET
 1023                    
 1024                    ;***********************************************************
 1025                    ;	F: Display Overload - "  EE"
 1026                    ;	O: SDigitx_8
 1027                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
 1028                    ;
 1029  027A              DspADInitErr
 1030  027A   81 0E      DspEE	LD	EA,#LDsp_E	; Display "EE" when A/D init error
 1031  027C   34         	REF	RLD_LDIGxxx1EA	;
 1032  027D   1B         	JR	DspHILO		;
 1033                    
 1034                    ;***********************************************************
 1035                    ;	F: Display Overload - "  LO "
 1036                    ;	O: SDigitx_8
 1037                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
 1038                    ;
 1039  027E   81 00      DspLO	LD	EA,#LDsp_O	;
 1040  0280   34         	REF	RLD_LDIGxxx1EA	;
 1041  0281   81 11      	LD	EA,#LDsp_L	;
 1042  0283   15         	JR	DspHILO		;
 1043                    
 1044                    ;***********************************************************
 1045                    ;	F: Display Overload - "  HI "
 1046                    ;	O: SDigitx_8
 1047                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
 1048                    ;
 1049  0284   81 01      DspHI	LD	EA,#LDsp_I	;
 1050  0286   34         	REF	RLD_LDIGxxx1EA	;
 1051  0287   81 10      	LD	EA,#LDsp_H	;
 1052  0289   35         DspHILO	REF	RLD_LDIGxx1xEA	;
 1053  028A   81 17      	LD	EA,#LDspNul	;
 1054  028C   EA A8      	CALLS	LdLDigit1	;
 1055  028E   17         	JR	ClrDspBuf1	;
 1056                    
 1057                    ;***********************************************************
 1058                    ;	F: Clear display buffer
 1059                    ;	D: EA
 1060                    ;
 1061  028F              ClrDspBuf
 1062  028F   81 17      	LD	EA,#LDspNul	;
 1063  0291   EA A6      	CALLS	LdLDigit	;
 1064  0293   DB 4D C1   	CALL	ClearSymbol	;
 1065  0296              ClrDspBuf1
 1066  0296   EA 55      	CALLS	ClearWgtSym	;
 1067  0298   B9         	LD	A,#SDsp_Nul	;
 1068  0299   54         	REF	RDspSDigit	; Display ?/? Digits
 1069  029A   55         	REF	RDsp4LDigit	; Display ???? Digits
 1070  029B   56         	REF	RDspSymbol	;
 1071  029C   C5         	RET
 1072                    
 1073                    ;***********************************************************
 1074                    ;	F: Display Underweight - "----"
 1075                    ;	O: SDigitx_8
 1076                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
 1077                    ;
 1078  029D              DspUnderWeight
 1079  029D   81 16      	LD	EA,#LDsp__	;
 1080                    
 1081                    ;***********************************************************
 1082                    ;	F: Weight Taring Display - "0000"
 1083                    ;	O: SDigitx_8
 1084                    ;	   LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
 1085                    ;
 1086  029F              DspWeightTare
 1087  029F   81 00      	LD	EA,#LDsp_0	;
 1088  02A1   EA A6      	CALLS	LdLDigit	;
 1089  02A3   02         	JR	ClrDspBuf1	;
 1090                    
 1091                    ;***********************************************************
 1092                    ;	F: Display "8888"
 1093                    ;	O: LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
 1094                    
 1095  02A4              LdLDig8888
 1096  02A4   81 08      	LD	EA,#LDsp_8	;
 1097                    
 1098                    ;***********************************************************
 1099                    ;	F: Load EA into 4 Large digit buffer
 1100                    ;	I: EA
 1101                    ;	O: LDigitxxx1 = LDigitxx1x = LDigitx1xx = LDigit1xxx = EA
 1102                    ;
 1103  02A6              LdLDigit
 1104  02A6   34         	REF	RLD_LDIGxxx1EA	;
 1105  02A7   35         	REF	RLD_LDIGxx1xEA	;
 1106  02A8              LdLDigit1
 1107  02A8   CD 52      	LD      LDigitx1xx,EA	;
 1108  02AA   CD 54      	LD      LDigit1xxx,EA	;
 1109  02AC   E2 27      	BTSF	UdrWtNow	; if underweight now,
 1110  02AE   81 17      	LD	EA,#LDspNul	; dsp decimal digit to nothing.
 1111  02B0   CD 4C      	LD	LDigit___1,EA	;
 1112  02B2   C5         	RET
 1113                    
 1114                    ;***********************************************************
 1115                    ;	F: Initialize Mode Setting
 1116                    ;	I: FactoryMode = 0..15 Mode
 1117                    ;	   UnitMode = 0(kg), 1(lb)
 1118                    ;	   OperFlag5.3,2 = 0: g(Default);  1 = oz; 2 = ml; 3 = fl.oz
 1119                    ;	O: Step1, Step2, Bound1, Bound2
 1120                    ;	   gRatio, oz1_8Ratio, ozRatio, lbRatio
 1121                    ;
 1122  02B3              SetFactoryMode
 1123  02B3   8C 45      	LD	A,FactoryMode
 1124  02B5   E2 20      	BTSF	UnitMode
 1125  02B7   92 C1      	JPS	Set_oz_Mode
 1126                    
 1127  02B9              Set_g_Mode
 1128  02B9   D9 3F      	LD	Y,#3		;
 1129  02BB   83 AA      	LD	HL,#Mode_g_1_8	;
 1130  02BD   EA D0      	CALLS	SetFactory1	;
 1131  02BF   92 CF      	JPS	SetFactoryModeE	;
 1132                    
 1133  02C1              Set_oz_Mode
 1134  02C1   D9 6F      	LD	Y,#6		;
 1135  02C3   83 C2      	LD	HL,#Mode_lb_1_8 ;
 1136  02C5   EA D0      	CALLS	SetFactory1	;
 1137  02C7   EA DC      	CALLS	SetFactory2	;
 1138  02C9   F3 20      	BTST	SolLiqMode	;
 1139  02CB   92 CF      	JPS	SetFactoryModeE	;
 1140                    
 1141  02CD              Set_floz_code
 1142  02CD   EA DF      	CALLS	SetFactory3	;
 1143                    
 1144  02CF              SetFactoryModeE
 1145  02CF   C5         	RET
 1146                    
 1147                    ;------------------------------------------------------------------
 1148  02D0              SetFactory1
 1149  02D0   30         	REF	RLD_E0		; Only have 0..15 mode
 1150  02D1   EC 19      	CALLS	HexMul		;
 1151  02D3   E6         	RCF			;
 1152  02D4   33         	REF	RADC_EAHL	; EA = Start addr of mode data
 1153  02D5   26         	REF	RLD_WXEA	;
 1154  02D6   83 96      	LD	HL,#Step1	;
 1155  02D8   52         	REF	RStoreWordCode	; Store Step1
 1156  02D9   52         	REF	RStoreWordCode	; Store Boundary1
 1157  02DA   53         	REF	RStoreByteCode	; Store Unit count
 1158  02DB   C5         	RET
 1159                    
 1160  02DC              SetFactory2
 1161  02DC   52         	REF	RStoreWordCode	; Store Unit count (1 oz)
 1162  02DD   52         	REF	RStoreWordCode	; Store Unit count (1 lb)
 1163  02DE   C5         	RET
 1164                    
 1165  02DF              SetFactory3
 1166  02DF   83 9A      	LD	HL,#Bound1	;
 1167  02E1   52         	REF	RStoreWordCode	; Store fl.oz boundaries
 1168  02E2   C5         	RET
 1169                    
 1170                    ;***********************************************************
 1171                    ;	F: Delay routine
 1172                    ;	I: EA = ? x 10 ms
 1173                    ;
 1174  02E3   81 01      Dly1	LD	EA,#1		;
 1175  02E5   81 02      Dly2	LD	EA,#2		;
 1176  02E7   81 14      Dly20	LD	EA,#20		;
 1177  02E9   81 3C      Dly60	LD	EA,#60		;
 1178  02EB   81 C8      Dly200	LD	EA,#200		;
 1179  02ED   81 FA      Dly250	LD	EA,#250		;
 1180  02EF   DB 4A A5   	CALL	Delay10ms	;
 1181  02F2   C5         	RET
 1182                    
 1183                    ;***********************************************************
 1184                    ;	F: Calculate Step value
 1185                    ;	I: UnitCnt, Step1, Step2
 1186                    ;	O: EA = Step value
 1187                    ;	   HexCalFlg = 1
 1188                    ;	N: Step value = Step count / Unit count / 10
 1189                    ;	   Step value = 1byte
 1190                    ;	   For mode 6 & 15, Step value = Step / Unit count
 1191                    ;
 1192  02F3              CalStepVal
 1193  02F3   2B         	PUSH	HL
 1194                    
 1195  02F4   85 64      	LD	WX,#YS_F_REG_4	;
 1196  02F6   62         	REF	RCurStep2Ary	;
 1197  02F7   CE 9E      	LD	EA,UnitCnt	; Step VaLue = Step count / Unit count
 1198  02F9   83 74      	LD	HL,#YS_L_REG_4	;
 1199  02FB   50         	REF	RByteAry	;
 1200  02FC   36         	REF	RDiv_YS		;
 1201                    
 1202                    ;	LD	A,FactoryMode	;
 1203             

⌨️ 快捷键说明

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