

tycker att det är lagomt lätt för mig som bara vill styra lite lysdioder. köpte det och gjorde ett större program med 3 knappar, 6st lysdioder och en 7 segmentsdisplay på en pic16f628a.
När man trycker på knapp1 går den in i "programvals mode" där man kan justera program och hastighet mha knapp 2 och 3. knapp2 väljer man mellan program eller hastighet och knapp3 stegar man upp ett snäpp.
C koden för den som är intresserad:
Kod: Markera allt
#define MX_PIC
//Definitioner för mikrocontroller
#define P16F628A
#define MX_EE
#define MX_EE_TYPE1
#define MX_EE_SIZE 128
#define MX_UART
#define MX_UART_B
#define MX_UART_TX 2
#define MX_UART_RX 1
#define MX_PWM
#define MX_PWM_CNT 1
#define MX_PWM_TRIS1 trisb
#define MX_PWM_1 3
//Funktioner
#define MX_CLK_SPEED 4000000
#ifdef _BOOSTC
#include <system.h>
#endif
#ifdef HI_TECH_C
#include <pic.h>
#endif
//Konfigurationsdata
#ifdef _BOOSTC
#pragma DATA 0x2007, 0x3f18
#endif
#ifdef HI_TECH_C
__CONFIG(0x3f18);
#endif
//Interna funktioner
#include "C:\Program Files (x86)\Matrix Multimedia\Flowcode V4\FCD\internals.h"
//Makrofunktions-deklarationer
void FCM_Byteavprogram();
void FCM_Ledprog();
//Variabeldeklarationer
char FCV_SWITCH;
char FCV_SWITCH1;
char FCV_PLUSPROG;
char FCV_BEGIN;
char FCV_PLUS;
char FCV_PLUSSPEED;
//Defines:
/**** Macro Substitutions ****
porta = LED Port Register
trisa = LED Data Direction Register
1 = LED Pin Mask
1 = LED Active Polarity
******************************/
//LED0: //Makrofunktions-deklarationer
void FCD_LED0_LEDOn();
void FCD_LED0_LEDOff();
//Defines:
/**** Macro Substitutions ****
porta = LED Port Register
trisa = LED Data Direction Register
2 = LED Pin Mask
1 = LED Active Polarity
******************************/
//LED1: //Makrofunktions-deklarationer
void FCD_LED1_LEDOn();
void FCD_LED1_LEDOff();
//Defines:
/**** Macro Substitutions ****
porta = LED Port Register
trisa = LED Data Direction Register
4 = LED Pin Mask
1 = LED Active Polarity
******************************/
//LED2: //Makrofunktions-deklarationer
void FCD_LED2_LEDOn();
void FCD_LED2_LEDOff();
//Defines:
/**** Macro Substitutions ****
porta = LED Port Register
trisa = LED Data Direction Register
128 = LED Pin Mask
1 = LED Active Polarity
******************************/
//LED3: //Makrofunktions-deklarationer
void FCD_LED3_LEDOn();
void FCD_LED3_LEDOff();
//Defines:
/**** Macro Substitutions ****
porta = LED Port Register
trisa = LED Data Direction Register
8 = LED Pin Mask
1 = LED Active Polarity
******************************/
//LED4: //Makrofunktions-deklarationer
void FCD_LED4_LEDOn();
void FCD_LED4_LEDOff();
//Defines:
/**** Macro Substitutions ****
porta = LED Port Register
trisa = LED Data Direction Register
64 = LED Pin Mask
1 = LED Active Polarity
******************************/
//LED5: //Makrofunktions-deklarationer
void FCD_LED5_LEDOn();
void FCD_LED5_LEDOff();
//LED0: //Makroimplementationer
void FCD_LED0_LEDOn()
{
trisa = trisa & ~1; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta | 1;
else //Active low polarity
porta = porta & ~1;
}
void FCD_LED0_LEDOff()
{
trisa = trisa & ~1; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta & ~1;
else //Active low polarity
porta = porta | 1;
}
//LED1: //Makroimplementationer
void FCD_LED1_LEDOn()
{
trisa = trisa & ~2; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta | 2;
else //Active low polarity
porta = porta & ~2;
}
void FCD_LED1_LEDOff()
{
trisa = trisa & ~2; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta & ~2;
else //Active low polarity
porta = porta | 2;
}
//LED2: //Makroimplementationer
void FCD_LED2_LEDOn()
{
trisa = trisa & ~4; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta | 4;
else //Active low polarity
porta = porta & ~4;
}
void FCD_LED2_LEDOff()
{
trisa = trisa & ~4; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta & ~4;
else //Active low polarity
porta = porta | 4;
}
//LED3: //Makroimplementationer
void FCD_LED3_LEDOn()
{
trisa = trisa & ~128; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta | 128;
else //Active low polarity
porta = porta & ~128;
}
void FCD_LED3_LEDOff()
{
trisa = trisa & ~128; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta & ~128;
else //Active low polarity
porta = porta | 128;
}
//LED4: //Makroimplementationer
void FCD_LED4_LEDOn()
{
trisa = trisa & ~8; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta | 8;
else //Active low polarity
porta = porta & ~8;
}
void FCD_LED4_LEDOff()
{
trisa = trisa & ~8; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta & ~8;
else //Active low polarity
porta = porta | 8;
}
//LED5: //Makroimplementationer
void FCD_LED5_LEDOn()
{
trisa = trisa & ~64; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta | 64;
else //Active low polarity
porta = porta & ~64;
}
void FCD_LED5_LEDOff()
{
trisa = trisa & ~64; //Convert pin to output
if( 1 ) //Active high polarity
porta = porta & ~64;
else //Active low polarity
porta = porta | 64;
}
//Makroimplementationer
void FCM_Byteavprogram()
{
//Beräkning
//Beräkning:
// switch = 1
FCV_SWITCH = 1;
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Utgång
//Utgång: 1 -> A6
trisa = trisa & 0xbf;
if (1)
porta = (porta & 0xbf) | 0x40;
else
porta = porta & 0xbf;
//Kopplingspunkt
//Kopplingspunkt: [A]: A
FCC_Byteavprogram_A:
;
//Utgång
//Utgång: 1 -> A2
trisa = trisa & 0xfb;
if (1)
porta = (porta & 0xfb) | 0x04;
else
porta = porta & 0xfb;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 1 -> A2
trisa = trisa & 0xfb;
if (1)
porta = (porta & 0xfb) | 0x04;
else
porta = porta & 0xfb;
//Ingång
//Ingång: B1 -> switch1
trisb = trisb | 0x02;
FCV_SWITCH1 = ((portb & 0x02) == 0x02);
//Ingång
//Ingång: B2 -> plus
trisb = trisb | 0x04;
FCV_PLUS = ((portb & 0x04) == 0x04);
//Ingång
//Ingång: B0 -> begin
trisb = trisb | 0x01;
FCV_BEGIN = ((portb & 0x01) == 0x01);
//Beslut
//Beslut: switch1=0?
if (FCV_SWITCH1==0)
{
//Beslut
//Beslut: switch=2?
if (FCV_SWITCH==2)
{
//Beräkning
//Beräkning:
// switch = 1
FCV_SWITCH = 1;
} else {
//Beräkning
//Beräkning:
// switch = switch+1
FCV_SWITCH = FCV_SWITCH+1;
}
}
//Beslut
//Beslut: plus=0?
if (FCV_PLUS==0)
{
//Switch
//Switch: switch?
switch (FCV_SWITCH)
{
case 1:
{
//Beslut
//Beslut: plusprog=6?
if (FCV_PLUSPROG==6)
{
//Beräkning
//Beräkning:
// plusprog = 1
FCV_PLUSPROG = 1;
} else {
//Beräkning
//Beräkning:
// plusprog = plusprog+1
FCV_PLUSPROG = FCV_PLUSPROG+1;
}
break;
}
case 2:
{
//Beslut
//Beslut: plusspeed=300?
if (FCV_PLUSSPEED==300)
{
//Beräkning
//Beräkning:
// plusspeed = 25
FCV_PLUSSPEED = 25;
} else {
//Beräkning
//Beräkning:
// plusspeed = plusspeed + 25
FCV_PLUSSPEED = FCV_PLUSSPEED + 25;
}
break;
}
}
//Utgång
//Utgång: 1 -> A3
trisa = trisa & 0xf7;
if (1)
porta = (porta & 0xf7) | 0x08;
else
porta = porta & 0xf7;
//Fördröjning
//Fördröjning: 320 ms
delay_ms(255);
delay_ms(65);
//Utgång
//Utgång: 0 -> A3
trisa = trisa & 0xf7;
if (0)
porta = (porta & 0xf7) | 0x08;
else
porta = porta & 0xf7;
}
//Switch
//Switch: switch?
switch (FCV_SWITCH)
{
case 1:
{
//Utgång
//Utgång: 1 -> A0
trisa = trisa & 0xfe;
if (1)
porta = (porta & 0xfe) | 0x01;
else
porta = porta & 0xfe;
//Utgång
//Utgång: 0 -> PORT A
trisa = trisa & 0xf9;
porta = (porta & 0xf9) | (0 & 0x06);
//Fördröjning
//Fördröjning: 120 ms
delay_ms(120);
break;
}
case 2:
{
//Utgång
//Utgång: 1 -> A1
trisa = trisa & 0xfd;
if (1)
porta = (porta & 0xfd) | 0x02;
else
porta = porta & 0xfd;
//Utgång
//Utgång: 0 -> PORT A
trisa = trisa & 0xfa;
porta = (porta & 0xfa) | (0 & 0x05);
//Fördröjning
//Fördröjning: 120 ms
delay_ms(120);
break;
}
default:
{
//Fördröjning
//Fördröjning: 60 ms
delay_ms(60);
}
}
//Beslut
//Beslut: begin=0?
if (FCV_BEGIN==0)
{
//Gå till kopplingspunkt
//Gå till kopplingspunkt: [B]: B
goto FCC_Byteavprogram_B;
}
//Gå till kopplingspunkt
//Gå till kopplingspunkt: [A]: A
goto FCC_Byteavprogram_A;
//Kopplingspunkt
//Kopplingspunkt: [B]: B
FCC_Byteavprogram_B:
;
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Utgång
//Utgång: 0 -> PORT B
trisb = trisb & 0x87;
portb = (portb & 0x87) | (0 & 0x78);
//Fördröjning
//Fördröjning: 150 ms
delay_ms(150);
}
void FCM_Ledprog()
{
//Switch
//Switch: plusprog?
switch (FCV_PLUSPROG)
{
case 1:
{
//Utgång
//Utgång: 1 -> B3
trisb = trisb & 0xf7;
if (1)
portb = (portb & 0xf7) | 0x08;
else
portb = portb & 0xf7;
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
break;
}
case 2:
{
//Utgång
//Utgång: 1 -> B4
trisb = trisb & 0xef;
if (1)
portb = (portb & 0xef) | 0x10;
else
portb = portb & 0xef;
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Från
FCD_LED5_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Från
FCD_LED4_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Från
FCD_LED3_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Från
FCD_LED2_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Från
FCD_LED1_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Från
FCD_LED0_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
break;
}
case 3:
{
//Utgång
//Utgång: 1 -> B3
trisb = trisb & 0xf7;
if (1)
portb = (portb & 0xf7) | 0x08;
else
portb = portb & 0xf7;
//Utgång
//Utgång: 1 -> B4
trisb = trisb & 0xef;
if (1)
portb = (portb & 0xef) | 0x10;
else
portb = portb & 0xef;
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
break;
}
case 4:
{
//Utgång
//Utgång: 1 -> B5
trisb = trisb & 0xdf;
if (1)
portb = (portb & 0xdf) | 0x20;
else
portb = portb & 0xdf;
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A0
trisa = trisa & 0xfe;
if (0)
porta = (porta & 0xfe) | 0x01;
else
porta = porta & 0xfe;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A1
trisa = trisa & 0xfd;
if (0)
porta = (porta & 0xfd) | 0x02;
else
porta = porta & 0xfd;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A2
trisa = trisa & 0xfb;
if (0)
porta = (porta & 0xfb) | 0x04;
else
porta = porta & 0xfb;
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A7
trisa = trisa & 0x7f;
if (0)
porta = (porta & 0x7f) | 0x80;
else
porta = porta & 0x7f;
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A0
trisa = trisa & 0xfe;
if (0)
porta = (porta & 0xfe) | 0x01;
else
porta = porta & 0xfe;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A1
trisa = trisa & 0xfd;
if (0)
porta = (porta & 0xfd) | 0x02;
else
porta = porta & 0xfd;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A2
trisa = trisa & 0xfb;
if (0)
porta = (porta & 0xfb) | 0x04;
else
porta = porta & 0xfb;
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A0
trisa = trisa & 0xfe;
if (0)
porta = (porta & 0xfe) | 0x01;
else
porta = porta & 0xfe;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A1
trisa = trisa & 0xfd;
if (0)
porta = (porta & 0xfd) | 0x02;
else
porta = porta & 0xfd;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> A0
trisa = trisa & 0xfe;
if (0)
porta = (porta & 0xfe) | 0x01;
else
porta = porta & 0xfe;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Kommentar:
//Börja ta isär
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Från
FCD_LED5_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Från
FCD_LED4_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Från
FCD_LED5_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Från
FCD_LED3_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Från
FCD_LED4_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Från
FCD_LED5_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Från
FCD_LED2_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Från
FCD_LED3_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Från
FCD_LED4_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Från
FCD_LED5_LEDOff();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Från
FCD_LED1_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Från
FCD_LED2_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Från
FCD_LED3_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Från
FCD_LED4_LEDOff();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Från
FCD_LED5_LEDOff();
break;
}
case 5:
{
//Utgång
//Utgång: 1 -> B5
trisb = trisb & 0xdf;
if (1)
portb = (portb & 0xdf) | 0x20;
else
portb = portb & 0xdf;
//Utgång
//Utgång: 1 -> B3
trisb = trisb & 0xf7;
if (1)
portb = (portb & 0xf7) | 0x08;
else
portb = portb & 0xf7;
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
break;
}
case 6:
{
//Utgång
//Utgång: 1 -> B4
trisb = trisb & 0xef;
if (1)
portb = (portb & 0xef) | 0x10;
else
portb = portb & 0xef;
//Utgång
//Utgång: 1 -> B5
trisb = trisb & 0xdf;
if (1)
portb = (portb & 0xdf) | 0x20;
else
portb = portb & 0xdf;
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(0)::Lysdiod Till
FCD_LED0_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(5)::Lysdiod Till
FCD_LED5_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(4)::Lysdiod Till
FCD_LED4_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(3)::Lysdiod Till
FCD_LED3_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(2)::Lysdiod Till
FCD_LED2_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
//Utgång
//Utgång: 0 -> PORT A
trisa = 0x00;
porta = 0;
//Anropa komponentmakro
//Anropa komponentmakro: LED(1)::Lysdiod Till
FCD_LED1_LEDOn();
//Fördröjning
//Fördröjning: plusspeed ms
delay_ms(FCV_PLUSSPEED);
break;
}
}
}
void main()
{
//Initiering
cmcon = 0x07;
//Avbrottsinitieringskod
option_reg = 0xC0;
//Avbrott
//Avbrott: Koppla till RB0INT
st_bit(option_reg,INTEDG);
st_bit(intcon,GIE);
st_bit(intcon, INTE);
//Beräkning
//Beräkning:
// plusprog = 1
// plusspeed = 25
FCV_PLUSPROG = 1;
FCV_PLUSSPEED = 25;
//Loop
//Loop: While1
while (1)
{
//Anropsmakro
//Anropsmakro: Ledprog
FCM_Ledprog();
}
mainendloop: goto mainendloop;
}
void MX_INTERRUPT_MACRO(void)
{
//Handler code for [RB0INT]
if (ts_bit(intcon, INTF) && ts_bit(intcon, INTE))
{
FCM_Byteavprogram();
cr_bit(intcon, INTF);
}
}
OBS! stäng av ljudet... dryg låt...
Youtube klipp
Jag tänkte lägga upp lite mer PIC projekt här sen när man börjar få lite mer grepp.