STC12C5410AD单片机程序解释
请问大家,我最近在做毕业设计,在程序上出现了问题,下面这一段程序不知什么意思,还有那些怎么设置出来的,能否大家把意思详细给我解释一下,我用的是STCC12C5410AD的单片机,有注释的英文部分也只知道字面意思,具体怎么来的就不知道了。还请大神尽量详细,不懂再问大家。谢谢void InitADC()
{
P1 = P1M0 = P1M1 = 0xff; //Set all P1 as Open-Drain mode
ADC_RES = 0; //Clear previous result
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
delay_ms(2); //ADC power-on and delay
}
/*----------------------------
Get ADC result
----------------------------*/
uchar GetADCResult(uchar ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_(); //Must wait before inquiry
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag
ADC_CONTR &= ~ADC_FLAG; //Close ADC
return ADC_RES; //Return ADC result
}
/*--------------------------------
主程序
--------------------------------*/
voidmain()
{
uchar adc_val;
uchar adc_disp={0,0,0,0};
tim_init();
InitLcd();
InitADC(); //Init ADC sfr
delay_ms(10);
display(0x81,"");
display(0x89,"");
display(0x81,"");
display(0x99,"");
delay_ms(1000);
while(1)
{
P1_0=!P1_0;
delay_ms(200);
adc_val=GetADCResult(2);
adc_disp=adc_val/100+'0';
adc_disp=adc_val/10%10+'0';
adc_disp=adc_val%10+'0';
display(0x9a,adc_disp);
adc_disp= 0x00;
//key_detect();
}
}
/*--------------------------------
初始化程序
--------------------------------*/
voidtim_init()
{
TMOD=0x01;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
// EA=1;
// ET0=1;
// timer0IntCnt=0x00;
// second=0x00;
// minute=0x00;
// hour=0x00;
}
/*--------------------------------
定时器0中断程序
--------------------------------*/
void timer0_ISR() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
/*--------------------------------
毫秒延时程序
--------------------------------*/
void delay_ms(uint no)
{
uint i,j;
for(i=0;i<no;i++)
{
for(j=0;j<1000;j++);
}
}
页:
[1]