Bonjour,
J'essaies de faire un thermometre digital, avec un PIC16F688, un LCD et un LM35.
Je pense avoir correctement tapé mon code, mais celui ci ne fonctionne toujours pas. Les branchements de mon LCD ont été vérifiés mais toujours rien...
J'ai bien mis le MCLR avec une résistance de 10K sur le +5v... Arghhh ca m'énerve de tourner en rond !
A l'allumage, l'écran LCD(2x16) affiche des carrés ,noirs. Je pense à un registre mal configurés :/
Le tout est en BASIC (PICBASIC PRO):
Code:'**************************************************************** '* Name : Thermo.BAS * '* Author : Nicolas QUERE * '* Notice : Copyright (c) 2008 Nicolas QUERE * '* : All Rights Reserved * '* Date : 06/11/2008 * '* Version : 1.0 * '* Notes : Thermomètre digital * '* : Capteur LM35Z * '* : LCD 2x16 chars * '* : PIC16F688 * '**************************************************************** 'Connection entre le LCD et le PIC: 'DB4 <-> RC0 'DB5 <-> RC1 'DB6 <-> RC2 'DB7 <-> RC3 'RS <-> RC4 'E <-> RC5 'RW <-> GND 'Connection entre le LM35Z et le PIC: 'vOut <-> RA0 '**************************************************************** '**************************************************************** 'Initialisation des fusibles: @ DEVICE PIC16F688, INTRC_OSC_NOCLKOUT 'LCD DEFINE LCD_DREG PORTC 'Set LCD Data port DEFINE LCD_DBIT 4 'Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_RSREG PORTC 'Set LCD Register Select port DEFINE LCD_RSBIT 4 'Set LCD Register Select bit DEFINE LCD_EREG PORTC 'Set LCD Enable port DEFINE LCD_EBIT 5 'Set LCD Enable bit pause 1000 'Wait 1 second for LCD start 'LM35 Temp var byte 'Température en degrés Celcius Res var byte 'Résultat de la conversion A/D 'A/D DEFINE ADC_BITS 10 'Set number of bits in result DEFINE ADC_CLOCK 3 'Set clock source (rc = 3) DEFINE ADC_SAMPLEUS 50 'Set sampling time in microseconds ANSEL = %00000001 'A/D select: 0=digital - 1=analog ADCON0 = %10000001 'Right justified, vdd ref, AN0 TRISA.0 = 1 'AN0 (RA0) est une entrée Main: While 0 adcin 0, Res 'Lit AN0 et colle le résultat dans Res Temp = 2*Res 'Convert into °C lcdout $FE,1,DEC(Temp),".",DEC2(Temp),DEC3(Temp),"°C" pause 1000 wend end
-----