📄 timer2.lst
字号:
C51 COMPILER V6.23a TIMER2 04/14/2008 15:21:35 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE TIMER2
OBJECT MODULE PLACED IN Timer2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe Timer2.c DB OE
stmt level source
1
2 //*********************************************************
3 // 项 目: 通用控制器-V1.0
4 // 文件名: Timer2.C
5 // 描 述: 定时器2中断服务程序
6 //*********************************************************
7
8 //===============================================
9 #include "main.h" //头文件
10 #include "Timer2.h"
11 #include "MFRC522.h"
12 #include "Adc.h"
13 //===============================================
14
15 //***********************************************
16 //变量定义
17 //***********************************************
18 UCHAR iosts0;
19 UCHAR bdata iosts1; //20mS级计数
20
21 sbit IO3 =iosts1^3;
22 sbit IO2 =iosts1^2;
23 sbit IO1 =iosts1^1;
24 sbit IO0 =iosts1^0;
25 //
26 UINT Count20ms;
27 UCHAR Count1ms;
28 //
29 extern UCHAR volatile Temp;
30 extern UCHAR data Sio_Lth; //数据长度
31 extern UCHAR idata ComTBufHead;
32 extern UINT SOFTWDT;
33 extern UINT volatile event_word;
34 UCHAR xdata tx_buf[TX_PLOAD_WIDTH];
35 extern UCHAR xdata ComTBuf[Com0TBuf_len];
36 //***********************************************
37 //函数开始
38 /***************************************
39
40 /***************************************
41 T3 定时器初始化
42 /***************************************/
43 void Timer3_Init(void) //T3 20毫秒定时
44 { //T3MH,T3ML,T2MH,T2ML,T1M,T0M,SCA1,SCA0
45 1 CKCON &= 0x3F; // 0 0 X X X X SYSCK/12
46 1 TMR3RLH = (-SYSCLK/12/50)>>8; //
47 1 TMR3RLL = (-SYSCLK/12/50); //
48 1 //TF3H,TF3L,TF3LEN,TF3CEN,T3SPT,TR3,-,T3XCLK
49 1 TMR3CN = 0X04; //TR3=1
50 1 }
51 /**********************************************
52 20毫秒定时中断
53 /**********************************************/
54 void Timer3_INT(void) interrupt 14 //
55 {
C51 COMPILER V6.23a TIMER2 04/14/2008 15:21:35 PAGE 2
56 1 static UINT count1,tmp;
57 1
58 1 TMR3CN &= 0X3F;
59 1 count1++; //20mS+1
60 1 tmp = count1;
61 1
62 1 if (!(tmp % 25)) //20*10=200ms
63 1
64 1 {event_word |= EVENT_CARD; } //寻卡
65 1
66 1 if (!(tmp % 25))
67 1
68 1 {event_word |= EVENT_TEMP; } //0。5S事件
69 1
70 1 event_word |= EVENT_STS1; //20mS事件
71 1 //
72 1 PCA0CPH2 =0x55; //写PCA0CPH2任意值清看门狗
73 1 }
74 //**********************************************
75 //T0 初始化(1毫秒中断)
76 //------------------------------
77 void Timer0_Init(void)
78
79 { //CKCON=T3H,T3L,T2H,T2L,T1,T0,SCA1,SCA0
80 1 CKCON &= 0xF8; // T0M=0,SCA1,0=00,T0CK=SYSCK/12
81 1 TMOD |= 0x01; // T0 方式1,16位
82 1 TH0 = (-SYSCLK/12/2700)>>8;
83 1 TL0 = (-SYSCLK/12/2700);
84 1 TR0 = 1;
85 1 ET0 = 1; //中断开放
86 1 }
87 //**********************************************
88 //T0 1毫秒中断:用于精确时间延时
89 //------------------------------
90 void Timer0_ISR (void) interrupt 1 //1ms
91 {
92 1 TH0 = (-SYSCLK/12/1000)>>8;
93 1 TL0 = (-SYSCLK/12/1000);
94 1
95 1 if (Count1ms)
96 1 {
97 2 Count1ms--;
98 2 if (BEEP) BP = 1;
99 2 }
100 1 else
101 1 { BP = 0; BEEP = 0;}
102 1
103 1 }
104 //====================================================
105 //ms级T0中断精确延时程序
106 //====================================================
107 void Delay1ms(unsigned char T)
108 {
109 1 Count1ms = T;
110 1 while (Count1ms);
111 1 }
112 /*************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 148 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V6.23a TIMER2 04/14/2008 15:21:35 PAGE 3
XDATA SIZE = 32 ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -