?? 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 + -