01. PIC programmer ????
02. MikroC IDE ??
PIC programmer ????? ???? ??? ???? ???? ?? ???????????????????? ?? ?? ???????. ????? CD write ???? ???. ? ???? ???? ????? ????? ?????? ???? JDM programmers. ?? ?????? ??? ????? ????????? Serial port ?? ???? ??? ???? ???? ?????? ??? ??? ????????? ??. ????? USB ???? ??????? ??? PICKIT2 ??? ?????? ????????? ???? ?????? ???????.
(???? ?????? ??????? ?????? ?? ??? ?????)
? ??? MikroC IDE ?? ??????? ?????? ??????? http://www.mikroe.com/mikroc/pic/ ???????.
???? ??? ????? ??? ????????. ?? ?????? ???????? ?????? PIC16F628A ???? MicroChip PIC ?????? ???? ???????????????????? ??. ???? ???? 18?? ????? ??? ??? ??????? 180?? ??? ??????.
?? ???? ???? ???? ???? ????. ?? ???????? ????? ?????? ???? ????. C ?????? ????? ???? ??? ??? ??? ???? ??????.
Code: Select all
int i;
void main(){
TRISB = 0;
PORTB = 0;
do
{
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(!PORTB.B7);
}
for (i = 0; i < 6; i++)
{
PORTB = 128;
Delay_ms(100);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(!PORTB.B0);
}
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(!PORTB.B7);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(!PORTB.B0);
}
}while(1);
}
int i; ??? ??? ????? ?????? ??? ??? C ????? ???????
Code: Select all
void main(){
...
...
}
TRISB = 0; ?????? ?????? PORTB ???? ???? 8? output ?????? ???? ??? ??.
PORTB = 0; ?????? ?????? PORTB ???? ???? 8? off ???????? ??? ??.
Code: Select all
do
{
...
...
}while(1);
???? ???? ???? ??? ?????? ?????.
Code: Select all
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(!PORTB.B7);
}
???? ???? ?????? ????? ??? ???????, ????? ?? ?????? ???????? ??????? ??????? ??? ????????.
Code: Select all
for (i = 0; i < 6; i++)
{
PORTB = 0b10000001;
Delay_ms(150);
PORTB = 0b01000010;
Delay_ms(150);
PORTB = 0b00100100;
Delay_ms(150);
PORTB = 0b00011000;
Delay_ms(150);
}
Code: Select all
for (i = 0; i < 6; i++)
{
...
..
}
???? ???? PORTB = 0b10000001; ???? ??? ?????. 0b10000001 ??????? 10000001 ???? ???? ????? ???????? C ???? ???? ?????. ???? 1,0 ????? ?????? PORTB ?????? 8 (PIC ??? ??? 6???13 ????? ???? 8), on/off ?????.
PORTB = 0b00000001; ???? ???????? RB0 (6???? ???? ??) ?????? ??? ????.
PORTB = 0b10000000; ???? ???????? RB7 (13???? ???? ??) ?????? ??? ????.
PORTB = 0b10100000; ???? ???????? RB7 ?? RB5(13 ?? 11 ???? ???) ?????? ??? ????.
? ?????? 1,0 ????? ???????? ?? ??????? output8 ????? ?????? ???????.
Delay_ms(150); ????? ?????? ???? ????? 150 ?????? ????? ???????. ? ??????? ??? ????? ???????? ????? ?????? outputs ??? ?????? ?????. ???? ????? 150?? ????? ??? ???? ??? ?????? ???. ????? ??? ?????? outputs ????? ???? ???? ?? ???? ???? ????? ????????. 150 ?????? ???? ?? ???????? ??? ????? ???? ????? ?????? ???????.
Code: Select all
for (i = 0; i < 10; i++)
{
PORTB = 0b00001111;
Delay_ms(250);
PORTB = 0b11110000;
Delay_ms(250);
}
?? ?? ?????? ???? ??? ????????. programing ???? ?????? ??? ???? ???? ??? ??? ?????? ??? ????? ?????? ???? ????? ???? ???.
?? ?????? ???? ?? ????? ??? ????? (??? ??? ???? ??????), ???? MikroC ??????????? ?? ?? ???????? test ?? ?????? ?? ?????? ?? Proteus file ??. zip file ?? ??? ?????? ??.
My example code for readers
Code: Select all
int i;
void main(){
TRISB = 0;
PORTB = 0;
do
{
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(!PORTB.F7);
}
for (i = 0; i < 6; i++)
{
PORTB = 128;
Delay_ms(100);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(!PORTB.F0);
}
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(!PORTB.F7);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(!PORTB.F0);
}
for (i = 0; i < 6; i++)
{
PORTB = 3;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(PORTB != 128);
}
for (i = 0; i < 6; i++)
{
PORTB = 192;
Delay_ms(100);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(PORTB != 1);
}
for (i = 0; i < 6; i++)
{
PORTB = 3;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(PORTB != 128);
PORTB = 192;
Delay_ms(100);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(PORTB != 1);
}
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
PORTB = 3;
Delay_ms(100);
PORTB = 7;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(PORTB != 128);
}
for (i = 0; i < 6; i++)
{
PORTB = 128;
Delay_ms(100);
PORTB = 192;
Delay_ms(100);
PORTB = 224;
Delay_ms(100);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(PORTB != 1);
}
for (i = 0; i < 6; i++)
{
PORTB = 1;
Delay_ms(100);
PORTB = 3;
Delay_ms(100);
PORTB = 7;
Delay_ms(100);
do
{
PORTB = PORTB<<1;
Delay_ms(100);
}while(PORTB != 128);
PORTB = 128;
Delay_ms(100);
PORTB = 192;
Delay_ms(100);
PORTB = 224;
Delay_ms(100);
do
{
PORTB = PORTB>>1;
Delay_ms(100);
}while(PORTB != 1);
}
for (i = 0; i < 6; i++)
{
PORTB = 0b10000001;
Delay_ms(150);
PORTB = 0b01000010;
Delay_ms(150);
PORTB = 0b00100100;
Delay_ms(150);
PORTB = 0b00011000;
Delay_ms(150);
}
for (i = 0; i < 6; i++)
{
PORTB = 0b00011000;
Delay_ms(150);
PORTB = 0b00100100;
Delay_ms(150);
PORTB = 0b01000010;
Delay_ms(150);
PORTB = 0b10000001;
Delay_ms(150);
}
for (i = 0; i < 6; i++)
{
PORTB = 0b10000001;
Delay_ms(150);
PORTB = 0b01000010;
Delay_ms(150);
PORTB = 0b00100100;
Delay_ms(150);
PORTB = 0b00011000;
Delay_ms(150);
PORTB = 0b00100100;
Delay_ms(150);
PORTB = 0b01000010;
Delay_ms(150);
PORTB = 0b10000001;
Delay_ms(150);
}
for (i = 0; i < 6; i++)
{
PORTB = 0b00000001;
Delay_ms(100);
PORTB = 0b00000010;
Delay_ms(100);
PORTB = 0b00000101;
Delay_ms(100);
PORTB = 0b00001010;
Delay_ms(100);
PORTB = 0b00010100;
Delay_ms(100);
PORTB = 0b00101000;
Delay_ms(100);
PORTB = 0b01010000;
Delay_ms(100);
PORTB = 0b10100000;
Delay_ms(100);
PORTB = 0b01000000;
Delay_ms(100);
PORTB = 0b10000000;
Delay_ms(100);
}
for (i = 0; i < 6; i++)
{
PORTB = 0b00000001;
Delay_ms(100);
PORTB = 0b00000010;
Delay_ms(100);
PORTB = 0b00000101;
Delay_ms(100);
PORTB = 0b00001010;
Delay_ms(100);
PORTB = 0b00010100;
Delay_ms(100);
PORTB = 0b00101000;
Delay_ms(100);
PORTB = 0b01010000;
Delay_ms(100);
PORTB = 0b10100000;
Delay_ms(100);
PORTB = 0b01000000;
Delay_ms(100);
PORTB = 0b10000000;
Delay_ms(100);
PORTB = 0b01000000;
Delay_ms(100);
PORTB = 0b10100000;
Delay_ms(100);
PORTB = 0b01010000;
Delay_ms(100);
PORTB = 0b00101000;
Delay_ms(100);
PORTB = 0b00010100;
Delay_ms(100);
PORTB = 0b00001010;
Delay_ms(100);
PORTB = 0b00000101;
Delay_ms(100);
PORTB = 0b00000010;
Delay_ms(100);
}
for (i = 0; i < 6; i++)
{
PORTB = 0b10000000;
Delay_ms(100);
PORTB = 0b01000000;
Delay_ms(100);
PORTB = 0b10100000;
Delay_ms(100);
PORTB = 0b01010000;
Delay_ms(100);
PORTB = 0b00101000;
Delay_ms(100);
PORTB = 0b00010100;
Delay_ms(100);
PORTB = 0b00001010;
Delay_ms(100);
PORTB = 0b00000101;
Delay_ms(100);
PORTB = 0b00000010;
Delay_ms(100);
PORTB = 0b00000001;
Delay_ms(100);
}
PORTB = 0;
for (i = 0; i < 6; i++)
{
PORTB = ~PORTB;
Delay_ms(200);
}
}while(1);
}
?? ?????? ?????, ???? ????? ?????? ????? ???????? http://www.youtube.com/playlist?list=PL19228A60DD360B81
*MikroC IDE ??? ??? ??? ??????? ???? ??????.
http://www.youtube.com/watch?v=FTgN6MCahac
??? ??? ????? ????? ??????? ???. ?? ?????? ?????.