📄 timer.lst
字号:
C51 COMPILER V8.01 TIMER 09/30/2007 11:14:56 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN Timer.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Timer.c LARGE BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS
line level source
1 #define __TIMER_H__
2
3 #include "Config.h"
4 /********************************************************************************************************
5 **函数名称:T0Delay5ms
6 **函数功能:使用T0延时5ms@40MHz
7 **输 入:uchar DelayLoops 控制延时长短
8 **输 出:无
9 ********************************************************************************************************/
10 /*
11 void T0Delay5ms(uchar DelayLoops)
12 {
13 PERIPHEN1 |= BIT0; //使能T0
14 //------------------------------------------------------
15 //40MHz系统时钟,预先4分频,=>10MHz,5ms=>计数值为50000
16 //------------------------------------------------------
17 TH0 = 0x3C;
18 TL0 = 0xB0; //5ms定时值 = 65536 - 50000
19
20 T0T1CFG &= ~(BIT5 | BIT1 | BIT0);
21 T0T1CFG |= 0x00; //T0门控禁止;输出禁止;16位操作模式
22
23 T0T1CLKCFG &= 0xF0;
24 T0T1CLKCFG |= 0x02; //T0时钟4分频
25
26 T0CON = 0x00; //向上计数,门控禁止,做计数器用
27 T0CON |= BIT2; //T0运行
28 do
29 {
30 #ifdef DOWNLOAD
31 while((T0CON & BIT7) == 0); //等待定时到
32 #endif
33 TH0 = 0x3C;
34 TL0 = 0xB0;
35 T0CON &= ~BIT7; //清标志
36 DelayLoops --;
37 }
38 while(DelayLoops != 0);
39 }
40 */
41 /********************************************************************************************************
42 **函数名称:T1Delay5ms
43 **函数功能:使用T1延时5ms@40MHz
44 **输 入:uchar DelayLoops 控制延时长短
45 **输 出:无
46 ********************************************************************************************************/
47 /*
48 void T1Delay5ms(uchar DelayLoops)
49 {
50 PERIPHEN1 |= BIT1; //使能T1
51 //------------------------------------------------------
52 //40MHz系统时钟,预先4分频,=>10MHz,5ms=>计数值为50000
53 //------------------------------------------------------
54 TH1 = 0x3C;
55 TL1 = 0xBF;
C51 COMPILER V8.01 TIMER 09/30/2007 11:14:56 PAGE 2
56
57 T0T1CFG &= ~(BIT6 | BIT4 | BIT3 | BIT2);
58 T0T1CFG |= 0x00; //T1门控禁止,时钟源为系统时钟,输出禁止,16位模式
59
60 T0T1CLKCFG &= 0x0F;
61 T0T1CLKCFG |= 0x20; //T1时钟4分频
62
63 T1CON = 0x00; //向上计数,门控禁止,做计数器用
64 T1CON |= BIT2; //T1运行
65 do
66 {
67 #ifdef DOWNLOAD
68 while((T1CON & BIT7) == 0);
69 #endif
70 TH1 = 0x3C;
71 TL1 = 0xB0;
72 T1CON &= ~BIT7;
73 DelayLoops --;
74 }
75 while(DelayLoops != 0);
76 }
77 */
78 /********************************************************************************************************
79 **函数名称:T2Init
80 **函数功能:使用T2做中断延时前的初始化
81 **输 入:无
82 **输 出:无
83 ********************************************************************************************************/
84 void T2Init(void)
85 {
86 1 PERIPHEN1 |= BIT2; //使能Timer2
87 1 T2CON = 0x00; //Timer2捕获使能
88 1 //定时器功能
89 1 //定时器停止
90 1 //外部门控禁止
91 1 //输出翻转禁止
92 1 //向上计数
93 1 //外部门控标志
94 1 //溢出标志
95 1
96 1 TH2 = 0x3C;
97 1 TL2 = 0xB0; //预置数
98 1 T2CLKCFG = 0x03; //系统时钟源
99 1 //输出禁止
100 1 //时钟64分频
101 1 T2CON |= BIT2; //Timer2开始运行
102 1 }
103
104 /********************************************************************************************************
105 **函数名称:LEDFlashDelay
106 **函数功能:未用的LED延时程序,会根据"Confug.h"的设置做自动设置
107 **输 入:无
108 **输 出:无
109 ********************************************************************************************************/
110 /*
111 void LEDFlashDelay(void)
112 {
113 #define DELAYLOOP (OSCCLK / 200000)
114
115 T0Delay5ms(DELAYLOOP);
116 //T1Delay5ms(DELAYLOOP);
117 }
C51 COMPILER V8.01 TIMER 09/30/2007 11:14:56 PAGE 3
118 */
C51 COMPILER V8.01 TIMER 09/30/2007 11:14:56 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION T2Init (BEGIN)
; SOURCE LINE # 84
; SOURCE LINE # 85
; SOURCE LINE # 86
0000 43F404 ORL PERIPHEN1,#04H
; SOURCE LINE # 87
0003 E4 CLR A
0004 F59C MOV T2CON,A
; SOURCE LINE # 96
0006 758F3C MOV TH2,#03CH
; SOURCE LINE # 97
0009 758EB0 MOV TL2,#0B0H
; SOURCE LINE # 98
000C 759D03 MOV T2CLKCFG,#03H
; SOURCE LINE # 101
000F 439C04 ORL T2CON,#04H
; SOURCE LINE # 102
0012 22 RET
; FUNCTION T2Init (END)
C51 COMPILER V8.01 TIMER 09/30/2007 11:14:56 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
PERIPHEN1. . . . . . . . . . . . . . . SFR DATA U_CHAR 00F4H 1
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
T2Init . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
T2CLKCFG . . . . . . . . . . . . . . . SFR DATA U_CHAR 009DH 1
TH2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008FH 1
TL2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008EH 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009CH 1
wchar_t. . . . . . . . . . . . . . . . TYPEDEF ----- CHAR ----- 1
va_list. . . . . . . . . . . . . . . . TYPEDEF ----- PTR ----- 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 19 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
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 + -