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

📄 分光分色子.lst

📁 颜色分辨 芯片TCS230 读取白色发光二极管的亮度及颜色植转化后输出
💻 LST
字号:
C51 COMPILER V7.06   _謃鈅稚_子                                                            06/22/2005 10:11:49 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE _謃鈅稚_子
OBJECT MODULE PLACED IN 分光分色子.OBJ
COMPILER INVOKED BY: D:\Keilk\C51\BIN\C51.EXE 分光分色子.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          extern  unsigned char power; 
   3          extern  unsigned int rgb[4],rgba[3];
   4          extern  unsigned char zx,th0;
   5          unsigned char sxy;
   6          unsigned int gggg;
   7          sbit S0=P1^5; //移位脉冲
   8          sbit S1=P1^6;
   9          sbit S2=P3^4;
  10          sbit S3=P3^0;
  11          sbit OE=P1^7;
  12          display(unsigned int x);/////////////////
  13          time0() interrupt 1//计数中断如果光线比较暗则容易溢出应加处理方法
  14          {     
  15   1           TR1=0;//停止计数器
  16   1           gggg=0x00;//计数错误返回值
  17   1           TR0=0;//停止定时器
  18   1           ET0=0;//关中断 
  19   1           ET1=0;//关计数器       
  20   1      }
  21          
  22          
  23          time1() interrupt 3//颜色计数停用
  24          {unsigned int yx;
  25   1       
  26   1        if(sxy=='o')
  27   1          {
  28   2          TH0=0;TL0=0; 
  29   2          TH1=0xf0;TL1=0xf0;//应该赙一个值
  30   2          TR1=1;TR0=1;ET0=1;ET1=1;
  31   2           sxy='s';   
  32   2          }
  33   1        else {ET0=0;ET1=0;TR0=0;TR1=0;gggg=TH0;gggg=((gggg<<8)|TL0);  }//此处应加TL放在底位
  34   1               //芯片的分辨率10位到12位应取值,,值越大越暗,,值越小越亮
  35   1      }
*** WARNING C280 IN LINE 24 OF 分光分色子.C: 'yx': unreferenced local variable
  36          
  37          close()//关闭电源函数
  38          {S0=S1=0;}
  39          open(unsigned char x)//选择颜色函数
  40          {     if(x=='r'){S2=0;S3=0;} 
  41   1       else if(x=='g'){S2=1;S3=1;} 
  42   1       else if(x=='b'){S2=0;S3=1;}
  43   1       else if(x=='w'){S2=1;S3=0;}  
  44   1      }
  45          precision(unsigned char x)//精度选择函数
  46          {
  47   1       if(x=='l')//2%
  48   1        {S0=0;S1=1;} 
  49   1       else if(x=='o')//20%
  50   1        {S0=1;S1=0;}
  51   1       else if(x=='h')//100%
  52   1        {S0=S1=1;}
  53   1      }
  54          
C51 COMPILER V7.06   _謃鈅稚_子                                                            06/22/2005 10:11:49 PAGE 2   

  55          s_time0()
  56          {sxy='o';//启动计数器标志
  57   1       TH0=0x00;TL0=0x00;
  58   1       TH1=0xfF;TL1=0xfF;//进入计数中断第一次为卡定时间
  59   1       TR1=1;//启动计数器0
  60   1       TR0=1;//启动定时器
  61   1       ET0=1;//定时器中断允许
  62   1       ET1=1;//计数器中断允许 
  63   1      }
  64          w_transform()
  65          {
  66   1                if((TR1==0))//如果停止计数则进行以下操作
  67   1                    { 
  68   2                      if(zx==0)
  69   2                         { precision('h');
  70   3                           open('r');//选择红转换
  71   3                           s_time0();//启动颜色识别
  72   3                           zx++;//close(); 
  73   3                          } 
  74   2                      else if(zx==1)
  75   2                          {rgb[0]=gggg; 
  76   3                           open('g');//选择红转换
  77   3                           s_time0();//启动颜色识别
  78   3                           zx++;//close(); 
  79   3                          }
  80   2      
  81   2                       else if(zx==2)
  82   2                          { rgb[1]=gggg; 
  83   3                            open('b');//选择红转换
  84   3                            s_time0();//启动颜色识别
  85   3                            zx++; 
  86   3                          }
  87   2                 
  88   2                       else if(zx==3)//白颜色识别
  89   2                          {rgb[2]=gggg;
  90   3                           open('w'); 
  91   3                           s_time0();  
  92   3                           zx++;
  93   3                           }
  94   2                       else if(zx==4)
  95   2                          {
  96   3                           rgb[3]=gggg; 
  97   3                           zx=0;
  98   3                           close();                            
  99   3                          }
 100   2           }
 101   1       power++;
 102   1      }
 103          /*此段程序为以计数器边沿触发启动启动定时器 zZZ*/


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