?? timer.lst
字號:
C51 COMPILER V7.06 TIMER 07/29/2008 10:01:33 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN TIMER.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TIMER.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <c8051f020.h> // SFR declarations
2
3 //------------------------------------------------------------------------------------
4 // 16-bit SFR Definitions for 'F02x
5 //------------------------------------------------------------------------------------
6
7
8
9 //------------------------------------------------------------------------------------
10 // Global CONSTANTS
11 //------------------------------------------------------------------------------------
12
13 #define SYSCLK 2000000 // approximate SYSCLK frequency in Hz
14
15 sbit LED = P3^7; // green LED: '1' = ON; '0' = OFF
16
17 //------------------------------------------------------------------------------------
18 // Function PROTOTYPES
19 //------------------------------------------------------------------------------------
20 void PORT_Init (void);
21 void Timer3_Init (int counts);
22 void Timer3_ISR (void);
23
24 //------------------------------------------------------------------------------------
25 // MAIN Routine
26 //------------------------------------------------------------------------------------
27 void main (void) {
28 1
29 1
30 1 WDTCN = 0xde;
31 1 WDTCN = 0xad;//關閉看門狗
32 1 //沒有配置時鐘,默認內部2M晶振
33 1
34 1 PORT_Init ();
35 1 Timer3_Init (SYSCLK / 12 / 10); // Init Timer3 to generate interrupts
36 1 // at a 10Hz rate.
37 1
38 1 EA = 1; // enable global interrupts
39 1
40 1 while (1) { // spin forever
41 2 }
42 1 }
43
44 //------------------------------------------------------------------------------------
45 // PORT_Init
46 //------------------------------------------------------------------------------------
47 //
48 // Configure the Crossbar and GPIO ports
49 //
50 void PORT_Init (void)
51 {
52 1 XBR2 = 0x40; // Enable crossbar and weak pull-ups
53 1 P1MDOUT |= 0x40;
54 1 P3MDOUT |= 0x80; // enable P3.7 (LED) as push-pull output
55 1 }
C51 COMPILER V7.06 TIMER 07/29/2008 10:01:33 PAGE 2
56
57 //------------------------------------------------------------------------------------
58 // Timer3_Init
59 //------------------------------------------------------------------------------------
60 //
61 // Configure Timer3 to auto-reload and generate an interrupt at interval
62 // specified by <counts> using SYSCLK/12 as its time base.
63 //
64 void Timer3_Init (int counts)
65 {
66 1 TMR3CN = 0x00; // Stop Timer3; Clear TF3;
67 1 // use SYSCLK/12 as timebase
68 1 TMR3RLL = -counts; // Init reload values
69 1 TMR3L = 0xffff; // set to reload immediately
70 1 EIE2 |= 0x01; // enable Timer3 interrupts
71 1 TMR3CN |= 0x04; // start Timer3
72 1 }
73
74 //------------------------------------------------------------------------------------
75 // Interrupt Service Routines
76 //------------------------------------------------------------------------------------
77
78 //------------------------------------------------------------------------------------
79 // Timer3_ISR
80 //------------------------------------------------------------------------------------
81 // This routine changes the state of the LED whenever Timer3 overflows.
82 //
83 void Timer3_ISR (void) interrupt 14
84 {
85 1 TMR3CN &= ~(0x80); // clear TF3
86 1 LED = ~LED; // change state of LED
87 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 54 ----
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 + -