adc0832.lst
来自「STC51系列的源码」· LST 代码 · 共 120 行
LST
120 行
C51 COMPILER V8.02 ADC0832 09/25/2008 20:18:48 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ADC0832
OBJECT MODULE PLACED IN .\ADC0832.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\ADC0832\ADC0832.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\ADC0832.lst) O
-BJECT(.\ADC0832.obj)
line level source
1 /********************************************************************************/
2 /* filename : ADC0832.c */
3 /* created : xillinx */
4 /* descript : 处理ADC0832相关的函数 */
5 /********************************************************************************/
6 #include "../CPU/CPU.h"
7 #include "../ADC0832/ADC0832.h"
8
9
10 /********************************************************************************/
11 /* function : ADC_set_clk() */
12 /* recension: xillinx */
13 /* descript : 设置或者清除ADC的CLK引脚 */
14 /********************************************************************************/
15 void ADC_set_clk(unsigned char clk)
16 { if(clk)
17 1 { c51_U19_latch|=0x08;
18 2 }
19 1 else
20 1 { c51_U19_latch&=0xF7;
21 2 }
22 1 c51_hc138_cs_io2[0x0]=c51_U19_latch;
23 1 }
24
25 /********************************************************************************/
26 /* function : ADC_set_sel() */
27 /* recension: xillinx */
28 /* descript : 设置或者清除ADC的CS引脚 */
29 /********************************************************************************/
30 void ADC_set_sel(unsigned char sel)
31 { if(sel)
32 1 { c51_U19_latch|=0x04;
33 2 }
34 1 else
35 1 { c51_U19_latch&=0xFB;
36 2 }
37 1 c51_hc138_cs_io2[0x0]=c51_U19_latch;
38 1 }
39
40 /********************************************************************************/
41 /* function : ADC_set_dat() */
42 /* recension: xillinx */
43 /* descript : 设置或者清除ADC的DATA引脚 */
44 /********************************************************************************/
45 void ADC_set_dat(unsigned char dat)
46 { ADC_DA=dat;
47 1 }
48
49 /********************************************************************************/
50 /* function : ADC_set_dat() */
51 /* recension: xillinx */
52 /* descript : 设置或者清除ADC的DATA引脚 */
53 /********************************************************************************/
54 unsigned char ADC_get_dat(void)
C51 COMPILER V8.02 ADC0832 09/25/2008 20:18:48 PAGE 2
55 { return ADC_DA;
56 1 }
57
58 /********************************************************************************/
59 /* function : ADC_delay() */
60 /* recension: xillinx */
61 /* descript : 简单延时处理 */
62 /********************************************************************************/
63 void ADC_delay(unsigned char time)
64 { unsigned char i;
65 1 for(i=0;i<time;i++)
66 1 { ;
67 2 }
68 1 }
69
70 /********************************************************************************/
71 /* function : ADC_read_1_channel() */
72 /* recension: xillinx */
73 /* descript : 读取第一通道的数据 */
74 /********************************************************************************/
75 unsigned char ADC_read_channel(unsigned char channel)
76 { unsigned char mdata=0x0;
77 1 unsigned char i;
78 1 ADC_set_sel(0x1); //* CS=1,CK=0,禁止芯片工作,设置初始工作态;
79 1 ADC_delay(0x2);
80 1 ADC_set_clk(0x0);
81 1 ADC_delay(0x2);
82 1
83 1 ADC_set_sel(0x0); //* 启动工作
84 1
85 1 ADC_set_dat(0x1); //* 第1个时钟,上升沿采样 START位, 此时DATA=1
86 1 ADC_delay(0x2);
87 1 ADC_set_clk(0x1);
88 1 ADC_delay(0x2);
89 1 ADC_set_clk(0x0);
90 1
91 1 ADC_set_dat(0x1); //* 第2个时钟,上升沿采样 通道/差分 选择(本设计选择通道,所以为1)
92 1 ADC_delay(0x2);
93 1 ADC_set_clk(0x1);
94 1 ADC_delay(0x2);
95 1 ADC_set_clk(0x0);
96 1
97 1 if( channel==0x0)
98 1 { ADC_set_dat(0x0); //* 第3个时钟,上升沿采样 通道编号 0 通道
99 2 }
100 1 else
101 1 { ADC_set_dat(0x1); //* 通道编号 1 通道
102 2 }
103 1 ADC_delay(0x2);
104 1 ADC_set_clk(0x1);
105 1 ADC_delay(0x2);
106 1 ADC_set_clk(0x0);
107 1
108 1 ADC_set_dat(0x1); //* 第4个时钟之前,需要把ADC_DA设置成为1,作为输入引脚用了,这个时钟周期是空
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?