📄 call111.lst
字号:
C51 COMPILER V8.02 CALL111 08/10/2007 12:35:43 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CALL111
OBJECT MODULE PLACED IN CALL111.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CALL111.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************************************/
2 /* 这是调用MAX111汇编程序(MAX111B.ASM)的C51程序。 */
3 /* 文件名CALL111.C。 */
4 /* 功能:本程序主要是读出MAX111芯片输入通道CH0,CH1的模数 */
5 /* 转换值,转换值依次放在数组mid1[2]中,转换值的标度变换值放在*/
6 /* 浮点数组volt[2]中。MAX111芯片的2个通道可编程为单极性/双极 */
7 /* 性和差动/单端工作,这里采用单端\单极性输入。MAX111有内部时 */
8 /* 钟和外部时钟两种工作模式,这里采用内部时钟模式。控制字中 */
9 /* CONV4、CONV3、CONV2、CONV1取0110B,表示转换分辨率为14位; */
10 /* 控制字中DV2,DV4取01B,表示对计数脉冲发生器发出的脉冲作二 */
11 /* 分频。因采用+1.5V的参考电压,故两个通道的电压输入范围都是 */
12 /* 0~1.5V。 */
13 /****************************************************************/
14 #include <reg52.h>
15 #define uchar unsigned char
16 #define uint unsigned int
17
18 void delay1(uint x);
19 extern uint chai; //把全局变量chai声明为外部变量
20 extern uint a_func(uint); //把a_func 声明为外部函数
21
22 uint idata mid1[2],aaa;
23 float idata volt[2];
24 uchar idata i;
25
26 void delay1(uint x) //延时程序
27 {
28 1 uchar tw;
29 1 while (x-->0){
30 2 for (tw=0;tw<125;tw++){;}
31 2 }
32 1 }
33
34 void main() //主程序
35 {
36 1 SP=0xcf;
37 1 delay1(1000);
38 1 EA=0;
39 1 // chai=a_func(0x8d0c); //零偏校准
40 1 // chai=a_func(0x8d08); //增益校准
41 1 // chai=a_func(0x8d04); //通道调零校准
42 1 // delay1(1000);
43 1 chai=a_func(0x8d00); // 将第一次读芯片输入通道CH0的A/D转换值舍去
44 1 chai=a_func(0x8d10); // 读出MAX111芯片输入通道CH0的A/D转换值
45 1 mid1[0]=chai; // 把它放入数组mid1中。
46 1 chai=a_func(0x8d00); // 读出MAX111芯片输入通道CH1的A/D转换值
47 1 mid1[1]=chai; // 把它放入数组mid1中。
48 1 aaa=mid1[0]&0x4000;
49 1 if (aaa==0x4000) goto overflow;//若CH0的A/D转换值越限,转越限处理。
50 1 aaa=mid1[0]&0x8000;
51 1 if (aaa==0x8000) goto pol; //若CH0的A/D转换值是负数,转负数处理。
52 1 aaa=mid1[1]&0x4000;
53 1 if (aaa==0x4000) goto overflow;//若CH1的A/D转换值越限,转越限处理。
54 1 aaa=mid1[1]&0x8000;
55 1 if (aaa==0x8000) goto pol; //若CH1的A/D转换值是负数,转负数处理。
C51 COMPILER V8.02 CALL111 08/10/2007 12:35:43 PAGE 2
56 1 for (i=0;i<2;i++){
57 2 volt[i]=(mid1[i]/16384.0)*1.5; // 标度变换。
58 2 }
59 1 while(1);
60 1 overflow:; //越限处理。
61 1 pol: ; //负数处理。
62 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 15 ----
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 + -