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

📄 kclock2.lst

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

⌨️ 快捷键说明

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