numstr[4]=idata%10; //个位数 for(i=0;i<10;i++) { PORTD=0x01; for(j=1;j<=4;j++)
{PORTC=seg7[numstr[j]]; delay(5);
PORTD=PORTD<<1;} } }
void main() { char i;
int voltage=0; TRISA=0x01;// TRISB=0x00; TRISC=0x00; TRISD=0x00; //*
ADFM=1;//右对齐
PCFG3=0;PCFG2=0;PCFG1=0;PCFG0=0;//全为模拟引脚,参考电压为VDD,VSS //*以上5条语句可以用 ADCON1=0b00000000;
ADCS1=1;ADCS0=0;//使用内部RC振荡器作为时钟 CHS2=0;CHS1=0;CHS0=0;//选择AN0通道 ADON=1;//开启AD转换器
//*以上6条语句可以用 ADCON0=0b11000001;
//*开中断
ADIE=1; ADIF=0; PEIE=1; GIE=1;
for(i=0;i<25;i++){;}//为了采用保持电路充电延时,超过25us即可 ADGO=1;//启动一次A/D转换,此位为GO/DONE while(1) {
voltage=adcdata; //把当前测量的数字结果放入voltage中 voltage=((long)voltage*5000/1023); //数据处理 display(voltage); //调显示电阻值子程序 if(voltage>4900||voltage<100) //报警 { for(i=0;i<5;i++)
{delay(1);RB0=!RB0;} //发出500Hz的声音 } }
第三次作业 一、选择题