?? ide2.lst
字號:
C51 COMPILER V7.07 IDE2 05/13/2007 22:42:10 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE IDE2
OBJECT MODULE PLACED IN ide2.OBJ
COMPILER INVOKED BY: D:\萬解程序\keilc\C51\BIN\c51.exe ide2.c DB OE
stmt level source
1
2 #include <c8051f020.h> // SFR聲明
3 #include <stdio.h>
4 //-----------------------------------------------------------------------------
5 // C8051F02X的16位SFR定義
6 //-----------------------------------------------------------------------------
7 sfr16 DP = 0x82; // 數據指針
8 sfr16 TMR3RL = 0x92; // 定時器3重裝值
9 sfr16 TMR3 = 0x94; // 定時器3計數器
10 sfr16 ADC0 = 0xbe; // ADC0數據
11 sfr16 ADC0GT = 0xc4; // ADC0大于窗口
12 sfr16 ADC0LT = 0xc6; // ADC0小于窗口
13 sfr16 RCAP2 = 0xca; // 定時器2捕捉/重裝
14 sfr16 T2 = 0xcc; // 定時器2
15 sfr16 RCAP4 = 0xe4; // 定時器4捕捉/重裝
16 sfr16 T4 = 0xf4; // 定時器4
17 sfr16 DAC0 = 0xd2; // DAC0數據
18 sfr16 DAC1 = 0xd5; // DAC1數據
19 //-----------------------------------------------------------------------------
20 // 全局常量
21 //-----------------------------------------------------------------------------
22 #define SYSCLK 22118400 // 系統時鐘頻率
23
24 #define BAUDRATE 9600 // UART波特率
25
26
27
28 sbit LED = P1^6; // LED=’1’ 意為開
29 sbit SW1 = P3^7; // SW1=’0’ 意為按壓開關
30 //-----------------------------------------------------------------------------
31 // 函數原型
32 //-----------------------------------------------------------------------------
33 void SYSCLK_Init (void);
34 void PORT_Init (void);
35 void UART0_Init (void);
36
37
38
39
40 //-----------------------------------------------------------------------------
41 // 主程序
42 //-----------------------------------------------------------------------------
43 void main (void) {
44 1
45 1 WDTCN = 0xde; // 禁止看門狗定時器
46 1 WDTCN = 0xad;
47 1 SYSCLK_Init (); // 初始化振蕩器
48 1 PORT_Init (); // 初始化數據交叉開關和通用IO口
49 1 UART0_Init (); // 初始化UART0
50 1 //Timer3_Init (SYSCLK/SAMPLERATE0); // 初始化定時器3溢出作為ADC0采樣率
51 1 //ADC0_Init (); // 初始化ADC
52 1 EA = 1; // 允許全部中斷
53 1 ES0 = 1;
54 1 while (1);
55 1
C51 COMPILER V7.07 IDE2 05/13/2007 22:42:10 PAGE 2
56 1
57 1
58 1 }
59
60 void SYSCLK_Init (void)
61 {
62 1 int i; // 延時計數器
63 1 OSCXCN = 0x67; // 開啟外部振蕩器
64 1 //22.1184MHz晶體
65 1 for (i=0; i < 256; i++); // 等待振蕩器啟振
66 1 while (!(OSCXCN & 0x80)) ; // 等待晶體振蕩器穩定
67 1 OSCICN = 0x88; // 選擇外部振蕩器為系統時鐘源并允許丟失時鐘檢測器
68 1 }
69
70 void PORT_Init (void)
71 {
72 1 XBR0 = 0x04; // 使能UART0
73 1 XBR1 = 0x00;
74 1 XBR2 = 0x40; // 使能數據交叉開關和弱上拉
75 1 P0MDOUT |= 0x01; // 允許TX0為推挽輸出
76 1 P1MDOUT |= 0x40; // 允許P1.6(LED)為推挽輸出
77 1 }
78
79 void UART0_Init (void)
80 {
81 1 SCON0 = 0x50; // SCON0: 模式1, 8位UART, 使能RX
82 1 TMOD = 0x20; // TMOD: 定時器1, 模式2, 8位重裝
83 1 TH1 = -(SYSCLK/BAUDRATE/16); // 根據波特率的值設定定時器1重裝值
84 1 TR1 = 1; // 啟動定時器1
85 1 CKCON |= 0x10; // 定時器1使用系統時鐘作為時基
86 1 PCON |= 0x80; // SMOD00 = 1
87 1 TI0 = 1; // 表示TX0就緒
88 1 }
89
90 void UartInt(void) interrupt 4
91 {
92 1 unsigned char temp;
93 1 RI0 = 0;
94 1 LED =~LED;
95 1 temp = SBUF0;
96 1 SBUF0 =temp;
97 1 while(TI0==0);
98 1 TI0 = 0;
99 1 }
100
101
102
103
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 110 ----
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 + -