?? cpt01.lst
字號:
C51 COMPILER V7.00 CPT01 12/25/2003 13:52:28 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE CPT01
OBJECT MODULE PLACED IN cpt01.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE cpt01.c DB OE
stmt level source
1 #include <c8051f020.h>
2 #include <intrins.h>
3 sbit MOSI = P0^4;
4 sbit SCK = P0^2;
5 #define SETSPICS1 P5 |= 0x10
6 #define CLRSPICS1 P5 &= ~(0x10)
7 void delay(unsigned int t);
8 void SYSCLK_Init(void);
9 void SPI_Transfer (unsigned int SPI_byte);
10 void CP0_ISR(void);
11 void CP0_ISRR(void);
12 void CP1_ISRL(void);
13 void CP1_ISRR(void);
14 /*void delay(unsigned int t)
15 {
16 unsigned int i,j;
17 for(i=0;i<t;i++)
18 for(j=0;j<10;j++)
19 {
20 _nop_();
21 }
22 }
23 */
24 void SYSCLK_Init (void)
25 {
26 1 int i; // delay counter
27 1 OSCXCN = 0x67; // start external oscillator with
28 1 // 11.0592MHz crystal
29 1 for (i=0; i < 256; i++) ; // Wait for osc. to start up
30 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
31 1 OSCICN = 0x88; // select external oscillator as SYSCLK
32 1 // source and enable missing clock
33 1 // detector
34 1 // OSCICN = 0x07; //interal 16MHZ
35 1 }
36
37
38 void SPI_Transfer (unsigned int SPI_byte)
39 {
40 1 unsigned char SPI_count; // counter for SPI transaction
41 1
42 1 for (SPI_count = 8; SPI_count > 0; SPI_count--) // single byte SPI loop
43 1 {
44 2 SCK = 0; // set SCK low
45 2 MOSI = SPI_byte & 0x80; // put current outgoing bit on MOSI
46 2 SCK = 1; // set SCK high
47 2 SPI_byte = SPI_byte << 1; // shift next bit into MSB
48 2
49 2 }
50 1 CLRSPICS1;
51 1
52 1 SETSPICS1;
53 1 SCK=1;
54 1 MOSI=1;
55 1
C51 COMPILER V7.00 CPT01 12/25/2003 13:52:28 PAGE 2
56 1 } // END SPI_Transfer
57
58 main()
59 {
60 1 WDTCN = 0xde;
61 1 WDTCN = 0xad; //關看門狗
62 1 SYSCLK_Init (); //初始化時鐘
63 1 XBR2=0x44;
64 1 P0MDOUT=0x14;
65 1 P74OUT = 0x08;
66 1 SCK=1;
67 1 MOSI=1;
68 1 SETSPICS1;
69 1 CPT0CN=0x8f;
70 1 //CPT1CN=0x8f;
71 1 EIP1=0x80;
72 1 EIE1=0xf0;
73 1 EA=1;
74 1 while(1)
75 1 {
76 2 }
77 1 }
78
79 void CP0_ISR(void) interrupt 10 //比較器0下降沿中斷服務程序
80 {
81 1
82 1 CPT0CN &=0xCF;
83 1 SPI_Transfer(0x00); //關閉DEMO-A板上的D301LED
84 1 }
85 void CP0_ISRR(void) interrupt 11 //比較器0上升沿中斷服務程序
86 {
87 1 CPT0CN &=0xCF;
88 1 SPI_Transfer(0x01); //點亮DEMO-A上的D301 LED
89 1 }
90
91 void CP1_ISRL(void) interrupt 12 //比較器1下降沿中斷服務程序
92 {
93 1
94 1 CPT1CN &=0xCF;
95 1 SPI_Transfer(0x00); //關閉DEMO-A上的D301 LED
96 1 }
97 void CP1_ISRR(void) interrupt 13 //比較器1上升沿中斷服務程序
98 {
99 1 CPT1CN &=0xCF;
100 1 SPI_Transfer(0x01); //點亮DEMO-A上的D301 LED.
101 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 230 ----
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 + -