Sie sind auf Seite 1von 7

/*****************************************************

This program was produced by the


CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date
: 4/24/2011
Author :
Company :
Comments:
Chip type
: ATmega8535
Program type
: Application
Clock frequency
: 8.000000 MHz
Memory model
: Small
External RAM size : 0
Data Stack size
: 128
*****************************************************/
#include <mega16.h>
#include <delay.h>
// Declare your global variables here
unsigned char kalimat[300]="Selamat Datang di Rumah Kami , Semoga Harimu Menyena
ngkan";
unsigned char data[40];
int konvert(unsigned char a);
flash char text[] = {
0x3E, 0x51, 0x49, 0x45, 0x3E,0x00,// 0
0x00, 0x42, 0x7F, 0x40, 0x00,0x00,// 1
0x42, 0x61, 0x51, 0x49, 0x46,0x00,// 2
0x21, 0x41, 0x45, 0x4B, 0x31,0x00,// 3
0x18, 0x14, 0x12, 0x7F, 0x10,0x00,// 4
0x27, 0x45, 0x45, 0x45, 0x39,0x00,// 5
0x3C, 0x4A, 0x49, 0x49, 0x30,0x00,// 6
0x01, 0x71, 0x09, 0x05, 0x03,0x00,// 7
0x36, 0x49, 0x49, 0x49, 0x36,0x00,// 8
0x06, 0x49, 0x49, 0x29, 0x1E,0x00,// 9
0x7E, 0x11, 0x11, 0x11, 0x7E ,0x00,// A
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,// B
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,// C
0x7F, 0x41, 0x41, 0x22, 0x1C, 0x00,// D
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,// E
0x7F, 0x09, 0x09, 0x01, 0x01, 0x00,// F
0x3E, 0x41, 0x41, 0x51, 0x32, 0x00,// G
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,// H
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,// I
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,// J
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,// K
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,// L
0x7F, 0x02, 0x04, 0x02, 0x7F, 0x00,// M
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,// N
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,// O
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,// P
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,// Q
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,// R
0x46, 0x49, 0x49, 0x49, 0x31, 0x00,// S

0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,// T


0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,// U
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,// V
0x7F, 0x20, 0x18, 0x20, 0x7F, 0x00,// W
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,// X
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,// Y
0x61, 0x51, 0x49, 0x45, 0x43, 0x00,// Z
0x20, 0x54, 0x54, 0x54, 0x78, 0x00,// a
0x7F, 0x48, 0x44, 0x44, 0x38, 0x00,// b
0x38, 0x44, 0x44, 0x44, 0x20, 0x00,// c
0x38, 0x44, 0x44, 0x48, 0x7F, 0x00,// d
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,// e
0x08, 0x7E, 0x09, 0x01, 0x02, 0x00,// f
0x08, 0x14, 0x54, 0x54, 0x3C, 0x00,// g
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,// h
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,// i
0x20, 0x40, 0x44, 0x3D, 0x00, 0x00,// j
0x00, 0x7F, 0x10, 0x28, 0x44,0x00,// k
0x00, 0x41, 0x7F, 0x40, 0x00,0x00,// l
0x7C, 0x04, 0x18, 0x04, 0x78,0x00,// m
0x7C, 0x08, 0x04, 0x04, 0x78,0x00,// n
0x38, 0x44, 0x44, 0x44, 0x38,0x00,// o
0x7C, 0x14, 0x14, 0x14, 0x08,0x00,// p
0x08, 0x14, 0x14, 0x18, 0x7C,0x00,// q
0x7C, 0x08, 0x04, 0x04, 0x08,0x00,// r
0x48, 0x54, 0x54, 0x54, 0x20,0x00,// s
0x04, 0x3F, 0x44, 0x40, 0x20,0x00,// t
0x3C, 0x40, 0x40, 0x20, 0x7C,0x00,// u
0x1C, 0x20, 0x40, 0x20, 0x1C,0x00,// v
0x3C, 0x40, 0x30, 0x40, 0x3C,0x00,// w
0x44, 0x28, 0x10, 0x28, 0x44,0x00,// x
0x0C, 0x50, 0x50, 0x50, 0x3C,0x00,// y
0x44, 0x64, 0x54, 0x4C, 0x44,0x00,// z
0x00, 0x36, 0x36, 0x00, 0x00,0x00,// :
0x00, 0x56, 0x36, 0x00, 0x00,0x00,// ;
0x00, 0x08, 0x14, 0x22, 0x41,0x00,// <
0x14, 0x14, 0x14, 0x14, 0x14,0x00,// =
0x41, 0x22, 0x14, 0x08, 0x00,0x00,// >
0x02, 0x01, 0x51, 0x09, 0x06,0x00,// ?
0x32, 0x49, 0x79, 0x41, 0x3E,0x00,// @
0x23, 0x13, 0x08, 0x64, 0x62,0x00,// %
0x36, 0x49, 0x55, 0x22, 0x50,0x00,// &
0x14, 0x7F, 0x14, 0x7F, 0x14,0x00,// #
0x24, 0x2A, 0x7F, 0x2A, 0x12,0x00,// $
0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
int l,m,n,i,x,y,k;
void clock(void)
{PORTB.1=0;PORTB.1=1;}
int konvert(unsigned char a)
{int j;
switch(a)
{
case '0': j=0;break;
case '1': j=6;break;
case '2': j=12;break;
case '3': j=18;break;
case '4': j=24;break;
case '5': j=30;break;
case '6': j=36;break;
case '7': j=42;break;

case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case
case

'8':
'9':
'A':
'B':
'C':
'D':
'E':
'F':
'G':
'H':
'I':
'J':
'K':
'L':
'M':
'N':
'O':
'P':
'Q':
'R':
'S':
'T':
'U':
'V':
'W':
'X':
'Y':
'Z':
'a':
'b':
'c':
'd':
'e':
'f':
'g':
'h':
'i':
'j':
'k':
'l':
'm':
'n':
'o':
'p':
'q':
'r':
's':
't':
'u':
'v':
'w':
'x':
'y':
'z':
':':
';':
'<':
'=':
'>':
'?':

j=48;break;
j=54;break;
j=60;break;
j=66;break;
j=72;break;
j=78;break;
j=84;break;
j=90;break;
j=96;break;
j=102;break;
j=108;break;
j=114;break;
j=120;break;
j=126;break;
j=132;break;
j=138;break;
j=144;break;
j=150;break;
j=156;break;
j=162;break;
j=168;break;
j=174;break;
j=180;break;
j=186;break;
j=192;break;
j=198;break;
j=204;break;
j=210;break;
j=216;break;
j=222;break;
j=228;break;
j=234;break;
j=240;break;
j=246;break;
j=252;break;
j=258;break;
j=264;break;
j=270;break;
j=276;break;
j=282;break;
j=288;break;
j=294;break;
j=300;break;
j=306;break;
j=312;break;
j=318;break;
j=324;break;
j=330;break;
j=336;break;
j=342;break;
j=348;break;
j=354;break;
j=360;break;
j=366;break;
j=372;break;
j=378;break;
j=384;break;
j=390;break;
j=396;break;
j=402;break;

case '@':
case '%':
case '&':
case '#':
case '$':
case ' ':
} return

j=408;break;
j=414;break;
j=420;break;
j=426;break;
j=432;break;
j=438;break;
j;

}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0xFF;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xFF;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;

TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
//PORTC.1=1;
while (1)
{
for(l=0;l<40;l++)
data[l]=0;
m=0;
while(kalimat[m]!=0)
{
i=0;
while(i<6)
{
y=0;l=i;
for(n=m;n>=0;n--)
{
k=konvert(kalimat[n]);
for(x=l;x>=0;x--)
{
data[y]=text[k+x];y++;
if(y==40){goto tampil;}
}
l=5;
}
tampil:
for(l=0;l<5;l++)
{

PORTB.0=1;clock();
for(k=0;k<40;k++)
{
PORTD=~data[k];delay_us(70);PORTD=255;PORTB.0=0;clock();
}
}
i++;
}
m++;
}
// Place your code here
};
}

unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};


unsigned char code dis_code[]={
0x2A,0x1C,0x7F,0x1C,0x2A,0x00,0x00,0x2A,0x1C,0x7F,0x1C,0x2A,0x00,0x00,0x00,0
x41,
0x7F,0x41,0x00,0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x7F,0x08,0x08,0x08,0x7F,0
x00,
0x7C,0x12,0x11,0x12,0x7C,0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00,0x00,0x00,0
x00,
0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x3F,0x40,0x40,0x40,0x3F,0x00,0x7F,0x40,0
x40,
0x40,0x40,0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00,0x41,0x7F,0x41,0x00,0x00,0
x00,
0x2A,0x1C,0x7F,0x1C,0x2A,0x00,0x00,0x2A,0x1C,0x7F,0x1C,0x2A,0x00,0x00,0x00,0
x00,
0x00,0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0
x7F,
0x08,0x04,0x04,0x78,0x00,0x04,0x3F,0x44,0x44,0x00,0x04,0x3F,0x44,0x44,0x00,0
x7C,
0x14,0x14,0x14,0x08,0x00,0x36,0x36,0x00,0x20,0x10,0x08,0x24,0x12,0x08,0x04,0
x02,
0x00,0x44,0x7D,0x40,0x00,0x41,0x7F,0x40,0x00,0x7F,0x08,0x04,0x04,0x78,0x00,0
x20,
0x54,0x54,0x54,0x38,0x00,0x7C,0x04,0x78,0x04,0x78,0x00,0x04,0x3F,0x44,0x44,0
x00,
0x7F,0x08,0x04,0x04,0x78,0x00,0x38,0x54,0x54,0x54,0x18,0x00,0x20,0x54,0x54,0
x54,
0x38,0x00,0x04,0x3F,0x44,0x44,0x00,0x38,0x54,0x54,0x54,0x18,0x00,0x7C,0x08,0
x04,
0x04,0x08,0x00,0x60,0x60,0x00,0x3C,0x40,0x30,0x40,0x3C,0x00,0x38,0x44,0x44,0
x44,
0x38,0x00,0x7C,0x08,0x04,0x04,0x08,0x00,0x38,0x44,0x44,0x28,0x7F,0x00,0x7C,0
x14,
0x14,0x14,0x08,0x00,0x7C,0x08,0x04,0x04,0x08,0x00,0x38,0x54,0x54,0x54,0x18,0
x00,
0x48,0x54,0x54,0x54,0x24,0x00,0x48,0x54,0x54,0x54,0x24,0x00,0x60,0x60,0x00,0
x38,
0x44,0x44,0x44,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x7C,0x04,0x78,0x04,0x78,0
x00,
0x28,0x28,0x28,0x28,0x28,0x00,0x28,0x28,0x28,0x28,0x28,0x00,0x00,0x00,0x00,0
x00};

void delay2ms(void);
void main(void)
{
unsigned int offset=0,dis_p;
unsigned char x,y,scantimes=0;
do
{
for(x=0;x<8;x++)
{
dis_p=x+offset;
if(dis_p>303)dis_p-=304;
if(dis_p==304) {y=0;}
else {y=dis_code[dis_p];}
P0=0;
P1=tab[x];
P0=y;
delay2ms();
}
scantimes++;
if(scantimes>=8)
{
scantimes=0;
offset++;
if(offset>303)offset=0;
}
}
while(1);
}
void delay2ms(void)
{
unsigned char i,j;
for(i=0;i<4;i++)
for(j=0;j<120;j++);

Das könnte Ihnen auch gefallen