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

📄 stimer.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	RETI 	
; END OF IntSysTimer

; 
; void beep(unsigned char times, unsigned char tick)

	RSEG  ?PR?_beep?STIMER
_beep:
	USING	0
			; SOURCE LINE # 128
;---- Variable 'times?240' assigned to Register 'R7' ----
;---- Variable 'tick?241' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 129
;     fSetting = 1;
			; SOURCE LINE # 130
	SETB 	fSetting
;     BuzzerTick = tick;
			; SOURCE LINE # 131
	XCH  	A,R6
	MOV  	A,R5
	XCH  	A,R6
	MOV  	BuzzerTick,R6
;     BuzzerTimes = times;
			; SOURCE LINE # 132
	MOV  	BuzzerTimes,R7
;     if(times)
			; SOURCE LINE # 133
	MOV  	A,R7
	JZ   	?C0009
;     {
			; SOURCE LINE # 134
;         BUZZER = BUZZERON;
			; SOURCE LINE # 135
	CLR  	P3_5
;     }
			; SOURCE LINE # 136
	SJMP 	?C0010
?C0009:
;     else
;     {
			; SOURCE LINE # 138
;         BUZZER = BUZZEROFF;
			; SOURCE LINE # 139
	SETB 	P3_5
;     }
			; SOURCE LINE # 140
?C0010:
;     fSetting = 0;
			; SOURCE LINE # 141
	CLR  	fSetting
; }
			; SOURCE LINE # 142
	RET  	
; END OF _beep

; 
; void delay( unsigned int time )

	RSEG  ?PR?_delay?STIMER
_delay:
	USING	0
			; SOURCE LINE # 144
	MOV  	DPTR,#time?342
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 145
;     unsigned int data startms;
;     
;     startms = GetTickCount();
			; SOURCE LINE # 148
	LCALL	GetTickCount
	MOV  	startms?343,R6
	MOV  	startms?343+01H,R7
?C0012:
;     
;     while((GetTickCount() - startms) < time)
			; SOURCE LINE # 150
	LCALL	GetTickCount
	CLR  	C
	MOV  	A,R7
	SUBB 	A,startms?343+01H
	MOV  	R7,A
	MOV  	A,R6
	SUBB 	A,startms?343
	MOV  	R6,A
	SETB 	C
	MOV  	DPTR,#time?342+01H
	MOVX 	A,@DPTR
	SUBB 	A,R7
	MOV  	DPTR,#time?342
	MOVX 	A,@DPTR
	SUBB 	A,R6
	JNC  	?C0012
; 	{
			; SOURCE LINE # 151
; 	}
			; SOURCE LINE # 152
; }
			; SOURCE LINE # 153
?C0014:
	RET  	
; END OF _delay

; 
; unsigned int GetTickCount(void)

	RSEG  ?PR?GetTickCount?STIMER
GetTickCount:
	USING	0
			; SOURCE LINE # 155
; {
			; SOURCE LINE # 156
;     unsigned int data cyl, ms;
;     
; 	#ifdef  WATCHDOG
; 	ResetWDT();
			; SOURCE LINE # 160
	LCALL	ResetWDT
; 	#endif
; 
;     ET1 = 0;
			; SOURCE LINE # 163
	CLR  	ET1
;     ms = TStatus.ms;
			; SOURCE LINE # 164
	MOV  	ms?445,TStatus+02H
	MOV  	ms?445+01H,TStatus+03H
;     cyl = TStatus.Tick.cycles;
			; SOURCE LINE # 165
	MOV  	cyl?444,TStatus
	MOV  	cyl?444+01H,TStatus+01H
;     ET1 = 1;
			; SOURCE LINE # 166
	SETB 	ET1
;     
;     return cyl / Interval.mscycles + ms;
			; SOURCE LINE # 168
	MOV  	R4,Interval
	MOV  	R5,Interval+01H
	MOV  	R6,cyl?444
	MOV  	R7,cyl?444+01H
	LCALL	?C?UIDIV
	MOV  	A,ms?445+01H
	ADD  	A,R7
	MOV  	R7,A
	MOV  	A,ms?445
	ADDC 	A,R6
	MOV  	R6,A
; }
			; SOURCE LINE # 169
?C0015:
	RET  	
; END OF GetTickCount

; 
; unsigned int GetTenTickCount(void)

	RSEG  ?PR?GetTenTickCount?STIMER
GetTenTickCount:
	USING	0
			; SOURCE LINE # 171
; {
			; SOURCE LINE # 172
; 	unsigned int data tmp;
; 	
; 	#ifdef  WATCHDOG
; 	ResetWDT();
			; SOURCE LINE # 176
	LCALL	ResetWDT
; 	#endif
; 	
; 	ET1 = 0;
			; SOURCE LINE # 179
	CLR  	ET1
; 	tmp = TStatus.ms;
			; SOURCE LINE # 180
	MOV  	tmp?546,TStatus+02H
	MOV  	tmp?546+01H,TStatus+03H
; 	ET1 = 1;
			; SOURCE LINE # 181
	SETB 	ET1
; 	
;     return tmp;
			; SOURCE LINE # 183
	MOV  	R6,tmp?546
	MOV  	R7,tmp?546+01H
; }
			; SOURCE LINE # 184
?C0016:
	RET  	
; END OF GetTenTickCount

; 
; void InitTimer( unsigned long sysclk )

	RSEG  ?PR?_InitTimer?STIMER
_InitTimer:
	USING	0
			; SOURCE LINE # 186
	MOV  	DPTR,#sysclk?647
	LCALL	?C?LSTXDATA
; {
			; SOURCE LINE # 187
;     unsigned long data ltmp;
;     
;     if((TMOD & 0xf0) != 0x03)
			; SOURCE LINE # 190
	MOV  	A,TMOD
	ANL  	A,#0F0H
	XRL  	A,#03H
	JZ   	?C0017
;     {
			; SOURCE LINE # 191
;         TMOD &= 0xf0;
			; SOURCE LINE # 192
	ANL  	TMOD,#0F0H
;         TMOD |= 0x03;
			; SOURCE LINE # 193
	ORL  	TMOD,#03H
;     }
			; SOURCE LINE # 194
?C0017:
; 
;     SysClk = sysclk;
			; SOURCE LINE # 196
	MOV  	DPTR,#sysclk?647
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#SysClk
	LCALL	?C?LSTXDATA
;     ltmp = SysClk / 100;
			; SOURCE LINE # 197
	CLR  	A
	MOV  	R3,#064H
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	MOV  	DPTR,#SysClk
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	?C?ULDIV
	MOV  	ltmp?648+03H,R7
	MOV  	ltmp?648+02H,R6
	MOV  	ltmp?648+01H,R5
	MOV  	ltmp?648,R4
;     Interval.tenmsloops = (unsigned char)(ltmp >> 8);
			; SOURCE LINE # 198
	MOV  	R0,#08H
	LCALL	?C?ULSHR
	MOV  	Interval+02H,R7
;     Interval.mscycles = ltmp / 10;
			; SOURCE LINE # 199
	CLR  	A
	MOV  	R3,#0AH
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	MOV  	R7,ltmp?648+03H
	MOV  	R6,ltmp?648+02H
	MOV  	R5,ltmp?648+01H
	MOV  	R4,ltmp?648
	LCALL	?C?ULDIV
	MOV  	Interval,R6
	MOV  	Interval+01H,R7
;     
;     SetIntPri(TF1_VECTOR, 0);
			; SOURCE LINE # 201
	CLR  	A
	MOV  	R5,A
	MOV  	R7,#03H
	LCALL	_SetIntPri
;     SetIntPri(TF0_VECTOR, 3);
			; SOURCE LINE # 202
	MOV  	R5,#03H
	MOV  	R7,#01H
	LCALL	_SetIntPri
;     
;     TH0=0;
			; SOURCE LINE # 204
	CLR  	A
	MOV  	TH0,A
;     TR1=1;
			; SOURCE LINE # 205
	SETB 	TR1
;     ET1=1;
			; SOURCE LINE # 206
	SETB 	ET1
;     enable();
			; SOURCE LINE # 207
	SETB 	EA
; }
			; SOURCE LINE # 208
	RET  	
; END OF _InitTimer

; 
; void InitUserTimer(unsigned char rldval, unsigned char startval)

	RSEG  ?PR?_InitUserTimer?STIMER
_InitUserTimer:
	USING	0
			; SOURCE LINE # 210
;---- Variable 'startval?750' assigned to Register 'R5' ----
;---- Variable 'rldval?749' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 211
;     UserReload = rldval;
			; SOURCE LINE # 212
	MOV  	UserReload,R7
