smsm3650
Member level 2
- Joined
- Apr 25, 2009
- Messages
- 47
- Helped
- 5
- Reputation
- 10
- Reaction score
- 4
- Trophy points
- 1,288
- Activity points
- 1,507
#include <16F877.H>
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_A4, rcv=PIN_A5,RESTART_WDT, ERRORS)
#define PIN_ST_CP PIN_C2 // RCLK ----> Pin 12 ST_CP
#define PIN_SH_CP PIN_C3 // SRCLK ---> Pin 11 SH_CP
#define PIN_SER_IN PIN_C5 // SER -----> Pin 14
//#define PIN_MRS PIN_C1 // PIN 10
//#define PIN_OE PIN_C3 // PIN 13
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
long s1_char_size=41;
char s1[79];
long i;
//***********************sutunlara bağlı hc595**********************************
#define clock PIN_B0 // RCLK ----> Pin 12 ST_CP
#define latch PIN_B2 // SRCLK ---> Pin 11 SH_CP
#define data PIN_B1 // SER -----> Pin 14
void HC595_OUT_satir(unsigned char send_data)
{
unsigned char bit_mask;
for (bit_mask=1; bit_mask ;bit_mask <<=1)
{
// On an AVR you can set the bit directly and i'd use
// "data = (send_data & bit_mask);"
//Else use this if/else ....
if((send_data & bit_mask))
output_high(data);
else
output_low(data);
output_high(clock);
delay_us(1);
output_low(clock);
}
output_high(latch);
delay_us(1);
output_low(latch);
}
//******************************************************************************
void get_line1(void)
{
for(i=0; i<s1_char_size; i++)
{
if(kbhit())
{
s1[i]=getc();
delay_cycles(2);
printf("%C",s1[i]);
delay_us(1);
}
else
i -= 1;
}
}
const char msg_default[] = "Sofie & ilker";
const char ascii1[32][5] = {
{0b00000000, // 0
0b00000000,
0b00000000,
0b00000000,
0b00000000}
{0b00000000, // 1
0b00000000,
0b01011111,
0b00000000,
0b00000000}
{0b00000000, // 2
0b00000111,
0b00000000,
0b00000111,
0b00000000}
{0b00010100, // 3 ("#" iºareti)
0b01111111,
0b00010100,
0b01111111,
0b00010100}
{0b00100100, // 4 ("$" iºareti)
0b00101010,
0b01111111,
0b00101010,
0b00010010}
{0b00100111, // 5 ("%" iºareti)
0b00010101,
0b01101011,
0b01010100,
0b01110010}
{0b00110110, // 6
0b01001001,
0b01010110,
0b00100000,
0b01010000}
{0b00000000, // 7
0b00001011,
0b00000111,
0b00000000,
0b00000000}
{0b00000000, // 8 ( ")" iºareti)
0b00011100,
0b00100010,
0b01000001,
0b00000000}
{0b00000000, // 9 ( "(" iºareti)
0b01000001,
0b00100010,
0b00011100,
0b00000000}
{0b00101010, // 10
0b00011100,
0b01111111,
0b00011100,
0b00101010}
{0b00001000, // 11 ( "+" iºareti)
0b00001000,
0b00111110,
0b00001000,
0b00001000}
{0b00000000, // 12 ( "'" iºareti)
0b01011000,
0b00111000,
0b00000000,
0b00000000}
{0b00001000, // 13 ("-" iºareti)
0b00001000,
0b00001000,
0b00001000,
0b00001000}
{0b00000000, // 14
0b01100000,
0b01100000,
0b00000000,
0b00000000}
{0b00100000, // 15 ("/" iºareti)
0b00010000,
0b00001000,
0b00000100,
0b00000010}
{0b00111110, // 16 ( 0 rakamı )
0b01010001,
0b01001001,
0b01000101,
0b00111110}
{0b00000000, // 17 ( 1 rakamı)
0b01000010,
0b01111111,
0b01000000,
0b00000000}
{0b01110010, // 18 ( 2 rakamı)
0b01001001,
0b01001001,
0b01001001,
0b01000110}
{0b00100010, // 19 ( 3 rakamı)
0b01000001,
0b01001001,
0b01001001,
0b00110110}
{0b00011000, // 20 ( 4 rakamı)
0b00010100,
0b00010010,
0b01111111,
0b00010000}
{0b00100111, // 21 ( 5 rakamı)
0b01000101,
0b01000101,
0b01000101,
0b00111001}
{0b00111100, // 22 ( 6 rakamı)
0b01001010,
0b01001001,
0b01001001,
0b00110000}
{1, 113, 9, 5, 3} // 23
{54, 73, 73, 73, 54} // 24
{6, 73, 73, 41, 30} // 25
{0, 54,54,0,0} // {0, 54, 54,0,0,0}
// 26
{0, 91, 59, 0,0} // {0, 91, 59,0,0,0} // 27
{8, 20, 34, 65,0} // 28
{20, 20, 20, 20, 20} // 29
{65, 34, 20, 8,0} // 30
{2, 1, 81, 9, 6} // 31
};
const char ascii2[32][5] = {
{50, 73, 121, 65, 62} // 0
{124, 18, 17, 18, 124} // 1 A
{65, 127, 73, 73, 54} // 2 B
{62, 65, 65, 65, 34} // 3 C
{65, 127, 65, 65, 62} // 4 D
{127, 73, 73, 65, 65 } // 5 E
{127, 9, 9, 1, 1} // 6
{62, 65, 73, 73, 58} // 7
{127, 8, 8, 8, 127} // 8
{0, 65, 127, 65, 0} // {0, 65, 127, 65,0,0}
// 9
{32, 64, 65, 63, 1} // 10
{127, 8, 20, 34, 65} // 11
{127, 64, 64, 64, 64} // 12
{127, 2, 12, 2, 127} // 13
{127, 2, 4, 8, 127} // 14
{62, 65, 65, 65, 62} // 15
{127, 9, 9, 9, 6} // 16
{62, 65, 81, 33, 94} // 17
{127, 9, 25, 41, 70} // 18
{38, 73, 73, 73, 50} // 19
{1,1,127, 1, 1} // 20
{63, 64, 64, 64, 63} // 21
{7, 24, 96, 24, 7} // 22
{127, 32, 24, 32, 127} // 23
{99, 20, 8, 20, 99} // 24
{3, 4, 120, 4, 3} // 25
{97, 81, 73, 69, 67} // 26
{0, 127, 65, 65,0} // {0, 127, 65, 65,0,0}
// 27
{2, 4, 8, 16, 32} // 28
{0, 65, 65, 127,0} // {0, 65, 65, 127,0,0}
// 29
{4, 2, 1, 2, 4} // 30
{64, 64, 64, 64, 64} // 31
};
const char ascii3[32][5] = { // 0 -- 30 == 31 elements
{0, 0, 7, 11,0} // {0, 7, 11,0,0,0}
// 0
{32, 84, 84, 84, 56} // 1
{127, 40, 68, 68, 56} // 2
{56, 68, 68, 68,0} // 3
{56, 68, 68, 40, 127} // 4
{56, 84, 84, 84, 24} // 5
{8, 126, 9, 9, 2} // 6
{8, 84, 84, 84, 60} // 7
{127, 8, 4, 4, 120} // 8
{0, 68, 125, 64,0} // {0, 68, 125, 64,0,0}
// 9
{32, 64, 68, 61,0} // 10
{127, 16, 40, 68,0} // 11
{0, 65, 127, 64, 0} // {0, 65, 127, 64,0,0}
// 12
{124, 4, 120, 4, 120} // 13
{124, 8, 4, 4, 120} // 14
{56, 68, 68, 68, 56} // 15
{124, 20, 20, 20, 8} // 16
{8, 20, 20, 20, 124} // 17
{124, 8, 4, 4, 8} // 18
{72, 84, 84, 84, 36} // 19
{4, 63, 68, 68,0} // 20
{60, 64, 64, 32, 124} // 21
{28, 32, 64, 32, 28} // 22
{60, 64, 48, 64, 60} // 23
{68, 40, 16, 40, 68} // 24
{12,80, 80, 80, 60} // 25
{68, 100, 84, 76, 68} // 26
{0, 8, 54, 65,0} // {0, 8, 54, 65,0,0}
// 27
{0,0,119,0,0} // {0, 119,0,0,0,0} // 28
{0, 65, 54, 8,0} // {0, 65, 54, 8,0,0}
// 29
{2,1,2,4,2} // 30
{0b01111101, // ö harfi
0b10000010,
0b10000010,
0b10000010,
0b01111101,
}
};
void main(void)
{
int char_index;
int col_index;
int x = 0;
long MSD, LSD;
int delaycount;
int16 startposition;
set_tris_b(0);
set_tris_c(0x40);
set_tris_d(0);
HC595_OUT_satir(0);
output_c(0);
startposition = 0;
for(i=0; i<79; i++)
s1[i] = 46;
for(i=0; i<sizeof(msg_default); i++)
s1[i] = msg_default[i];
delay_ms(100);
do
{
if(!input(PIN_E1)) //BUTONA BASILDI MI?
{
do
{
delay_cycles(2);
printf("\f\r\n");
printf("\f\r\n Kac karakter.(0--99):");
MSD=getc();
delay_cycles(2);
printf("%C",MSD);
delay_us(1);
}while(!isamoung(MSD,"0123456789"));
do
{
LSD=getc();
delay_cycles(2);
printf("%C",LSD);
delay_us(1);
}while(!isamoung(LSD,"0123456789"));
s1_char_size = 10*(MSD-48) + (LSD-48);
delay_cycles(2);
printf("\r\n\n %lu karakter girin: ",s1_char_size);
get_line1();
}
delaycount=2; //-------> tarama hızı burdan ayarlanıyo..
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
output_high(PIN_SH_CP);
output_high(PIN_ST_CP);
output_high(PIN_SER_IN);
output_low(PIN_SH_CP);
delay_us(1);
output_high(PIN_SH_CP);
output_low(PIN_SER_IN);
for (i=0;i<80;i++) // 80 tane kolon kullanıyoruz
{
//port_b=0;
output_low(PIN_ST_CP);
delay_us(200);
output_high(PIN_ST_CP);
delay_us(1);
output_low(PIN_SH_CP);
delay_us(1);
output_high(PIN_SH_CP);
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 < 64)
HC595_OUT_satir(ascii1[x-32][col_index]);
else if( x < 96 )
HC595_OUT_satir(ascii2[x-64][col_index]);
else if( x < 128)
HC595_OUT_satir(ascii3[x-96][col_index]);
col_index++;
}
delay_us(120);
HC595_OUT_satir(0);
}
delaycount--;
}
startposition++;
} while(true);
}
smsm3650 said:Another Question .. what does the Extention PBP mean ,, what is this Language or what is it's Compiler ..
What can We Do ???
smsm3650 said:i'm Not Student ... i'm Communcation Eng.
But 452 more Expinsive than 877a .. When we need this project in Industerial perpuse it will be expinsive
Pleas help me using 877a to Get Moving massage
#include <16F877.H>
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_A4, rcv=PIN_A5,RESTART_WDT, ERRORS)
#define PIN_ST_CP PIN_C2 // RCLK ----> Pin 12 ST_CP
#define PIN_SH_CP PIN_C3 // SRCLK ---> Pin 11 SH_CP
#define PIN_SER_IN PIN_C5 // SER -----> Pin 14
//#define PIN_MRS PIN_C1 // PIN 10
//#define PIN_OE PIN_C3 // PIN 13
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
long s1_char_size=26;
char s1[26];
long i;
//***********************sutunlara bağlı hc595**********************************
#define clock PIN_B0 // RCLK ----> Pin 12 ST_CP
#define latch PIN_B2 // SRCLK ---> Pin 11 SH_CP
#define data PIN_B1 // SER -----> Pin 14
void HC595_OUT_satir(unsigned char send_data)
{
unsigned char bit_mask;
for (bit_mask=1; bit_mask ;bit_mask <<=1)
{
// On an AVR you can set the bit directly and i'd use
// "data = (send_data & bit_mask);"
//Else use this if/else ....
if((send_data & bit_mask))
output_high(data);
else
output_low(data);
output_high(clock);
delay_us(1);
output_low(clock);
}
output_high(latch);
delay_us(1);
output_low(latch);
}
//******************************************************************************
void get_line1(void)
{
for(i=0; i<s1_char_size; i++)
{
if(kbhit())
{
s1[i]=getc();
delay_cycles(2);
printf("%C",s1[i]);
delay_us(1);
}
else
i -= 1;
}
}
const char msg_default[26] = "sofie & ilker"; // Yazdığınız cümle 80 karakterden küçük olduğu için kalan alan noktalar ile doldurulur.
/*"sofie & ilker" -> 13 karakter 26 - 13 = 13 boºluk*/
const char ascii1[32][5] = {
{0b00000000, // 0
0b00000000,
0b00000000,
0b00000000,
0b00000000}
{0b00000000, // 1
0b00000000,
0b01011111,
0b00000000,
0b00000000}
{0b00000000, // 2
0b00000111,
0b00000000,
0b00000111,
0b00000000}
{0b00010100, // 3 ("#" iºareti)
0b01111111,
0b00010100,
0b01111111,
0b00010100}
{0b00100100, // 4 ("$" iºareti)
0b00101010,
0b01111111,
0b00101010,
0b00010010}
{0b00100111, // 5 ("%" iºareti)
0b00010101,
0b01101011,
0b01010100,
0b01110010}
{0b00110110, // 6
0b01001001,
0b01010110,
0b00100000,
0b01010000}
{0b00000000, // 7
0b00001011,
0b00000111,
0b00000000,
0b00000000}
{0b00000000, // 8 ( ")" iºareti)
0b00011100,
0b00100010,
0b01000001,
0b00000000}
{0b00000000, // 9 ( "(" iºareti)
0b01000001,
0b00100010,
0b00011100,
0b00000000}
{0b00101010, // 10
0b00011100,
0b01111111,
0b00011100,
0b00101010}
{0b00001000, // 11 ( "+" iºareti)
0b00001000,
0b00111110,
0b00001000,
0b00001000}
{0b00000000, // 12 ( "'" iºareti)
0b01011000,
0b00111000,
0b00000000,
0b00000000}
{0b00001000, // 13 ("-" iºareti)
0b00001000,
0b00001000,
0b00001000,
0b00001000}
{0b00000000, // 14
0b01100000,
0b01100000,
0b00000000,
0b00000000}
{0b00100000, // 15 ("/" iºareti)
0b00010000,
0b00001000,
0b00000100,
0b00000010}
{0b00111110, // 16 ( 0 rakamı )
0b01010001,
0b01001001,
0b01000101,
0b00111110}
{0b00000000, // 17 ( 1 rakamı)
0b01000010,
0b01111111,
0b01000000,
0b00000000}
{0b01110010, // 18 ( 2 rakamı)
0b01001001,
0b01001001,
0b01001001,
0b01000110}
{0b00100010, // 19 ( 3 rakamı)
0b01000001,
0b01001001,
0b01001001,
0b00110110}
{0b00011000, // 20 ( 4 rakamı)
0b00010100,
0b00010010,
0b01111111,
0b00010000}
{0b00100111, // 21 ( 5 rakamı)
0b01000101,
0b01000101,
0b01000101,
0b00111001}
{0b00111100, // 22 ( 6 rakamı)
0b01001010,
0b01001001,
0b01001001,
0b00110000}
{1, 113, 9, 5, 3} // 23
{54, 73, 73, 73, 54} // 24
{6, 73, 73, 41, 30} // 25
{0, 54,54,0,0} // {0, 54, 54,0,0,0}
// 26
{0, 91, 59, 0,0} // {0, 91, 59,0,0,0} // 27
{8, 20, 34, 65,0} // 28
{20, 20, 20, 20, 20} // 29
{65, 34, 20, 8,0} // 30
{2, 1, 81, 9, 6} // 31
};
const char ascii2[32][5] = {
{50, 73, 121, 65, 62} // 0
{124, 18, 17, 18, 124} // 1 A
{65, 127, 73, 73, 54} // 2 B
{62, 65, 65, 65, 34} // 3 C
{65, 127, 65, 65, 62} // 4 D
{127, 73, 73, 65, 65 } // 5 E
{127, 9, 9, 1, 1} // 6
{62, 65, 73, 73, 58} // 7
{127, 8, 8, 8, 127} // 8
{0, 65, 127, 65, 0} // {0, 65, 127, 65,0,0}
// 9
{32, 64, 65, 63, 1} // 10
{127, 8, 20, 34, 65} // 11
{127, 64, 64, 64, 64} // 12
{127, 2, 12, 2, 127} // 13
{127, 2, 4, 8, 127} // 14
{62, 65, 65, 65, 62} // 15
{127, 9, 9, 9, 6} // 16
{62, 65, 81, 33, 94} // 17
{127, 9, 25, 41, 70} // 18
{38, 73, 73, 73, 50} // 19
{1,1,127, 1, 1} // 20
{63, 64, 64, 64, 63} // 21
{7, 24, 96, 24, 7} // 22
{127, 32, 24, 32, 127} // 23
{99, 20, 8, 20, 99} // 24
{3, 4, 120, 4, 3} // 25
{97, 81, 73, 69, 67} // 26
{0, 127, 65, 65,0} // {0, 127, 65, 65,0,0}
// 27
{2, 4, 8, 16, 32} // 28
{0, 65, 65, 127,0} // {0, 65, 65, 127,0,0}
// 29
{4, 2, 1, 2, 4} // 30
{64, 64, 64, 64, 64} // 31
};
const char ascii3[32][5] = { // 0 -- 30 == 31 elements
{0, 0, 7, 11,0} // {0, 7, 11,0,0,0}
// 0
{32, 84, 84, 84, 56} // 1
{127, 40, 68, 68, 56} // 2
{56, 68, 68, 68,0} // 3
{56, 68, 68, 40, 127} // 4
{56, 84, 84, 84, 24} // 5
{8, 126, 9, 9, 2} // 6
{8, 84, 84, 84, 60} // 7
{127, 8, 4, 4, 120} // 8
{0, 68, 125, 64,0} // {0, 68, 125, 64,0,0}
// 9
{32, 64, 68, 61,0} // 10
{127, 16, 40, 68,0} // 11
{0, 65, 127, 64, 0} // {0, 65, 127, 64,0,0}
// 12
{124, 4, 120, 4, 120} // 13
{124, 8, 4, 4, 120} // 14
{56, 68, 68, 68, 56} // 15
{124, 20, 20, 20, 8} // 16
{8, 20, 20, 20, 124} // 17
{124, 8, 4, 4, 8} // 18
{72, 84, 84, 84, 36} // 19
{4, 63, 68, 68,0} // 20
{60, 64, 64, 32, 124} // 21
{28, 32, 64, 32, 28} // 22
{60, 64, 48, 64, 60} // 23
{68, 40, 16, 40, 68} // 24
{12,80, 80, 80, 60} // 25
{68, 100, 84, 76, 68} // 26
{0, 8, 54, 65,0} // {0, 8, 54, 65,0,0}
// 27
{0,0,119,0,0} // {0, 119,0,0,0,0} // 28
{0, 65, 54, 8,0} // {0, 65, 54, 8,0,0}
// 29
{2,1,2,4,2} // 30
{0b01111101, // ö harfi
0b10000010,
0b10000010,
0b10000010,
0b01111101,
}
};
void main(void)
{
int char_index;
int col_index;
int x = 0;
long MSD, LSD;
int delaycount;
int16 startposition;
set_tris_b(0);
set_tris_c(0x40);
set_tris_d(0);
HC595_OUT_satir(0);
output_c(0);
startposition = 0;
//for(i=0; i<79; i++)
//s1[i] = 46;
for(i=0; i<sizeof(msg_default); i++)
s1[i] = msg_default[i]; i=0;
delay_ms(100);
do
{
if(!input(PIN_E1)) //BUTONA BASILDI MI?
{
do
{
delay_cycles(2);
printf("\f\r\n");
printf("\f\r\n Kac karakter.(0--99):");
MSD=getc();
delay_cycles(2);
printf("%C",MSD);
delay_us(1);
}while(!isamoung(MSD,"0123456789"));
do
{
LSD=getc();
delay_cycles(2);
printf("%C",LSD);
delay_us(1);
}while(!isamoung(LSD,"0123456789"));
s1_char_size = 10*(MSD-48) + (LSD-48);
delay_cycles(2);
printf("\r\n\n %lu karakter girin: ",s1_char_size);
get_line1();
}
delaycount=2; //-------> tarama hızı burdan ayarlanıyo..
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
output_high(PIN_SH_CP);
output_high(PIN_ST_CP);
output_high(PIN_SER_IN);
output_low(PIN_SH_CP);
delay_us(1);
output_high(PIN_SH_CP);
output_low(PIN_SER_IN);
for (i=0;i<80;i++) // 80 tane kolon kullanıyoruz
{
//port_b=0;
output_low(PIN_ST_CP);
delay_us(200);
output_high(PIN_ST_CP);
delay_us(1);
output_low(PIN_SH_CP);
delay_us(1);
output_high(PIN_SH_CP);
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 < 64)
HC595_OUT_satir(ascii1[x-32][col_index]);
else if( x < 96 )
HC595_OUT_satir(ascii2[x-64][col_index]);
else if( x < 128)
HC595_OUT_satir(ascii3[x-96][col_index]);
col_index++;
}
delay_us(120);
HC595_OUT_satir(0);
}
delaycount--;
}
startposition++;
} while(true);
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?