Regeln | Neue Beiträge | Thema RSS | Suche | Registrieren | Log-in

Pic Zusammenwirken mit LCD-Problem?

Post new topic Reply to topic EDAboard.com Foren-Übersicht -> Microcontrollers -> Pic Zusammenwirken mit LCD-Problem?
Arabische Fassung Bulgarische Version Katalanischen Version Tschechische Version Dänische Fassung Deutsch Version Griechische Fassung Englisch Version Spanische Version Finnische Fassung Französische Version Hindi-Version Kroatische Version Indonesisch-Version Italienische Version Hebräisch-Version Japanische Version German Version Litauische Fassung Lettische Fassung Niederländische Fassung Norwegische Version Polnische Fassung Portugiesische Version Romanian version Russische Version Slowakische Fassung Slowenisch-Version Serbisch-Version Schwedische Version Tagalog Version Ukrainisch Version Vietnamesisch-Version Chinesische Version
Autor Nachricht
engr.waqas



Beitritt: 21. Jul 2009
Beiträge: 7
Lage: karachi


Post 04 Aug 2009 8:39 Pic Zusammenwirken mit LCD-Problem?

Ich habe die Daten in die PIC-Controller von LM35 temp sensor.Now Ich will, um die Lesung des Temp-Sensor zu LCD-Display.
Sollte ich diesen Wert auf ASCII, bevor Sie auf LCD-oder es ist bereits in ASCII.
Wenn ich, um die Umwandlung in ASCII dann, wie man das in C MPLAB.
Zurück zum Anfang
View user's profile
arthur0



Beitritt: 28. Nov 2003
Beiträge: 41
Geholfen: 2
Ort: Stockholm, Schweden


Post 04 Aug 2009 9:59 Re: Pic Zusammenwirken mit LCD-Problem?

Hi,
Nicht nur müssen Sie Ihre "Daten", um ASCII, aber Sie müssen auch zu konvertieren, dass "Daten" in Grad, weil die Daten, die Sie sprechen, ist nur eine numerische Repräsentation (vorausgesetzt, Sie haben die Verwendung PIC ADC) von der Spannung an die Ausgabe von Ihrem Temperatursensor.
Da Sie nicht viel sagen über das, was du tust, werde ich davon ausgehen, dass Sie tatsächlich Probe dieser Spannung regelmäßig und Quantifizierung der Proben (Express sie numerisch) mit einem ADC. Das gibt Ihnen einen Hinweis darauf, wie groß die Spannung ist im Vergleich mit dem ADC Referenzspannung (was auch immer Sie sich, dass zu).
Nach bezifferten den absoluten Wert der Spannung, dann Querverweis mit dem Datenblatt, das Ihnen einen numerischen Wert, der eine Temperatur in Grad Celsius. (Ich glaube, das Datenblatt nennt 10mV / ° C, so dass, wenn Ihre Spannung ist, sagen, 230mV, ist die Temperatur 230/10 = 23 ° C)
Dies ist jetzt nur eine Nummer, keine Text-oder ASCII-oder was auch immer.
Um die man zum Text, Sie können Sie entweder
Code:
sprintf (receiving_text_buffer, "% d", numeric_temp)
oder Sie eine benutzerdefinierte Algorithmus, Spleiße Ihre Nummer in seine Ziffern (durch Verwendung einer Kombination von Spaltung und repetitive-Modul mit / 10, zum Beispiel) und anschließend den ASCII-Wert der Zeichen'0 'zu jedem von ihnen, um ihre äquivalente ASCII-Werte.
Ich hoffe, das macht Sinn für Sie ...

Arthur
Zurück zum Anfang
View user's profile
engr.waqas



Beitritt: 21. Jul 2009
Beiträge: 7
Lage: karachi


Post 04 Aug 2009 10:59 Re: Pic Zusammenwirken mit LCD-Problem?

Vielen Dank, liebe
Eigentlich habe ich getan, dass "gewisse Umstellung Option" u gesagt, aber jetzt das Problem ist, dass ich mich richtigen Wert auf dem LCD für temp 0 to9, sondern als ich im Temp-Sensor bis 10 oder andere 2-stellige ich
: 10
, Für 11,
<12
= 13
> 14
? für 15
und wieder
0 16
1 für 17 und so weiter
Das bedeutet nicht immer corrrect Anzeige auf dem LCD für 2-stellige Werte.
Mein C-Codierung ist in MPLAB
# include <P18f452.h>
# define iData PORTD
# define RS PORTBbits.RB0
# define rw PORTBbits.RB1
# define en PORTBbits.RB2
void lcdcmd (unsigned char);
void MSDelay (unsigned int);
void main (void)
(
int lbyte, hbyte, bin;
unsigned char x, y, z;

/ / A bis D

TRISD = 0;
TRISAbits.TRISA0 = 1;
TRISAbits.TRISA2 = 1;
ADCON0 = 0x81; / / fosc/64, Kanal 0, A \ D ist auf
ADCON1 = 0xC5; / / rechtsbündig, fosc/64, AN0 = analog, AN3 = Vref
while (1)
(
MSDelay (1), / / die A / D-Zeit für die Probe
ADCON0bits.GO = 1; / / Konvertierung starten
while (ADCON0bits.DONE == 1); / / warten, EOC
lbyte = ADRESL; / / save Low-Byte
hbyte = ADRESH; / / save high byte
lbyte>> = 2;
lbyte & = 0x3F;
hbyte <<= 6;
hbyte & = 0xC0;
bin = lbyte | hbyte;

/ / Anzeige auf dem LCD
TRISD = 0;
TRISB = 0;
EN = 0;
MSDelay (1);
lcdcmd (0x38);
MSDelay (1);
lcdcmd (0x0E);
MSDelay (1);
lcdcmd (0x01);
MSDelay (1);
lcdcmd (0x06);
MSDelay (1);
lcdcmd (0x86);
MSDelay (1);
/ / jetzt
x = bin & 0x0F; / / Maske oberen 4 Bit
y = x | 0x30; / / Make it ASCII
PORTD = y;
RS = 1;
rw = 0;
de = 1;
MSDelay (1);
EN = 0;
y = bin & 0xF0; / / Maske unteren 4 Bit
y = y>> 4 / / Verlagerung auf untere 4 Bit
MSDelay (50);
PORTD = y | 0x30; / / Make it ascii

)
)
void lcdcmd (unsigned char Wert)
(
iData = value;
RS = 0;
rw = 0;
de = 1;
MSDelay (1);
EN = 0;
)

void MSDelay (unsigned int itime)
(
unsigned int i; unsigned char j;
for (i = 0; i <itime; i )
for (j = 0; j <135; j );
)
Zurück zum Anfang
View user's profile
arthur0



Beitritt: 28. Nov 2003
Beiträge: 41
Geholfen: 2
Ort: Stockholm, Schweden


Post 04 Aug 2009 11:24 Re: Pic Zusammenwirken mit LCD-Problem?

Haben Sie nicht beachten, was ich schrieb oben: Sie müssen Ihre Zahlen in die Komponente Ziffern!
Zum Beispiel die Nummer 15 Sie möchten als 1, 5.
Für 2-stellige Zahlen, können Sie dies wie folgt aus:
Code:
digit0 = Zahl% 10; / * Schritt 1: digit0 = 5 * /
digit1 = Anzahl / 10; / * Schritt 2: digit1 = 1 * /


Wenn Sie mehr Stellen Sie ersetzen * Schritt 2 * mit
Zitat:
Zahl = Anzahl / 10
und wiederholen Sie Schritt 1 * * von den obigen Code wie nötig.
(Beachten Sie, dass Sie die Ziffern in umgekehrter Reihenfolge!)
Hoffe, es ist jetzt klarer.

Arthur
Zurück zum Anfang
View user's profile
engr.waqas



Beitritt: 21. Jul 2009
Beiträge: 7
Lage: karachi


Post 04 Aug 2009 11:47 Re: Pic Zusammenwirken mit LCD-Problem?

Ich denke, die spliting Teil und Konvertieren Teil wird in diesem Teil der Kodierung
Das bin enthält Daten aus Temp-Sensor.
x = bin & 0x0F; / / Maske oberen 4 Bit
y = x | 0x30; / / es ASCII und Display
PORTD = y;
RS = 1;
rw = 0;
de = 1;
MSDelay (1);
EN = 0;
y = bin & 0xF0; / / Maske unteren 4 Bit
y = y>> 4 / / Verlagerung auf untere 4 Bit
MSDelay (50);
PORTD = y | 0x30; / / ascii machen und Anzeige
Zurück zum Anfang
View user's profile
Google
AdSense





Post 04 Aug 2009 11:47 Anzeigen



Zurück zum Anfang
Vipul



Joined: 04 Jul 2008
Beiträge: 15
Geholfen: 1
Lage: Ahemdabad, Indien


Post 04 Aug 2009 12:40 Pic Zusammenwirken mit LCD-Problem?

Wie schrieb Arthur zuvor müssen Sie konvertieren Ergebnis der ADC in "Grad" Form, dann Druck auf den LCD-...

Im obigen Programm u direkt Druck "bin"-Variable, ist infolge der geringeren fusionieren und höhere Bit ADC Register ...

-Vipul
Zurück zum Anfang
View user's profile
arthur0



Beitritt: 28. Nov 2003
Beiträge: 41
Geholfen: 2
Ort: Stockholm, Schweden


Post 04 Aug 2009 13:40 Re: Pic Zusammenwirken mit LCD-Problem?

Zitat:
Ich denke, die spliting Teil und Konvertieren Teil wird in diesem Teil der Kodierung

Nein! Was Sie in diesem Teil des Codes ist nur ein bisschen Maskierung isolieren, in dem Sie ein Symbol in der hexadezimale Nummerierung System (0h - FH, entsprechend 0 - 15 im Dezimalsystem). Eine Ziffer ist, per Definition, eine Zahl von 0 bis 9 in der Dezimal-Nummerierung System.

Ich hatte Angst, dies würde kochen bis zu einer Diskussion mit den Worten "binary", "Hex", "Dezimal", "Anzahl", "ASCII" usw., da ihre Bedeutungen sind am besten in der Schule und verstanden über [Festplatte] Arbeit . Es ist nicht gut für die Substitution.
Ich kann einfach schreiben Sie den Code für Sie, aber wir werden beide verlieren: mich wertvolle Zeit, und Sie den Punkt mit allen von ihr!
Lassen Sie mich es für Sie ein weiteres Mal statt (für maximal 3-stellige Zahl, sagen wir 137):
Code:
char D0, D1, D2;
d2 = bin% 10; / * d2 <- 7 * /
d1 = (bin / 10)% 10; / * d1 <- 3 * /
d0 = ((bin / 10) / 10)% 10; / * d0 <- 1 * /
/ * Weiter so für noch mehr Stellen * /

/ * Umwandeln stellig (Zahlen) in ASCII (Text-Zeichen) * /
d0 ='0 '; / * wie d0 = d0 '0' wie d0 = d0 | 0x30 * /
d1 ='0 ';
d2 ='0 ';

/ * ASCII-Zeichen in den Hafen * /
/ * ... * /

Können Sie dies tun schöner, könnte man es ein wenig besser, aber für Sie zu verstehen, ich wollte zeigen, all die kleinen Schritte, die Sie verpasst haben, und auch darauf, wie die Ziffern extrahiert werden können rekursiv, aber das ist deine Hausaufgaben.

So wird, was die Umstellung für Sie, aber ich bin nicht davon überzeugt, Sill, dass das, was Sie sehen, Temperatur, da ist nichts in Ihrem Programm, das wie ein "Volt auf Maß" Umwandlung, es sei denn, Sie haben gewählt, eine Spannung auf, dass Ihre ADC tatsächlich machen es für Sie.

Arthur
Zurück zum Anfang
View user's profile
Post new topic Reply to topic EDAboard.com Foren-Übersicht -> Microcontrollers -> Pic Zusammenwirken mit LCD-Problem?
Seite 1 von 1 Alle Zeiten sind GMT 2 Stunden


Missbrauch | | Administrator | | Moderatoren | | Unterstützen Sie uns | | sitemap
Thema RSS