Bu yazımda msp430 launchpad e bir LCD bağladım onu da 75HC595 ile sürdüm. Mesafeyi ölçmek için HCSR04 ultrasonic mesafe ölçer kullandım.IMG_20140405_173456

Önceki yazımda  mesafeyi 6 tane ledi yakarak ölçmüştüm bu sefer bir lcd bağladım ve az bacak kullanmak için 74595 entegresi kullandım.  (Aslında başka bir projeden kalan bağlantıları sökmek istemedim. )

Launchpad in P2.0 ucu sensörün trigger, P2.1 ucu echo ucuna bağlanmıştır. Lcd için ise;

Launchpad–> 74HC595

Clock P1.0 –>pin11
Data P1.1 –>pin14
Storage P1.2 –>pin12 bağlantıları yapılmıştır.

74595lcd

Programın main kısmını burada vereceğim. Zaten iar proje dosyalarını kütüphaneler ile birlikte sayfanın sonıunda bulabilirsiniz.

#include "io430.h"
#include "in430.h"
#include "lcd_595.h"
#define TRIG P2OUT_bit.P0 //ÇIKIŞ
#define ECHO P2IN_bit.P1 //GİRİŞ
void lcd_int(unsigned int temp, unsigned char virgul);
int sure, uzaklik;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
//LCD AYARLANIYOR
P1DIR |= BIT0|BIT1|BIT2; //P1.0, P1.1, P1.2 Çıkış
P1OUT=0x00;
//MESAFE SENSÖRÜ AYARLANIYOR
P2DIR=BIT0+!BIT1; // P2.0 ÇIKIŞ, P2.1 GİRİŞ
P2OUT=0x00;
TA0CTL=0x00; //TIMERAO KONTROL REG.SIFIRLA
TA0CTL= TASSEL_2 + MC_0 + ID_0; //TIMERA0 DCO CLOCK , 1E BÖL ŞEKLİNDE AYARLANDI
lcd_init();
while(1)
{
TRIG=1; //TRIGGER UCUNU BİR YAP 10 MIKROSANIYE BEKLE VE TEKRAR SIFIR YAP
__delay_cycles(10);
TRIG=0;
while(!(ECHO)); // ECHO PINI 1 OLANA KADAR BEKLE
TA0CTL |=MC_2; // COUNT MODU CONTİNİOUS OLARAK AYARLA
while(ECHO); // ECHO PINI 0 OLANA KADAR BEKLE
TA0CTL ^=MC_2; // SAYMA MODUNU CONTINUOUS OLARAK BELİRLE
sure=TA0R; // SURE
TA0R=0;
__delay_cycles(100000);
uzaklik=sure/58;
delay(1000);
lcd_temizle();
lcd_goto(1,1);
lcd_puts("HC-SR04 Kullanım");
lcd_goto(2,1);
lcd_puts("Uzaklık: ");
lcd_int(uzaklik,0);
lcd_puts(" cm.");
delay(1000);
}
}
void lcd_int(unsigned int temp, unsigned char virgul)
{
temp++;
unsigned char onlar=(temp%100)/10;
unsigned char birler=temp%10;
if(onlar!=0)
lcd_putch(onlar+48);
lcd_putch(birler+48);
if(virgul==1)
lcd_putch(44); //virgül karakteri basar
}

Iar da yazılmış projenin bağlantısı.