📄 cc1100_mcu_z.lst
字号:
C51 COMPILER V8.08 CC1100_MCU_Z 06/13/2008 15:24:04 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE CC1100_MCU_Z
OBJECT MODULE PLACED IN .\object\CC1100_MCU_z.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 源代码\CC1100_MCU_z.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE NOCO
-ND PRINT(.\list\CC1100_MCU_z.lst) TABS(8) OBJECT(.\object\CC1100_MCU_z.obj)
line level source
1 /******************************************************************************
2 文件名: CC1100_SPI_z.c
3 说 明: MCU操作CC1100的SPI口的硬件相关的函数。
4 单片机: C8051F310
5 ******************************************************************************/
6
7 #include "CC1100_MCU_z.h"
8 #include <intrins.h>
9 #include "CC1100_z.h"
10 #include "CC1100_func.h"
11
12 /******************************************************************************
13 函数名称: void CC1100_Reset(void)
14 函数功能: 按照手册描述的方法复位CC1100,仅上电后一次性运行。
15 如果在工作时复位CC1100,可直接使用SRES命令.
16 入口参数: 无。
17 返回值: 无。
18 /*****************************************************************************/
19 void CC1100_Reset(void)
20 {
21 1 //(1) 翻转CSn信号。
22 1 CC1100_CSn = 1; //CSn = 1。
23 1 CC1100_SCLK = 1; //防止意外
24 1 CC1100_SI = 0; //防止意外
25 1 MCU_Wait_us( 10 ); //延迟10us。
26 1
27 1 CC1100_CSn = 0; //CSn = 0。
28 1 MCU_Wait_us( 30 ); //延迟30us。
29 1 CC1100_CSn = 1; //CSn = 1。
30 1 MCU_Wait_us( 45 ); //延迟45us。
31 1 CC1100_CSn = 0; //CSn = 0。
32 1 while ( CC1100_SO ); //等待SO=0,晶振稳定运行。
33 1
34 1 //(2) 发送SRES复位命令。
35 1 write_spi( CC1100_SRES ); //发送SRES命令。(硬件相关的函数)
36 1
37 1 //(3) 等待芯片完成内部复位。
38 1 while ( CC1100_SO ); //等待SO=0。
39 1 CC1100_CSn = 1; //CSn=1。完成。
40 1 CC1100_SCLK = 0;
41 1 }
42
43 /******************************************************************************
44 函数名称: void MCU_wait_us( unsigned char x )
45 函数功能: 延迟等待 x us(不精确)。
46 入口参数: x = 微秒数。
47 返回值: 无。
48 ******************************************************************************/
49 void MCU_Wait_us( unsigned char x )
50 {
51 1 unsigned char i;
52 1
53 1 do
54 1 {
C51 COMPILER V8.08 CC1100_MCU_Z 06/13/2008 15:24:04 PAGE 2
55 2 i=12;
56 2 while( --i );
57 2 }
58 1 while (--x);
59 1 }
60
61 /******************************************************************************
62 函数名称: unsigned char write_spi( unsigned char byte )
63 函数功能: MCU写一个字节的数据到CC1100。本函数假定SCn=0。
64 入口参数: byte = 写入字节。
65 返回值: CC1100的状态字节。
66 ******************************************************************************/
67 unsigned char write_spi( unsigned char x )
68 {
69 1 unsigned char i;
70 1
71 1 for ( i=8; i>0; i--)
72 1 {
73 2 CC1100_SCLK = 0;
74 2 x += x;
75 2 CC1100_SI = CY;
76 2 CC1100_SCLK = 1;
77 2 x |= CC1100_SO;
78 2 }
79 1 CC1100_SCLK = 0;
80 1 return ( x );
81 1 }
82
83 /******************************************************************************
84 函数名称: unsigned char read_spi( unsigned char byte )
85 函数功能: MCU读CC1100一个字节的数据。本函数假定地址已发送。
86 入口参数: w无
87 返回值: 该地址的内容。
88 ******************************************************************************/
89 unsigned char read_spi( void )
90 {
91 1 unsigned char i, x;
92 1
93 1 for ( i=8; i>0; i-- )
94 1 {
95 2 CC1100_SCLK = 1;
96 2 x <<= 1;
97 2 x |= CC1100_SO;
98 2 CC1100_SCLK = 0;
99 2 }
100 1 return ( x );
101 1 }
102
103 //----------- T2 中断服务程序 ----------------
104 void T2_ISR ( void ) interrupt 5 using 2
105 {
106 1 S_1ms = 1; //置1ms标志
107 1 TF2H = 0; //清中断源
108 1 }
109
110
111 /***************************************************************
112 函数名: void Deal_with_LED4( void )
113 功能说明: LED4闪烁。
114 ***************************************************************/
115 void Deal_with_LED( void )
116 {
C51 COMPILER V8.08 CC1100_MCU_Z 06/13/2008 15:24:04 PAGE 3
117 1 if ( !(--Blink_time) )
118 1 {
119 2 LED4 ^=1;
120 2 Blink_time = BLINK_OVER;
121 2 }
122 1 LED1 = S_FRX; //亮=正在接收。
123 1 LED2 = S_FTX; //亮=正在发送。
124 1 LED3 = CC1100_GDO0;
125 1 }
C51 COMPILER V8.08 CC1100_MCU_Z 06/13/2008 15:24:04 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION CC1100_Reset (BEGIN)
; SOURCE LINE # 19
; SOURCE LINE # 20
; SOURCE LINE # 22
0000 D2A3 SETB CC1100_CSn
; SOURCE LINE # 23
0002 D2A1 SETB CC1100_SCLK
; SOURCE LINE # 24
0004 C2A0 CLR CC1100_SI
; SOURCE LINE # 25
0006 7F0A MOV R7,#0AH
0008 120000 R LCALL _MCU_Wait_us
; SOURCE LINE # 27
000B C2A3 CLR CC1100_CSn
; SOURCE LINE # 28
000D 7F1E MOV R7,#01EH
000F 120000 R LCALL _MCU_Wait_us
; SOURCE LINE # 29
0012 D2A3 SETB CC1100_CSn
; SOURCE LINE # 30
0014 7F2D MOV R7,#02DH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -