📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 12/19/2006 14:33:21 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN E:\三相电能\LCD_AD~1\MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\三相电能\LCD_AD~1\MAIN.C DB SB OE
line level source
1 //============================================================
2 // FILE: main.c
3 // FUNCTION: ADC_SHOW_LCD
4 // DATA: 2006-07-20 By fenglover
5 // RESOURCE: http://www.unsp.com.cn
6 //============================================================
7 #include <SPCE061A.h>
*** WARNING C318 IN LINE 7 OF E:\三相电能\LCD_AD~1\MAIN.C: can't open file 'SPCE061A.h'
8 #include "JM12864M.h"
9 #define AD_END_FLAG *P_ADC_MUX_Ctrl&0x8000
10 #define AD_EXZCTITUDE 0.96379 //误差调整
11 void AD_Initial(void);
12 unsigned int AD_1(void);
13 unsigned long int AD_Go(void);
14 int main(void)
15 {
16 1 unsigned int i,AdcValueEnd;
17 1 unsigned char vstr[6]={0},vstrtemp;
18 1 float AdcValueFloat=0.0;
19 1 unsigned long int AdcValueInt;
20 1 IO_Initial();
21 1 LCD_Initial();
22 1 AD_Initial();
23 1 LCD_Print_xyString(0,0,"当前电压值:(V)");
24 1 while(1)
25 1 {
26 2 AdcValueInt=AD_Go();
27 2 AdcValueFloat=(float)AdcValueInt/0xffc0*3.3; //在这里可以进行调整以实现较小误差,理论上为0xffc0,
-3.3v。
28 2 AdcValueFloat/=AD_EXZCTITUDE;
29 2 AdcValueEnd=(int)(AdcValueFloat*10000);
30 2 vstr[5] = (AdcValueEnd % 10) + 0x30;
31 2 vstr[4] = (AdcValueEnd / 10) % 10 + 0x30;
32 2 vstr[3] = (AdcValueEnd / 100) % 10 + 0x30;
33 2 vstr[2] = (AdcValueEnd / 1000) % 10 + 0x30;
34 2 vstr[1] = '.';
35 2 vstr[0] = (AdcValueEnd / 10000) % 10 + 0x30;
36 2 LCD_Set_xy(0,1);
37 2 for(i=0;i<6;i++)
38 2 {
39 3 *P_Watchdog_Clear=0x0001;
*** ERROR C202 IN LINE 39 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_Watchdog_Clear': undefined identifier
40 3 vstrtemp=vstr[i];
41 3 LCD_W_Data(vstrtemp);
42 3 }
43 2 for(i=100;i>=0;i--)
44 2 ;
45 2 *P_Watchdog_Clear=0x0001;
*** ERROR C202 IN LINE 45 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_Watchdog_Clear': undefined identifier
46 2 }
47 1 }
48
49 //*=================================================================
50 unsigned int AD_1(void)
51 {
C51 COMPILER V8.02 MAIN 12/19/2006 14:33:21 PAGE 2
52 1 unsigned int uiData;
53 1 while(!AD_END_FLAG); //等待ADC转换结束
*** ERROR C202 IN LINE 53 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_ADC_MUX_Ctrl': undefined identifier
54 1 uiData=*P_ADC_LINEIN_Data;
*** ERROR C202 IN LINE 54 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_ADC_LINEIN_Data': undefined identifier
55 1 return(uiData&0xffc0);
56 1 }
57 //*===============================================================
58 unsigned long int AD_Go(void)
59 {
60 1 unsigned long int adc_value=0;
61 1 unsigned int i;
62 1
63 1 for(i=0;i<16;i++) //16次取平均值
64 1 {
65 2 adc_value += AD_1();
66 2 *P_Watchdog_Clear=0x0001;
*** ERROR C202 IN LINE 66 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_Watchdog_Clear': undefined identifier
67 2 }
68 1 adc_value>>=4;
69 1 return (adc_value);
70 1 }
71 //*===============================================================
72 void AD_Initial(void)
73 {
74 1 unsigned int Read_Start;
75 1 *P_ADC_MUX_Ctrl=C_ADC_CH1; //选择LINE_IN1通道,从IOA0输入
*** ERROR C202 IN LINE 75 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_ADC_MUX_Ctrl': undefined identifier
76 1 *P_ADC_Ctrl= C_ADCE; //AD使能打开
*** ERROR C202 IN LINE 76 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_ADC_Ctrl': undefined identifier
77 1 Read_Start=*P_ADC_LINEIN_Data; //AD开始转换
*** ERROR C202 IN LINE 77 OF E:\三相电能\LCD_AD~1\MAIN.C: 'P_ADC_LINEIN_Data': undefined identifier
78 1 }
79 //*=================================================================
80
C51 COMPILATION COMPLETE. 1 WARNING(S), 8 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -