📄 stc_adc.lst
字号:
C51 COMPILER V7.06 STC_ADC 05/14/2007 21:18:12 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE STC_ADC
OBJECT MODULE PLACED IN STC_ADC.OBJ
COMPILER INVOKED BY: D:\Programes\Keil\C51\BIN\C51.EXE STC_ADC.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /****************************************Copyright (c)**************************************************
2 ** 广州广微电子有限公司
3 ** Guangzhou Microwide Electronic Co.,Ltd.
4 ** http://www.micro-wide.com
5 **
6 **----------------------------------------File Info----------------------------------------------------
7 ** File name: STC_ADC.h
8 ** Last modified Date: 2007-05-06
9 ** Last Version: 1.0
10 ** Descriptions: STC系列51单片机ADC驱动程序
11 **
12 **
13 **------------------------------------------------------------------------------------------------------
14 ** Created by: stars_txx
15 ** Created date: 2007-05-06
16 ** Version: 1.0
17 ** Descriptions: The original version
18 **
19 **------------------------------------------------------------------------------------------------------
20 ** Modified by:
21 ** Modified date:
22 ** Version:
23 ** Descriptions:
24 **
25 ********************************************************************************************************/
26 #include "STC_ADC.h"
27
28 sfr P1M0 =0x91;
29 sfr P1M1 =0x92;
30 sfr ADC_CONTR =0xC5;
31 sfr ADC_DATA =0xC6;
32 sfr IE =0xA8;
33 sfr AUXR =0x8E;
34
35 //#define REG(ADDR) (*((volatile unsigned char*)ADDR))
36 unsigned char ADC_Result[8];
37 /*
38 *********************************************************************************************************
39 **函数原型 : void ADC_Pin_Config(unsigned char nCh)
40 **参数说明 : nCh -> 通道号,0~7
41 ** :------------------------------------------------------------------------------------------
42 **返回值 : 无
43 **说 明 : 作为ADC使用时,端口必须配置成开漏或高阻,函数选择配置成高阻
44 *********************************************************************************************************/
45 void ADC_Pin_Config(unsigned char nCh)
46 {
47 1 P1M0 |= 0x01<<nCh; //P1M0相应位为1
48 1 P1M1 &= ~(0x01<<nCh); //P1M1相应位为0
49 1 }
50 /*
51 *********************************************************************************************************
52 **函数原型 : void ADC_Start_Convt(unsigned char nCh, unsigned char nSpeed);
53 **参数说明 : nCh -> 通道号,0~7
54 ** : nSpeed -> 转换速率,STC_ADC_SPEED_210CLK~STC_ADC_SPEED_840CLK
55 ** :------------------------------------------------------------------------------------------
C51 COMPILER V7.06 STC_ADC 05/14/2007 21:18:12 PAGE 2
56 **返回值 : 无
57 **说 明 : A函数DC启动
58 *********************************************************************************************************/
59 void ADC_Start_Convt(unsigned char nCh, unsigned char nSpeed)
60 {
61 1 ADC_CONTR = 0x01<<0x07|nSpeed<<0x05|0x01<<0x03|nCh;
62 1 }
63 /*
64 *********************************************************************************************************
65 **函数原型 : void ADC_Stop(void)
66 **参数说明 :
67 ** :------------------------------------------------------------------------------------------
68 **返回值 : 无
69 **说 明 : ADC停止函数,关闭电源
70 *********************************************************************************************************/
71 /*void ADC_Stop(void)
72 {
73 ADC_CONTR &= ~(0x01<<0x07|0x01<<3);
74 }*/
75 /*
76 *********************************************************************************************************
77 **函数原型 : unsigned char GetADC_Reslut(unsigned char nCh);
78 **参数说明 : nCh -> 通道号,0~7
79 ** :------------------------------------------------------------------------------------------
80 **返回值 : 无
81 **说 明 : 获取ADC转换值函数
82 *********************************************************************************************************/
83 unsigned char GetADC_Reslut(unsigned char nCh)
84 {
85 1 return ADC_Result[nCh];
86 1 }
87 /*
88 *********************************************************************************************************
89 **函数原型 : void isr_ADC_GetVal(void)
90 **参数说明 :
91 ** :------------------------------------------------------------------------------------------
92 **返回值 : 无
93 **说 明 : 在中断服务程序中取出ADC转换值
94 *********************************************************************************************************/
95 void isr_ADC_GetVal(void)
96 {
97 1 ADC_CONTR &= ~(0x01<<7|0x01<<3|0x01<<4); //停止ADC转换,清除ADC_FLAG标志
98 1 ADC_Result[ADC_CONTR&0x07] = ADC_DATA; //取出ADC转换值到相应结果缓冲
99 1 }
100 /*
101 *********************************************************************************************************
102 **函数原型 : void Init_ADC_Interrupt(unsigned char bVal)
103 **参数说明 :
104 ** :------------------------------------------------------------------------------------------
105 **返回值 : 无
106 **说 明 : 在中断服务程序中取出ADC转换值
107 *********************************************************************************************************/
108 void Init_ADC_Interrupt(unsigned char bVal)
109 {
110 1 if(bVal != 0)
111 1 {
112 2 IE |= 0x01<<5;
113 2 AUXR |= 0x01<<4;
114 2 }
115 1 else
116 1 {
117 2 IE &= ~(0x01<<5);
C51 COMPILER V7.06 STC_ADC 05/14/2007 21:18:12 PAGE 3
118 2 AUXR &= ~(0x01<<4);
119 2 }
120 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 107 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 ----
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 + -