📄 timer_ini.lst
字号:
C51 COMPILER V7.20 TIMER_INI 09/02/2007 21:16:40 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE TIMER_INI
OBJECT MODULE PLACED IN timer_ini.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE timer_ini.c DEBUG OBJECTEXTEND
line level source
1 //////////T法测频调试程序/////////////
2 /////////t3 频率方波输出//////////////
3 /////////t4 脉冲计数/////////////////////
4 /////////t2 计时////////////////////////////
5 /////////t2t3t4.c//////////////////////////
6 #include "common.h"
7 #include "timer.h"
8 #define T3RUN temppage=SFRPAGE;SFRPAGE=0x01;TR3=1;SFRPAGE=temppage
9 #define T4RUN temppage=SFRPAGE;SFRPAGE=0x02;TR4=1;SFRPAGE=temppage
10 #define T4STOP temppage=SFRPAGE;SFRPAGE=0x02;TR4=0;SFRPAGE=temppage
11 #define T3STOP temppage=SFRPAGE;SFRPAGE=0x01;TR3=0;SFRPAGE=temppage
12 uint t2count; //计录
13 sfr16 RCAP2=0xca;
14 sfr16 RCAP3=0xca;
15 sfr16 RCAP4=0xca;
16 sfr16 TMR4=0xcc;
17 sfr16 TMR3=0xcc;
18 sfr16 TMR2=0xcc;
19
20 //uchar temppage;
21 //uchar tf2num;
22 //uint t2count; //t2 90s定时次数标志
23 //bit isnewdata;
24 //ulong freTime;
25 //void t4ISR();
26 //void t2ISR();
27
28 void t0_ini() //TO定时器450ms
29 {
30 1 temppage=SFRPAGE;
31 1 SFRPAGE=0x00;
32 1 TCON = 0x10; //启动定时器
33 1 TMOD = 0x01; //16位定时器
34 1 CKCON = 0x02; //系统时钟的48分频
35 1 IE |= 0x02; //T0中断使能
36 1 TH0 = 0x90; //定时器赋初值
37 1 TL0 = 0x0a;
38 1 SFRPAGE=temppage;
39 1 }
40 void t1_count_ini()
41 {//T1为16位计数器,用于记寻车行驶的距离
42 1 temppage=SFRPAGE;
43 1 SFRPAGE=0x00;
44 1 TMOD=0x50;
45 1 TCON=0x00;
46 1 TR1=1; //开启计数器
47 1 SFRPAGE=temppage;
48 1 }
49 void t2_time90s_ini()
50 {//t2为定时器模式,采用系统时钟12分频
51 1 temppage=SFRPAGE;
52 1 SFRPAGE=0x00;
53 1 TMR2CN=0X00;//定时器模式,自动重载
54 1 TMR2CF=0x00;//DCEN=0,向下计数禁止,采用系统时钟
55 1 RCAP2=0x0000;
C51 COMPILER V7.20 TIMER_INI 09/02/2007 21:16:40 PAGE 2
56 1 TMR2=0x0000;
57 1 SFRPAGE=0X00;
58 1 ET2=1;//T2中断使能
59 1 SFRPAGE=temppage;
60 1 t2count=0;
61 1 }
62 void t2_time90s_start()
63 {
64 1 temppage=SFRPAGE;
65 1 SFRPAGE=0x00;
66 1 TMR2=0x0000;
67 1 TF2=0;
68 1 TR2=1;
69 1 SFRPAGE=temppage;
70 1
71 1 }
72 void t4_count_ini()
73 {//T4为计数模式,路程计数
74 1 temppage=SFRPAGE;
75 1 SFRPAGE=0x02;
76 1 TMR4CF=0X00; //计数模式下,对T4M1-T4M0设置无效,DCEN=0,向下计数禁止
77 1 TMR4CN=0X02; // CT4=1 T4为计数器模式
78 1 RCAP4=0X00;
79 1 TMR4=RCAP4;
80 1 TR4=1; //开始计数
81 1 SFRPAGE=0X00;
82 1 //EIE2|=0X04;//T4中断禁止
83 1 SFRPAGE=temppage;
84 1 }
85
86
87 /****T3产生40K方波*/
88 void t3_fre_set(uint val){//T3频率设置,计算公式为:(T3时钟频率/(2*val))
89 1 temppage=SFRPAGE;
90 1 SFRPAGE=0x01;
91 1 RCAP3=~val+1;
92 1 TMR3=RCAP3;
93 1 SFRPAGE=temppage;
94 1 }
95 void t3_fre_set40k(void)
96 {
97 1 t3_fre_set(100);
98 1 }
99 void t3_ini()
100 {//t3为频率输出模式
101 1 temppage=SFRPAGE;
102 1 SFRPAGE=0x01;
103 1 TMR3CN=0x00; //TR3=0,T3尚未启动
104 1 TMR3CF=0x02; //T3采用系统时钟,TOG3=0,T3不计数时输出为0,DCEN=0
105 1 SFRPAGE=temppage;
106 1 }
107
108
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 178 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
C51 COMPILER V7.20 TIMER_INI 09/02/2007 21:16:40 PAGE 3
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 + -