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

📄 cp2.lst

📁 数显游标卡尺的抓取信号和协议破解的方面的程序
💻 LST
字号:
C51 COMPILER V8.12   CP2                                                                   12/09/2008 18:27:29 PAGE 1   


C51 COMPILER V8.12, COMPILATION OF MODULE CP2
OBJECT MODULE PLACED IN CP2.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.exe CP2.c DB OE BR

line level    source

   1          /*功能:此程序可完成CP1比较器的比较功能,比较器基准信号来自于VREF引脚,
   2                   比较器响应后将产生中断,可在中断程序中设断点观察.
   3          作者:ZHANGXUEDIAN
   4          时间:2008-10-4
   5          版本:V1.0
   6          ***************************************************************/ 
   7          //------------------------------------------------------------------------------------
   8          // 头文件包含
   9          //------------------------------------------------------------------------------------
  10          #include <c8051f020.h>           
  11          //------------------------------------------------------------------------------------
  12          //函数定义
  13          //------------------------------------------------------------------------------------
  14          void PORT_Init (void);
  15          void CPT0_Init (void);
  16          void CPT1_Init (void);
  17          
  18          void CPT1_ISR  (void);
  19          
  20          sbit led=P2^4;  //红色LED
  21          sbit SCL=P0^0;  //CP1
  22          sbit SDA=P0^1;  //CP0
  23          
  24          //------------------------------------------------------------------------------------
  25          //主程序
  26          //------------------------------------------------------------------------------------
  27          void main (void) {
  28   1         unsigned char rbyte=0;
  29   1         unsigned char i=0,j=0;
  30   1         unsigned char start=0;
  31   1         unsigned char rdata[3];
  32   1      
  33   1         WDTCN = 0xde;   
  34   1         WDTCN = 0xad;   //禁止看门狗定时器
  35   1              
  36   1         PORT_Init ();
  37   1         CPT0_Init ();
  38   1         CPT1_Init ();        
  39   1                                      
  40   1         //EA=1;                      /*开总中断标志*/
  41   1       
  42   1         while (1)
  43   1      
  44   1         {
  45   2              start=0;
  46   2                      i=0;
  47   2                      while((CPT1CN&0x40)==0x00) //CP+>CP-,led=1
  48   2                              {       
  49   3                                 i++;
  50   3                                 if (i>50) 
  51   3                                         { //start=1;
  52   4                                           // led=0;
  53   4                                            while(start==0)
  54   4                                                        { 
  55   5                                                            j=0;
C51 COMPILER V8.12   CP2                                                                   12/09/2008 18:27:29 PAGE 2   

  56   5                                                                
  57   5                                                        while((CPT1CN&0x40)==0x40) //CP+>CP-,led=1
  58   5                                                                  {   
  59   6                                                                         //led=1;
  60   6                                                                         j++;
  61   6                                                                         if (j>10) 
  62   6                                                                                 { 
  63   7                                                                                   start=1;                                                                                                                                                        
  64   7                                                                                   break;
  65   7                                                                                  }
  66   6                                                              }
  67   5                                 }
  68   4                          
  69   4                                       break;
  70   4                                          }
  71   3                              }
  72   2                              
  73   2                      //       led=0;
  74   2                      
  75   2      
  76   2              if(start==1)
  77   2                              {
  78   3                                  j=0;
  79   3                                      i=0;
  80   3                                      while(j<3)
  81   3                                         {    
  82   4                                            if((CPT1CN&0x40)==0x40) //CP+>CP-,led=1
  83   4                                                       {      
  84   5                                                               
  85   5                                                               if((CPT0CN&0x40)==0x40)
  86   5                                                              {
  87   6                                                                       rbyte = (rbyte >> 1) | 0x80;
  88   6                                                                       }
  89   5                                                               else 
  90   5                                                                  {                                                           
  91   6                                                                        rbyte=rbyte >> 1;
  92   6                                                                        }     
  93   5                                                           i++;
  94   5                                                                if (i>7)
  95   5                                                                 {
  96   6                                                                         i=0;
  97   6                                                             rdata[j++]=rbyte;
  98   6                                                                         rbyte=0;
  99   6                                                                 }                                                            
 100   5                                                        }                                                     
 101   4                                           }   //end while if j=3
 102   3                                       //display rdata
 103   3                                      // led=0;       
 104   3                                 }
 105   2                                 //not low
 106   2              }
 107   1      } 
 108          //--------------------------------------------------------------------------------
 109          //函数名称:      CPT1_Init()
 110          //函数功能:      比较器1初始化
 111          //--------------------------------------------------------------------------------
 112          void CPT1_Init (void)
 113           {
 114   1        EIE1   |=0x40;        //允许CP1FIF 标志位(CPT1CN.4)的中断请求
 115   1        CPT1CN =0x8F;         //启用CP1比较器,CP+、-回差电压为10mV
 116   1        REF0CN |= 0x00;   //用基准电压作为比较信号基准,CP1-接VREF
 117   1        XBR1 |=0x01;                                  //用电位器从3.3V分压输出至CP1+,调节电位器输出电压大、小于VREF看断点变化
C51 COMPILER V8.12   CP2                                                                   12/09/2008 18:27:29 PAGE 3   

 118   1      
 119   1       }
 120           void CPT0_Init (void)
 121           {
 122   1        //EIE1   |=0x40;      //允许CP1FIF 标志位(CPT1CN.4)的中断请求
 123   1        CPT0CN =0x8F;         //启用CP1比较器,CP+、-回差电压为10mV
 124   1        //REF0CN |= 0x01;   //用基准电压作为比较信号基准,CP1-接VREF
 125   1        XBR0 |=0x80;                                          //用电位器从3.3V分压输出至CP1+,调节电位器输出电压大、小于VREF看断点变化
 126   1       }
 127          //------------------------------------------------------------------------------------
 128          //函数名称:      PORT_Init ()
 129          //函数功能:      通用I/O口及交叉开关初始化
 130          //------------------------------------------------------------------------------------
 131          //
 132          void PORT_Init (void)
 133          {
 134   1              P2MDOUT   = 0x10;       //LED 输出驱动
 135   1          P0MDOUT   = 0x01;   //LED 输出驱动
 136   1              XBR2      = 0x40;       /*交叉开关使能*/             
 137   1      }
 138          //------------------------------------------------------------------------
 139          //函数名称:      CPT1_ISR ()
 140          //函数功能:      比较器1中断程序
 141          //------------------------------------------------------------------------
 142          void CPT1_ISR (void) interrupt 12
 143          {
 144   1              CPT1CN &=~ 0x30;                //清中断标志位,在此设断点观察
 145   1              led !=led;
*** WARNING C275 IN LINE 145 OF CP2.C: expression with possibly no effect
 146   1      
 147   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    169    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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