📄 timer.lst
字号:
C51 COMPILER V7.50 TIMER 09/29/2006 10:54:53 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN timer.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE timer.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 #include <intrins.h>
2 #include <stdio.h>
3 #include <reg51.h>
4
5 void Time_counter();
6 bit getOsdClearFlag();
7 void clearTimer();
8 void DelayXms(unsigned char count);
9
10 //使用的数据定义
11 unsigned int osd_timer = 0; // osd 计时器
12
13 bit exit_flag = 0;
14
15 //OSD Timer interrupt Function
16 void Time_counter() interrupt 1 using 1
17 {
18 1 osd_timer++;
19 1 //if (topMenu_flag || volShow_flag)
20 1 //{
21 1 if ( osd_timer >= 15000)
22 1 {
23 2 /*osd_timer=0;
24 2 topmenu_flag = 0;
25 2 sel_brit = 0;
26 2 sel_cont = 0;
27 2 sel_satr = 0;
28 2 sel_hue = 0;
29 2 sel_reset = 0;
30 2 sel_save = 0;
31 2 osdSwitch(0x00);*/
32 2 exit_flag = 1;
33 2 }
34 1 //}
35 1 TF0=0;
36 1 }
37
38 bit getOsdClearFlag()
39 {
40 1 return exit_flag;
41 1
42 1 }
43
44 void clearTimer()
45 {
46 1 osd_timer = 0;
47 1 exit_flag = 0;
48 1 }
49
50
51 //********************************************
52 //函数:void DelayXms(unsigned char count)
53 //作用:延时count ms
54 //remarks:
55 //Crystal Frequency = 20 MHz
C51 COMPILER V7.50 TIMER 09/29/2006 10:54:53 PAGE 2
56 //Delay Time: count x 1ms
57 //********************************************
58 void DelayXms(unsigned char count)
59 {
60 1 unsigned char i,j;
61 1 for (i = count;i > 0;i--)
62 1 for (j = 0xC8;j > 0;j--)
63 1 _nop_();
64 1 }
65
66
C51 COMPILER V7.50 TIMER 09/29/2006 10:54:53 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Time_counter (BEGIN)
0000 C0E0 PUSH ACC
0002 C0D0 PUSH PSW
; SOURCE LINE # 16
; SOURCE LINE # 18
0004 0500 R INC osd_timer+01H
0006 E500 R MOV A,osd_timer+01H
0008 7002 JNZ ?C0012
000A 0500 R INC osd_timer
000C ?C0012:
; SOURCE LINE # 21
000C C3 CLR C
000D 9498 SUBB A,#098H
000F E500 R MOV A,osd_timer
0011 943A SUBB A,#03AH
0013 4002 JC ?C0001
; SOURCE LINE # 22
; SOURCE LINE # 32
0015 D200 R SETB exit_flag
; SOURCE LINE # 33
0017 ?C0001:
; SOURCE LINE # 35
0017 C28D CLR TF0
; SOURCE LINE # 36
0019 D0D0 POP PSW
001B D0E0 POP ACC
001D 32 RETI
; FUNCTION Time_counter (END)
; FUNCTION getOsdClearFlag (BEGIN)
; SOURCE LINE # 38
; SOURCE LINE # 39
; SOURCE LINE # 40
0000 A200 R MOV C,exit_flag
; SOURCE LINE # 42
0002 ?C0003:
0002 22 RET
; FUNCTION getOsdClearFlag (END)
; FUNCTION clearTimer (BEGIN)
; SOURCE LINE # 44
; SOURCE LINE # 45
; SOURCE LINE # 46
0000 E4 CLR A
0001 F500 R MOV osd_timer,A
0003 F500 R MOV osd_timer+01H,A
; SOURCE LINE # 47
0005 C200 R CLR exit_flag
; SOURCE LINE # 48
0007 22 RET
; FUNCTION clearTimer (END)
; FUNCTION _DelayXms (BEGIN)
; SOURCE LINE # 58
;---- Variable 'count' assigned to Register 'R7' ----
; SOURCE LINE # 59
; SOURCE LINE # 61
;---- Variable 'i' assigned to Register 'R7' ----
0000 ?C0005:
C51 COMPILER V7.50 TIMER 09/29/2006 10:54:53 PAGE 4
0000 EF MOV A,R7
0001 D3 SETB C
0002 9400 SUBB A,#00H
0004 4008 JC ?C0011
; SOURCE LINE # 62
;---- Variable 'j' assigned to Register 'R6' ----
0006 7EC8 MOV R6,#0C8H
0008 ?C0008:
; SOURCE LINE # 63
0008 00 NOP
0009 DEFD DJNZ R6,?C0008
000B ?C0007:
000B 1F DEC R7
000C 80F2 SJMP ?C0005
; SOURCE LINE # 64
000E ?C0011:
000E 22 RET
; FUNCTION _DelayXms (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 56 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -