📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 01/08/2008 09:24:14 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: d:\program files\Keil\C51\BIN\C51.EXE source\main.c BROWSE INCDIR(D:\Program Files\Keil\C51\INC) DE
-FINE(CC1110) DEBUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(main.obj)
line level source
1 #include <intrins.h>
2 #include <chipcon/cc1110.h>
3
4 #define uint unsigned int
5 #define uchar unsigned char
6 #define NOP _nop_()
7 #define DELAY 10000
8
9 sbit led1 = P1^0;
10 sbit led2 = P1^1;
11
12 void Delay(void);
13 void Initial(void);
14 void PowerMode(uchar sel);
15 void Init_clocks(uchar para1,uchar para2,uchar para3,uchar para4);
16
17 /****************************************************************
18 * 函数功能:延时 *
19 * 入口参数:无 *
20 * 返回值 :无 *
21 * 说 明 :可在宏定义中改变延时长度 *
22 ****************************************************************/
23 void Delay(void)
24 {
25 1 uint tt;
26 1 for(tt = 0;tt<DELAY;tt++);
27 1 for(tt = 0;tt<DELAY;tt++);
28 1 for(tt = 0;tt<DELAY;tt++);
29 1 for(tt = 0;tt<DELAY;tt++);
30 1 for(tt = 0;tt<DELAY;tt++);
31 1 }
32
33 /****************************************************************
34 * 函数功能:初始化电源 *
35 * 入口参数:para1,para2,para3,para4 *
36 * 返回值 :无 *
37 * 说 明 :para1,模式选择 *
38 * *
39 * para1 0 1 2 3 *
40 * mode PM0 PM1 PM2 PM3 *
41 * *
42 ****************************************************************/
43 void PowerMode(uchar sel)
44 {
45 1 uchar i;
46 1 i = sel;
47 1 if((sel>=0)&&(sel<4))
48 1 {
49 2 SLEEP &= 0xfc;
50 2 SLEEP |= i;
51 2 NOP;
52 2 NOP;
53 2 NOP;
54 2 NOP;
C51 COMPILER V8.08 MAIN 01/08/2008 09:24:14 PAGE 2
55 2 PCON = 0x01;
56 2 }
57 1 else
58 1 {
59 2 PCON = 0x00;
60 2 }
61 1 }
62
63 /****************************************************************
64 *函数功能 :初始化时钟 *
65 *入口参数 :para1 选择使用RC、晶振(高速)1-0 *
66 * :para2 选择使用RC、晶振(低速)1-0 *
67 * :para3 选择时计数钟分频 000-111 *
68 * :para4 选择时系统钟分频 000-111 *
69 *返 回 值 :无 *
70 *说 明 :para3<=para4 , para1(2)=1使用RC,反之使用晶振 *
71 ****************************************************************/
72 void Init_clocks(uchar para1,uchar para2,uchar para3,uchar para4)
73 {
74 1 uchar i;
75 1
76 1 i = para1<<7;
77 1 CLKCON |= 0X80;
78 1 CLKCON &= i;
79 1
80 1 i = para2<<6;
81 1 CLKCON |= 0X40;
82 1 CLKCON &= i;
83 1
84 1 i = para3<<3;
85 1 CLKCON &= 0X37;
86 1 CLKCON |= i;
87 1
88 1 i = para4;
89 1 CLKCON &= 0XF8;
90 1 CLKCON |= i;
91 1 }
92 /****************************************************************
93 * 函数功能:初始化I/O,控制LED *
94 * 入口参数:无 *
95 * 返回值 :无 *
96 * 说 明 :初始化完成后关灯 *
97 ****************************************************************/
98 void Initial(void)
99 {
100 1 //P1 out
101 1 P1DIR = 0x03; //led1 led2
102 1 led1 = 1;
103 1 led2 = 1; //close led
104 1 }
105
106 /****************************************************************
107 * 函数功能:主函数 *
108 * 入口参数: *
109 * 返回值 :无 *
110 * 说 明 :10次绿色LED闪烁后进入睡眠状态 *
111 ****************************************************************/
112 void main()
113 {
114 1 uchar count = 0;
115 1 Initial();
116 1 Init_clocks(0,0,0,3);
C51 COMPILER V8.08 MAIN 01/08/2008 09:24:14 PAGE 3
117 1 //高低速时钟均选用晶振,最后一位形参选择系统时钟分频数
118 1 //改变该值会影响CPU运行速度
119 1
120 1 led1 = 0;
121 1 Delay();
122 1 Delay();
123 1 Delay();
124 1 Delay();
125 1
126 1 while(1)
127 1 {
128 2 led2 = !led2;
129 2 Delay();
130 2 Delay();
131 2 count++;
132 2 if(count == 20)PowerMode(3);
133 2 //10次闪烁后进入睡眠状态
134 2 };
135 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 197 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -