一种CSR电源控制系统设计与实现
PDCON = 0x1b;
PDCON = 0x14;
SPICON = 0x06;
SPITCON = 0x28;
ACLK = 9;
/* Set up Aux interrupt */
AIE=0x40;
EAI=1 ;
/* Setup ADC */
PDCON =0x0f7;
ADMUX=0x78;
ADCON0=0x00;
ADCON2=decimation 0xff;
ADCON3=(decimation 》8)0x07;
ADCON1=0x41;
AI=CLEAR;
SSCON=0x00;
SSCON=0xDB;
}
void dacout (unsigned int val) file://DAC输出
{
Sync = SET;
Sync = CLEAR;
SPIDATA = 0;
SPIDATA = (char)(val》8 0x00ff);
SPIDATA = (char)(val 0x00ff);;
}
serial () interrupt 4 using 2 { file://寄存器组2用于中断
unsigned char c,i;
if (RI) { // 如果接收器产生中断
c = SBUF; file://读数据
RI = 0; file://清除中断请求标志位
if(!(cmd_err==0cmd_finish==1addr_ok==1)){
switch (c) { file://处理数据
··· ···}
ADCcmd_proc() interrupt 6 using 3 file://ADC命令处理
{
unsigned long sum;
sum = ((unsigned long int)SUMR3 《 24)
+ ((unsigned long int)SUMR2 《 16)
+ ((unsigned long int)SUMR1 《 8)
+ (unsigned long int)SUMR0;
adcsum[adcin_p]=(float)(sum*LSB);
adcin_p++;
adcin_p=adcin_p7;
AI=CLEAR;
SSCON=0x00;
SSCON=0xDB; file://acc shift enable, accum 16x, right shift 4
}
4 结语
美国TI公司的带24位A/D转换的51内核混合信号处理器MSC1210具有很高的性能、很高的集成度、很大的灵活性。带可编程增益放大的24位A/D转换器可以实现非常高精度的模数转换。经过几个月的运行表明,该电源控制系统工作稳定,较好地完成了系统的实时监控和显示任务。
评论