<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pic dsPIC Arm7 Arm Cortex Programlama ve Projeler &#187; microchip</title>
	<atom:link href="http://www.uicroarm.com/tag/microchip/feed" rel="self" type="application/rss+xml" />
	<link>http://www.uicroarm.com</link>
	<description>ds-pic arm-7 cortex nxp proje uygulama</description>
	<lastBuildDate>Fri, 23 Apr 2010 19:11:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PIC24-PWM</title>
		<link>http://www.uicroarm.com/pic24-pwm</link>
		<comments>http://www.uicroarm.com/pic24-pwm#comments</comments>
		<pubDate>Fri, 16 Apr 2010 17:59:24 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[PIC24F dsPIC30F dsPIC33F Uygulamaları]]></category>
		<category><![CDATA[16Bit]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c30]]></category>
		<category><![CDATA[dsPIC30F]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[PIC24]]></category>
		<category><![CDATA[PWM]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=137</guid>
		<description><![CDATA[
Bu örneğimizde PWM uygulaması yapacağız. Program aşağıdaki gibidir. 

/*
Aykut ULUSAN
Elektronik Mühendisi
IZMIR

www.uicroarm.com

JP5 ve JP19 on konumda olacak

PWM özelliğini kullanacağız
*/

#include &#60;p24Fxxxx.h&#62;

_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal uçları boş olacak

// X*10US
void
DLY_10US(unsigned int us){
	while(us--) {
		__asm__ volatile (&#34;repeat #33&#34;);
		__asm__ volatile (&#34;nop&#34;);
	}
}

// 65536ms'ye kadar
void
DLY_MS(unsigned int ms){
	while(ms--){
		DLY_10US(100);
	}
}

volatile unsigned char duty=0;

int
main(void){

	AD1PCFG=0xFFFF;				// portlar dijital
	TRISB = [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/main3.jpg" alt="" title="main" width="295" height="221" class="alignnone size-full wp-image-138" /><span id="more-137"></span></p>
<p>Bu örneğimizde PWM uygulaması yapacağız. Program aşağıdaki gibidir. </p>
<pre class="brush: cpp;">
/*
Aykut ULUSAN
Elektronik Mühendisi
IZMIR

www.uicroarm.com

JP5 ve JP19 on konumda olacak

PWM özelliğini kullanacağız
*/

#include &lt;p24Fxxxx.h&gt;

_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal uçları boş olacak

// X*10US
void
DLY_10US(unsigned int us){
	while(us--) {
		__asm__ volatile (&quot;repeat #33&quot;);
		__asm__ volatile (&quot;nop&quot;);
	}
}

// 65536ms'ye kadar
void
DLY_MS(unsigned int ms){
	while(ms--){
		DLY_10US(100);
	}
}

volatile unsigned char duty=0;

int
main(void){

	AD1PCFG=0xFFFF;				// portlar dijital
	TRISB = 0x1FFF;
	_LATB14=1;
	_LATB13=1;
	RPOR7bits.RP15R = 18;  // rb15 pwm portu
	T2CON = 0;
	TMR2 = 0;
	PR2 = 255;
	OC1CON = 0x0006;
	OC1RS = duty;			//duty cycle'ı bir reg ile değiştireceğiz.
	T2CON = 0x8000;
	T3CON = 0;
	TMR3 = 0;
	PR3 = 143;
	T3CON = 0x8030;   

	while(1){
		DLY_MS(20);
		OC1RS = ++duty;
	}

	return 0;
}

/*************************************************************/
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/pic24-pwm/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PIC24-CN interrupt(Buton)</title>
		<link>http://www.uicroarm.com/pic24-cn-interruptbuton</link>
		<comments>http://www.uicroarm.com/pic24-cn-interruptbuton#comments</comments>
		<pubDate>Fri, 16 Apr 2010 17:53:49 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[PIC24F dsPIC30F dsPIC33F Uygulamaları]]></category>
		<category><![CDATA[16Bit]]></category>
		<category><![CDATA[asm16]]></category>
		<category><![CDATA[Buton]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c30]]></category>
		<category><![CDATA[interrupt]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[PIC24]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=135</guid>
		<description><![CDATA[
Bu örneğimizde buton okumaya göre karaşimsek led akış hızını değiştireceğiz. Buton okuma işini ise interrupt ile
gerçekleştiriyoruz. Umarım faydalı olur.

/*
Buton okumayla karaşimşek hızını değiştirme

Aykut ULUSAN,Elektronik Mühendisi,IZMIR
www.uicroarm.com 

Uygulama boardu : EX16L-A (16bit development board)
www.expkits.com'dan temin edebilirsiniz. 

Not :
1)Bu programda tuş okuma için CN interrupt kullandım ama kenar algılamalı interrpt kullanırsanız
daha anlaşılır olur.
2) Karşimşek ledlerindeki RB4'ün yanması için [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/main2.jpg" alt="" title="main" width="295" height="221" class="alignnone size-full wp-image-136" /><span id="more-135"></span></p>
<p>Bu örneğimizde buton okumaya göre karaşimsek led akış hızını değiştireceğiz. Buton okuma işini ise interrupt ile<br />
gerçekleştiriyoruz. Umarım faydalı olur.</p>
<pre class="brush: cpp;">
/*
Buton okumayla karaşimşek hızını değiştirme

Aykut ULUSAN,Elektronik Mühendisi,IZMIR
www.uicroarm.com 

Uygulama boardu : EX16L-A (16bit development board)
www.expkits.com'dan temin edebilirsiniz. 

Not :
1)Bu programda tuş okuma için CN interrupt kullandım ama kenar algılamalı interrpt kullanırsanız
daha anlaşılır olur.
2) Karşimşek ledlerindeki RB4'ün yanması için SWDIP6'daki rb4 on konumuna geterilmeli
*/

/*
Çalışması RA0'a basılıp çekildiğinde karaşimşek hız değişir
*/

#include &lt;p24Fxxxx.h&gt;	// burada PIC24F serisi kullanacağımızı ifade ettik ama işlemciyi MPLAB içinde seçilir
_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal uçları boş olacak

void __attribute__((interrupt, no_auto_psv)) _CNInterrupt(void);
void DLY_10US(unsigned int us);
void DLY_MS(unsigned int ms);

unsigned char asm_reg,akis_hizi;

int
main(void){
	PORTA=0;			// latch'leri temizle
	INTCON1 = 0;
  	INTCON2 = 0;
	AD1PCFG=0xFFFF;		// portlar dijital
	TRISA=1; asm(&quot;NOP&quot;);		// Ra0 giriş
	TRISB=0;
	IFS1bits.CNIF=0;
	CNPU1bits.CN2PUE=1;
	CNEN1bits.CN2IE=1;
	IEC1bits.CNIE=1;
	asm_reg=0x01;				// default olarak RB0=1
	akis_hizi=35;
	while(1) {
			while(asm_reg!=0x10){
				PORTB=asm_reg;
				DLY_MS(akis_hizi);
				asm_reg&lt;&lt;=1;
			}
			while(asm_reg!=0x1){
				PORTB=asm_reg;
				DLY_MS(akis_hizi);
				asm_reg&gt;&gt;=1;
			}
			if(!_CN2IE&amp;&amp;_RA0){
				_CNIF=0;
  				_CN2IE=1;
  				_CNIE=1;
			}
	}
	return 0;
}

void
__attribute__((interrupt, no_auto_psv)) _CNInterrupt(void){
  _CNIF=0;
  _CN2IE=0;
  _CNIE=0;
  if(akis_hizi==35) akis_hizi=100;
  else akis_hizi=35;
  while(!_RA0);
}

// X*10US
void
DLY_10US(unsigned int us){
	while(us--) {
		__asm__ volatile (&quot;repeat #33&quot;);
		__asm__ volatile (&quot;nop&quot;);
	}
}

// 65536ms'ye kadar
void
DLY_MS(unsigned int ms){
	while(ms--){
		DLY_10US(100);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/pic24-cn-interruptbuton/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIC24-LED(Karasimsek)</title>
		<link>http://www.uicroarm.com/pic24-ledkarasimsek</link>
		<comments>http://www.uicroarm.com/pic24-ledkarasimsek#comments</comments>
		<pubDate>Sun, 11 Apr 2010 08:54:12 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[PIC24F dsPIC30F dsPIC33F Uygulamaları]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c30]]></category>
		<category><![CDATA[dsPIC30F]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[PIC24F]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=133</guid>
		<description><![CDATA[
Merhaba,
Daha önce söylediğim gibi önceden hazırladığım küçük örnek programları sırasız olarak paylaşacağımı söylemiştim. Şimdi de led uygulamaları kapsamına giren karaşimsek led uygulamasının programını ekliyorum. Özellikle yeni başlayanlar için faydalı olacaktır.

/*
RB0-RB4 arasında karaşimşek led uygulaması

Aykut ULUSAN,Elektronik Mühendisi,IZMIR
www.uicroarm.com 

Uygulama boardu : EX16L-A (16bit development board)
www.expkits.com'dan temin edebilirsiniz.
*/

#include &#60;p24Fxxxx.h&#62;		// burada PIC24F serisi kullanacağımızı ifade ettik ama işlemciyi MPLAB [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/main1.jpg" alt="" title="main" width="295" height="221" class="alignnone size-full wp-image-134" /><span id="more-133"></span></p>
<p>Merhaba,<br />
Daha önce söylediğim gibi önceden hazırladığım küçük örnek programları sırasız olarak paylaşacağımı söylemiştim. Şimdi de led uygulamaları kapsamına giren karaşimsek led uygulamasının programını ekliyorum. Özellikle yeni başlayanlar için faydalı olacaktır.</p>
<pre class="brush: cpp;">
/*
RB0-RB4 arasında karaşimşek led uygulaması

Aykut ULUSAN,Elektronik Mühendisi,IZMIR
www.uicroarm.com 

Uygulama boardu : EX16L-A (16bit development board)
www.expkits.com'dan temin edebilirsiniz.
*/

#include &lt;p24Fxxxx.h&gt;		// burada PIC24F serisi kullanacağımızı ifade ettik ama işlemciyi MPLAB içinde seçilir
_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal uçları boş olacak

//Karşimşek ledlerindeki RB4'ün yanması için SWDIP6'daki rb4 on konumuna geterilmeli

#define NOP() 		{__asm__ volatile (&quot;nop&quot;);}
#define CLRWDT() 	{__asm__ volatile (&quot;clrwdt&quot;);}
#define SLEEP() 	{__asm__ volatile (&quot;pwrsav #0&quot;);}
#define IDLE() 		{__asm__ volatile (&quot;pwrsav #1&quot;);}

#define akis_hizi	35

void DLY_10US(unsigned int us);
void DLY_MS(unsigned int ms);

unsigned char asm_reg;

int
main(void){

    OSCCONbits.COSC=0;	// dahili osc
	CLKDIV=0;
	PORTA=0;			// latch'leri temizle
	AD1PCFG=0xFFFF;		// portlar dijital
	TRISA=0; asm(&quot;NOP&quot;);		// A portu çıkış
	TRISB=0;
	asm_reg=0x01;				// default olarak RB0=1
	while(1) {
		while(asm_reg!=0x10){
			PORTB=asm_reg;
			DLY_MS(akis_hizi);
			asm_reg&lt;&lt;=1;
		}
		while(asm_reg!=0x1){
			PORTB=asm_reg;
			DLY_MS(akis_hizi);
			asm_reg&gt;&gt;=1;
		}
	}

}

// X*10US
void
DLY_10US(unsigned int us){
	while(us--) {
		__asm__ volatile (&quot;repeat #165&quot;);
		__asm__ volatile (&quot;nop&quot;);
	}
}

// 65536ms'ye kadar
void
DLY_MS(unsigned int ms){
	while(ms--){
		DLY_10US(100);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/pic24-ledkarasimsek/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIC24-ADC0</title>
		<link>http://www.uicroarm.com/pic24-adc0</link>
		<comments>http://www.uicroarm.com/pic24-adc0#comments</comments>
		<pubDate>Sun, 11 Apr 2010 08:45:33 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[PIC24F dsPIC30F dsPIC33F Uygulamaları]]></category>
		<category><![CDATA[16Bit]]></category>
		<category><![CDATA[ADC]]></category>
		<category><![CDATA[asm16]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c30]]></category>
		<category><![CDATA[dsPIC30]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[PIC24]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=131</guid>
		<description><![CDATA[
Merhaba,
Aşağıya ADC0&#8242;ın nasıl kullanıldığı ile ilgili programı ekliyorum. Umarım faydalı olur. 

/*
RA0=pot1 üzerindeki voltajı portb üzerinde binari olarak gösterelim
RB0-RB9 çıkış
SWDIP6 üzerinde xtal uçları ve RB4 on olacak
SWDIP4 üzerinde pot1 on olacak
xtal 10Mhz
işlemci 24f64ga002
*/

#include &#60;p24Fxxxx.h&#62;

_CONFIG1(0x3F20)  	// JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x7BAE)	// 10mhz xtal (HS), HSPLL enable,

typedef unsigned char 	u8;
typedef unsigned int 	u16;

void adc_read(u8 kanal);
void [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/main.jpg" alt="" title="main" width="295" height="221" class="alignnone size-full wp-image-132" /><span id="more-131"></span></p>
<p>Merhaba,<br />
Aşağıya ADC0&#8242;ın nasıl kullanıldığı ile ilgili programı ekliyorum. Umarım faydalı olur. </p>
<pre class="brush: cpp;">
/*
RA0=pot1 üzerindeki voltajı portb üzerinde binari olarak gösterelim
RB0-RB9 çıkış
SWDIP6 üzerinde xtal uçları ve RB4 on olacak
SWDIP4 üzerinde pot1 on olacak
xtal 10Mhz
işlemci 24f64ga002
*/

#include &lt;p24Fxxxx.h&gt;

_CONFIG1(0x3F20)  	// JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x7BAE)	// 10mhz xtal (HS), HSPLL enable,

typedef unsigned char 	u8;
typedef unsigned int 	u16;

void adc_read(u8 kanal);
void DLY_10US(u16 us);
void DLY_MS(u16 ms);

int
main(void){
	while (OSCCONbits.COSC!=3);
	while(!OSCCONbits.LOCK);
	AD1PCFG=0xFFFE;				// AN0 analog, diğerleri dijital
	TRISB=0;
	TRISA=(u16)0x1;				// RA0 giriş
	AD1CON1=0x00E0;				// auto start ile başlatacağız
	AD1CON2=0;
	AD1CON3=0;
// TAD = TCY * (ADCS +1)
	AD1CON3bits.SAMC=17;			// acelemiz yok,
	AD1CON3bits.ADCS=16;
	AD1CSSL=0;					// scan modu off
	AD1CON1bits.ADON=1;
	DLY_MS(1);
	while(1){
		adc_read(0);				// kanal 0'ı oku
		LATB=ADC1BUF0;
		DLY_MS(100);				// 100ms'de 1 oku ve yaz
	};

	return 0;
}

void
adc_read(u8 kanal){
  AD1CHS = kanal;      			// kanalı ayarla
  AD1CON1bits.ASAM = 1;         // start
  while(!IFS0bits.AD1IF);      	// çevrim bitinceye kadar bekle
  AD1CON1bits.ASAM = 0;       	// stop
  IFS0bits.AD1IF = 0;          	// flag clear
}    

void
DLY_10US(u16 us){
	while(us--) {
		__asm__ volatile (&quot;repeat #165&quot;);
		__asm__ volatile (&quot;nop&quot;);
	}
}

// 65536ms'ye kadar
void
DLY_MS(u16 ms){
	while(ms--){
		DLY_10US(100);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/pic24-adc0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIC24-LCD Kullanımı</title>
		<link>http://www.uicroarm.com/pic24-lcd-kullanimi</link>
		<comments>http://www.uicroarm.com/pic24-lcd-kullanimi#comments</comments>
		<pubDate>Wed, 31 Mar 2010 19:21:48 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[PIC24F dsPIC30F dsPIC33F Uygulamaları]]></category>
		<category><![CDATA[16Bit]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c30]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[PIC24]]></category>
		<category><![CDATA[PIC24F]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=128</guid>
		<description><![CDATA[
Merhaba,
Bu bölümde PIC24F serisi ile 4&#215;20 LCD&#8217;ye nasıl sürüleceğini gösteren bir program ekliyeceğim. Yararlı olacağını umuyorum.

/*
Aykut ULUSAN
Elektronik Mühendisi
IZMIR

www.uicroarm.com

işlemci : PIC24Fj32
osc: dahili fast osc, 8mhz, TCY=1us/8=125ns
LCD busy flag kullanılmayacak, 4bit interface
Board : EXPKITS  EX16L-A (PIC24F ve PIC33F geliştirme boardu)
*/

#include &#60;p24Fxxxx.h&#62;			// 

_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/03/main3.jpg" alt="" title="main" width="295" height="221" class="alignnone size-full wp-image-129" /><span id="more-128"></span></p>
<p>Merhaba,</p>
<p>Bu bölümde PIC24F serisi ile 4&#215;20 LCD&#8217;ye nasıl sürüleceğini gösteren bir program ekliyeceğim. Yararlı olacağını umuyorum.</p>
<pre class="brush: cpp;">
/*
Aykut ULUSAN
Elektronik Mühendisi
IZMIR

www.uicroarm.com

işlemci : PIC24Fj32
osc: dahili fast osc, 8mhz, TCY=1us/8=125ns
LCD busy flag kullanılmayacak, 4bit interface
Board : EXPKITS  EX16L-A (PIC24F ve PIC33F geliştirme boardu)
*/

#include &lt;p24Fxxxx.h&gt;			// 

_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal uçları boş olacak
//_CONFIG2(  IESO_OFF &amp; FNOSC_PRI &amp; FCKSM_CSDCMD &amp; OSCIOFNC_OFF &amp; IOL1WAY_ON &amp; I2C1SEL_PRI &amp; POSCMOD_HS );
//_CONFIG1(  JTAGEN_OFF &amp; GCP_OFF &amp;  GWRP_OFF &amp; BKBUG_OFF &amp; COE_OFF &amp; ICS_PGx1 &amp; WINDIS_OFF ); 	

#define	LCD_RS			LATBbits.LATB8		// lcd için register select pin
#define	LCD_E			LATBbits.LATB5		// lcd enable pin
#define	LCD_PORT		LATB
#define	LCD_TRIS		TRISB
#define	d				1					// lcd'ye data/karakter yazılacak
#define	c				0					// lcd'ye komut yazılacak
#define	D				d					// lcd'ye data/karakter yazılacak
#define	C				c					// lcd'ye komut yazılacak

#define NOP() 		{__asm__ volatile (&quot;nop&quot;);}
#define CLRWDT() 	{__asm__ volatile (&quot;clrwdt&quot;);}
#define SLEEP() 	{__asm__ volatile (&quot;pwrsav #0&quot;);}
#define IDLE() 		{__asm__ volatile (&quot;pwrsav #1&quot;);}

#define	LINE_1			0x80
#define	LINE_2			0xC0
#define	LINE_3			0x94
#define	LINE_4			0xD4
/*
LCD			PIC24
D4			PORTBbits.RB0
D5			PORTBbits.RB1
D6			PORTBbits.RB2
D7			PORTBbits.RB3
*/

// X*10US
void
DLY_10US(unsigned int us){
	while(us--) {
		__asm__ volatile (&quot;repeat #33&quot;);
		__asm__ volatile (&quot;nop&quot;);
	}
}

// 65536ms'ye kadar
void
DLY_MS(unsigned int ms){
	while(ms--){
		DLY_10US(100);
	}
}

void
LCD_ENABLE(void){
	LCD_E=1;asm(&quot;nop&quot;);asm(&quot;nop&quot;);asm(&quot;nop&quot;);asm(&quot;nop&quot;);LCD_E=0;
}

void
LCD_WRITE(unsigned char da_ta, unsigned char D_C){
	if(D_C) LCD_RS=1;					// data modu
	else	LCD_RS=0;					// komut modu
	LCD_PORT&amp;=0x3F0;
	LCD_PORT|=da_ta&gt;&gt;4;					// lcd'ye gönder, RS ve E bozulmamalı
	LCD_ENABLE();						// enable

//	while(1);

	LCD_PORT&amp;=0x3F0;
	LCD_PORT|=da_ta&amp;0x0F;				// lcd'ye gönder
	LCD_ENABLE();						// enable
	DLY_10US(50);						// 50us delay
	LCD_RS=0;
}

void
LCD_SETUP(void){
	DLY_MS(100);			// lcd'nin kendini hazırlaması için 100ms
	LCD_PORT=0x3;
	LCD_ENABLE();
	DLY_MS(10);
	LCD_ENABLE();
	DLY_MS(10);
	LCD_ENABLE();
	DLY_MS(10);
	LCD_PORT=0x2;
	LCD_ENABLE();
	DLY_MS(10);
	LCD_WRITE(0x28,c);		// disp on, cursor off
	LCD_WRITE(0x0c,c);		//
    LCD_WRITE(0x06,c);		//
	LCD_WRITE(0x01,c);		// clear display
	LCD_WRITE(0x02,c);		//
	DLY_MS(2);		

}

void
LCD_STRING(const char *str){
	while(*str)
		LCD_WRITE(*str++,d);
} 

void
LCD_GOTO(unsigned char satir,unsigned char adres){
	LCD_WRITE(satir+adres,c);
}

int
main(void){
	AD1PCFG=0xFFFF;				// portlar dijital
	PMCON=0;
	PORTB=0;					// latch'leri temizle
	TRISB=0; asm(&quot;NOP&quot;);		// B portu çıkış

	LCD_SETUP();
	LCD_GOTO(LINE_1,0);
	LCD_STRING(&quot;www.uicroarm.com&quot;);
	LCD_GOTO(LINE_2,0);
	LCD_STRING(&quot;PIC24 by Kutay&quot;);
	while(1);
	return(0);
}
</pre>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2010/03/1000.jpg" rel="lightbox[128]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/03/1000-150x150.jpg" alt="" title="1000" width="150" height="150" class="alignnone size-thumbnail wp-image-130" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/pic24-lcd-kullanimi/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
