📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 09/09/2006 14:24:32 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: c:\KEIL\C51\BIN\C51.exe main.c DB OE
stmt 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 P2 |= 0x10; // P2.4=1,加热控制端口
26 1 }
27
28 void SPI0_Init (void)
29 {
30 1 SPI0CFG = 0x07; // data sampled on 1st SCK rising edge
31 1 // 8-bit data words
32 1 SPI0CFG|=0xC0; //CKPOL =1;
33 1
34 1 SPI0CN = 0x03; // Master mode; SPI enabled; flags
35 1 // cleared
36 1 SPI0CKR = SYSCLK/2/8000000-1; // SPI clock <= 8MHz (limited by
37 1 // EEPROM spec.)
38 1 }
39
40 unsigned char Count1ms;
41 void Timer0_Init (void)
42 {
43 1 CKCON|=0x8;
44 1 TMOD|=0x1; //16Bit
45 1 Count1ms=10;
46 1 TR0 = 0; // STOP Timer0
47 1 TH0 = (-SYSCLK/1000) >> 8; // set Timer0 to overflow in 1ms
48 1 TL0 = -SYSCLK/1000;
49 1 TR0 = 1; // START Timer0
50 1 IE|= 0x2;
51 1 }
52
53 void Timer0_ISR (void) interrupt 1 //1ms
54 {
55 1 TH0 = (-SYSCLK/1000) >> 8;
C51 COMPILER V7.06 MAIN 09/09/2006 14:24:32 PAGE 2
56 1 TL0 = -SYSCLK/1000;
57 1 if (Count1ms) Count1ms--;
58 1 }
59
60 void Delay1ms(unsigned char T)
61 {
62 1 Count1ms=T;
63 1 while (Count1ms);
64 1 }
65
66 void Delay1s(unsigned char T)
67 {
68 1 while (T)
69 1 {
70 2 Delay1ms(200);
71 2 Delay1ms(200);
72 2 Delay1ms(200);
73 2 Delay1ms(200);
74 2 Delay1ms(200);
75 2 T--;
76 2 }
77 1 }
78
79 void Test7279(bit LoopFlag);
80 unsigned int GetTempValue(void);
81 void DispLED(char *DispBuf,char ShowDot); //ShowDot 显示小数点位
82 void main (void)
83 {
84 1 unsigned int w;
85 1 char buf[6];
86 1 WDTCN = 0xde;
87 1 WDTCN = 0xad; //关看门狗
88 1 SYSCLK_Init (); //初始化时钟
89 1 Timer0_Init(); //初始化定时器
90 1 PORT_Init (); //初始化IO口
91 1 SPI0_Init (); //初始化SPI0
92 1
93 1 CPT1CN|=0x80; //使能比较器1
94 1 REF0CN = 0x03; //使能片内参考电压
95 1 DAC0CN |= 0x80; //使能DAC0
96 1 DAC0H=0; DAC0L=0;
97 1
98 1 EA=1; //开中断
99 1
100 1 Test7279(0);
101 1 w = GetTempValue();
102 1 for (;;)
103 1 {
104 2 Delay1ms(250);
105 2 buf[0]=' ';
106 2 buf[1]=' ';
107 2 buf[2]=' ';
108 2 buf[3]=(w%1000)/100;
109 2 buf[4]=(w%100)/10;
110 2 buf[5]=(w%10);
111 2 DispLED(buf,5);
112 2 w = GetTempValue();
113 2 }
114 1 }
115
C51 COMPILER V7.06 MAIN 09/09/2006 14:24:32 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 263 ----
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 + -