📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 11/05/2004 10:43:35 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //---------------------------------------------------------------------------
2 /********************************************
3 嵌入式系统 小型操作系统
4 作者:汪普宏
5 制作日期:2006.9
6 *********************************************/
7 //---------------------------------------------------------------------------
8
9 #include "os.h"
10 #include"intrins.h"
11 //--------------------------------------------------------------------------
12 // Initialize the memory management routines
13 // Initialize variables declared in main
14 //--------------------------------------------------------------------------
15
16
17
18 void PORT_Init (void)
19 {
20 1 XBR0 = 0x07; // Enable SMBus, SPI0, and UART0
21 1 XBR1 = 0x00;
22 1 XBR2 = 0x44; // Enable crossbar and weak pull-ups
23 1 EMI0TC = 0x21;
24 1 P74OUT = 0xFF;
25 1 P0MDOUT = 0x15;
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 void Timer0_Init (void)
41 {
42 1 CKCON|=0x0;
43 1 TMOD|=0x11; //16Bit
44 1 TR0 =TR1= 0; // STOP Timer0
45 1 TH1 = (-SYSCLK*SYTIMEISR/12000) >> 8; // set Timer0 to overflow in 1ms
46 1 TL1 = -SYSCLK*SYTIMEISR/12000;
47 1 //TR0 = 1; // START Timer0
48 1 IE|= 0x2;
49 1 }
50
51 void SYSCLK_Init (void)
52 {
53 1 uchar i; // delay counter
54 1 OSCXCN = 0x67; // start external oscillator with
55 1 // 18.432MHz crystal
C51 COMPILER V8.02 MAIN 11/05/2004 10:43:35 PAGE 2
56 1 for (i=0; i < 255; i++) ; // Wait for osc. to start up
57 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
58 1 OSCICN = 0x88; // select external oscillator as SYSCLK
59 1 // source and enable missing clock
60 1 // detector
61 1 // OSCICN = 0x07; //interal 16MHZ
62 1 }
63
64 /*通过SPI发送一字节*/
65 #define CHIP595_SELECT P5 &= ~(0x10); // P54
66 #define CHIP_NOSELECT P5 |= 0xf8; // P53-57
67 extern void OSStart(void);
68 void main (void)
69 {
70 1 WDTCN = 0xDE; // Disable watchdog timer
71 1 WDTCN = 0xAD;
72 1 EMI0CF =0x24; // share low 4K XRAM
73 1 SYSCLK_Init (); // initialize oscillator
74 1 Timer0_Init();
75 1 PORT_Init (); // initialize crossbar and GPIO
76 1 SPI0_Init (); // initialize SPI0
77 1 EA=TR0=ET0=TR1=ET1=0;
78 1 OSStart();
79 1 _nop_();
80 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 103 ----
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 + -