📄 psener.lst
字号:
C51 COMPILER V8.15 PSENER 08/06/2009 13:49:10 PAGE 1
C51 COMPILER V8.15, COMPILATION OF MODULE PSENER
OBJECT MODULE PLACED IN Psener.OBJ
COMPILER INVOKED BY: D:\专业软件SLF\keil\C51\BIN\C51.EXE Psener.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"reg52.h"
2 #include"stdio.h"
3 #include"intrins.h"
4 #include "LED.h"
5 #include "44KEY.h"
6 #define uchar unsigned char
7 #define uint unsigned int
8 char AsciiArray[5];
9 unsigned int j;
10 uint fg;
11 char fgf;
12
13 sbit TLC1549_CLK = P3^2; //AD_CLK
14 sbit TLC1549_DOUT = P3^3; //AD_DOUT
15 sbit TLC1549_CS = P3^4; //AD_CS
16 uint result=0;
17 uint flag1;
18 uint t0,t1; //转换变量初始化为0
19 uint IntNumber;
20
21 void InttoChar (uint IntNumber)
22 //---------------------------------------------------------
23 // Name: void InttoChar (int IntNumber)
24 // Func.: Translate integer to ASCII charactor array
25 // Char.: IntNumber number to be translated to ASCII charactor
26 //---------------------------------------------------------
27 {
28 1 if (IntNumber < 10)
29 1 {
30 2 AsciiArray[0] = IntNumber + 0x30;
31 2 AsciiArray[1] = 0x20;
32 2 AsciiArray[2] = 0x20;
33 2 AsciiArray[3] = 0x20;
34 2 AsciiArray[4] = 0x20;
35 2 return;
36 2 }
37 1 if (IntNumber < 100)
38 1 {
39 2 AsciiArray[0] = IntNumber / 10 + 0x30;
40 2 AsciiArray[1] = IntNumber % 10 + 0x30;
41 2 AsciiArray[2] = 0x20;
42 2 AsciiArray[3] = 0x20;
43 2 AsciiArray[4] = 0x20;
44 2 return;
45 2 }
46 1 if (IntNumber < 1000)
47 1 {
48 2 AsciiArray[0] = IntNumber / 100 + 0x30;
49 2 AsciiArray[1] = IntNumber % 100 / 10 + 0x30;
50 2 AsciiArray[2] = IntNumber % 10 + 0x30;
51 2 AsciiArray[3] = 0x20;
52 2 AsciiArray[4] = 0x20;
53 2 return;
54 2 }
55 1 if (IntNumber < 10000)
C51 COMPILER V8.15 PSENER 08/06/2009 13:49:10 PAGE 2
56 1 {
57 2 AsciiArray[0] = IntNumber / 1000 + 0x30;
58 2 AsciiArray[1] = IntNumber % 1000 / 100 + 0x30;
59 2 AsciiArray[2] = IntNumber % 100 / 10 + 0x30;
60 2 AsciiArray[3] = IntNumber % 10 + 0x30;
61 2 AsciiArray[4] = 0x20;
62 2 return;
63 2 }
64 1 else
65 1 {
66 2 AsciiArray[0] = IntNumber / 10000 + 0x30;
67 2 AsciiArray[1] = IntNumber % 10000 / 1000 + 0x30;
68 2 AsciiArray[2] = IntNumber % 1000 / 100 + 0x30;
69 2 AsciiArray[3] = IntNumber % 100 / 10 + 0x30;
70 2 AsciiArray[4] = IntNumber % 10 + 0x30;
71 2 return;
72 2 }
73 1 }
74
75 static void mDelay(j)
76 {
77 1 unsigned int i;
78 1 for(;j>0;j--)
79 1 {
80 2 for(i=124;i>0;i--)
81 2 {;}
82 2 }
83 1 }
84
85 void adelay(uchar us) //delay time
86 {
87 1 while(us--);
88 1 }
89
90 uint adc()
91 {
92 1 uint u=0;
93 1 uchar i;
94 1 TLC1549_CS=1; //先高电平,禁止I/O CLOCK
95 1 _nop_();
96 1 TLC1549_CLK=0;
97 1 _nop_();
98 1 TLC1549_CS=0; //开启控制电路,使能DATA OUT和I/O CLOCK
99 1 for(i=0;i<10;i++) //read data
100 1 {
101 2 TLC1549_CLK=0; //时钟下降沿
102 2 _nop_();
103 2 u=(u<<1)|TLC1549_DOUT; //读取数字放在16位u中
104 2 TLC1549_CLK=1; //时钟的上升沿每个时钟取一次数
105 2 _nop_();
106 2 }
107 1 for(i=0;i<10;i++);
108 1 adelay(2); //延时21uS 有问题???
109 1 TLC1549_CS=1; //DOUT 返回到高阻状态而终止序列
110 1 return(u); //返回AD转换后的值
111 1 }
112
113 void Psener(void)
114 {
115 1 uint i,a=0,temp,temp1;
116 1 float u1,sum=0;
117 1
C51 COMPILER V8.15 PSENER 08/06/2009 13:49:10 PAGE 3
118 1 mDelay(30);
119 1 while(1)
120 1 {
121 2 u1=0;sum=0;
122 2
123 2 KeyScan();
124 2 KeyFree();
125 2 for(i=0;i<30;i++)
126 2 {
127 3 u1=adc();
128 3 temp=((500*(u1))/(1023));//扩大100倍
129 3 sum=sum+temp-30;
130 3 }
131 2 temp1=sum/30;
132 2
133 2 fg=(temp1*50)/2.5;
134 2
135 2 //fgf=fg;
136 2 if(fg<0||fg>5000)
137 2 fg=0;
138 2 InttoChar(fg);
139 2 if(fg>=0&&fg<=5000)
140 2 {
141 3 sel1= fg%10;
142 3 // ascii[0]=sel1+48;
143 3 fg= fg/10;
144 3 sel2= fg%10;
145 3 //ascii[1]=sel2+48;
146 3 fg= fg/10;
147 3 sel3= fg%10;
148 3 //ascii[2]=sel2+48;
149 3 fg= fg/10;
150 3 sel4= fg%10;
151 3 // ascii[3]=sel2+48;
152 3 sel8=12;
153 3 }
154 2
155 2 if(flag1==4) //如果测量的是温度
156 2 {
157 3 for(a=50;a>0;a--)
158 3 {
159 4 led_show4();
160 4 }
161 3 }
162 2 else if(flag1==3) //如果上位机测量
163 2 {
164 3
165 3 break;
166 3 }
167 2 if(key==1) //如果要退出
168 2 {
169 3 mDelay(100);
170 3 if(key==1)
171 3 {
172 4 key=0;
173 4 P0=0xff;
174 4 fg=0;
175 4 flag1=0;
176 4
177 4 break;
178 4 }
179 3 }
C51 COMPILER V8.15 PSENER 08/06/2009 13:49:10 PAGE 4
180 2 }
181 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 891 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 14
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 + -