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

📄 gm8166rd.lst

📁 通过单片机去读GM8166芯片采集回来的数据
💻 LST
字号:
C51 COMPILER V8.05a   GM8166RD                                                             09/21/2007 13:45:31 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE GM8166RD
OBJECT MODULE PLACED IN GM8166RD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE GM8166RD.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          #define ulong unsigned long
   5          sbit Dir   = P2^0;                                      //*SP/Mux*/
   6          sbit M0    = P3^4;                                      //*M0*/
   7          sbit M1    = P3^5;                                      //*M1*/
   8          sbit IOEN  = P1^7;                                      //*OC/EN*/
   9          sbit SData = P3^6;                                      //*SData */
  10          sbit SClk  = P3^7;                                      //*SClk*/
  11          
  12          ulong SwapHigh6Bit(ulong RecData)       //交换高六位
  13          {
  14   1              uchar BitCnt;           //交换移位位数
  15   1              ulong OneH6Bit;         //高六位中的一位
  16   1              ulong H6Bit=0;
  17   1      
  18   1              for(BitCnt=0;BitCnt<6;BitCnt++)
  19   1              {       
  20   2                      H6Bit<<=1;
  21   2                      OneH6Bit=(RecData<<(5-BitCnt))&0x80000000;
  22   2                      if(0x80000000==OneH6Bit)
  23   2                      {
  24   3                              H6Bit+=1;
  25   3                      }
  26   2              }
  27   1      
  28   1              H6Bit<<=26;
  29   1              RecData=H6Bit|(RecData&0x03ffffff);
  30   1              return(RecData);
  31   1      }
  32          
  33          ulong GM8166Read()                                      //从GM8166读取32位数据
  34          {       
  35   1              uchar BitCnt;                                   //移入位数
  36   1              ulong RecData = 0x00000000;             //接收数据,对应开关状态:最高位:开关1
  37   1              
  38   1      
  39   1              IOEN = 0;                                               //并行输入允许
  40   1              SClk = 0;
  41   1              SClk = 1;                                               //并行口数据置入寄存器
  42   1              IOEN = 1;                                               //并行输入禁止
  43   1              
  44   1              if(SData == 1)
  45   1              {
  46   2                      RecData++;
  47   2              }
  48   1              RecData <<= 1;
  49   1      
  50   1              for(BitCnt=0;BitCnt<31;BitCnt++)
  51   1              {       
  52   2                      SClk = 0;
  53   2                      SClk = 1;
  54   2                      if(SData == 1)
  55   2                      {
C51 COMPILER V8.05a   GM8166RD                                                             09/21/2007 13:45:31 PAGE 2   

  56   3                              RecData++;
  57   3                      }
  58   2      
  59   2                      if(BitCnt<30)
  60   2                      {
  61   3                              RecData <<= 1;
  62   3                      }
  63   2              }
  64   1      
  65   1              RecData=SwapHigh6Bit(RecData);
  66   1                      
  67   1              return(RecData);
  68   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    259    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   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 + -