;     TL0 = startval;
			; SOURCE LINE # 213
	XCH  	A,R7
	MOV  	A,R5
	XCH  	A,R7
	MOV  	TL0,R7
;     TF0 = 0;
			; SOURCE LINE # 214
	CLR  	TF0
;     TR0 = 1;
			; SOURCE LINE # 215
	SETB 	TR0
;     ET0 = 1;
			; SOURCE LINE # 216
	SETB 	ET0
; }
			; SOURCE LINE # 217
	RET  	
; END OF _InitUserTimer

; 
; void led(unsigned char ltick)

	RSEG  ?PR?_led?STIMER
_led:
			; SOURCE LINE # 219
;---- Variable 'ltick?851' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 220
;     if(ltick == 0)
			; SOURCE LINE # 221
	MOV  	A,R7
	JNZ  	?C0020
;     {
			; SOURCE LINE # 222
;         LedFlash = 0;
			; SOURCE LINE # 223
	CLR  	LedFlash
;         LED = LEDOFF;
			; SOURCE LINE # 224
	SETB 	P1_3
;     }
			; SOURCE LINE # 225
	RET  	
?C0020:
;     else if(ltick == 0xff)
			; SOURCE LINE # 226
	MOV  	A,R7
	CJNE 	A,#0FFH,?C0022
;     {
			; SOURCE LINE # 227
;         LedFlash = 0;
			; SOURCE LINE # 228
	CLR  	LedFlash
;         LED = LEDON;
			; SOURCE LINE # 229
	CLR  	P1_3
;     }
			; SOURCE LINE # 230
	RET  	
?C0022:
;     else
;     {
			; SOURCE LINE # 232
;         LedTick = ltick;
			; SOURCE LINE # 233
	MOV  	LedTick,R7
;         LedFlash = 1;
			; SOURCE LINE # 234
	SETB 	LedFlash
;     }
			; SOURCE LINE # 235
; }
			; SOURCE LINE # 236
?C0024:
	RET  	
; END OF _led

; 
; /*
; void led1(unsigned char ltick)
; {
;     if(ltick == 0)
;     {
;         Led1Flash = 0;
;         LED1 = LEDOFF;
;     }
;     else if(ltick == 0xff)
;     {
;         Led1Flash = 0;
;         LED1 = LEDON;
;     }
;     else
;     {
;         Led1Tick = ltick;
;         Led1Flash = 1;
;     }
; }
; */
; 
; void StartCLKO(unsigned int div)

	RSEG  ?PR?_StartCLKO?STIMER
_StartCLKO:
			; SOURCE LINE # 259
;---- Variable 'div?952' assigned to Register 'R6/R7' ----
; {
			; SOURCE LINE # 260
;     unsigned int data rld;
;     
;     P1_0 = 1;
			; SOURCE LINE # 263
	SETB 	P1_0
;     
;     ET2 = 0;
			; SOURCE LINE # 265
	CLR  	ET2
; 
;     T2CON = 0;
			; SOURCE LINE # 267
	CLR  	A
	MOV  	T2CON,A
;     T2MOD = 0x02;
			; SOURCE LINE # 268
	MOV  	T2MOD,#02H
;     
;     rld = 65536 - div;
			; SOURCE LINE # 270
	CLR  	C
	SUBB 	A,R7
	MOV  	rld?953+01H,A
	CLR  	A
	SUBB 	A,R6
	MOV  	rld?953,A
;     RCAP2H = rld >> 8;
			; SOURCE LINE # 271
	MOV  	RCAP2H,A
;     RCAP2L = rld & 0xff;
			; SOURCE LINE # 272
	MOV  	A,rld?953+01H
	MOV  	RCAP2L,A
;     
;     TH2 = 0xff;
			; SOURCE LINE # 274
	MOV  	TH2,#0FFH
;     TL2 = 0xff;
			; SOURCE LINE # 275
	MOV  	TL2,#0FFH
;     
;     TR2 = 1;
			; SOURCE LINE # 277
	SETB 	TR2
; }
			; SOURCE LINE # 278
	RET  	
; END OF _StartCLKO

; 
; void dummy(void)

	RSEG  ?PR?dummy?STIMER
dummy:
			; SOURCE LINE # 280
; {
			; SOURCE LINE # 281
;     
; }
			; SOURCE LINE # 283
	RET  	
; END OF dummy

	END

⌨️ 快捷键说明

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