📄 single.lst
字号:
C51 COMPILER V6.14 SINGLE 01/04/2006 09:52:49 PAGE 1
C51 COMPILER V6.14, COMPILATION OF MODULE SINGLE
OBJECT MODULE PLACED IN single.OBJ
COMPILER INVOKED BY: C:\Cygnal\IDEfiles\C51\BIN\C51.exe single.c DB OE
stmt level source
1 //////////单端输入,定时启动,由T2定时,选择AIN0.3为ADC0转化通道////////////////
2 //////single.c///////////////////////////////////
3 #include "lcd.h"//笔者所写的LCD显示头文件,具体见LCD章节
*** WARNING C258 IN LINE 29 OF LCD.H: 'num': mspace on parameter ignored
*** WARNING C258 IN LINE 29 OF LCD.H: 'line': mspace on parameter ignored
*** WARNING C258 IN LINE 30 OF LCD.H: 'num': mspace on parameter ignored
*** WARNING C258 IN LINE 30 OF LCD.H: 'str': mspace on parameter ignored
*** WARNING C258 IN LINE 31 OF LCD.H: 'inum': mspace on parameter ignored
*** WARNING C258 IN LINE 39 OF LCD.H: 'num': mspace on parameter ignored
*** WARNING C258 IN LINE 39 OF LCD.H: 'fbit': mspace on parameter ignored
*** WARNING C258 IN LINE 39 OF LCD.H: 'line': mspace on parameter ignored
*** WARNING C235 IN LINE 48 OF LCD.H: parameter 1: different types
*** WARNING C258 IN LINE 126 OF LCD.H: 'inum': mspace on parameter ignored
*** WARNING C258 IN LINE 207 OF LCD.H: 'num': mspace on parameter ignored
*** WARNING C258 IN LINE 207 OF LCD.H: 'fbit': mspace on parameter ignored
*** WARNING C258 IN LINE 207 OF LCD.H: 'line': mspace on parameter ignored
*** WARNING C258 IN LINE 212 OF LCD.H: 'num': mspace on parameter ignored
*** WARNING C258 IN LINE 212 OF LCD.H: 'line': mspace on parameter ignored
*** WARNING C258 IN LINE 216 OF LCD.H: 'inum': mspace on parameter ignored
*** WARNING C258 IN LINE 216 OF LCD.H: 'str': mspace on parameter ignored
*** WARNING C258 IN LINE 216 OF LCD.H: 'page': mspace on parameter ignored
*** WARNING C236 IN LINE 216 OF LCD.H: '_showintmes': different length of parameter lists
4 /*
5 若读者没有条件使用"lcd.h"的各显示和键盘函数,则可在lcd.h文件中如下定义:
6
7 #include "c8051f040.h"
8 void dispini();
9 void showf();
10
11
12 //则该调试文件能编译通过,用户也可调试,只是要通过设断点来观察数据
13 */
14 #define ADC0START temppage=SFRPAGE;SFRPAGE=0x00;AD0BUSY=1;SFRPAGE=temppage
15 #define REAL_RATE 488L
16 #define ADJRATEDIF 237L
17 #define ADJRATESE 118L
18
19 /*
20 REAL_RATE为物理量转化系数,由具体对象而定
21 ADJRATEDIF为差动模式下,增益为0.5时ADC0转化值与真实电压的转换系数
22 ADJRATESE为单端输入模式下,增益为0.5时ADC0转化值与真实电压的转换系数
23 */
24
25 sfr16 RCAP2=0xca;
26 sfr16 RCAP3=0xca;
27 sfr16 RCAP4=0xca;
28 sfr16 TMR4=0xcc;
29 sfr16 TMR3=0xcc;
30 sfr16 TMR2=0xcc;
31 sfr16 PCA0CP0=0xfb;
32 sfr16 PCA0CP1=0xfd;
33 sfr16 PCA0CP2=0xe9;
34 sfr16 PCA0CP3=0xeb;
35 sfr16 PCA0CP4=0xed;
36 sfr16 PCA0CP5=0xe1;
C51 COMPILER V6.14 SINGLE 01/04/2006 09:52:49 PAGE 2
37 sfr16 ADC0VAL=0xbe;//将ADC0H-ADC0L通过sfr16实现
38 sfr16 ADC0GT=0xc4;
39 sfr16 ADC0LT=0xc6;
40 sfr16 DPTR=0x82;
41 uchar temppage;
42 bit isnewdata;
43 int kk;
44 long target_val;//工程量转化值
45 long realvol;//真实测量电压值
46 float temp;
47
48 uint current;
49 uint voltage;
50 uint force; //寻址变量
51 uint cooldata;
52 uint highdata;
53 uint lowdata;
54 uchar i;
55 uchar j;
56 uchar n;//设置焊接段数
57 uint PerCur;
58 uint PerVol;
59 uint PerFor;
60 xdata uint PerCur[192];
*** ERROR C231 IN LINE 60 OF SINGLE.C: 'PerCur': redefinition
61 xdata uint PerVol[192];
*** ERROR C231 IN LINE 61 OF SINGLE.C: 'PerVol': redefinition
62 xdata uint PerFor[192];
*** ERROR C231 IN LINE 62 OF SINGLE.C: 'PerFor': redefinition
63 void adc0_mux(uchar type,uchar source);
64 void adc0_source(uchar source);
65 void p3anolog_ini(uchar port);
66 void HVDA_ini(uchar gaind);
67 void adc0_ini();
68 void config();
69 void t2_ini();
70 void t2_baud(uint t2reload);
71 void t2_ini(){
72 1 SFRPAGE = 0x00;
73 1 TMR2CF = 0x08; // T2时钟为系统时钟,计数方向为增值计数
74 1 TMR2CN = 0x04; // T2为16bit定时器模式,并启动定时器运行
75 1 }
76 void t2_baud(uint t2reload){//每隔t2reload个T2时钟,产生一次定时溢出
77 1 SFRPAGE = 0x00;
78 1 RCAP2=~t2reload+1;//相当于65536-t2reload
79 1 TMR2=RCAP2;
80 1 }
81 void adc0_mux(uchar type,uchar source){//type 配置测量方式为差动还是单端输入
82 1 //source 为ADC0通道选择(共有9个通道)
83 1 SFRPAGE=0x00;
84 1 AMX0CF=type;
85 1 AMX0SL=source;
86 1 }
87 void adc0_source(uchar source){//ADC0通道选择,为adc0_mux()的简化函数
88 1 SFRPAGE=0x00;
89 1 AMX0SL=source;
90 1 }
91 void p3anolog_ini(uchar port){//配置p3口模拟输入管脚
92 1 SFRPAGE=0x00;
93 1 AMX0PRT=port;
94 1 SFRPAGE=0x0f;
95 1 P3MDIN&=~port;//将相应管脚配置成模拟输入口
C51 COMPILER V6.14 SINGLE 01/04/2006 09:52:49 PAGE 3
96 1 }
97 void HVDA_ini(uchar gaind){
98 1 /*高压差动放大器配置,调的只是第二级的增益,整体增益还需再乘以0.05;*/
99 1 //HVDA禁止时,HCAP+上检测到的是HVAIN+的电压
100 1 SFRPAGE=0x00;
101 1 HVA0CN=gaind;
102 1 }
103 void adc0_ini(){
104 1 SFRPAGE=0x00;
105 1 ADC0CF=0x0f;//ADC0时钟为系统时钟2分频,PGA增益为0.5
106 1 ADC0CN=0x8c;//AD0TM=0,ADC0为连续跟踪模式,由T2溢出率启动ADC0
107 1 //AD0LJST=0,数据存储格式右对齐,即ADC0H存放12bit高四位
108 1 REF0CN&=0x0f;//AD0VRS=0,ADC0参考电压为VREFA
109 1 REF0CN|=0x07;//TEMPE=1,内部温度传感器工作
110 1 //BIASE=1,偏移产生器工作
111 1
112 1 /*REFBE=1,内部参考电平工作,电路部分须将VREF参考输出(C8051F40的第12管脚)与 VREF0(C8051F040的16管脚相连,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -