📄 adc.lst
字号:
1: #include <pic.h>
2: #include "total.h"
3:
4: /*********************************************************************************************
5: * 函数名称: unsigned short adc_read(unsigned char channel)
6: * 功能: 对某一通道进行AD转换
7: * 入口参数: channel 转换的通道号
8: * 出口参数: result 1次AD转换的结果
9: * 全局变量: 无
10: * 调用模块: adc_delay
11: * 设计者: 饶阳胜
12: * 日期: 05-3-1
13: *********************************************************************************************/
14: unsigned short Adc_Read(unsigned char channel)
15: {
16: unsigned char i;
17: unsigned short ad_result;
18:
19: ADCON0 = (channel << 3) + 0x81; //使能AD,32倍外部转换时钟
20: for(i = 0; i < 7; i++){ //延时采样
21: asm("nop");
22: asm("nop");
23: }
24: ADIF = 0;
25: ADGO = 1; //开始转换
26: while(ADIF == 0)
27: continue; //等待转换完成
28: ad_result = (ADRESH << 8) + ADRESL; //返回转换结果
29: return ad_result;
30: }
31:
32:
33: /**********************************************************************************************
34: * 函数名称: unsigned short ad_average(unsigned char channel)
35: * 功能: 求AD转换平均值
36: * 入口参数: channel 通道号
37: * 出口参数: result 转换后的平均值
38: * 全局变量: 无
39: * 调用模块: adc_read
40: * 设计者: 饶阳胜
41: * 日期: 05/3/1
42: **********************************************************************************************/
43: unsigned short Adc_Adverage(unsigned char channel)
44: {
45: long summation = 0; //和变量
46: unsigned short i; //次数变量
47:
48: for(i = 0; i < 256; i++){
49: summation += Adc_Read(channel); //调用AD转换函数
50: }
51: return (short)(summation >> 8);
52: }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -