📄 350_adc0.lst
字号:
C51 COMPILER V7.50 350_ADC0 12/22/2006 14:50:25 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 350_ADC0
OBJECT MODULE PLACED IN 350_adc0.OBJ
COMPILER INVOKED BY: h:\Keil\C51\BIN\C51.EXE 350_adc0.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND
line level source
1 //-----------------------------------------------------------------------------
2 // 包含文件
3 //-----------------------------------------------------------------------------
4 //
5 #include "C8051F350.H"
6 #include "c8051f350_command.h"
7 #include <intrins.h>
8
9 //-----------------------------------------------------------------------------
10 // 外部全局变量声明区
11 //-----------------------------------------------------------------------------
12 //
13 extern unsigned char GCV_received_command_buf;
14 //-----------------------------------------------------------------------------
15 // 调用外部函数声明区
16 //-----------------------------------------------------------------------------
17 //
18 void Save_calibrate_parameter(void);
19 void Load_calibrate_parameter(void);
20
21
22 void _350_ADC0_startup(void)
23 {
24 1 unsigned char TCV_temp_command;
25 1
26 1 _nop_();
27 1 _nop_();
28 1 _nop_();
29 1 _nop_();
30 1 _nop_();
31 1 _nop_();
32 1 _nop_();
33 1
34 1 //满足命令字条件,则执行ADC0启动命令
35 1 if( GCV_received_command_buf < 0xa0 )
36 1 {
37 2 //使ADC0进入空闲状态
38 2 COM_ADC0_idle;
39 2 //判断进入哪一路校准
40 2 TCV_temp_command = GCV_received_command_buf;
41 2 TCV_temp_command &= 0x0f;
42 2 if ( TCV_temp_command == 0x01 )
43 2 {
44 3 COM_ADC0_channels_1;
45 3 }
46 2 else if( TCV_temp_command == 0x02 )
47 2 {
48 3 COM_ADC0_channels_2;
49 3 }
50 2 else if( TCV_temp_command == 0x03 )
51 2 {
52 3 COM_ADC0_channels_3;
53 3 }
54 2 else if( TCV_temp_command == 0x04 )
55 2 {
C51 COMPILER V7.50 350_ADC0 12/22/2006 14:50:25 PAGE 2
56 3 COM_ADC0_channels_4;
57 3 }
58 2
59 2 TCV_temp_command = GCV_received_command_buf;
60 2 TCV_temp_command &= 0xf0;
61 2 //判断命令操作
62 2 if ( TCV_temp_command == 0x10 )
63 2 {
64 3 //执行系统自动偏移校正
65 3 COM_ADC0_system_offset_calibrate;
66 3 }
67 2 else if( TCV_temp_command == 0x20 )
68 2 {
69 3 //执行系统自动增益校正
70 3 COM_ADC0_system_gain_calibrate;
71 3 }
72 2
73 2 else if( GCV_received_command_buf == 0x35 )
74 2 {
75 3 //执行系统偏移手动加
76 3 ADC0COM++;
77 3 }
78 2 else if( GCV_received_command_buf == 0x45 )
79 2 {
80 3 //执行系统偏移手动减
81 3 ADC0COM--;
82 3 }
83 2 else if( GCV_received_command_buf == 0x55 )
84 2 {
85 3 //执行系统增益手动加
86 3 ADC0CGH++;
87 3 }
88 2 else if( GCV_received_command_buf == 0x66 )
89 2 {
90 3 //执行系统增益手动减
91 3 ADC0CGH--;
92 3 }
93 2 else if( GCV_received_command_buf == 0x77 )
94 2 {
95 3 //执行保存校准参数命令
96 3 Save_calibrate_parameter();
97 3 }
98 2 else if( GCV_received_command_buf == 0x88 )
99 2 {
100 3 //执行读取校准参数命令
101 3 Load_calibrate_parameter();
102 3 }
103 2 else if( GCV_received_command_buf == 0x99 )
104 2 {
105 3 //执行全内部校准
106 3 COM_ADC0_all_inside_calibrate;
107 3 }
108 2
109 2 //禁止AD0中断
110 2 EIE1 = 0x00;
111 2 _nop_();
112 2 _nop_();
113 2 _nop_();
114 2 _nop_();
115 2 _nop_();
116 2 _nop_();
117 2
C51 COMPILER V7.50 350_ADC0 12/22/2006 14:50:25 PAGE 3
118 2 //等待校准完毕
119 2 while( AD0CBSY )
120 2 {
121 3 _nop_();
122 3 _nop_();
123 3 _nop_();
124 3 }
125 2 _nop_();
126 2 _nop_();
127 2 _nop_();
128 2 _nop_();
129 2 _nop_();
130 2 _nop_();
131 2
132 2 //清除中断标志
133 2 AD0INT = 0;
134 2 //清除校准中断标志
135 2 AD0CALC = 0;
136 2 //允许AD0中断
137 2 EIE1 = 0x08;
138 2 //清空命令字
139 2 GCV_received_command_buf = 0xff;
140 2 //强制进入ADC0中断,再次启动ADC0
141 2 AD0INT = 1;
142 2 _nop_();
143 2 _nop_();
144 2 _nop_();
145 2 _nop_();
146 2 _nop_();
147 2 _nop_();
148 2 _nop_();
149 2
150 2 }
151 1
152 1 _nop_();
153 1 _nop_();
154 1 _nop_();
155 1 _nop_();
156 1 _nop_();
157 1 _nop_();
158 1 _nop_();
159 1
160 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 195 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -