Skip to content

Instantly share code, notes, and snippets.

@nathanpc
Created March 21, 2012 01:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nathanpc/2143342 to your computer and use it in GitHub Desktop.
Save nathanpc/2143342 to your computer and use it in GitHub Desktop.
Playing With The PIC 12F629
#define _LEGACY_HEADERS
#include <pic.h>
#include <pic12f629.h>
__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO);
void delay(char value);
void d1();
void d2();
void red_2d2();
void red_2d1();
void green_2d2();
void green_2d1();
void red_3d2();
void red_3d1();
void green_3d2();
void green_3d1();
void blue_3d2();
void blue_3d1();
unsigned char n0, n1;
void main(void)
{
TRISIO = 0xFF; // Set All I/O Inputs Off
GPIO = 0; // Clear GPIO
VRCON = 0;
CMCON = 0x07;
while(1)
{
blue_3d1();
delay(200);
red_2d2();
delay(200);
green_3d2();
delay(200);
d1();
delay(200);
green_3d1();
delay(200);
d2();
delay(200);
blue_3d2();
delay(200);
red_2d1();
delay(200);
red_3d2();
delay(200);
green_2d2();
delay(200);
red_3d1();
delay(200);
green_2d1();
delay(200);
}
}
// Delay function
void delay(char value)
{
for (n1=value; n1 != 0; n1--)
{
for (n0=0xFF; n0 != 0; n0--);
}
return;
}
// LEDs
// dx
void d2()
{
// GP1 -> GP2
TRISIO = 0b11111001;
GPIO = 0b00000010;
}
void d1()
{
// GP2 -> GP1
TRISIO = 0b11111001;
GPIO = 0b00000100;
}
// 2dx
void red_2d2()
{
// GP5 -> GP2
TRISIO = 0b11011011;
GPIO = 0b00100000;
}
void red_2d1()
{
// GP2 -> GP5
TRISIO = 0b11011011;
GPIO = 0b00000100;
}
void green_2d2()
{
// GP5 -> GP1
TRISIO = 0b11011101;
GPIO = 0b00100000;
}
void green_2d1()
{
// GP1 -> GP5
TRISIO = 0b11011101;
GPIO = 0b00000010;
}
// 3dx
void red_3d2()
{
// GP4 -> GP5
TRISIO = 0b11001111;
GPIO = 0b00010000;
}
void red_3d1()
{
// GP5 -> GP4
TRISIO = 0b11001111;
GPIO = 0b00100000;
}
void green_3d2()
{
// GP4 -> GP2
TRISIO = 0b11101011;
GPIO = 0b00010000;
}
void green_3d1()
{
// GP2 -> GP4
TRISIO = 0b11101011;
GPIO = 0b00000100;
}
void blue_3d2()
{
// GP4 -> GP1
TRISIO = 0b11101101;
GPIO = 0b00010000;
}
void blue_3d1()
{
// GP1 -> GP4
TRISIO = 0b11101101;
GPIO = 0b00000010;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment