📄 max1293_1.lst
字号:
C51 COMPILER V7.01 MAX1293_1 08/21/2006 21:24:24 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE MAX1293_1
OBJECT MODULE PLACED IN MAX1293_1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAX1293_1.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*******************************************************
2
3 电压采集(使用MAX1293)液晶(1602)显示
4 MAX1293驱动程序
5
6
7 ********************************************************/
8 /********************************************************
9
10 MAX1293驱动程序
11
12 ********************************************************/
13 /********************************************************
14 MAX1293信息:
15 1.使用内部基准(2.5V)
16 2.使用单极输入
17 3.内部时钟
18 MAX1293接口信息:
19 MAX1293_HBEN---->
20 MAX1293_INT----->
21 MAX1293_RD------>
22 MAX1293_WR------>
23 MAX1293_CS------>
24 MAX1293_IO------>
25
26 *********************************************************/
27 #include<AT89X51.H>
28 unsigned char code ram1[]="MAX1293 Convert ";
29 unsigned char code ram2[]=" ";
30 #define _1602DATAS_
31 #include <1602Drive.H>
32
33
34 //MAX1293接口信息:
35 sbit MAX1293_HBEN =P1^4;
36 sbit MAX1293_INT =P3^2;
37 sbit MAX1293_RD =P1^2;
38 sbit MAX1293_WR =P1^1;
39 sbit MAX1293_CS =P1^0;
40 #define MAX1293_IO P0
41 //函数声明表
42 void MAX1293_Initial(void);
43 void MAX1293_Delay(unsigned char d);
44 void MAX1293_Write(unsigned char a);
45 void MAX1293_Read(void);
46 void System_Initial(void);
47 void MAX1293_Disp(void);
48
49 bit bdata int_flag,read_flag,time_flag;
50 unsigned char data lowdata,highdata;
51 /*********************************************************************
52 函数名称: main
53 函数功能: 主函数
54 输入参数: 无
55 输出参数: 无
C51 COMPILER V7.01 MAX1293_1 08/21/2006 21:24:24 PAGE 2
56 返回值: 无
57 *********************************************************************/
58 void main(void)
59 {
60 1 System_Initial();
61 1 LCDInitial();
62 1 WriteDatas();
63 1 ClrLCD();
64 1 MAX1293_Initial(); //动作:上电延时,并设置MAX1293控制字为01000000 ??
65 1 MAX1293_Write(0x99); //使用内部时钟,单端单极输入,通道为CH1
66 1 while(1)
67 1 {
68 2 if(time_flag==1) //50ms启动一次转换
69 2 {
70 3 time_flag=0;
71 3
72 3 MAX1293_Write(0x99);
73 3 }
74 2 MAX1293_Read();
75 2 MAX1293_Disp();
76 2
77 2 }
78 1 }
79 /*********************************************************************
80 函数名称: MAX1293_Initial
81 函数功能: 初始化MAX1293
82 输入参数: 无
83 输出参数: 无
84 返回值: 无
85 *********************************************************************/
86 void MAX1293_Initial(void)
87 {
88 1 MAX1293_Delay(20); //MAX1293上电复位,至少500us
89 1 MAX1293_Write(0x40); //MAX1293处于待机模式,时钟关闭0100 0000
90 1 }
91 /*********************************************************************
92 函数名称: MAX1293_Delay
93 函数功能: MAX1293延时,延时时间为 2*25*d us
94 输入参数: d(延时调节变量)
95 输出参数: 无
96 返回值: 无
97 *********************************************************************/
98 void MAX1293_Delay(unsigned char d)
99 {
100 1 unsigned char data t;
101 1 for(;d>0;d--)
102 1 {
103 2 for(t=25;t>0;t--)
104 2 {
105 3 ;
106 3 }
107 2 }
108 1 }
109 /*********************************************************************
110 函数名称: MAX1293_Write
111 函数功能: 写控制字给MAX1293
112 输入参数: a(控制代码)
113 输出参数: 无
114 返回值: 无
115 *********************************************************************/
116 void MAX1293_Write(unsigned char a)
117 {
C51 COMPILER V7.01 MAX1293_1 08/21/2006 21:24:24 PAGE 3
118 1 MAX1293_CS=0;
119 1 MAX1293_Delay(1); //延时50us
120 1 MAX1293_WR=0;
121 1 MAX1293_Delay(1); //延时50us
122 1 MAX1293_IO=a;
123 1 MAX1293_Delay(1); //延时50us
124 1 MAX1293_WR=1; //当4个内部时钟下降沿后,开始转换
125 1 MAX1293_CS=1;
126 1
127 1 }
128 /*********************************************************************
129 函数名称: MAX1293_Read
130 函数功能: 读出MAX1293的转换结果
131 输入参数: 无
132 输出参数: 无
133 返回值: 无
134 *********************************************************************/
135 void MAX1293_Read(void)
136 {
137 1 if(int_flag==1)
138 1 {
139 2 int_flag=0;
140 2 MAX1293_HBEN=0;
141 2 MAX1293_CS=0;
142 2 MAX1293_Delay(1); //延时50us
143 2 MAX1293_RD=0;
144 2 MAX1293_Delay(1); //延时50us
145 2 lowdata=MAX1293_IO;
146 2 MAX1293_HBEN=1;
147 2 MAX1293_Delay(1); //延时50us
148 2 highdata=MAX1293_IO;
149 2 MAX1293_Delay(1); //延时50us
150 2 MAX1293_RD=1;
151 2 MAX1293_CS=1;
152 2 read_flag=1;
153 2
154 2 lowdata=0x00;
155 2 highdata=0xf0;
156 2 }
157 1 }
158 /*********************************************************************
159 函数名称: MAX1293_Interrupt
160 函数功能: 检测转换状况,并给予标志
161 输入参数: 无
162 输出参数: 无
163 返回值: 无
164 *********************************************************************/
165 void MAX1293_Interrupt(void) interrupt 0 using 1
166 {
167 1 int_flag=1;
168 1 }
169 void MAX1293_timer(void) interrupt 1 using 2
170 {
171 1 TH0=(65536-50000)/256;
172 1 TL0=(65536-50000)%256;
173 1 time_flag=1;
174 1 }
175 /*********************************************************************
176 函数名称: System_Initial
177 函数功能: 系统初始化
178 输入参数: 无
179 输出参数: 无
C51 COMPILER V7.01 MAX1293_1 08/21/2006 21:24:24 PAGE 4
180 返回值: 无
181 *********************************************************************/
182 void System_Initial(void)
183 {
184 1 TH0=(65536-50000)/256;
185 1 TL0=(65536-50000)%256;
186 1 TMOD=0x01;
187 1 ET0=1;
188 1 EX0=1;
189 1 EA=1;
190 1 TR0=1;
191 1 int_flag=0;
192 1 read_flag=0;
193 1 time_flag=0;
194 1
195 1 }
196 /*********************************************************************
197 函数名称: MAX1293_Disp
198 函数功能: 将转换结果显示到1602中
199 输入参数: 无
200 输出参数: 无
201 返回值: 无
202 *********************************************************************/
203 unsigned char code address1[]={0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85};
204 unsigned char code address2[]={0x83,0x82,0x81,0x80};
205 void MAX1293_Disp(void)
206 {
207 1 unsigned char i,addr,dat;
208 1 if(read_flag==1)
209 1 {
210 2 read_flag=0;
211 2 for(i=0;i<8;i++)
212 2 {
213 3 dat=((lowdata>>i)&0x01)+0x30;
214 3 addr=address1[i];
215 3 Writeonedata(addr,dat);
216 3
217 3 }
218 2 for(i=0;i<4;i++)
219 2 {
220 3 dat=((highdata>>i)&0x01)+0x30;
221 3 addr=address2[i];
222 3 Writeonedata(addr,dat);
223 3 }
224 2 }
225 1 }
226
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 410 ----
CONSTANT SIZE = 46 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 1
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -