Lampiran
-
Upload
dwisaputra -
Category
Documents
-
view
23 -
download
0
description
Transcript of Lampiran
-
63
LAMPIRAN
-
64
1. Karakter Huruf, Angka dan Simbol Pada Propeller Display
-
65
-
66
-
67
-
68
2. Program Propeller Display
2.1. Mikrokontroler ATmega16 (1)
a) mikro1.h
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 08/10/2012
Author : DutchA
Company : RnB
Comments:
Chip type : ATmega16L
Program type : Application
Clock frequency : 12,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include
#include
#include
#include
#include
#include
#include
#define baris1 PORTB
#define baris2 PORTA
unsigned int panjang_teks1,panjang_teks2,geser,col=50;
unsigned char text1[50],data_bit1[250];
unsigned char text2[50],data_bit2[250];
// unsigned f;
// void clock(unsigned int g) // d= delay(a)
// {
// unsigned int x;
// for(x=0;x
-
69
void isi_bitBawah()
{
unsigned int a,c,x,i,digit;
col = panjang_teks2 * 6;
c = 0;
for(digit=0;digit
-
70
{ scan_code();
if (apret==0x66){cnt_addr=0;}
if (apret==0x83){goto next2;}
datascan2[cnt_addr]=kbd; }
next2:
strcpy (text2, datascan2);
panjang_teks2 = strlen(text2);
isi_bitBawah();
delay_ms(50);
}
void showMenu()
{
/*
up :(apret==0x03)
down :(apret==0x0B)
ok :(apret==0x83)
cancel:(apret==0x0A)
*/
menu01:
delay_ms(20);
PORTC.4=1;PORTC.5=0;PORTC.6=0;PORTC.7=0;
scan_code();
if (apret==0x83){ //ok
simpan_default();
goto lanjut;
}
if (apret==0x0B){
goto menu02; //down
}
goto menu01;
menu02:
delay_ms(20);
scan_code();
if (apret==0x83) { //ok
goto menu03;
}
if (apret==0x03) { //up
goto menu01;
}
goto menu02;
menu03:
PORTC.4=1;PORTC.5=1;PORTC.6=0;PORTC.7=0;
scan_code();
if (apret==0x83) { //ok
simpan_atas();
delay_ms(800);
goto menu04;
}
if (apret==0x0B) { //down
goto menu04;
}
if (apret==0x0A){
goto menu01; //cancel
}
goto menu03;
menu04:
scan_code();
if (apret==0x83) { //ok
simpan_bawah();
delay_ms(800);
goto menu05;
}
if (apret==0x03) { //up
goto menu03;
}
if (apret==0x0B) { //down
-
71
goto menu05;
}
if (apret==0x0A){
goto menu01; //cancel
}
goto menu04;
menu05:
PORTC.4=1;PORTC.5=1;PORTC.6=0;PORTC.7=0;
scan_code();
if (apret==0x83) { //ok
delay_ms(800);
goto lanjut;
}
if (apret==0x03) { //up
goto menu04;
}
if (apret==0x0A){
goto menu01; //cancel
}
goto menu05;
lanjut:
}
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
tampil(1,3); //tampil depan
delay_ms(20);
tampil(1,3); //tampil belakang
}
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
// INT2: Off
GICR|=0x40;
MCUCR=0x03;
-
72
MCUCSR=0x00;
GIFR=0x40;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
showMenu();
#asm("sei")
while (1)
{
PORTC.4=1;PORTC.5=0;PORTC.6=0;PORTC.7=1; //LED hijau garis tepi
};
}
b) Led_Atas.h const char LedAtas[] ={ 0,0,0,0,0, 0,0,0,0,0,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0x00, 0x00, 0x5F, 0x00, 0x00,// !
0x00, 0x07, 0x00, 0x07, 0x00,// "
0x14, 0x7F, 0x14, 0x7F, 0x14,// #
0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
0x23, 0x13, 0x08, 0x64, 0x62,// %
0x36, 0x49, 0x55, 0x22, 0x50,// &
0x00, 0x05, 0x03, 0x00, 0x00,// '
0x00, 0x1C, 0x22, 0x41, 0x00,// (
0x00, 0x41, 0x22, 0x1C, 0x00,// )
0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
0x08, 0x08, 0x3E, 0x08, 0x08,// +
0x00, 0x50, 0x30, 0x00, 0x00,// ,
0x08, 0x08, 0x08, 0x08, 0x08,// -
0x00, 0x30, 0x30, 0x00, 0x00,// .
0x20, 0x10, 0x08, 0x04, 0x02,// /
0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
0x00, 0x42, 0x7F, 0x40, 0x00,// 1
-
73
0x42, 0x61, 0x51, 0x49, 0x46,// 2
0x21, 0x41, 0x45, 0x4B, 0x31,// 3
0x18, 0x14, 0x12, 0x7F, 0x10,// 4
0x27, 0x45, 0x45, 0x45, 0x39,// 5
0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
0x01, 0x71, 0x09, 0x05, 0x03,// 7
0x36, 0x49, 0x49, 0x49, 0x36,// 8
0x06, 0x49, 0x49, 0x29, 0x1E,// 9
0x00, 0x36, 0x36, 0x00, 0x00,// :
0x00, 0x56, 0x36, 0x00, 0x00,// ;
0x00, 0x08, 0x14, 0x22, 0x41,// <
0x14, 0x14, 0x14, 0x14, 0x14,// =
0x41, 0x22, 0x14, 0x08, 0x00,// >
0x02, 0x01, 0x51, 0x09, 0x06,// ?
0x32, 0x49, 0x79, 0x41, 0x3E,// @
0x7E, 0x11, 0x11, 0x11, 0x7E,// A
0x7F, 0x49, 0x49, 0x49, 0x36,// B
0x3E, 0x41, 0x41, 0x41, 0x22,// C
0x7F, 0x41, 0x41, 0x22, 0x1C,// D
0x7F, 0x49, 0x49, 0x49, 0x41,// E
0x7F, 0x09, 0x09, 0x01, 0x01,// F
0x3E, 0x41, 0x41, 0x51, 0x32,// G
0x7F, 0x08, 0x08, 0x08, 0x7F,// H
0x00, 0x41, 0x7F, 0x41, 0x00,// I
0x20, 0x40, 0x41, 0x3F, 0x01,// J
0x7F, 0x08, 0x14, 0x22, 0x41,// K
0x7F, 0x40, 0x40, 0x40, 0x40,// L
0x7F, 0x02, 0x04, 0x02, 0x7F,// M
0x7F, 0x04, 0x08, 0x10, 0x7F,// N
0x3E, 0x41, 0x41, 0x41, 0x3E,// O
0x7F, 0x09, 0x09, 0x09, 0x06,// P
0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
0x7F, 0x09, 0x19, 0x29, 0x46,// R
0x46, 0x49, 0x49, 0x49, 0x31,// S
0x01, 0x01, 0x7F, 0x01, 0x01,// T
0x3F, 0x40, 0x40, 0x40, 0x3F,// U
0x1F, 0x20, 0x40, 0x20, 0x1F,// V
0x7F, 0x20, 0x18, 0x20, 0x7F,// W
0x63, 0x14, 0x08, 0x14, 0x63,// X
0x03, 0x04, 0x78, 0x04, 0x03,// Y
0x61, 0x51, 0x49, 0x45, 0x43,// Z
0x00, 0x00, 0x7F, 0x41, 0x41,// [
0x02, 0x04, 0x08, 0x10, 0x20,// "\"
0x41, 0x41, 0x7F, 0x00, 0x00,// ]
0x04, 0x02, 0x01, 0x02, 0x04,// ^
0x40, 0x40, 0x40, 0x40, 0x40,// _
0x00, 0x01, 0x02, 0x04, 0x00,// `
0x20, 0x54, 0x54, 0x54, 0x78,// a
0x7F, 0x48, 0x44, 0x44, 0x38,// b
0x38, 0x44, 0x44, 0x44, 0x20,// c
0x38, 0x44, 0x44, 0x48, 0x7F,// d
0x38, 0x54, 0x54, 0x54, 0x18,// e
0x08, 0x7E, 0x09, 0x01, 0x02,// f
0x08, 0x14, 0x54, 0x54, 0x3C,// g
0x7F, 0x08, 0x04, 0x04, 0x78,// h
0x00, 0x44, 0x7D, 0x40, 0x00,// i
0x20, 0x40, 0x44, 0x3D, 0x00,// j
0x00, 0x7F, 0x10, 0x28, 0x44,// k
0x00, 0x41, 0x7F, 0x40, 0x00,// l
0x7C, 0x04, 0x18, 0x04, 0x78,// m
0x7C, 0x08, 0x04, 0x04, 0x78,// n
0x38, 0x44, 0x44, 0x44, 0x38,// o
0x7C, 0x14, 0x14, 0x14, 0x08,// p
0x08, 0x14, 0x14, 0x18, 0x7C,// q
0x7C, 0x08, 0x04, 0x04, 0x08,// r
0x48, 0x54, 0x54, 0x54, 0x20,// s
0x04, 0x3F, 0x44, 0x40, 0x20,// t
0x3C, 0x40, 0x40, 0x20, 0x7C,// u
0x1C, 0x20, 0x40, 0x20, 0x1C,// v
0x3C, 0x40, 0x30, 0x40, 0x3C,// w
0x44, 0x28, 0x10, 0x28, 0x44,// x
-
74
0x0C, 0x50, 0x50, 0x50, 0x3C,// y
0x44, 0x64, 0x54, 0x4C, 0x44,// z
0x00, 0x08, 0x36, 0x41, 0x00,// {
0x00, 0x00, 0x7F, 0x00, 0x00,// |
0x00, 0x41, 0x36, 0x08, 0x00,// }
0x02, 0x01, 0x02, 0x04, 0x02 // ~
};
c) Led_Bawah.h
const char LedBawah[] ={ 0,0,0,0,0, 0,0,0,0,0,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 ,
0x00, 0x00, 0x5F, 0x00, 0x00,// !
0x00, 0x07, 0x00, 0x07, 0x00,// "
0x14, 0x7F, 0x14, 0x7F, 0x14,// #
0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
0x23, 0x13, 0x08, 0x64, 0x62,// %
0x36, 0x49, 0x55, 0x22, 0x50,// &
0x00, 0x05, 0x03, 0x00, 0x00,// '
0x00, 0x1C, 0x22, 0x41, 0x00,// (
0x00, 0x41, 0x22, 0x1C, 0x00,// )
0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
0x08, 0x08, 0x3E, 0x08, 0x08,// +
0x00, 0x50, 0x30, 0x00, 0x00,// ,
0x08, 0x08, 0x08, 0x08, 0x08,// -
0x00, 0x30, 0x30, 0x00, 0x00,// .
0x20, 0x10, 0x08, 0x04, 0x02,// /
0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
0x00, 0x42, 0x7F, 0x40, 0x00,// 1
0x42, 0x61, 0x51, 0x49, 0x46,// 2
0x21, 0x41, 0x45, 0x4B, 0x31,// 3
0x18, 0x14, 0x12, 0x7F, 0x10,// 4
0x27, 0x45, 0x45, 0x45, 0x39,// 5
0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
0x01, 0x71, 0x09, 0x05, 0x03,// 7
0x36, 0x49, 0x49, 0x49, 0x36,// 8
0x06, 0x49, 0x49, 0x29, 0x1E,// 9
0x00, 0x36, 0x36, 0x00, 0x00,// :
0x00, 0x56, 0x36, 0x00, 0x00,// ;
-
75
0x00, 0x08, 0x14, 0x22, 0x41,// <
0x14, 0x14, 0x14, 0x14, 0x14,// =
0x41, 0x22, 0x14, 0x08, 0x00,// >
0x02, 0x01, 0x51, 0x09, 0x06,// ?
0x32, 0x49, 0x79, 0x41, 0x3E,// @
0x7E, 0x11, 0x11, 0x11, 0x7E,// A
0x7F, 0x49, 0x49, 0x49, 0x36,// B
0x3E, 0x41, 0x41, 0x41, 0x22,// C
0x7F, 0x41, 0x41, 0x22, 0x1C,// D
0x7F, 0x49, 0x49, 0x49, 0x41,// E
0x7F, 0x09, 0x09, 0x01, 0x01,// F
0x3E, 0x41, 0x41, 0x51, 0x32,// G
0x7F, 0x08, 0x08, 0x08, 0x7F,// H
0x00, 0x41, 0x7F, 0x41, 0x00,// I
0x20, 0x40, 0x41, 0x3F, 0x01,// J
0x7F, 0x08, 0x14, 0x22, 0x41,// K
0x7F, 0x40, 0x40, 0x40, 0x40,// L
0x7F, 0x02, 0x04, 0x02, 0x7F,// M
0x7F, 0x04, 0x08, 0x10, 0x7F,// N
0x3E, 0x41, 0x41, 0x41, 0x3E,// O
0x7F, 0x09, 0x09, 0x09, 0x06,// P
0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
0x7F, 0x09, 0x19, 0x29, 0x46,// R
0x46, 0x49, 0x49, 0x49, 0x31,// S
0x01, 0x01, 0x7F, 0x01, 0x01,// T
0x3F, 0x40, 0x40, 0x40, 0x3F,// U
0x1F, 0x20, 0x40, 0x20, 0x1F,// V
0x7F, 0x20, 0x18, 0x20, 0x7F,// W
0x63, 0x14, 0x08, 0x14, 0x63,// X
0x03, 0x04, 0x78, 0x04, 0x03,// Y
0x61, 0x51, 0x49, 0x45, 0x43,// Z
0x00, 0x00, 0x7F, 0x41, 0x41,// [
0x02, 0x04, 0x08, 0x10, 0x20,// "\"
0x41, 0x41, 0x7F, 0x00, 0x00,// ]
0x04, 0x02, 0x01, 0x02, 0x04,// ^
0x40, 0x40, 0x40, 0x40, 0x40,// _
0x00, 0x01, 0x02, 0x04, 0x00,// `
0x20, 0x54, 0x54, 0x54, 0x78,// a
0x7F, 0x48, 0x44, 0x44, 0x38,// b
0x38, 0x44, 0x44, 0x44, 0x20,// c
0x38, 0x44, 0x44, 0x48, 0x7F,// d
0x38, 0x54, 0x54, 0x54, 0x18,// e
0x08, 0x7E, 0x09, 0x01, 0x02,// f
0x08, 0x14, 0x54, 0x54, 0x3C,// g
0x7F, 0x08, 0x04, 0x04, 0x78,// h
0x00, 0x44, 0x7D, 0x40, 0x00,// i
0x20, 0x40, 0x44, 0x3D, 0x00,// j
0x00, 0x7F, 0x10, 0x28, 0x44,// k
0x00, 0x41, 0x7F, 0x40, 0x00,// l
0x7C, 0x04, 0x18, 0x04, 0x78,// m
0x7C, 0x08, 0x04, 0x04, 0x78,// n
0x38, 0x44, 0x44, 0x44, 0x38,// o
0x7C, 0x14, 0x14, 0x14, 0x08,// p
0x08, 0x14, 0x14, 0x18, 0x7C,// q
0x7C, 0x08, 0x04, 0x04, 0x08,// r
0x48, 0x54, 0x54, 0x54, 0x20,// s
0x04, 0x3F, 0x44, 0x40, 0x20,// t
0x3C, 0x40, 0x40, 0x20, 0x7C,// u
0x1C, 0x20, 0x40, 0x20, 0x1C,// v
0x3C, 0x40, 0x30, 0x40, 0x3C,// w
0x44, 0x28, 0x10, 0x28, 0x44,// x
0x0C, 0x50, 0x50, 0x50, 0x3C,// y
0x44, 0x64, 0x54, 0x4C, 0x44,// z
0x00, 0x08, 0x36, 0x41, 0x00,// {
0x00, 0x00, 0x7F, 0x00, 0x00,// |
0x00, 0x41, 0x36, 0x08, 0x00,// }
0x02, 0x01, 0x02, 0x04, 0x02 // ~
};
-
76
d) scan_code.h
#define indat PINC.0
#define otdat PORTC.0
#define inclk PINC.1
#define otclk PORTC.1
char Baca_data_ps2(void)
{
char data = 0x00, dt = 0x01;
int i=0;
otclk=1;
otdat=1;
delay_ms(150);
while (inclk==1);
delay_us(60);
while (inclk==0); // start bit
for (i=0; i < 8; i++)
{
while (inclk==1); //ketika clock "1"
if (indat==1) //dan jika data "1"
{ data = data | dt; } //maka bitwise or data=0x00 dan
dt=0x01
while (inclk==0); //ketika clock "0",
dt = dt
-
77
if (apret==0x4e){kbd='-';} if (apret==0x55){kbd='=';} if
(apret==0x54){kbd='[';}
if (apret==0x5b){kbd=']';} if (apret==0x4c){kbd=';';} if
(apret==0x52){kbd=',';}
if (apret==0x29){kbd=' ';} if (apret==0x41){kbd=',';} if
(apret==0x49){kbd='.';}
if (apret==0x4a){kbd='/';} if (apret==0x0e){kbd='~';} if
(apret==0x7b){kbd='-';}
if (apret==0x79){kbd='+';} if (apret==0xe0){kbd='?';} if
(apret==0x7c){kbd='';}
// if (apret==0x76){} //esc
// if (apret==0x0d){} //tab
// if (apret==0x5a){} //enter
// if (apret==0x66){} //backspace
//shift
if (apret==0x12){kbd='';flag=1;}
//huruf besar
if ((flag==1)&(apret==0x1c)) {kbd='A';flag=0;} if
((flag==1)&(apret==0x32)) {kbd='B';flag=0;}
if ((flag==1)&(apret==0x21)) {kbd='C';flag=0;} if
((flag==1)&(apret==0x23)) {kbd='D';flag=0;}
if ((flag==1)&(apret==0x24)) {kbd='E';flag=0;} if
((flag==1)&(apret==0x2b)) {kbd='F';flag=0;}
if ((flag==1)&(apret==0x34)) {kbd='G';flag=0;} if
((flag==1)&(apret==0x33)) {kbd='H';flag=0;}
if ((flag==1)&(apret==0x43)) {kbd='I';flag=0;} if
((flag==1)&(apret==0x3b)) {kbd='J';flag=0;}
if ((flag==1)&(apret==0x42)) {kbd='K';flag=0;} if
((flag==1)&(apret==0x4b)) {kbd='L';flag=0;}
if ((flag==1)&(apret==0x3a)) {kbd='M';flag=0;} if
((flag==1)&(apret==0x31)) {kbd='N';flag=0;}
if ((flag==1)&(apret==0x44)) {kbd='O';flag=0;} if
((flag==1)&(apret==0x4d)) {kbd='P';flag=0;}
if ((flag==1)&(apret==0x15)) {kbd='Q';flag=0;} if
((flag==1)&(apret==0x2d)) {kbd='R';flag=0;}
if ((flag==1)&(apret==0x1b)) {kbd='S';flag=0;} if
((flag==1)&(apret==0x2c)) {kbd='T';flag=0;}
if ((flag==1)&(apret==0x3c)) {kbd='U';flag=0;} if
((flag==1)&(apret==0x2a)) {kbd='V';flag=0;}
if ((flag==1)&(apret==0x1d)) {kbd='W';flag=0;} if
((flag==1)&(apret==0x22)) {kbd='X';flag=0;}
if ((flag==1)&(apret==0x35)) {kbd='Y';flag=0;} if
((flag==1)&(apret==0x1a)) {kbd='Z';flag=0;}
//simbol dengan shift
if ((flag==1)&(apret==0x16)) {kbd='!';flag=0;} if
((flag==1)&(apret==0x1e)) {kbd='@';flag=0;}
if ((flag==1)&(apret==0x26)) {kbd='#';flag=0;} if
((flag==1)&(apret==0x25)) {kbd='$';flag=0;}
if ((flag==1)&(apret==0x2e)) {kbd='%';flag=0;} if
((flag==1)&(apret==0x36)) {kbd='^';flag=0;}
if ((flag==1)&(apret==0x3d)) {kbd='&';flag=0;} if
((flag==1)&(apret==0x3e)) {kbd='*';flag=0;}
if ((flag==1)&(apret==0x46)) {kbd='(';flag=0;} if
((flag==1)&(apret==0x45)) {kbd=')';flag=0;}
if ((flag==1)&(apret==0x41)) {kbd='';flag=0;}
if ((flag==1)&(apret==0x4a)) {kbd='?';flag=0;} if
((flag==1)&(apret==0x55)) {kbd='+';flag=0;}
if ((flag==1)&(apret==0x5d)) {kbd='|';flag=0;} if
((flag==1)&(apret==0x4e)) {kbd='_';flag=0;}
if ((flag==1)&(apret==0x52)) {kbd='"';flag=0;} if
((flag==1)&(apret==0x4c)) {kbd=':';flag=0;}
if ((flag==1)&(apret==0x54)) {kbd='{';flag=0;} if
((flag==1)&(apret==0x5b)) {kbd='}';flag=0;}
delay_us(50);
}
-
78
2.2. Mikrokontroler ATmega16 (2)
a) mikro2.h
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 25/06/2012
Author : DutchA
Company : RnB
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 12,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include
#include
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include
typedef unsigned char byte;
/* table for the user defined character
arrow that points to the top right corner */
flash byte char0[7]={
0b10101,
0b10101,
0b01110,
0b11111,
0b01110,
0b10101,
0b10101};
/* function used to define user characters */
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code
-
79
t++;
}
char buffer_lcd[]="Propeller Display"
" ";//space required
char lcd_number = 16;
void tampilan(){
//ulang:
unsigned int i,j,k;
unsigned int data_len = strlen(buffer_lcd);
_lcd_ready();
lcd_clear();
lcd_gotoxy(0,0);
//0123456789abcdef
lcd_putsf(" Dutcha_punyA ");
for (i=lcd_number; i>=0; --i){
if (i > lcd_number)break;
lcd_gotoxy(i,1);
for (j=0; j
-
80
for (cnt_addr=0;cnt_addr
-
81
if (apret==0x83) { //ok
lcd_clear();
simpan_atas();
delay_ms(300);
lcd_clear(); lcd_gotoxy(0,1);
//0123456789abcdef
lcd_putsf(" Simpan..");
delay_ms(800);
goto menu04;
}
if (apret==0x03) { //up
goto menu05;
}
if (apret==0x0B) { //down
goto menu04;
}
if (apret==0x0A) { //cancel
goto menu01;
}
goto menu03;
menu04: // BAWAH
delay_ms(20);
lcd_gotoxy(0,0);
// 0123456789abcdef
lcd_putsf(" Atas ");
lcd_gotoxy(0,1);
lcd_putsf(" Bawah Tampil");
lcd_gotoxy(0,1);
lcd_putchar(0);
apret=Baca_data_ps2();
if (apret==0x83) { //ok
lcd_clear();
simpan_bawah();
delay_ms(300);
lcd_clear(); lcd_gotoxy(0,1);
//0123456789abcdef
lcd_putsf(" Simpan..");
delay_ms(800);
goto menu03;
}
if (apret==0x03) { //up
goto menu03;
}
if (apret==0x0B) { //down
goto menu05;
}
if (apret==0x0A) { //cancel
goto menu01;
}
goto menu04;
menu05: // LANJUT TAMPIL
delay_ms(20);
lcd_gotoxy(0,0);
// 0123456789abcdef
lcd_putsf(" Atas ");
lcd_gotoxy(0,1);
lcd_putsf(" Bawah Tampil");
lcd_gotoxy(8,1);
lcd_putchar(0);
apret=Baca_data_ps2();
if (apret==0x83) { //ok
lcd_clear();
delay_ms(300);
lcd_clear(); lcd_gotoxy(0,1);
//0123456789abcdef
lcd_putsf(" Tampil..");
delay_ms(800);
-
82
goto lanjut;
}
if (apret==0x03) { //up
goto menu04;
}
if (apret==0x0B) { //down
goto menu03;
}
if (apret==0x0A) { //cancel
goto menu01;
}
goto menu05;
lanjut:
}
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
GICR|=0x40; //rissing edge
MCUCR=0x03; //
MCUCSR=0x00; //
GIFR=0x40; //
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
define_char(char0,0);
lcd_init(16);
showMenu();
tampilan();
lcd_clear();
lcd_gotoxy(0,1);
//0123456789abcdef
lcd_putsf(" Putar..... ");
delay_ms(700);
#asm("sei")
-
83
while (1)
{
lcd_clear();
lcd_gotoxy(0,0);
// 0123456789abcdef
lcd_putsf(" Prop Display ");
lcd_gotoxy(0,1);
//0123456789abcdef
lcd_putsf(" ATmega16 ");
scan_code();
//0123456789abcdef
if (apret==0x05){ PORTA=0x00; PORTA.0=1; lcd_clear();
lcd_putsf("Speed 1 "); sprintf(buff,"%c",kbd); lcd_puts(buff);
delay_ms(2000);}
if (apret==0x06){ PORTA=0x00; PORTA.1=1; lcd_clear();
lcd_putsf("Speed 2 "); sprintf(buff,"%c",kbd); lcd_puts(buff);
delay_ms(2000);}
if (apret==0x04){ PORTA=0x00; PORTA.2=1; lcd_clear();
lcd_putsf("Speed 3 "); sprintf(buff,"%c",kbd); lcd_puts(buff);
delay_ms(2000);}
if (apret==0x0C){ PORTA=0x00; lcd_clear();
lcd_putsf("Motor Off "); sprintf(buff,"%c",kbd); lcd_puts(buff);
delay_ms(2000);}
if (apret==0x0A){ PORTA=0x00; lcd_clear(); delay_ms(700);
showMenu(); delay_ms(1000);}
delay_ms(50);
};
}
b) scancode.h #define indat PINC.0
#define otdat PORTC.0
#define inclk PINC.1
#define otclk PORTC.1
#include
char buff[33];
char Baca_data_ps2(void)
{
char data = 0x00;
int i=0;
char dt = 0x01;
DDRC.2=0; otclk=1;
DDRC.3=0; otdat=1;
delay_ms(150);
while (inclk==1);
delay_us(60);
while (inclk==0);
for (i=0; i < 8; i++)
{
while (inclk==1);
if (indat==1)
{ data = data | dt; }
while (inclk==0);
dt = dt
-
84
PORTC.2=0;
return data;
}
unsigned int apret;
char x;
bit flag;
unsigned char kbd;
void scan_code()
{
apret=Baca_data_ps2();
//huruf kecil
if (apret==0x1c){kbd='a';} if (apret==0x32){kbd='b';}
if (apret==0x21){kbd='c';}
if (apret==0x23){kbd='d';} if (apret==0x24){kbd='e';}
if (apret==0x2b){kbd='f';}
if (apret==0x34){kbd='g';} if (apret==0x33){kbd='h';}
if (apret==0x43){kbd='i';}
if (apret==0x3b){kbd='j';} if (apret==0x42){kbd='k';}
if (apret==0x4b){kbd='l';}
if (apret==0x3a){kbd='m';} if (apret==0x31){kbd='n';}
if (apret==0x44){kbd='o';}
if (apret==0x4d){kbd='p';} if (apret==0x15){kbd='q';}
if (apret==0x2d){kbd='r';}
if (apret==0x1b){kbd='s';} if (apret==0x2c){kbd='t';}
if (apret==0x3c){kbd='u';}
if (apret==0x2a){kbd='v';} if (apret==0x1d){kbd='w';}
if (apret==0x22){kbd='x';}
if (apret==0x35){kbd='y';} if (apret==0x1a){kbd='z';}
//angka
if (apret==0x16){kbd='1';} if (apret==0x1e){kbd='2';}
if (apret==0x26){kbd='3';}
if (apret==0x25){kbd='4';} if (apret==0x2e){kbd='5';}
if (apret==0x36){kbd='6';}
if (apret==0x3d){kbd='7';} if (apret==0x3e){kbd='8';}
if (apret==0x46){kbd='9';}
if (apret==0x45){kbd='0';}
//simbol tanpa shift
if (apret==0x4e){kbd='-';} if (apret==0x55){kbd='=';}
if (apret==0x54){kbd='[';}
if (apret==0x5b){kbd=']';} if (apret==0x4c){kbd=';';}
if (apret==0x52){kbd=',';}
if (apret==0x29){kbd=' ';} if (apret==0x41){kbd=',';}
if (apret==0x49){kbd='.';}
if (apret==0x4a){kbd='/';} if (apret==0x0e){kbd='~';}
if (apret==0x7b){kbd='-';}
if (apret==0x79){kbd='+';} if (apret==0xe0){kbd='?';}
if (apret==0x7c){kbd='';}
// if (apret==0x76){} //esc
// if (apret==0x0d){} //tab
// if (apret==0x5a){} //enter
// if (apret==0x66){} //backspace
//shift
if (apret==0x12){kbd='';flag=1;}
//huruf besar
if ((flag==1)&(apret==0x1c)) {kbd='A';flag=0;}
if ((flag==1)&(apret==0x32)) {kbd='B';flag=0;}
if ((flag==1)&(apret==0x21)) {kbd='C';flag=0;}
if ((flag==1)&(apret==0x23)) {kbd='D';flag=0;}
if ((flag==1)&(apret==0x24)) {kbd='E';flag=0;}
if ((flag==1)&(apret==0x2b)) {kbd='F';flag=0;}
if ((flag==1)&(apret==0x34)) {kbd='G';flag=0;}
if ((flag==1)&(apret==0x33)) {kbd='H';flag=0;}
if ((flag==1)&(apret==0x43)) {kbd='I';flag=0;}
if ((flag==1)&(apret==0x3b)) {kbd='J';flag=0;}
-
85
if ((flag==1)&(apret==0x42)) {kbd='K';flag=0;}
if ((flag==1)&(apret==0x4b)) {kbd='L';flag=0;}
if ((flag==1)&(apret==0x3a)) {kbd='M';flag=0;}
if ((flag==1)&(apret==0x31)) {kbd='N';flag=0;}
if ((flag==1)&(apret==0x44)) {kbd='O';flag=0;}
if ((flag==1)&(apret==0x4d)) {kbd='P';flag=0;}
if ((flag==1)&(apret==0x15)) {kbd='Q';flag=0;}
if ((flag==1)&(apret==0x2d)) {kbd='R';flag=0;}
if ((flag==1)&(apret==0x1b)) {kbd='S';flag=0;}
if ((flag==1)&(apret==0x2c)) {kbd='T';flag=0;}
if ((flag==1)&(apret==0x3c)) {kbd='U';flag=0;}
if ((flag==1)&(apret==0x2a)) {kbd='V';flag=0;}
if ((flag==1)&(apret==0x1d)) {kbd='W';flag=0;}
if ((flag==1)&(apret==0x22)) {kbd='X';flag=0;}
if ((flag==1)&(apret==0x35)) {kbd='Y';flag=0;}
if ((flag==1)&(apret==0x1a)) {kbd='Z';flag=0;}
//simbol dengan shift
if ((flag==1)&(apret==0x16)) {kbd='!';flag=0;}
if ((flag==1)&(apret==0x1e)) {kbd='@';flag=0;}
if ((flag==1)&(apret==0x26)) {kbd='#';flag=0;}
if ((flag==1)&(apret==0x25)) {kbd='$';flag=0;}
if ((flag==1)&(apret==0x2e)) {kbd='%';flag=0;}
if ((flag==1)&(apret==0x36)) {kbd='^';flag=0;}
if ((flag==1)&(apret==0x3d)) {kbd='&';flag=0;}
if ((flag==1)&(apret==0x3e)) {kbd='*';flag=0;}
if ((flag==1)&(apret==0x46)) {kbd='(';flag=0;}
if ((flag==1)&(apret==0x45)) {kbd=')';flag=0;}
if ((flag==1)&(apret==0x41)) {kbd='';flag=0;}
if ((flag==1)&(apret==0x4a)) {kbd='?';flag=0;}
if ((flag==1)&(apret==0x55)) {kbd='+';flag=0;}
if ((flag==1)&(apret==0x5d)) {kbd='|';flag=0;}
if ((flag==1)&(apret==0x4e)) {kbd='_';flag=0;}
if ((flag==1)&(apret==0x52)) {kbd='"';flag=0;}
if ((flag==1)&(apret==0x4c)) {kbd=':';flag=0;}
if ((flag==1)&(apret==0x54)) {kbd='{';flag=0;}
if ((flag==1)&(apret==0x5b)) {kbd='}';flag=0;}
sprintf(buff,"%c",kbd); //tampilkan lcd
lcd_puts(buff);
delay_us(50);
}
-
86
3. Terbang Bersama Propellerku
-
87
-
88