首页 > 代码库 > 中颖SH79F1616 ADC初始化程序
中颖SH79F1616 ADC初始化程序
//========c51adc.h============================================= #ifndef _C51ADC_H_ #define _C51ADC_H_ //ADC通道号定义 #define ADC_Chanel0 (0x00<<1) #define ADC_Chanel1 (0x01<<1) #define ADC_Chanel2 (0x02<<1) #define ADC_Chanel3 (0x03<<1) #define ADC_Chanel4 (0x04<<1) #define ADC_Chanel5 (0x05<<1) #define ADC_Chanel6 (0x06<<1) #define ADC_Chanel7 (0x07<<1) //AD通道使能 //#define ADC_CHANEL_ENABLE(Chanel) ADC_CSR = (ADC_CSR & 0XF0)|Chanel ; extern void Init_AD(void) ; extern void AdcSwitch(uint8 Chanel); #endif //========c51adc.c============================================== #include "global.h" #include "c51adc.h" //************************************* // 函数名称:Init_AD // 函数功能:对AD初始化,开启或关闭ADC电路 // 入口参数: // 出口参数:无 /***************************************/ void Init_AD(void) { // 0 1 2 3 4 5 6 7 对应转换时钟为 //Fsys/2 /4 /6 /8 /12 /16 /24 /32 Bank0; ADCON = 0X80 ; //打开ADC模块 ADT = 0 ; ADT |= (2<<5) ; //Fsys/6 转换时钟 ADT |= 5 ; //采样时间设置 0-15 } //************************************* // 函数名称:AdcSwitch // 函数功能: 在单通道模式下转换某一通道的AD值 // 在(扫描模式下)连续转化1-Chanel的AD值 // 入口参数:要转换的AD通道号 // 出口参数:无 //*************************************** void AdcSwitch(uint8 Chanel) { Bank0; ADCON = 0x80 | Chanel ; //选择通道 _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); ADCON |= 0x01 ; //开始转换AD _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); while(ADCON & 0x01); //等待转换结束 return ; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。