📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 05/11/2005 23:48:28 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "c8051f020.h"
2
3 void SYSCLK_Init (void)
4 {
5 1 int i; // delay counter
6 1 OSCXCN = 0x67; // start external oscillator with
7 1 // 18.432MHz crystal
8 1 for (i=0; i < 256; i++) ; // Wait for osc. to start up
9 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
10 1 OSCICN = 0x88; // select external oscillator as SYSCLK
11 1 // source and enable missing clock
12 1 // detector
13 1 // OSCICN = 0x07; //interal 16MHZ
14 1 }
15
16 #define PRT0CF P0MDOUT
17 #define PRT1CF P1MDOUT
18 #define PRT2CF P2MDOUT
19
20 void PORT_Init (void)
21 {
22 1 XBR0 = 0x07; // Enable SMBus, SPI0, and UART0
23 1 XBR1 = 0x00;
24 1 XBR2 = 0x44; // Enable crossbar and weak pull-ups
25 1 EMI0CF = 0x27;
26 1 EMI0TC = 0x21;
27 1 P74OUT = 0xFF;
28 1 P0MDOUT = 0x15;
29 1
30 1 P1MDOUT |= 0x3C; //P1.2-P1.5推挽输出
31 1 P1 &= 0xc3; //P1.2-P1.5=0
32 1 }
33
34 void SPI0_Init (void)
35 {
36 1 SPI0CFG = 0x07; // data sampled on 1st SCK rising edge
37 1 // 8-bit data words
38 1 SPI0CFG|=0xC0; //CKPOL =1;
39 1
40 1 SPI0CN = 0x03; // Master mode; SPI enabled; flags
41 1 // cleared
42 1 SPI0CKR = SYSCLK/2/8000000-1; // SPI clock <= 8MHz (limited by
43 1 // EEPROM spec.)
44 1 }
45
46 unsigned char Count1ms;
47 void Timer0_Init (void)
48 {
49 1 CKCON|=0x8;
50 1 TMOD|=0x1; //16Bit
51 1 Count1ms=10;
52 1 TR0 = 0; // STOP Timer0
53 1 TH0 = (-SYSCLK/1000) >> 8; // set Timer0 to overflow in 1ms
54 1 TL0 = -SYSCLK/1000;
55 1 TR0 = 1; // START Timer0
C51 COMPILER V7.50 MAIN 05/11/2005 23:48:28 PAGE 2
56 1 IE|= 0x2;
57 1 }
58
59 void Timer0_ISR (void) interrupt 1 //1ms
60 {
61 1 TH0 = (-SYSCLK/1000) >> 8;
62 1 TL0 = -SYSCLK/1000;
63 1 if (Count1ms) Count1ms--;
64 1 }
65
66 void Delay1ms(unsigned char T)
67 {
68 1 Count1ms=T;
69 1 while (Count1ms);
70 1 }
71
72 void Delay1s(unsigned char T)
73 {
74 1 while (T)
75 1 {
76 2 Delay1ms(200);
77 2 Delay1ms(200);
78 2 Delay1ms(200);
79 2 Delay1ms(200);
80 2 Delay1ms(200);
81 2 T--;
82 2 }
83 1 }
84
85 void Test7279(bit LoopFlag);
86 unsigned int GetTempValue(void);
87 void DispLED(char *DispBuf,char ShowDot); //ShowDot 显示小数点位
88 void main (void)
89 {
90 1 unsigned int w;
91 1 char buf[6];
92 1 WDTCN = 0xde;
93 1 WDTCN = 0xad; //关看门狗
94 1 SYSCLK_Init (); //初始化时钟
95 1 Timer0_Init(); //初始化定时器
96 1 PORT_Init (); //初始化IO口
97 1 SPI0_Init (); //初始化SPI0
98 1
99 1 CPT1CN|=0x80; //使能比较器1
100 1 REF0CN = 0x03; //使能片内参考电压
101 1 DAC0CN |= 0x80; //使能DAC0
102 1 DAC0H=0; DAC0L=0;
103 1
104 1 EA=1; //开中断
105 1
106 1 Test7279(0);
107 1 w = GetTempValue();
108 1 for (;;)
109 1 {
110 2 Delay1ms(250);
111 2 buf[0]=' ';
112 2 buf[1]=' ';
113 2 buf[2]=' ';
114 2 buf[3]=(w%1000)/100;
115 2 buf[4]=(w%100)/10;
116 2 buf[5]=(w%10);
117 2 DispLED(buf,5);
C51 COMPILER V7.50 MAIN 05/11/2005 23:48:28 PAGE 3
118 2 w = GetTempValue();
119 2 }
120 1 }
121
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 284 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 6
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 + -