📄 main.lst
字号:
C51 COMPILER V8.05a MAIN 08/04/2007 17:18:57 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "c8051f020.h"
2 #include <intrins.h>
3 #include"I2C.H"
4 #include "ks0108.h"
5 #include"PCF8563.H"
6
7 void Delay1us(unsigned char us)
8 {
9 1 while (us)
10 1 {
11 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
12 2 --us;
13 2 }
14 1 }
15 void SYSCLK_Init (void)
16 {
17 1 int i; // delay counter
18 1 OSCXCN = 0x67; // start external oscillator with
19 1 // 18.432MHz crystal
20 1 for (i=0; i < 256; i++) ; // Wait for osc. to start up
21 1 // while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
22 1 OSCICN = 0x88; // select external oscillator as SYSCLK
23 1 // source and enable missing clock
24 1 // detector
25 1 // OSCICN = 0x07; //interal 16MHZ
26 1 }
27
28 #define PRT0CF P0MDOUT
29 #define PRT1CF P1MDOUT
30 #define PRT2CF P2MDOUT
31
32 void PORT_Init (void)
33 {
34 1 XBR0 = 0x03; // Enable SMBus, SPI0, and UART0
35 1 XBR1 = 0x00;
36 1 XBR2 = 0x40; // Enable crossbar and weak pull-ups
37 1
38 1 P74OUT = 0x00;
39 1 P0MDOUT = 0x00;
40 1
41 1 P1MDOUT = 0xff;
42 1 P3MDOUT = 0xff;
43 1
44 1 }
45
46 void SPI0_Init (void)
47 {
48 1 SPI0CFG = 0x07; // data sampled on 1st SCK rising edge
49 1 // 8-bit data words
50 1 SPI0CFG|=0xC0; //CKPOL =1;
51 1
52 1 SPI0CN = 0x03; // Master mode; SPI enabled; flags
53 1 // cleared
54 1 SPI0CKR = SYSCLK/2/8000000-1; // SPI clock <= 8MHz (limited by
55 1 // EEPROM spec.)
C51 COMPILER V8.05a MAIN 08/04/2007 17:18:57 PAGE 2
56 1 }
57
58 unsigned char Count1ms;
59 void Timer0_Init (void)
60 {
61 1 CKCON|=0x8;
62 1 TMOD|=0x1; //16Bit
63 1 Count1ms=10;
64 1 TR0 = 0; // STOP Timer0
65 1 TH0 = (-SYSCLK/1000) >> 8; // set Timer0 to overflow in 1ms
66 1 TL0 = -SYSCLK/1000;
67 1 TR0 = 1; // START Timer0
68 1 IE|= 0x2;
69 1 }
70
71 void Timer0_ISR (void) interrupt 1 //1ms
72 {
73 1 TH0 = (-SYSCLK/1000) >> 8;
74 1 TL0 = -SYSCLK/1000;
75 1 if (Count1ms) Count1ms--;
76 1 }
77
78 void Delay1ms(unsigned char T)
79 {
80 1 Count1ms=T;
81 1 while (Count1ms);
82 1 }
83
84 void Delay1s(unsigned char T)
85 {
86 1 while (T)
87 1 {
88 2 Delay1ms(200);
89 2 Delay1ms(200);
90 2 Delay1ms(200);
91 2 Delay1ms(200);
92 2 Delay1ms(200);
93 2 T--;
94 2 }
95 1 }
96
97
98 void main (void)
99 {
100 1 WDTCN = 0xde;
101 1 WDTCN = 0xad; //关看门狗
102 1 SYSCLK_Init (); //初始化时钟
103 1 Timer0_Init(); //初始化定时器
104 1 PORT_Init (); //初始化IO口
105 1 SPI0_Init (); //初始化SPI0
106 1
107 1 CPT1CN|=0x80; //使能比较器1
108 1 REF0CN = 0x03; //使能片内参考电压
109 1 DAC0CN |= 0x80; //使能DAC0
110 1 DAC0H=0; DAC0L=0;
111 1
112 1 EA=1; //开中断
113 1 TestLCD();
114 1 TestI2C();
115 1
116 1 }
117
C51 COMPILER V8.05a MAIN 08/04/2007 17:18:57 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 178 ----
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -