📄 timer.src
字号:
; .\obj\timer.SRC generated from: timer.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE timer.c LARGE OPTIMIZE(9,SPEED) BROWSE NOAREGS DEFINE(K_CARD_TOTAL=3,K_CARD_TYPE=0x0064,P_NAND_SIZE=0) DEBUG OBJECTEXTEND CODE SYMBOLS NOPRINT SRC(.\obj\timer.SRC)
$NOMOD51
NAME TIMER
TB81 BIT 0C0H.3
P0 DATA 080H
P1 DATA 090H
SM01 BIT 0C0H.7
P2 DATA 0A0H
SM11 BIT 0C0H.6
P3 DATA 0B0H
SM21 BIT 0C0H.5
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
DPH1 DATA 085H
IE DATA 0A8H
FL BIT 0D0H.1
DPL1 DATA 084H
TA DATA 0C7H
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
REN1 BIT 0C0H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
SADEN0 DATA 0B9H
INT2 BIT 090H.4
SADEN1 DATA 0BAH
RXD0 BIT 0B0H.0
INT3 BIT 090H.5
RXD1 BIT 090H.2
INT4 BIT 090H.6
SADDR0 DATA 0A9H
TXD0 BIT 0B0H.1
INT5 BIT 090H.7
SADDR1 DATA 0AAH
TXD1 BIT 090H.3
RCAP2H DATA 0CBH
SP DATA 081H
T2EX BIT 090H.1
EPFI BIT 0D8H.5
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
EWDI BIT 0E8H.4
WDIF BIT 0D8H.3
RCLK BIT 0C8H.5
EXIF DATA 091H
Key_Column1 BIT 0B0H.4
Key_Column2 BIT 0B0H.5
TCLK BIT 0C8H.4
Key_Column3 BIT 0B0H.3
PCON DATA 087H
PWDI BIT 0F8H.4
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
WTRF BIT 0D8H.2
CP_RL2 BIT 0C8H.0
SMOD_1 BIT 0D8H.7
ACC DATA 0E0H
ES0 BIT 0A8H.4
ET0 BIT 0A8H.1
ES1 BIT 0A8H.6
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RI1 BIT 0C0H.0
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TI1 BIT 0C0H.1
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
TH2 DATA 0CDH
EX2 BIT 0E8H.0
P BIT 0D0H.0
EX3 BIT 0E8H.1
SM0 BIT 098H.7
TL0 DATA 08AH
EX4 BIT 0E8H.2
SM1 BIT 098H.6
TL1 DATA 08BH
EX5 BIT 0E8H.3
SM2 BIT 098H.5
TL2 DATA 0CCH
PS0 BIT 0B8H.4
EIE DATA 0E8H
PT0 BIT 0B8H.1
PS1 BIT 0B8H.6
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
PX2 BIT 0F8H.0
PX3 BIT 0F8H.1
PX4 BIT 0F8H.2
DPH DATA 083H
PX5 BIT 0F8H.3
EIP DATA 0F8H
PFI BIT 0D8H.4
DPL DATA 082H
SBUF0 DATA 099H
SBUF1 DATA 0C1H
EXEN2 BIT 0C8H.3
SCON0 DATA 098H
REN BIT 098H.4
SCON1 DATA 0C0H
STATUS DATA 0C5H
T2MOD DATA 0C9H
T2CON DATA 0C8H
DPS DATA 086H
CKCON DATA 08EH
EWT BIT 0D8H.1
POR BIT 0D8H.6
F0 BIT 0D0H.5
PSW DATA 0D0H
WDCON DATA 0D8H
RWT BIT 0D8H.0
RB81 BIT 0C0H.2
?PR?TIMER0_Routine?TIMER SEGMENT CODE
?PR?TIMER0_Handler?TIMER SEGMENT CODE
?PR?TIMER0_Start?TIMER SEGMENT CODE
?PR?TIMER0_Stop?TIMER SEGMENT CODE
?PR?TIMER0_Keypad_Scan?TIMER SEGMENT CODE
?XD?TIMER0_Keypad_Scan?TIMER SEGMENT XDATA OVERLAYABLE
?PR?TIMER0_Get_Hardware_Keypad1?TIMER SEGMENT CODE
?XD?TIMER0_Get_Hardware_Keypad1?TIMER SEGMENT XDATA OVERLAYABLE
?PR?TIMER0_Get_Hardware_Keypad2?TIMER SEGMENT CODE
?XD?TIMER0_Get_Hardware_Keypad2?TIMER SEGMENT XDATA OVERLAYABLE
?PR?_TIMER0_GetGPIOBit?TIMER SEGMENT CODE
?PR?_TIMER0_SetGPIOBit?TIMER SEGMENT CODE
?PR?_TIMER0_GetGPIOByte?TIMER SEGMENT CODE
?PR?DELAY_10us?TIMER SEGMENT CODE
?PR?DELAY_1ms?TIMER SEGMENT CODE
?PR?DELAY_1s?TIMER SEGMENT CODE
?PR?TIMER1_Routine?TIMER SEGMENT CODE
?PR?TIMER1_Handler?TIMER SEGMENT CODE
?PR?TIMER1_Start?TIMER SEGMENT CODE
?PR?TIMER1_Stop?TIMER SEGMENT CODE
?PR?TIMER0_LowPowerCount?TIMER SEGMENT CODE
?PR?DELAY_100us?TIMER SEGMENT CODE
?PR?DELAY_10ms?TIMER SEGMENT CODE
?PR?DELAY_100ms?TIMER SEGMENT CODE
?XD?TIMER SEGMENT XDATA
?PR?TIMER SEGMENT CODE
EXTRN CODE (UI_Buzzer)
EXTRN XDATA (G_BatteryStatus)
EXTRN XDATA (G_UIStatusH)
EXTRN XDATA (G_StayInMenu)
EXTRN XDATA (pressing_key)
EXTRN XDATA (G_StayInMenuCount)
EXTRN XDATA (G_FlashCharging)
EXTRN XDATA (key)
EXTRN XDATA (G_FlashChargingCount)
EXTRN XDATA (G_IsKeyRelease)
EXTRN XDATA (G_KeyState)
EXTRN XDATA (G_MidPowerCount)
EXTRN XDATA (G_UI_USBConnect)
EXTRN XDATA (G_FlashChargeFlag)
EXTRN XDATA (G_CameraOptions)
EXTRN XDATA (old_key)
EXTRN XDATA (G_FlashChargeCount)
EXTRN XDATA (G_LowPowerCount)
EXTRN XDATA (G_AutoPowerOffCount)
EXTRN CODE (?C?LSTXDATA)
EXTRN CODE (?C?LSTKXDATA)
EXTRN CODE (?C?CCASE)
EXTRN CODE (?C?CSTPTR)
PUBLIC G_Timer0Count
PUBLIC G_KeyScan
PUBLIC G_TimeStamp
PUBLIC G_Timer0Count1
PUBLIC G_KeepPushKeyCount
PUBLIC G_Timer0Stop
PUBLIC DELAY_100ms
PUBLIC DELAY_10ms
PUBLIC DELAY_100us
PUBLIC TIMER0_LowPowerCount
PUBLIC TIMER1_Stop
PUBLIC TIMER1_Start
PUBLIC TIMER1_Handler
PUBLIC TIMER1_Routine
PUBLIC DELAY_1s
PUBLIC DELAY_1ms
PUBLIC DELAY_10us
PUBLIC _TIMER0_GetGPIOByte
PUBLIC _TIMER0_SetGPIOBit
PUBLIC _TIMER0_GetGPIOBit
PUBLIC TIMER0_Get_Hardware_Keypad2
PUBLIC TIMER0_Get_Hardware_Keypad1
PUBLIC TIMER0_Keypad_Scan
PUBLIC TIMER0_Stop
PUBLIC TIMER0_Start
PUBLIC TIMER0_Handler
PUBLIC TIMER0_Routine
RSEG ?XD?TIMER0_Get_Hardware_Keypad1?TIMER
?TIMER0_Get_Hardware_Keypad1?BYTE:
temp_key?541: DS 1
RSEG ?XD?TIMER0_Get_Hardware_Keypad2?TIMER
?TIMER0_Get_Hardware_Keypad2?BYTE:
temp_key?642: DS 1
keymode?643: DS 1
RSEG ?XD?TIMER0_Keypad_Scan?TIMER
?TIMER0_Keypad_Scan?BYTE:
mode?440: DS 1
RSEG ?XD?TIMER
G_Timer0Stop: DS 1
G_KeepPushKeyCount: DS 1
G_Timer0Count1: DS 2
G_TimeStamp: DS 4
G_KeyScan: DS 1
G_Timer0Count: DS 1
; /*++
;
; Copyright (c) 2001 Sunplus Technology Co., Ltd.
;
; Module Name:
;
; timer.c
;
; Abstract:
;
; Module related to timer
;
; Environment:
;
; Keil C51 Compiler
;
; Note:
;
; Since in-line assembly code is included, pre-compile C51 file
; to A51 file. Then assemble A51 file.
;
; Revision History:
;
; 08/28/2001 Chi-Yeh Tsai created
;
; --*/
;
; //=============================================================================
; //Header file
; //=============================================================================
; #include "general.h"
; #include "timer.h"
; #include "ui.h"
; #include "cardlink.h"
; #include "audio.h"
;
; //ada@0415 test ui
; #include "main.h"
; #include "uiflow.h"
;
; //Joe@2003.3.4 20:31 add begin
; #include "JoeToEvb.h"
; xdata UCHAR G_KeepPushKeyCount;
; extern xdata UCHAR old_Audeokey;
; extern xdata UCHAR G_ucZoomFactor;
; extern UCHAR G_AE_com_index;
; extern xdata UCHAR G_FlashStatus;
; //Joe@2003.3.4 20:32 add end
; //=============================================================================
; //Symbol
; //=============================================================================
; //-----------------------------------------------------------------------------
; //Constant
; //-----------------------------------------------------------------------------
; #if (SIMULATE) // WWWW0409
; sbit Key_Column1;
; sbit Key_Column2;
; #else
; sbit Key_Column1 = P3^4;
; sbit Key_Column2 = P3^5;
; //Joe@2003.3.5 11:12 add begin
; sbit Key_Column3 = P3^3;
; //Joe@2003.3.5 11:12 add end
; #endif
;
; //Joe@2003.3.5 9:20 add begin
; void TIMER0_LowPowerCount(void);
; //Joe@2003.3.5 9:20 add end
; //patch5.03@Joe@2003.4.7 19:23 add begin
; xdata UCHAR G_Timer0Count;
; xdata USHORT G_Timer0Count1;//wendy@2004/9/8
; //patch5.03@Joe@2003.4.7 19:23 add end
; //-----------------------------------------------------------------------------
; //Variable
; //-----------------------------------------------------------------------------
; xdata ULONG G_TimeStamp;
; xdata UCHAR G_KeyScan;
;
; xdata UCHAR G_Timer0Stop;
; //=============================================================================
; //Program
; //=============================================================================
; //-----------------------------------------------------------------------------
; // TIMER0
; //-----------------------------------------------------------------------------
; //-----------------------------------------------------------------------------
; //TIMER0
; //-----------------------------------------------------------------------------
RSEG ?PR?TIMER
Com00BE:
L?0191:
USING 2
L?0192:
MOV DPTR,#key
MOVX A,@DPTR
MOV R6,A
XRL A,R7
RET
L?0198:
USING 2
MOV DPTR,#G_KeepPushKeyCount
MOV A,#0AH
MOVX @DPTR,A
MOV DPTR,#G_KeyState
CLR A
MOVX @DPTR,A
INC DPTR
RET
L?0199:
USING 2
L?0200:
MOV A,R7
RRC A
RRC A
RRC A
ANL A,#01FH
RET
L?0201:
USING 2
L?0202:
MOV DPTR,#G_LowPowerCount
MOVX A,@DPTR
SUBB A,#00H
RET
; END OF Com00BE
CSEG AT 0000BH
LJMP TIMER0_Routine
; void TIMER0_Routine(void) INTERRUPT_1 USING_2
RSEG ?PR?TIMER0_Routine?TIMER
USING 2
TIMER0_Routine:
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
PUSH PSW
USING 2
MOV PSW,#010H
; SOURCE LINE # 89
; {
; EX0 = 0;
; SOURCE LINE # 91
CLR EX0
; TIMER0_Handler(); //TIMER0 handler
; SOURCE LINE # 92
LCALL TIMER0_Handler
; EX0 = 1;
; SOURCE LINE # 93
SETB EX0
; }
; SOURCE LINE # 94
POP PSW
POP DPL
POP DPH
POP B
POP ACC
RETI
; END OF TIMER0_Routine
;
; //-----------------------------------------------------------------------------
; //TIMER0_Handler
; //-----------------------------------------------------------------------------
;
; void TIMER0_Handler(void) USING_2
RSEG ?PR?TIMER0_Handler?TIMER
TIMER0_Handler:
USING 2
PUSH PSW
MOV PSW,#010H
; SOURCE LINE # 100
; {
;
;
; #if ( SIMULATE == 0 )
; #pragma asm
; CLR TR0
CLR TR0
; MOV A,#K_Timer0IntervalCompLo ; 2 Instr. Cycles
MOV A,#0e3H ; 2 Instr. Cycles
; ADD A,TL0 ; 2 Instr. Cycles
ADD A,TL0 ; 2 Instr. Cycles
; MOV TL0,A ; 2 Instr. Cycles
MOV TL0,A ; 2 Instr. Cycles
; MOV A,#K_Timer0IntervalCompHi ; 2 Instr. Cycles
MOV A,#0b1H ; 2 Instr. Cycles
; ADDC A,TH0 ; 2 Instr. Cycles
ADDC A,TH0 ; 2 Instr. Cycles
; MOV TH0,A ; 2 Instr. Cycles
MOV TH0,A ; 2 Instr. Cycles
; NOP ; 1 Instr. Cycles
NOP ; 1 Instr. Cycles
; NOP ; 1 Instr. Cycles
NOP ; 1 Instr. Cycles
; NOP ; 1 Instr. Cycles
NOP ; 1 Instr. Cycles
; NOP ; 1 Instr. Cycles
NOP ; 1 Instr. Cycles
; SETB TR0 ; 2 Instr. Cycles
SETB TR0 ; 2 Instr. Cycles
; ;-----------------------------
;-----------------------------
; ; 14 Instr. Cycles Total =
; 14 Instr. Cycles Total =
; ; 18 * (4 / 24M) us =
; 18 * (4 / 24M) us =
; ; 3 us
; 3 us
; #pragma endasm
; #endif
;
; /* G_TimeStamp += K_TIMER_PERIOD; //increase time stamp
;
; //ada@0415 test ui
; if (G_TimeStamp >= 100)
; {
; TIMER0_Keypad_Scan();
; G_TimeStamp = 0;
; //Joe@2003.2.24 9:50 add begin
; TIMER0_LowPowerCount();
; G_AutoPowerOffCount++;
; //Joe@2003.2.24 9:51 add end
;
; //Joe@2003.3.3 19:56 add begin
; if ( (G_FlashCharging == 1) || (G_FlashCharging == 2) )
; {
; if(G_FlashChargingCount < 200)
; G_FlashChargingCount++;
; }
; if (G_StayInMenu)
; {
; G_StayInMenuCount++;
; }
; //Joe@2003.3.3 19:56 add end
; }
; */
;
; //patch5.03@Joe@2003.4.7 19:23 modify begin
; //G_TimeStamp += K_TIMER_PERIOD; //increase time stamp
; G_Timer0Count ++;
; SOURCE LINE # 153
MOV DPTR,#G_Timer0Count
MOVX A,@DPTR
INC A
MOVX @DPTR,A
; G_Timer0Count1 ++;
; SOURCE LINE # 154
MOV DPTR,#G_Timer0Count1+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0147
MOV DPTR,#G_Timer0Count1
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0147:
;
; //patch5.03@Joe@2003.4.7 19:24 modify end
;
; //ada@0415 test ui
; //TIMER0_Keypad_Scan();
;
; //patch5.03@Joe@2003.4.7 19:11 modify begin
; //if (G_TimeStamp >= 100)
; if( (G_Timer0Count % 2) == 0) //20ms
; SOURCE LINE # 163
MOV DPTR,#G_Timer0Count
MOVX A,@DPTR
JB ACC.0,?C0002
; //patch5.03@Joe@2003.4.7 19:11 modify end
; {
; SOURCE LINE # 165
; TIMER0_Keypad_Scan();
; SOURCE LINE # 166
LCALL TIMER0_Keypad_Scan
;
; //patch5.03@Joe@2003.4.7 19:13 add begin
; if(G_Timer0Count >= 10) //100ms
; SOURCE LINE # 169
MOV DPTR,#G_Timer0Count
MOVX A,@DPTR
CLR C
SUBB A,#0AH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -