智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1493|回复: 0
打印 上一主题 下一主题

[讨论] 求求各位大哥了,我的AD程序,串口怎么没值啊,一个人搞了好几天

[复制链接]

3

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
威望
218
贡献
84
兑换币
125
注册时间
2013-3-8
在线时间
57 小时
毕业学校
铜陵学院
跳转到指定楼层
1#
发表于 2013-6-11 10:50:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>                      /* common defines and macros */
#include "derivative.h"                 /* derivative-specific definitions */
int ATD0_data;
int ATD1_data;

#define  BUS_CLOCK 32000000
#define  BAUD      9600

/*************************************************************/
/*                      初始化锁相环                         */
/*************************************************************/
void PLL_32M(void)                     
{
    CLKSEL &= 0x7f;                    
    PLLCTL &= 0x8F;                     
    CRGINT &= 0xDF;
   
    SYNR = 0x43;                             
    REFDV = 0x81;                       
   
    PLLCTL = PLLCTL | 0x70;            
    asm NOP;
    asm NOP;
    while(!(CRGFLG&0x08));              
    CLKSEL |= 0x80;                     
}
/*************************************************************/
/*                         AD初始化                          */
/*************************************************************/
void ATD_inits(void)
{   
    ATD0CTL1=0x00;                      //8位精度         
    ATD0CTL2=0X40;                      //快速清除
    ATD0CTL3=0X90;                      //右对齐 序列2
    ATD0CTL4=0X07;
   
    ATD0DIEN=0X00;                     //ADclock = 32/(2*(1+1)) = 8M ADclock最大8.3M
}
/*************************************************************/
/*                        AD采集函数                         */
/*************************************************************/
void ATD_gather(void)
{
    ATD0CTL5=0X30;                      //单次转换
    while(!(ATD0STAT0_SCF==1));   
    ATD0_data=ATD0DR0;
     //ATD1_data=ATD0DR1;
}
/************************************************************/
/*               初始化串口                                 */
/************************************************************/
void SCI_inits(void)
{   
     SCI0BD=BUS_CLOCK/ 16/BAUD;
     SCI0CR1=0x00;
     SCI0CR2=0x08;
     
}

/************************************************************/
/*               串口发送函数                                 */
/************************************************************/

void SCI_send(unsigned char data)

{
         while(!SCI0SR1_TDRE);
         SCI0DRL=data;
         
}
  
/*************************************************************/
/*                         延时函数                          */
/*************************************************************/
void delay(void)                        //演示函数未测试具体时间仅用来测试系统是否运行
{
    unsigned int i,j;
    for(i=0;i<3;i++)
      for(j=0;j<50000;j++);
}

void main(void)
{
  /* put your own code here */
  DisableInterrupts;                    
  PLL_32M();                            //PLL倍频
  ATD_inits();
  SCI_inits();

EnableInterrupts;

  for(;;)
  {
    ATD_gather();
    SCI_send(ATD0_data);
           
  } /* loop forever */
  /* please make sure that you never leave main */
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-18 17:18 , Processed in 0.047126 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表