⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc1100_mcu_z.lst

📁 用c8051f310开发的433M无线模块cc1100的完整程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -