ad.c
来自「用pic18f8720做的电压采样处理程序」· C语言 代码 · 共 95 行
C
95 行
#include <p18f8720.h>
#pragma config WDT = OFF
union adres
{
unsigned int y1;
unsigned char adre[2];
}adresult;
unsigned char i;
unsigned int j;
/* I/O initial */
void initial(void)
{
TRISD = 0X00;
i = 0x00;
}
/*A/D change */
void adin(void)
{
ADCON0 = 0X01;
ADCON1 = 0X00;
ADCON2 = 0XBB;
PIE1 = 0X00;
PIE2 = 0X00;
PIE1bits.ADIE = 0;
INTCONbits.PEIE = 1;
TRISAbits.TRISA0 = 1;
INTCONbits.GIE = 1;
}
void delay(void)
{
for(j=65535; --j; )continue;
}
void alarm(void)
{
i = i^0xFF;
PORTD = i;
}
unsigned int AD_Initial(void) //interrupt
{
char n;
for(n=0;n<4;n++)
{
ADCON0bits.GO_DONE= 1;
while(ADCON0bits.GO_DONE)continue;
adresult.adre[0] = ADRESL;
adresult.adre[1] = ADRESH;
}
return adresult.y1;
}
void main()
{
unsigned int res;
adin();
initial();
while(1)
{
res=AD_Initial();
if(res > 0x100)
{
PORTDbits.RD0 = 0;
delay();
}
else if(res > 0x200)
{
PORTDbits.RD1 = 0;
delay();
}
else if(res > 0x300)
{
PORTDbits.RD2 = 0;
delay();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?