marikan
Üye
- Katılım
- 1 Nis 2009
- Mesajlar
- 16
- Puanları
- 1
- Yaş
- 37
Merhabalar.
16F877 ile termometre devresi kurdum ancak LCD'de görüntü alamıyorum.
Kullandığım LCD 2x16 karakter LCD. Winstar WH1602B.
LCD bağlantıları şu şekilde yaptım.
1-gnd
2-+5V
3-Potun com ucu.
4-RB1
5-RB2
6-RB0
7-Boş
8-Boş
9-Boş
10-Boş
11-RB4
12-RB5
13-RB6
14-RB7
15-+5V
16-GND
CCS C programı
Proteus'ta denedim bu şekilde sorunsuz çalışıyor. Birebir kuruyorum devreyi ancak çıktı alamıyorum LCD'de![Üzgün :( :(](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Yardım eden arkadaşlara şimdiden teşekkürler![Gülümse :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
16F877 ile termometre devresi kurdum ancak LCD'de görüntü alamıyorum.
Kullandığım LCD 2x16 karakter LCD. Winstar WH1602B.
LCD bağlantıları şu şekilde yaptım.
1-gnd
2-+5V
3-Potun com ucu.
4-RB1
5-RB2
6-RB0
7-Boş
8-Boş
9-Boş
10-Boş
11-RB4
12-RB5
13-RB6
14-RB7
15-+5V
16-GND
CCS C programı
Kod:
#include <16f877.h>
#device ADC=10
#fuses nowdt
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>
unsigned long int bilgi;
float voltaj, sicaklik;
void main()
{
set_tris_a(0x01);
set_tris_b(0x00);
setup_adc(adc_clock_div_32);
setup_adc_ports(AN0);
lcd_init();
set_adc_channel(0);
delay_us(20);
printf(lcd_putc,"\fSicaklik");
while(1)
{
bilgi=read_adc();
voltaj=(0.0048828125*bilgi)*1000;
sicaklik=(voltaj/10)+2;
lcd_gotoxy(10,2);
printf(lcd_putc,"%5.1f'C",sicaklik);
delay_ms(100);
}
}
![b8o2fs.png](https://i.kontrolkalemi.com/2/b8o2fs.png)
Proteus'ta denedim bu şekilde sorunsuz çalışıyor. Birebir kuruyorum devreyi ancak çıktı alamıyorum LCD'de
Yardım eden arkadaşlara şimdiden teşekkürler