📄 chengxu.lst
字号:
C51 COMPILER V8.05a CHENGXU 11/30/2011 23:41:49 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /********************************************************************
3 汇诚科技
4
5 实现功能:对颜色传感器输出的频率进行测量
6 使用芯片:AT89S52 或者 STC89C52
7 晶振:11.0592MHZ
8 编译环境:Keil
9 作者:zhangxinchunleo
10 网站:www.ourhc.cn
11 淘宝店:汇诚科技 http://shop36330473.taobao.com
12 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
13
14 /*********************************************************************/
15
16 #include <reg52.h> //头文件
17 unsigned char code dispbit[]={0xef,0xdf,0xbf,0x7f}; //位控制
18 unsigned char code dispcode[]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数字码
19 unsigned char dispbuf[4]={0,0,0,0}; //临时数据位
20 unsigned char temp[8]; //缓存数组
21 unsigned char dispcount; //数值组变量
22 unsigned char T0count; //计数器
23 unsigned char timecount; //时间计数器
24 unsigned char bz; //采集标志位
25 unsigned int bz1; //延时标志位
26 bit flag; //数值变换使能
27 unsigned long x; //计数值换算变量
28
29 /******************************************************************
30 输入输出初始化定义
31 ******************************************************************/
32
33 sbit P2_0=P2^0; //采集锁定按键
34 sbit P2_1=P2^1; //采集解锁按键
35 sbit P1_1=P1^6; //采集解锁指示
36 sbit P1_2=P1^7; //采集锁定指示
37
38
39 sbit S0=P1^0; //用于选择输出比例因子或电源关断模式
40 sbit S1=P1^1; //用于选择输出比例因子或电源关断模式
41 sbit OE=P1^2; //频率输出使能引脚
42 sbit S2=P1^3; //用于选择滤波器的类型
43 sbit S3=P1^4; //用于选择滤波器的类型
44
45 /*************************************************************************
46 TCS230连接初始化
47 **************************************************************************/
48
49 void TCS230()
50 {
51 1 S0=0; //用于选择输出比例因子或电源关断模式
52 1 S1=1; //用于选择输出比例因子或电源关断模式
53 1 OE=0; //频率输出使能引脚
54 1 S2=1; //用于选择滤波器的类型
55 1 S3=0; //用于选择滤波器的类型
C51 COMPILER V8.05a CHENGXU 11/30/2011 23:41:49 PAGE 2
56 1 }
57
58
59 /*************************************************************************
60 主函数
61 **************************************************************************/
62
63 void main(void) //主函数
64 {
65 1
66 1 unsigned char i;
67 1 TMOD=0x15; //定义定时器
68 1 TH0=0;
69 1 TL0=0;
70 1 TH1=(65536-4000)/256;
71 1 TL1=(65536-4000)%256;
72 1 TR1=1;
73 1 TR0=1;
74 1 ET0=1;
75 1 ET1=1;
76 1 EA=1;
77 1 TCS230();
78 1 while(1) //主函数循环体
79 1 {
80 2 if(flag==1) //显示使能开
81 2 {
82 3 flag=0;
83 3 x=T0count*65536+TH0*256+TL0; //计数器换算
84 3 for(i=0;i<4;i++)
85 3 {
86 4 temp[i]=0;
87 4 }
88 3 i=0;
89 3 while(x/10)
90 3 {
91 4 temp[i]=x%10;
92 4 x=x/10;
93 4 i++;
94 4 }
95 3 temp[i]=x;
96 3 for(i=0;i<4;i++)
97 3 {
98 4 dispbuf[i]=temp[i];
99 4 }
100 3 timecount=0;
101 3 T0count=0;
102 3 TH0=0;
103 3 TL0=0;
104 3 TR0=1;
105 3 }
106 2 }
107 1 }
108 /*************************************************************************
109 定时器函数
110 **************************************************************************/
111
112 void t0(void) interrupt 1 using 0 //计数器中断
113 {
114 1 T0count++;
115 1 }
116
117 /*************************************************************************
C51 COMPILER V8.05a CHENGXU 11/30/2011 23:41:49 PAGE 3
118 中断函数
119 **************************************************************************/
120 void t1(void) interrupt 3 using 0 //定时器中断
121 {
122 1 TH1=(65536-4000)/256;
123 1 TL1=(65536-4000)%256;
124 1 timecount++;
125 1
126 1 if(P2_0==0){bz=1;P1_2=0;}
127 1 if(P2_1==0){bz=0;bz1=0;P1_2=1;P1_1=1;}
128 1
129 1 if(timecount==250)
130 1 {
131 2 TR0=0;
132 2 timecount=0;
133 2
134 2 flag=1;
135 2 if(bz==1){bz1++;}
136 2 if(bz1>=5){flag=0;bz1=6;P1_1=0;}
137 2
138 2 }
139 1 P0=dispcode[dispbuf[dispcount]];
140 1 P2=dispbit[dispcount];
141 1 dispcount++;
142 1 if(dispcount==4)
143 1 {
144 2 dispcount=0;
145 2 }
146 1 }
147
148 /*************************************************************************
149 结束
150 **************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 380 ----
CONSTANT SIZE = 14 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -