main.c

来自「基于飞斯卡尔MC9S08QG8的基本程序开发代码」· C语言 代码 · 共 84 行

C
84
字号
/*              ADC模块例程

             HCS908_QG8 单片机开发板 

实验介绍:
    本程序是ADC模块的例程,所用资源为单片机内部ADC转换模块,
所接器件为电位器.确定你开发板上拨码开关JP2(图片上的6)的1位
处于on(这位是和电位器的连接),而其他位处于远离on!

实验现象:
    在仿真界面的DATA1窗口中观察mm的值是否随电位器输出值变化而变化


author:QGL

any question mail me:
libing.qu@free-tech.com.cn 
*/

/*****************头文件*****************************************/
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */

 /*********************变量和函数定义****************************/
unsigned int DATA;

void ADC_INIT(void);
void MCU_INIT(void);
 
 
 /*****************主函数*****************************************/
 void main(void) {

    EnableInterrupts; /* enable interrupts */
    /* include your code here */
  
    MCU_INIT();
    ADC_INIT(); 

    for(;;) {
   
        //__RESET_WATCHDOG(); /* feeds the dog */
   
        ADCSC1=0x20;  //选择通道号,使能adc转换
       
        while(!ADCSC1_COCO) 
        DATA=ADCR;
    
        ADCSC1=0x1f; //禁止ADC转换
        
    } /* loop forever */
  /* please make sure that you never leave main */
}

/*****************ADC中断*****************************************/
/*interrupt 19 void   ADC_INT(void) {

    ADCSC1_COCO=0;    // clear TOF清标志位 
 
} */

/*****************ADC初始化*****************************************/
void ADC_INIT(void) {

    ADCSC1=0x20;//选择通道号,使能ADC  
    ADCSC2=0x00;     
    ADCCFG=0x49;//四分频、10位模式、时钟源为总线时钟/2  
    APCTL1=0x01;  //选择管脚16(通道1)
    ADCSC1=0x1f; //禁止 ADC 
}


    
/***************************MCU初始化函数*******************************/
void MCU_INIT(void){

    ICSC1=0x04;
    ICSC2=0x40;
    ICSTRM=0xa8;
    SOPT1=0x42;
    SOPT2=0x00;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?