📄 cat5113.lst
字号:
C51 COMPILER V7.00 CAT5113 07/18/2007 12:16:48 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE CAT5113
OBJECT MODULE PLACED IN CAT5113.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CAT5113.C ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "CAT5113.h"
2 #include "Eprom.h"
3
4 code uchar MaxA = 93;
5 code uchar MinA = 50;
6 uchar xdata CAT_A = 93;
7 uchar xdata CAT_B = 100;
8
9 #define CS1 P1_4
10 #define CS2 P1_5
11 #define INC P1_6
12 #define U_D P1_7
13
14 uchar Get5113A(void)
15 {
16 1 return CAT_A;
17 1 }
18 uchar Get5113B(void)
19 {
20 1 return CAT_B;
21 1 }
22
23 void Set5113A(uchar Cat5113)
24 {
25 1 if((Cat5113 >= MinA)&&(Cat5113 <= MaxA))
26 1 CAT_A = Cat5113;
27 1 }
28
29 void CAT5113(uchar pos)
30 {
31 1 uchar xdata i;
32 1 for(i = 0; i < 110; i++)
33 1 {
34 2 INC = 0;
35 2 delay(1);
36 2 INC = 1;
37 2 }
38 1 U_D = 0;
39 1 delay(3);
40 1 for(i = 0; i < pos; i++)
41 1 {
42 2 INC = 0;
43 2 delay(1);
44 2 INC = 1;
45 2 }
46 1 U_D = 1;
47 1 }
48
49 void CAT5113A(uchar pos)
50 {
51 1 CS1 = 0; //选中
52 1 delay(3);
53 1 CAT5113(pos);
54 1 delay(3);
55 1 CS1 = 1;
C51 COMPILER V7.00 CAT5113 07/18/2007 12:16:48 PAGE 2
56 1 }
57
58 void CAT5113B(uchar pos)
59 {
60 1 CS2 = 0; //选中
61 1 delay(3);
62 1 CAT5113(pos);
63 1 delay(3);
64 1 CS2 = 1;
65 1 }
66
67 //获得模拟电压
68 float GetPos(uchar x1, uchar x2)
69 {
70 1 uchar xdata r1 = x1;
71 1 float r2 = 0.0;
72 1 if(!(x1 > 0&&x1 < 100&&x2 > 0&&x2 <= 100))
73 1 {
74 2 return 0.0;
75 2 }
76 1 r2 = 1.0/(1.0/(100.0 - x1) + 1.0/(float)x2);
77 1 return (1.0/((r1 + r2)/r1)*5.0);
78 1 }
79
80 void CAT5113Change(char Pos)
81 {
82 1 float xdata v1 = 0.0,v2 = 0.0;
83 1 char xdata i = 0;
84 1
85 1 ReadEprom(30, &CAT_A, 1);
86 1 ReadEprom(31, &CAT_B, 1);
87 1 if(CAT_A > MaxA)CAT_A = MaxA;
88 1 if(CAT_A < MinA)CAT_A = MinA;
89 1 if(CAT_B > 100)CAT_B = 100;
90 1 if(CAT_B < 1)CAT_B = 1;
91 1 if(Pos >= 0)
92 1 {
93 2 for(i = 0; i < Pos; i++)
94 2 {
95 3 v1 = GetPos(CAT_A, CAT_B);
96 3 v2 = GetPos(CAT_A + 1,100);
97 3 if(v2 < v1)
98 3 {
99 4 if(CAT_A < 99)
100 4 CAT_A++;
101 4 CAT_B = 100;
102 4 }else
103 3 {
104 4 CAT_B--;
105 4 }
106 3 }
107 2 }else
108 1 {
109 2 for(i = Pos; i < 0; i++)
110 2 {
111 3 if(CAT_B >= 100)
112 3 {
113 4 if(CAT_A > 2)
114 4 {
115 5 v2 = GetPos(CAT_A,100);
116 5 CAT_A--;
117 5 v1 = GetPos(CAT_A,CAT_B);
C51 COMPILER V7.00 CAT5113 07/18/2007 12:16:48 PAGE 3
118 5 while(v1 < v2)
119 5 {
120 6 CAT_B--;
121 6 v1 = GetPos(CAT_A, CAT_B);
122 6 }
123 5 }
124 4 }else
125 3 {
126 4 CAT_B++;
127 4 }
128 3 }
129 2 }
130 1
131 1 CAT5113A(0);
132 1 CAT5113B(CAT_B);
133 1 CAT5113A(CAT_A);
134 1 WriteEprom(30, &CAT_A, 1);
135 1 WriteEprom(31, &CAT_B, 1);
136 1 }
137
138 void StopCAT5113()
139 {
140 1 CAT5113A(0);
141 1 CAT5113B(100);
142 1 CAT5113A(100);
143 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 901 ----
CONSTANT SIZE = 2 ----
XDATA SIZE = 2 11
PDATA SIZE = ---- ----
DATA SIZE = ---- 9
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 + -