?? port0-7.lst
字號:
C51 COMPILER V7.00 PORT0_7 12/23/2003 16:55:35 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE PORT0_7
OBJECT MODULE PLACED IN port0-7.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE port0-7.c DB OE
stmt level source
1 //------------------------------------------------------------------------------------
2 // Blinky.c
3 //------------------------------------------------------------------------------------
4 // Copyright 2001 Cygnal Integrated Products, Inc.
5 //
6 // AUTH: BW
7 // DATE: 4 SEP 01
8 //
9 // This program flashes the green LED on the C8051F020 target board about five times
10 // a second using the interrupt handler for Timer3.
11 // Target: C8051F02x
12 //
13 // Tool chain: KEIL Eval 'c'
14 //
15
16 //------------------------------------------------------------------------------------
17 // Includes
18 //------------------------------------------------------------------------------------
19 #include <c8051f020.h> // SFR declarations
20
21 //------------------------------------------------------------------------------------
22 // 16-bit SFR Definitions for 'F02x
23 //------------------------------------------------------------------------------------
24
25 sfr16 DP = 0x82; // data pointer
26 sfr16 TMR3RL = 0x92; // Timer3 reload value
27 sfr16 TMR3 = 0x94; // Timer3 counter
28 sfr16 ADC0 = 0xbe; // ADC0 data
29 sfr16 ADC0GT = 0xc4; // ADC0 greater than window
30 sfr16 ADC0LT = 0xc6; // ADC0 less than window
31 sfr16 RCAP2 = 0xca; // Timer2 capture/reload
32 sfr16 T2 = 0xcc; // Timer2
33 sfr16 RCAP4 = 0xe4; // Timer4 capture/reload
34 sfr16 T4 = 0xf4; // Timer4
35 sfr16 DAC0 = 0xd2; // DAC0 data
36 sfr16 DAC1 = 0xd5; // DAC1 data
37
38 //------------------------------------------------------------------------------------
39 // Global CONSTANTS
40 //------------------------------------------------------------------------------------
41
42 #define SYSCLK 22118400 // approximate SYSCLK frequency in Hz
43
44 //sbit LED = P1^6; // green LED: '1' = ON; '0' = OFF
45 unsigned char count;
46 //------------------------------------------------------------------------------------
47 // Function PROTOTYPES
48 //------------------------------------------------------------------------------------
49 void PORT_Init (void);
50 void Timer3_Init (int counts);
51 void Timer3_ISR (void);
52 unsigned char data recv_state _at_ 0x30;
53 unsigned char data recv_chksum _at_ 0x33;
54 //------------------------------------------------------------------------------------
55 // MAIN Routine
C51 COMPILER V7.00 PORT0_7 12/23/2003 16:55:35 PAGE 2
56 //------------------------------------------------------------------------------------
57 void main (void) {
58 1
59 1 // unsigned int i;
60 1 // disable watchdog timer
61 1 WDTCN = 0xde;
62 1 WDTCN = 0xad;
63 1 //OSCXCN = 0x67; // start external oscillator with
64 1 // 22.1184MHz crystal
65 1
66 1 //for (i=0; i < 256; i++) ; // XTLVLD blanking interval (>1ms)
67 1
68 1 //while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
69 1
70 1 //OSCICN = 0x88;
71 1 PORT_Init ();
72 1 Timer3_Init (SYSCLK / 12 / 10); // Init Timer3 to generate interrupts
73 1 // at a 10Hz rate.
74 1
75 1 EA = 1;
76 1 count=0x00;
77 1 while (1) {
78 2 switch(count)
79 2 {
80 3 case 1:P0=0x00;break;
81 3 case 2:P1=0x00;break;
82 3 case 3:P2=0x00;break;
83 3 case 4:P3=0x00;break;
84 3 case 5:P4=0x00;break;
85 3 case 6:P5=0x00;break;
86 3 case 7:P6=0x00;break;
87 3 case 8:P7=0x00;break;
88 3 case 9:P0=0xff;break;
89 3 case 10:P1=0xff;break;
90 3 case 11:P2=0xff;break;
91 3 case 12:P3=0xff;break;
92 3 case 13:P4=0xff;break;
93 3 case 14:P5=0xff;break;
94 3 case 15:P6=0xff;break;
95 3 case 16:P7=0xff;
96 3 count=0x00;break;
97 3 }
98 2 // spin forever
99 2 }
100 1 }
101
102 //------------------------------------------------------------------------------------
103 // PORT_Init
104 //------------------------------------------------------------------------------------
105 //
106 // Configure the Crossbar and GPIO ports
107 //
108 void PORT_Init (void)
109 {
110 1 XBR2 = 0x40; // Enable crossbar and weak pull-ups
111 1 // P1MDOUT |= 0x40; // enable P1.6 (LED) as push-pull output
112 1 XBR2=0x40;
113 1 P0MDOUT = 0xFF; // Output configuration for P0
114 1 P1MDOUT = 0xFF; // Output configuration for P1
115 1 P2MDOUT = 0xFF; // Output configuration for P2
116 1 P3MDOUT = 0xFF; // Output configuration for P3
117 1 P74OUT = 0xFF;
C51 COMPILER V7.00 PORT0_7 12/23/2003 16:55:35 PAGE 3
118 1 }
119
120 //------------------------------------------------------------------------------------
121 // Timer3_Init
122 //------------------------------------------------------------------------------------
123 //
124 // Configure Timer3 to auto-reload and generate an interrupt at interval
125 // specified by <counts> using SYSCLK/12 as its time base.
126 //
127 void Timer3_Init (int counts)
128 {
129 1 TMR3CN = 0x00; // Stop Timer3; Clear TF3;
130 1 // use SYSCLK/12 as timebase
131 1 TMR3RL = -counts; // Init reload values
132 1 TMR3 = 0xffff; // set to reload immediately
133 1 EIE2 |= 0x01; // enable Timer3 interrupts
134 1 TMR3CN |= 0x04; // start Timer3
135 1 }
136
137 //------------------------------------------------------------------------------------
138 // Interrupt Service Routines
139 //------------------------------------------------------------------------------------
140
141 //------------------------------------------------------------------------------------
142 // Timer3_ISR
143 //------------------------------------------------------------------------------------
144 // This routine changes the state of the LED whenever Timer3 overflows.
145 //
146 void Timer3_ISR (void) interrupt 14
147 {
148 1 TMR3CN &= ~(0x80); // clear TF3
149 1 //LED = ~LED; // change state of LED
150 1 count++;
151 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 232 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -