智能车制作

标题: 教你学会MC9S12XS128的AD转换(保证能学会) [打印本页]

作者: 秋天01号    时间: 2012-5-9 11:29
标题: 教你学会MC9S12XS128的AD转换(保证能学会)
//程序功能:LED显示AD转换结果
//硬件连接:PORTB接8个LED,67脚接电位器,接5V
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#define uchar unsigned char
#define uint unsigned int
//程序功能:初始化AD各寄存器
void ATD0_Init()
{
    ATD0DIEN=0X00;//禁止数字输入功能
    ATD0CTL1=0X40;//AD转换精度选择12位,采样前不放电
    ATD0CTL2=0X40;//启动A/D转换,快速清零,禁止中断
    ATD0CTL3=0X88;//转换结果右对齐,每次只转换一个通道
    ATD0CTL4=0X03;//采样时间4个周期,PRS=3
    ATD0CTL5=0X20;//对通道0单通道连续采样
}
//程序功能:主函数
void main()
{
    uchar AD_result;
    ATD0_Init();   //初始化AD寄存器
    DDRB=0XFF;  //初始化LED
    PORTB=0XFF;
    for(;;)
    {
        while(!ATD0STAT2L_CCF0)//等待转化完成
        {;}
        AD_result=ATD0DR0H;//转化精度为12为,结果为右对齐,所以12~15为空(0)

                                          //此时可以转动电位器,因为取的是高8位,所以只有数码管的低四位变化
                                          //高四位一直亮
        PORTB=AD_result;
    }   
}



作者: baobao    时间: 2012-5-10 22:37

作者: LXD201009140146    时间: 2012-7-3 16:20
好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好   贴!!!!!!!!!
作者: 秋天01号    时间: 2012-7-5 08:21
LXD201009140146 发表于 2012-7-3 16:20
好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好 ...

呵呵~~~~3Q~~~~~
作者: liuyu514    时间: 2012-9-2 09:37
看看
作者: 劳动改变生活    时间: 2012-10-12 20:15
谢谢
作者: 静静的等待    时间: 2012-10-15 10:11
优秀
作者: 736421469    时间: 2012-12-15 15:50
谢谢
作者: 微电酱油    时间: 2013-1-7 10:23
谢谢
作者: 蓝枫2012    时间: 2013-1-24 15:32
我这样写有错么???


void INIT_AD(void)


{                    
ATD0CTL2 = 0xc0;  //启动A/D转换,快速清零,禁止中断
delay();
ATD0CTL1=0x4f;  //选用12位模数转换
ATD0CTL3 = 0x08;   //每次只转换一个通道
ATD0CTL4 = 0x01;   //AD模块时钟频率为2MHz  8/2*(1+1)=2MHz?

}

/*************************************************************/
/*                        起动AD转换                         */
/*************************************************************/
unsigned char AD_capture(unsigned char s)
{
unsigned char AD_data;
switch(s)
{
  case 0:
    ATD0CTL5 = 0x00;    //转换AD00
    while(!ATD0STAT2_CCF0);
    AD_data = ATD0DR0;
    break;

  case 1:
    ATD0CTL5 = 0x01;    //转换AD01
    while(!ATD0STAT2_CCF0);
    AD_data = ATD0DR0;
    break;
  case 2:
    ATD0CTL5 = 0x02;    //转换AD02
    while(!ATD0STAT2_CCF0);
    AD_data = ATD0DR0;
作者: Orange_soda    时间: 2013-2-5 15:20

作者: 278193292    时间: 2013-4-13 12:01
67口 是接入到cpu的哪个口,叫什么?
作者: 秋天01号    时间: 2013-4-15 09:01
278193292 发表于 2013-4-13 12:01
67口 是接入到cpu的哪个口,叫什么?

67脚就是AD输入的引脚啊~~
作者: Idenktsie    时间: 2013-4-18 20:50
顶一个
作者: 278193292    时间: 2013-4-30 03:53
秋天01号 发表于 2013-4-15 09:01
67脚就是AD输入的引脚啊~~

咩~  67引脚不是地线么

作者: liuhaichen    时间: 2013-4-30 14:01
67和76 不都接地线了么
作者: 秋天01号    时间: 2013-5-7 10:22
278193292 发表于 2013-4-30 03:53
咩~  67引脚不是地线么

怎么可能呢?芯片是  MC9S12XS128  封装是112LQFP的, 数据手册67脚不是AN00吗?

作者: 秋天01号    时间: 2013-5-7 10:23
liuhaichen 发表于 2013-4-30 14:01
67和76 不都接地线了么

怎么可能呢?芯片是  MC9S12XS128  封装是112LQFP的, 数据手册67脚不是AN00吗?

作者: 春日迟迟    时间: 2013-8-8 09:52
谢谢、、、、





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2