PDA

View Full Version : Mọi người giúp dùm đồ án!!!


oneclicklogin
05-04-2014, 12:34 PM
Mạch ADC chuyển đổi điện áp xuất ra 4 led7seg.
Sao nó không chạy Code nhu sau:
#INCLUDE <16F877A.h>
#DEVICE *=16 ADC=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWN OUT, NOLVP, NOCPD, NOWRT
#USE DELAY(CLOCK=20000000)
CONST UNSIGNED CHAR MA7DOAN[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
INT16 KQADC;
INT DONVI, CHUC, TRAM, NGAN,i,HSNHAN=1;
UNSIGNED CHAR MDONVI,MCHUC,MTRAM,MNGAN;
VOID DIV_DECODE (INT16 TAM)
{
NGAN = TAM/1000;
TAM = TAM %1000;
TRAM = TAM/100;
TAM = TAM %100;
CHUC = TAM/10; //LAY HANG CHUC
DONVI= TAM%10; //LAY DONVI
MDONVI= MA7DOAN[DONVI];
MCHUC = MA7DOAN[CHUC];
MTRAM = MA7DOAN[TRAM];
MNGAN = MA7DOAN[NGAN];
}
VOID DISPLAY ()
{
OUTPUT_D(MDONVI);
OUTPUT_LOW(PIN_C0);
DELAY_MS(200);
OUTPUT_HIGH(PIN_C0);
OUTPUT_D(MCHUC);
OUTPUT_LOW(PIN_C1);
DELAY_MS(200);
OUTPUT_HIGH(PIN_C1);
OUTPUT_D(MTRAM);
OUTPUT_LOW(PIN_C2);
DELAY_MS(200);
OUTPUT_HIGH(PIN_C2);
OUTPUT_D(MNGAN);
OUTPUT_LOW(PIN_C3);
DELAY_MS(200);
OUTPUT_HIGH(PIN_C3);
}

VOID MAIN()
{
SET_TRIS_B(0xFF);
SET_TRIS_C(0x00);
SET_TRIS_D(0x00);
OUTPUT_C(0xFF);
SETUP_ADC(ADC_CLOCK_INTERNAL);
SETUP_ADC_PORTS(AN0);
SET_ADC_CHANNEL(0);
delay_us(10);
while(1)
{
KQADC=READ_ADC()/2;
if (KQADC==511) KQADC++;
DIV_DECODE(KQADC);
for (i=0;i++;I<25)
{
DISPLAY();
}
}
}