B
bbgil
Guest
Ahoj kluci.Snažím se udělat jednoduchou počítat zobrazení approximatel každý sec o LCD.To ukazuje charakter: ale to je to.jeho ne zvyšování nebo dělat něco jiného.Jsem pomocí PIC16f877a a LCD v 4-bitovém režimu.jakýkoliv pomoci chtěl bych být ocenil.
Zde je kód v mikroC.
unsigned short ch;
unsigned int t, CNT;
char [17], * TC;
unsigned short sec;
dlouho tlong;
neplatné sekund;
neplatné přerušení () (
CNT ; / / Přírůstek hodnoty CNT na každém přerušení
if (CNT == 400)
pro (sec = 0; sec <= 9U; sec ) (
ch = (sec);
Delay_ms (500);
CNT = 0;
)
TMR0 = 96;
INTCON = 0x20, / / Set T0IE, jasné T0IF
) / / ~void main () (
OPTION_REG = 0x84, / / Přiřazení prescaler na TMR0
TRISB = 0; / / PORTB je výstup
PORTB = 0xFF; / / Inicializace PORTB
TMR0 = 96;
INTCON = 0xA0, / / Povolit přerušení TMRO
LCD_Init (& PORTB); / / inicializovat (4-bit interface připojení)
LCD_Cmd (LCD_CURSOR_OFF); / / odeslat příkaz LCD (cursor off)
LCD_Cmd (LCD_CLEAR); / / odeslat příkaz LCD (podsvícený LCD)
TC = "Počet je nyní:" / / přiřadit text na řetězec
LCD_Out (1,1, TC), / / print řetězec na LCD, 1. řada, 1. sloupecTRISC = 0;
TRISD = 0;
Delay_ms (1000);
TC = "AM", / / přiřadit text na řetězec
CNT = 0;
do (
LCD_Out (2,13, TC);
ch = sec;
LCD_Chr (2,9, 48 ch);
Delay_ms (200);
) While (1);
}//~!
Zde je kód v mikroC.
unsigned short ch;
unsigned int t, CNT;
char [17], * TC;
unsigned short sec;
dlouho tlong;
neplatné sekund;
neplatné přerušení () (
CNT ; / / Přírůstek hodnoty CNT na každém přerušení
if (CNT == 400)
pro (sec = 0; sec <= 9U; sec ) (
ch = (sec);
Delay_ms (500);
CNT = 0;
)
TMR0 = 96;
INTCON = 0x20, / / Set T0IE, jasné T0IF
) / / ~void main () (
OPTION_REG = 0x84, / / Přiřazení prescaler na TMR0
TRISB = 0; / / PORTB je výstup
PORTB = 0xFF; / / Inicializace PORTB
TMR0 = 96;
INTCON = 0xA0, / / Povolit přerušení TMRO
LCD_Init (& PORTB); / / inicializovat (4-bit interface připojení)
LCD_Cmd (LCD_CURSOR_OFF); / / odeslat příkaz LCD (cursor off)
LCD_Cmd (LCD_CLEAR); / / odeslat příkaz LCD (podsvícený LCD)
TC = "Počet je nyní:" / / přiřadit text na řetězec
LCD_Out (1,1, TC), / / print řetězec na LCD, 1. řada, 1. sloupecTRISC = 0;
TRISD = 0;
Delay_ms (1000);
TC = "AM", / / přiřadit text na řetězec
CNT = 0;
do (
LCD_Out (2,13, TC);
ch = sec;
LCD_Chr (2,9, 48 ch);
Delay_ms (200);
) While (1);
}//~!