pic16F887
I have No problem With Compiling .. i Compiled the Code successfully
I tried Your New Code
Code:
long s1_char_size=23;
char s1[23];
...
.....
const char msg_default[23] = "1234567890"; // 10+13=23
But Also the Same Message Appears After 59 Second
Also the first Code have the same problem After 27 Second
Code:
long s1_char_size=26;
char s1[26];
.....
..........
const char msg_default[26] = "sofie & ilker";
**broken link removed**
Try to run the Project for 5 minites .. If this message didn't Appear with You .. then the problem My Be in MY Computer
Is the Problem In Your Name ("sofie & ilker") Or What
Just joke
pic16F887 with 8Mhz
I got code working.
I'm Using pic16F887 with 8Mhz, using mikroC pro.
Here is code:
#define PIN_ST_CP PORTC.F2 //PIN_C2 // RCLK ----> Pin 12 ST_CP
#define PIN_SH_CP PORTC.F3 //PIN_C3 // SRCLK ---> Pin 11 SH_CP
#define PIN_SER_IN PORTC.F5 //PIN_C5 // SER -----> Pin 14
//***********************columns of hc595**********************************
#define clock PORTB.F0 // PIN_B0 // RCLK ----> Pin 12 ST_CP
#define latch PORTB.F2 // PIN_B2 // SRCLK ---> Pin 11 SH_CP
#define data PORTB.F1 // PIN_B1 // SER -----> Pin 14
char s1[26];
long i;
void HC595_OUT_satir(unsigned char send_data)
{
unsigned char bit_mask;
for (bit_mask=1; bit_mask ;bit_mask <<=1)
{
if((send_data & bit_mask))
data=0;
else
data=1;
clock=0;
delay_us(20);
clock=1;
}
latch=0;
delay_us(50);
latch=1;
}
const char msg_default[30] = "HAPPY BIRTHDAY SUPRA";
const char ascii4[96][6] = {
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
{ 0x00, 0x23, 0x13, 0x08, 0x64, 0x62 }, // %
{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
{ 0x00, 0x00, 0x00, 0x50, 0x30, 0x00 }, // ,
{ 0x00, 0x10, 0x10, 0x10, 0x10, 0x10 }, // -
{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?
{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @
{ 0x00, 0x7E, 0x11, 0x11, 0x11, 0x7E }, // A
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P
{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W
{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [
{ 0x00, 0x02, 0x04, 0x08, 0x10, 0x20 }, // back slash
{ 0x00, 0x00, 0x41, 0x41, 0x7f, 0x00 }, // ]
{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // '
{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
{ 0x00, 0x0C, 0x52, 0x52, 0x52, 0x3E }, // g
{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
{ 0x00, 0x20, 0x40, 0x44, 0x3D, 0x00 }, // j
{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
{ 0x00, 0x7C, 0x14, 0x14, 0x14, 0x08 }, // p
{ 0x00, 0x08, 0x14, 0x14, 0x18, 0x7C }, // q
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x00, 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y
{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z
{ 0x00, 0x00, 0x08, 0x36, 0x41, 0x00 }, // {
{ 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00 }, // |
{ 0x00, 0x00, 0x41, 0x36, 0x08, 0x00 }, // }
{ 0x00, 0x04, 0x02, 0x04, 0x08, 0x04 }, // ~
{ 0x00, 0x00, 0x00, 0x36, 0x00, 0x00 } // ¦
};
void main(){
int char_index;
int col_index;
int x = 0;
int delaycount;
unsigned int startposition;
ANSEL=0;
ANSELH=0;
TRISB=0;
TRISC=0x40;
TRISD=0;
HC595_OUT_satir(0);
PORTC=0;
startposition = 0;
for(i=0; i<7; i++)
s1
= msg_default;
for(i=0; i<sizeof(msg_default); i++)
s1 = msg_default;
delay_ms(100);
while (1)
{
delaycount=4; //-------> acontrol scanning speed here .
while (delaycount)
{
col_index = startposition %6;
char_index = startposition /6;
if (char_index >= sizeof(s1))
{
startposition = 0;
char_index = 0;
col_index = 0;
}
x = s1[char_index];
// 74HC595 ler suruluyor
PIN_SH_CP=0;
PIN_ST_CP=0;
PIN_SER_IN=0;
PIN_SH_CP=1;
delay_us(1000);
PIN_SH_CP=0;
PIN_SER_IN=1;
for (i=0;i<7;i++) // 80 We use one column
{
PIN_ST_CP=1;
delay_us(200);
PIN_ST_CP=0;
delay_us(1000);
PIN_SH_CP=1;
delay_us(1000);
PIN_SH_CP=0;
if (col_index == 5)
{
col_index = 0;
char_index++;
if (char_index >= sizeof(s1))
char_index = 0;
x = s1[char_index];
}
else
{
if ( x < 32)
HC595_OUT_satir(0);
else if( x < 128)
HC595_OUT_satir(ascii4[x-32][col_index]);
col_index++;
}
delay_us(1000); //brightness
HC595_OUT_satir(0);
}
delaycount--;
}
startposition++;
}
}