📄 分光分色子.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 + -