标题:
请教这部分程序是什么意思?STC15单片机AD转换
[打印本页]
作者:
jifengjianwu
时间:
2019-2-9 08:38
标题:
请教这部分程序是什么意思?STC15单片机AD转换
请教这部分是什么意思?STC15,AD转换。
问题.png
(23.14 KB, 下载次数: 61)
下载附件
2019-2-9 08:37 上传
作者:
jifengjianwu
时间:
2019-2-9 08:44
用KEIL4仿真时,怎样才能看到结构体中各个成员的具体数值?
作者:
凌净清河
时间:
2019-2-9 20:27
只是一个函数的话好像少了什么...
建议看一下STC的手册,ADC部分,手册上很清晰的,照着配置寄存器也很简单。
基本步骤就是:
0.开中断许可
1.P1口模拟功能选择(P1ASF寄存器)
2.通道选择(ADC_CONTER寄存器)
3.速度选择(ADC_CONTER寄存器)
4.开始转换(ADC_CONTER寄存器),需要转换的时候对寄存器位操作
5.中断函数配置,中断号是5
6.其它的诸如结果如何存放,优先级之类的,基础应用涉及不多。
Keil仿真用的少,真没注意看过结构体的数值,帮不上了,看看后续有没有人吧。
作者:
jrcsh
时间:
2019-2-10 04:35
//========================================================================
// 函数: void ADC_Inilize(ADC_InitTypeDef *ADCx)
// 描述: ADC初始化程序.
// 参数: ADCx: 结构参数,请参考adc.h里的定义.
// 返回: none.
// 版本: V1.0, 2012-10-22
//========================================================================
void ADC_Inilize(ADC_InitTypeDef *ADCx)
{
P1ASF = ADCx->ADC_Px; //
设置端口
ADC_CONTR = (ADC_CONTR & ~ADC_90T) | ADCx->ADC_Speed; ////
设定读取数值的端口
if(ADCx->ADC_Power == ENABLE) ADC_CONTR |= 0x80; //
判断ADC 是否使能上电状态, 如果没有就上电 如果有就进行转换
else ADC_CONTR &= 0x7F;
if(ADCx->ADC_AdjResult == ADC_RES_H2L8) PCON2 |= (1<<5); //10位AD结果的高2位放ADC_RES的低2位,低8位在ADC_RESL。
else PCON2 &= ~(1<<5); //10位AD结果的高8位放ADC_RES,低2位在ADC_RESL的低2位。
if(ADCx->ADC_Interrupt == ENABLE) EADC = 1; //中断允许 ENABLE,DISABLE
else EADC = 0;
if(ADCx->ADC_Polity == PolityHigh) PADC = 1; //优先级设置 PolityHigh,PolityLow
else PADC = 0;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1