中级会员
- 积分
- 413
- 威望
- 257
- 贡献
- 102
- 兑换币
- 0
- 注册时间
- 2009-2-22
- 在线时间
- 27 小时
|
#include <hidef.h> /* common defines and macros */
#include <MC9S12XS128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void wait() {
int i,j;
for(i=0;i<2000;i++)
for(j=0;j<1335;j++) ;
}
void ADCInit(void)
{ ATD0CTL1=0x00; //7:1-外部触发,65:00-8位精度,4:放电,3210:ch
ATD0CTL2=0x42; //禁止外部触发, 中断允许
ATD0CTL3=0xa0; //右对齐无符号,每次转换4个序列, No FIFO, Freeze模式下继续转
ATD0CTL4=0x01; //765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]
ATD0CTL5=0x20; //6:0特殊通道禁止,5:1连续转换 ,4:0单 通道轮流采样
ATD0DIEN=0x00; //禁止数字输入
}
word AD_wData = 0;
void main(void) {
DisableInterrupts;
ADCInit();
DDRB = 0xFF; //数据方向寄存器为输出
PORTB = 0x00;
EnableInterrupts;
for(;;) { }
}
void interrupt 22 Int_AD0(void)
{
DisableInterrupts;
AD_wData = ATD0DR0; //Read out the Result Register
PORTB = (byte)AD_wData;
wait();
EnableInterrupts;
}
这段程序调试通过了,把一模拟量输入到AN00,把电源的负极接到GND,给已下好程序的单片机通电。这样能采集吗 ???是否接线有问题啊 我采集时,PORTB口灯一直亮。没什么现象 |
|