⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.lst

📁 这个是汽车制动台控制程序的C语言版本. 用于实际产品中.单片机用的是PIC16F877A.
💻 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 + -