📄 timer.lst
字号:
C51 COMPILER V7.50 TIMER 04/01/2006 14:08:06 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN timer.OBJ
COMPILER INVOKED BY: D:\KeilC51\C51\BIN\C51.EXE timer.c ROM(COMPACT) BROWSE DEFINE(evalboard) DEBUG OBJECTEXTEND LISTINC
-LUDE SYMBOLS SRC(.\timer.SRC)
line level source
1 #include "tdp.h"
1 =1 /* 宏定义 */
2 =1 #define INT_DISABLE EA = 0
3 =1 #define INT_ENABLE EA = 1
4 =1 #define TCLK 11059200 /* Clock speed in Hz */
5 =1
6 =1 /* CLOCK.C 文件中的函数定义 */
7 =1 void clock_init (void);
8 =1 void clock_update (void);
9 =1 void clock_set (unsigned long sethsec);
10 =1 void clock_scan (unsigned char flag);
11 =1 void clock_out_time (void);
12 =1 char strtotm (unsigned long *t,char *s);
13 =1 void alarm_set (unsigned setmins);
14 =1 void alarm_clr (void);
15 =1 void alarm_out_time (void);
16 =1
17 =1
18 =1 /* CMDBUILD.C文件中的函数定义 */
19 =1 #define MAX_CMD_LEN 40
20 =1 void cmdb_init (void);
21 =1 void cmdb_prompt (void);
22 =1 const char *cmdb_scan (void);
23 =1
24 =1
25 =1 /* CMDPROC.C文件中的函数定义 */
26 =1 char *strupr (char *src);
27 =1 void cmd_proc (const char *cmd);
28 =1
29 =1
30 =1 /* MAIN.C文件中的函数定义 */
31 =1 void main (void);
32 =1
33 =1
34 =1 /* SERIAL.C文件中的函数定义 */
35 =1 void com_initialize (void);
36 =1 void com_baudrate (unsigned baudrate);
37 =1 char com_putchar (unsigned char c);
38 =1 char com_puts (char *s);
39 =1 int com_getchar (void);
40 =1 unsigned char com_rbuflen (void);
41 =1 unsigned char com_tbuflen (void);
42 =1
43 =1
44 =1 /* TIMER.C文件中的函数定义 */
45 =1 #define TIMER0_TICKS_PER_SEC 100
46 =1 void timer0_initialize (void);
47 =1 unsigned timer0_count (void);
48 =1 unsigned timer0_elapsed_count (unsigned count);
49 =1 void timer0_wait (unsigned count);
2 #include <reg51.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 REG51.H
3 =1
C51 COMPILER V7.50 TIMER 04/01/2006 14:08:06 PAGE 2
4 =1 Header file for generic 80C51 and 80C31 microcontroller.
5 =1 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 #ifndef __REG51_H__
10 =1 #define __REG51_H__
11 =1
12 =1 /* BYTE Register */
13 =1 sfr P0 = 0x80;
14 =1 sfr P1 = 0x90;
15 =1 sfr P2 = 0xA0;
16 =1 sfr P3 = 0xB0;
17 =1 sfr PSW = 0xD0;
18 =1 sfr ACC = 0xE0;
19 =1 sfr B = 0xF0;
20 =1 sfr SP = 0x81;
21 =1 sfr DPL = 0x82;
22 =1 sfr DPH = 0x83;
23 =1 sfr PCON = 0x87;
24 =1 sfr TCON = 0x88;
25 =1 sfr TMOD = 0x89;
26 =1 sfr TL0 = 0x8A;
27 =1 sfr TL1 = 0x8B;
28 =1 sfr TH0 = 0x8C;
29 =1 sfr TH1 = 0x8D;
30 =1 sfr IE = 0xA8;
31 =1 sfr IP = 0xB8;
32 =1 sfr SCON = 0x98;
33 =1 sfr SBUF = 0x99;
34 =1
35 =1
36 =1 /* BIT Register */
37 =1 /* PSW */
38 =1 sbit CY = 0xD7;
39 =1 sbit AC = 0xD6;
40 =1 sbit F0 = 0xD5;
41 =1 sbit RS1 = 0xD4;
42 =1 sbit RS0 = 0xD3;
43 =1 sbit OV = 0xD2;
44 =1 sbit P = 0xD0;
45 =1
46 =1 /* TCON */
47 =1 sbit TF1 = 0x8F;
48 =1 sbit TR1 = 0x8E;
49 =1 sbit TF0 = 0x8D;
50 =1 sbit TR0 = 0x8C;
51 =1 sbit IE1 = 0x8B;
52 =1 sbit IT1 = 0x8A;
53 =1 sbit IE0 = 0x89;
54 =1 sbit IT0 = 0x88;
55 =1
56 =1 /* IE */
57 =1 sbit EA = 0xAF;
58 =1 sbit ES = 0xAC;
59 =1 sbit ET1 = 0xAB;
60 =1 sbit EX1 = 0xAA;
61 =1 sbit ET0 = 0xA9;
62 =1 sbit EX0 = 0xA8;
63 =1
64 =1 /* IP */
65 =1 sbit PS = 0xBC;
C51 COMPILER V7.50 TIMER 04/01/2006 14:08:06 PAGE 3
66 =1 sbit PT1 = 0xBB;
67 =1 sbit PX1 = 0xBA;
68 =1 sbit PT0 = 0xB9;
69 =1 sbit PX0 = 0xB8;
70 =1
71 =1 /* P3 */
72 =1 sbit RD = 0xB7;
73 =1 sbit WR = 0xB6;
74 =1 sbit T1 = 0xB5;
75 =1 sbit T0 = 0xB4;
76 =1 sbit INT1 = 0xB3;
77 =1 sbit INT0 = 0xB2;
78 =1 sbit TXD = 0xB1;
79 =1 sbit RXD = 0xB0;
80 =1
81 =1 /* SCON */
82 =1 sbit SM0 = 0x9F;
83 =1 sbit SM1 = 0x9E;
84 =1 sbit SM2 = 0x9D;
85 =1 sbit REN = 0x9C;
86 =1 sbit TB8 = 0x9B;
87 =1 sbit RB8 = 0x9A;
88 =1 sbit TI = 0x99;
89 =1 sbit RI = 0x98;
90 =1
91 =1 #endif
3 #define TIMER0_COUNT 0xDC11 /* 10000h-((11059200Hz/(12*FREQ))-17) */
4
5 static xdata unsigned timer0_tick;
6
7 /* 定时器T0中断服务函数 */
8 static void timer0_isr (void) interrupt 1 using 1 {
9 1 P1 |= 0x80;
10 1 TR0 = 0; /* 停止 T0 */
11 1 TL0 = TL0 + (TIMER0_COUNT & 0x00FF);
12 1 TH0 = TH0 + (TIMER0_COUNT >> 8);
13 1 TR0 = 1; /* 启动T0 */
14 1 timer0_tick++;
15 1 P1 &= ~0x80;
16 1 }
17
18 /* 定时器T0初始化函数 */
19 void timer0_initialize (void) {
20 1 INT_DISABLE; /* 关中断 */
21 1 timer0_tick = 0;
22 1 TR0 = 0; /* 停止T0 */
23 1 TMOD &= ~0x0F; /* 设置T0工作方式 */
24 1 TMOD |= 0x01;
25 1 TL0 = (TIMER0_COUNT & 0x00FF);
26 1 TH0 = (TIMER0_COUNT >> 8);
27 1 PT0 = 0; /* 设置T0中断优先级 */
28 1 ET0 = 1; /* 允许T0中断 */
29 1 TR0 = 1; /* 启动T0 */
30 1 INT_ENABLE; /* 开中断 */
31 1 }
32
33 /* 定时器T0节拍函数 */
34 unsigned timer0_count (void) {
35 1 xdata unsigned t;
36 1 INT_DISABLE;
37 1 t = timer0_tick;
38 1 INT_ENABLE;
C51 COMPILER V7.50 TIMER 04/01/2006 14:08:06 PAGE 4
39 1 return (t);
40 1 }
41
42 /* 定时器T0节拍计数函数 */
43 unsigned timer0_elapsed_count (unsigned count) {
44 1 return (timer0_count () - count);
45 1 }
46
47 /* 定时器T0延时函数 */
48 void timer0_wait (unsigned count) {
49 1 xdata unsigned start_count;
50 1 start_count = timer0_count ();
51 1 while (timer0_elapsed_count (start_count) <= count)
52 1 {
53 2 }
54 1 }
C51 COMPILER V7.50 TIMER 04/01/2006 14:08:06 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
timer0_isr . . . . . . . . . . . . . . STATIC CODE PROC 0000H -----
_timer0_elapsed_count. . . . . . . . . PUBLIC CODE PROC 0000H -----
count?341. . . . . . . . . . . . . . * REG * DATA U_INT 0004H 2
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
_timer0_wait . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
count?442. . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2
start_count?443. . . . . . . . . . . AUTO XDATA U_INT 0000H 2
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
timer0_count . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
t?240. . . . . . . . . . . . . . . . AUTO XDATA U_INT 0000H 2
timer0_tick. . . . . . . . . . . . . . STATIC XDATA U_INT 0000H 2
timer0_initialize. . . . . . . . . . . PUBLIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 155 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2 4
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -