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

📄 c8051f340.lst

📁 C8051F异步串口操作程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   C8051F340                                                             09/12/2007 10:54:10 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE C8051F340
OBJECT MODULE PLACED IN C8051F340.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE C8051F340.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************************/
   2          //----------------------------------------------------------------------------
   3          /////////////////////////// BEGAIN ////////////////////////////////////
   4          //----------------------------------------------------------------------------
   5          #include <c8051F340.h>
   6          #include <INTRINS.H>
   7          #include <STDIO.H>
   8          //#define ResetWdg() PCA0CPH4 += 0xFF//向PCA0CPH4写入任意值将复位看门狗
   9          //----------------------------------------------------------------------------
  10          //----------------------------------------------------------------------------
  11          #define uchar unsigned char
  12          #define uint unsigned int
  13          #define byte unsigned char
  14          //----------------------------------------------------------------------------
  15          //----------------------------------------------------------------------------
  16          sbit SDA=P0^0;
  17          sbit SCL=P0^1;
  18          //sbit TX1=P0^2;
  19          //sbit RX1=P0^3;
  20          //sbit TX0=P0^4;
  21          //sbit RX0=P0^5;
  22          sbit TTQH6_RST0=P0^6;
  23          sbit MCU_LED=P1^1;
  24          //---------------------------------------------------------------------------
  25          void Init_Device(void);
  26          //---------------------------------------------------------------------------
  27          //---------------------------------------------------------------------------
  28          typedef struct
  29          {
  30              uint  Parameter_ID;     //
  31              uint Min_Value;        //允许的最小值
  32              uint Max_Value;        //允许的最大值
  33              uint Init_Value;       //出厂默认值,当读用户设置值错误时应用该值
  34                signed char *s;                           //字符串指针
  35          } TTQH6_PARAMETER;
  36          //----------------------------------------------------------------------------
  37          //包含结构体的数组,存储可更改参数【参数id,最小值,最大值,初始值,注释字符串】
  38          //----------------------------------------------------------------------------
  39          TTQH6_PARAMETER code CmdListReg[] = 
  40          {
  41              {0x00,0x00,0xFF,0x10,  "Chip ID &SW ID\n "}, //
  42              {0x01,0x00,0xFF,0xD4,  "General,D7-Xtal select1 : 16M  0 : 4M\n     D2:0-GPO select 000 :0001 : 1 "}, 
             -//
  43              {0x02,0x00,0xFF,0x00,  "Global Power Management (Vaild at Time Slicing Mode)\n "}, //
  44              {0x03,0x00,0xFF,0x80,  "General Purpose\n "}, //
  45              {0x04,0x00,0xFF,0x0D,  "Band Assignment\n "}, //
  46              {0x05,0x00,0xFF,0x7F,  "Local Power Management I\n "}, //
  47              {0x06,0x00,0xFF,0x00,  "Local Power Management II\n "}, // 
  48              {0x07,0x00,0xFF,0x00,  "Local Power Management III\n "}, // 
  49                  {0x08,0x00,0xFF,0x02,  "Signal Chain Configure I\n "}, //
  50              {0x09,0x00,0xFF,0x4E,  "Signal Chain Configure II\n "}, // 
  51              {0x0A,0x00,0xFF,0x59,  "Signal Chain Configure III\n "}, // 
  52              {0x0B,0x00,0xFF,0x8D,  "Signal Chain Configure IV\n "}, //  
  53             // {0x0C,0x00,0xFF,?    "Signal Chain Configure V\n "}, //
  54             // {0x0D,0x00,0xFF, ?   ""}, //
C51 COMPILER V8.02   C8051F340                                                             09/12/2007 10:54:10 PAGE 2   

  55             // {0x0E,0x00,0xFF, ?   ""}, //
  56              {0x0F,0x00,0xFF,0x01,  "PLL Frequency I\n "}, // 
  57              {0x10,0x00,0xFF,0x17,  "PLL Frequency II\n "}, // 
  58              {0x11,0x00,0xFF,0x04,  "PLL Frequency III\n "}, // 
  59              {0x12,0x00,0xFF,0x40,  "PLL Frequency IV\n "}, // 
  60              {0x13,0x00,0xFF,0x48,  "PLL Frequency V\n "}, // 
  61              {0x14,0x00,0xFF,0x00,  "PLL Frequency VI\n "}, // 
  62              {0x15,0x00,0xFF,0x2A,  "PLL Frequency VII\n "}, // 
  63              {0x16,0x00,0xFF,0xA0,  "PLL Test\n "}, //
  64              {0x17,0x00,0xFF,0x39,  "PLL & SAR Configuration II\n "}, //
  65              {0x18,0x00,0xFF,0x1F,  "PLL Configuration III\n    Atune code-00000000: min gain ;11111111: max gain\n
             - "}, //
  66          
  67          };
  68          //----------------------------------------------------------------------------
  69          //---------------------------------------------------------------------------
  70          
  71          void Delay(unsigned int x)
  72          {
  73   1          uint i, j;
  74   1          
  75   1          for (i=0; i<x; i++)
  76   1          {
  77   2              for (j=0; j<0xff; j++)
  78   2              {;}
  79   2          }
  80   1      }
  81          //----------------------------------------------------------------------------
  82          //---------------------------------------------------------------------------
  83          
  84          void I2C_Delay(void)
  85          {
  86   1          uchar i;
  87   1          
  88   1          for (i=0; i<10; i++)
  89   1          {;}
  90   1      }
  91          //---------------------------------------------------------------------------
  92          /*
  93          **start
  94          **    ________      
  95          **SCL         \______
  96          **    ____         
  97          **SDA     \__________
  98          **
  99          */
 100          void I2C_Start(void)
 101          {
 102   1          SCL = 0;
 103   1          I2C_Delay();
 104   1          I2C_Delay();
 105   1          SDA = 1;
 106   1          I2C_Delay();
 107   1          SCL = 1;
 108   1          I2C_Delay();
 109   1          SDA = 0;
 110   1          I2C_Delay();
 111   1          SCL = 0;
 112   1      }
 113          //----------------------------------------------------------------------------
 114          /*
 115          **stop
C51 COMPILER V8.02   C8051F340                                                             09/12/2007 10:54:10 PAGE 3   

 116          **          _______
 117          **SCL  ____/       -------
 118          **             ____
 119          **SDA  _______/    ----
 120          **
 121          */
 122          void I2C_Stop(void)
 123          {
 124   1          SCL = 0;
 125   1          I2C_Delay();
 126   1          SDA = 0;
 127   1          I2C_Delay();
 128   1          SCL = 1;
 129   1          I2C_Delay();
 130   1          while(SCL != 1) SCL = 1;
 131   1          SDA = 1;
 132   1          I2C_Delay();
 133   1      }
 134          //----------------------------------------------------------------------------
 135          void I2C_Write_Byte(uchar dat)
 136          {
 137   1          uchar i;
 138   1          
 139   1          for (i=0; i<8; i++)
 140   1          {
 141   2              SDA = (bit)(dat & 0x80);
 142   2              I2C_Delay();                                                                                                          
 143   2              SCL = 1;
 144   2              dat <<= 1;
 145   2              I2C_Delay();
 146   2              SCL = 0;
 147   2          }
 148   1          SDA = 1;
 149   1          I2C_Delay();
 150   1      }
 151          //----------------------------------------------------------------------------
 152          uchar I2C_Read_Ack(void)
 153          {
 154   1          SCL = 1;
 155   1          do
 156   1          {
 157   2              SDA = 1;
 158   2          }while (SDA != 0);
 159   1          SCL = 0;
 160   1          
 161   1          return(0);
 162   1      }
 163          //----------------------------------------------------------------------------
 164          uchar I2C_Read_Byte(void)
 165          {
 166   1          uchar i, dat;
 167   1          
 168   1          SDA = 1;
 169   1          SCL = 1;
 170   1          while(SCL != 1)
 171   1          {
 172   2              SCL = 1;
 173   2          }
 174   1      
 175   1          for (i=0; i<8; i++)
 176   1          {
 177   2              SCL = 1;
C51 COMPILER V8.02   C8051F340                                                             09/12/2007 10:54:10 PAGE 4   

 178   2              I2C_Delay();
 179   2              dat <<= 1;
 180   2              dat |= (char)SDA;
 181   2              SCL = 0;
 182   2          }
 183   1          SDA = 1;
 184   1          I2C_Delay();
 185   1          SCL = 1;
 186   1          I2C_Delay();
 187   1          SCL = 0;
 188   1          return(dat);
 189   1      }
 190          //----------------------------------------------------------------------------
 191          //---------------------------------------------------------------------------
 192          
 193          uchar Read_TTQH6(uchar register_address)
 194          {
 195   1          uchar dat;
 196   1          
 197   1          //I2C_Stop();
 198   1          I2C_Start();
 199   1          I2C_Write_Byte(0xC4);             // 器件写地址
 200   1          I2C_Read_Ack();
 201   1          I2C_Write_Byte(register_address); // 寄存器地址
 202   1          I2C_Read_Ack();
 203   1          I2C_Stop();
 204   1      
 205   1          I2C_Start();
 206   1          I2C_Write_Byte(0xC5);             //器件读地址
 207   1          I2C_Read_Ack();
 208   1          dat = I2C_Read_Byte();
 209   1          //I2C_Write_Ack();                //数据已从TTQH6中读出不用再理会回传应答
 210   1          I2C_Stop();
 211   1      
 212   1          return(dat);
 213   1      }
 214          //----------------------------------------------------------------------------
 215          void Write_TTQH6(uchar register_address,uchar value)
 216          {
 217   1        
 218   1          //I2C_Stop();
 219   1          I2C_Start();
 220   1          I2C_Write_Byte(0xC4);              // 器件写地址
 221   1          I2C_Read_Ack();
 222   1          I2C_Write_Byte(register_address);  // 寄存器地址
 223   1          I2C_Read_Ack();
 224   1          I2C_Write_Byte(value);             // 写数据
 225   1          I2C_Stop();
 226   1      
 227   1      }
 228          //----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -