TMRO ir įjungti funkciją MikroC

B

bbgil

Guest
Labas.Turiu šį paprastą kodą, kurį turėtų įjungti 7 segmentų ekranas (bendro anodo) 0-9 kartus.I'm using switch funkcija ir TMR0.problema aš negaliu padaryti to count.jį išlaikytas 8.Manau, problema yra mano TMRO ir kaip skaičiuoti, todėl tai valdymo jungiklis funkcija.Bet kuris iš C guru out there help bus įvertintas.dar išmokti naudotis C. Čia yra kodas.thnx in advance.

unsigned cnt;
unsigned cnt1;
tuščia nutraukti () (
cnt ;

if (CNT == 400)
(cnt = 0;
cnt1 = cnt1 ;) / / didinti vertę cnt ant kiekvieno pertraukti
INTCON = 0x20;
TMR0 = 96 / / Set T0IE, aišku T0IF
) / / ~

void main () (
OPTION_REG = 0x84; / / priskyrimas Prescaler į TMR0
TRISb = 0; / / PORTB yra išėjimas
PORTb = 0xFF / / inicjalizacja PORTB
TMR0 = 0x96;
INTCON = 0xA0 / / Įjungti TMRO pertraukti
cnt = 0;
cnt1 = 0; / / inicjalizacja CNT

do (
if (cnt1 <0x09)
switch (cnt1) (
case 0: portb = 0x81;
1 atvejis: portb = 0xf3;
2 atvejis: portb = 0x49;
3 atvejis: portb = 0x61;
case 4: portb = 0x33;
case 5: portb = 0x25;
case 6: portb = 0x05;
Case 7: portb = 0xf1;
Case 8: portb = 0x01;
Case 9: portb = 0x31;
Default: portb = 0x81;
)
cnt1 = 0;
/ / Reset CNT
) While (1);

}//~!

 
Labas,

Keisti linijos pirma:

if (cnt1 <0x09) ir jeigu (cnt1 <0xa) ...bet vis dar geras ...

už įkvėpimą:/ / Deklaracijos ----------------------------------------------- -------------------
//------------------------------------------------ -------------- pabaigos deklaracijos
/ *
* Projekto pavadinimas:
Display_1 ( "Hello world" pavyzdys 7Seg. Kalbomis)
* Copyright:
(c) MikroElektronika, 2005.
* Aprašymas:
Šis kodas parodo, kaip rodyti skaičius viename 7 segmentų ekrane
(bendra katodo).Ekranas yra prijungtas prie PORTB (RB0.. RB7, segmento su
RB0, segmento B RB1, ir tt); bendro katodo yra prijungtas prie PIN RA1 on
Porta.Skaičius didėja kas 1s.
* Bandymo konfigūracija:
MCU: P16F877A
Dev.Board: EasyPIC3
Generatorius: SS, 08,0000 MHz
Tel.Moduliai: --
SW: mikroC v6.0
* Pastabos:
Nė vienas.
*
unsigned trumpas i;//-------------- Grąžinimai kaukė bendro katodo 7 sek.parodyti
parašo trumpą kaukė (unsigned trumpas num) (
switch (num) (
case 0: return 0x3F;
case 1: return 0x06;
case 2: return 0x5b;
3 atvejis: grįžti 0x4F;
case 4: sugrįžimas 0x66;
case 5: grįžti 0x6D;
case 6: grįžti 0x7D;
Case 7: return 0x07;
Case 8: grįžti 0x7F;
Case 9: grįžti 0x6F;
) / / Pabaigos atveju
) / / ~
void main () (
INTCON = 0 / / Disable PEIE, inte, RBIE, T0IE
PORTA = 0;
TRISA = 0;
PORTB = 0;
TRISB = 0;
do (
for (i = 0; i <= 9U i ) (
PORTA = 0;
PORTB = kauke (i);
PORTA = 2;
Delay_ms (1000);
)
) While (1) / / begalinis ciklas
}//~!

 

Welcome to EDABoard.com

Sponsor

Back
Top