第一次学习也是第一次使用STC15F2K60S2进行AD转换,感觉比之前用89c52加AD芯片好用多了,虽然中间走了很多弯路,但是最终还是成功了,分享给那些和我一样刚学习单片机的童鞋们,希望能够帮到你们!
单片机源程序如下:
- #include "STC15F2K60S2.h"
- #include "ADC.h"
- unsigned int ADC_DATE1,ADC_DATE2;
- bit flag;
- void delay(unsigned int sec) //延时函数
- {
- while(sec--);
- }
- void Init_ADC() //ADC初始化
- {
- P1ASF=0X80; //将P1口设为ADC转换功能;
- ADC_RES=0X00;
- ADC_RESL=0X00; //清除转换结果寄存器
- ADC_CONTR|=ADC_Power|ADC_Speed90; //打开ADC电源,ADC转换速率90个机器周期,ADC通道为P1^7;111
- delay(5000);
- EA=1;
- EADC=1;
- }
- unsigned int ADC_Chang(unsigned char ch)
- {
- unsigned int result;
- EADC=1;
- delay(6000);
- ADC_CONTR|=ADC_Power|ADC_Speed90|ADC_Start|ch; //启动AD转换
- while(flag)
- {
-
- ADC_DATE1=ADC_DATE1<<2;
- ADC_DATE2=ADC_DATE2&0x03;
- result=ADC_DATE1|ADC_DATE2;
- flag=0;
- }
- EADC=0;
- return result;
- }
- void interrupt_ADC() interrupt 5
- {
- ADC_CONTR&=(~ADC_flag);
- ADC_DATE1=ADC_RES;
- ADC_DATE2=ADC_RESL;
- flag=1;
- }
复制代码
下载:
基于STC15F2K60S2的内部AD转换程序(1602显示).rar
(38.55 KB, 下载次数: 73)
|