📄 ad.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -