• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LCD(sc1602)が不調)

LCD(sc1602)が不調

このQ&Aのポイント
  • PICを使ってLCDに文字などを表示させる実験中、上段すべてに四角が表示される不調が発生。
  • Vdd、Vss、Voの接続変更やクロック調整などを試しても改善せず。
  • ネットで同じ症状の例を見つけてアドバイスを求める。

質問者が選んだベストアンサー

  • ベストアンサー
  • poyo3
  • ベストアンサー率30% (260/857)
回答No.1

たまにあるのがデータのコマンドがおかしいとか。タイミングの時間が合っていない。または順番がおかしいとか(RS、RW、Eの) ソフト上で出力ポートを間違えている事があります。 後はイニシャルの設定がおかしい(8bit,4bit設定が異なる) あとは電源のプラスマイナス(逆なら即終わりです。) それを確認してもだめなら多分破損です。 個人的に同じ状況になった事はありましたが確かRS,R/W,Eの操作がソフト上で異なっていた事によるものだったかと思います。 しかし今まで何も無かったのが突然だと破損の可能性大ですね。あいているLCDがあれば交換してみるといいでしょう。 とりあえず参考までに。

abbbbbbbba
質問者

お礼

ありがとうございます。 いままで表示できていたものが、急にできなくなってしまったので、やはり壊れてしまったのでしょうね。 新品のLCDを買ってきて、再度試してみたのですが、やはり結果は同じでした。また、回路を組みなおしたり、PIC→LCDへのフラットケーブルも作成し直してみたり、過去のプログラムを動作させたり、考えられることは全てしてみましたが、どれもうまくいきませんでした・・・また一からやってみます。 ありがとうございました。

abbbbbbbba
質問者

補足

いろいろと試してみた結果、PIC自体に問題があると考えました。そしてMCLRのプルアップを省略していたことによるものと判明いたしました。調べたら、  注意1:動作はしているようだが不安定、手で触ると止まったり動いたり。MCLR端子のプルアップ忘れ。MCLRは抵抗でプルアップしなくても動いてしまうこともあるが、本来ダイオードでVssにクランプされているのでプルアップ(5K~20K)が必須。 と、まさに今回の挙動そのものの記述を見つけました。このミスを発見するのに、かなりの時間を無駄にしてしまいました。お騒がせいたしました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PICマイコンで工作

    初心者なのですが、PICマイコンでLCD表示に挑戦したいと思っています。 そこで皆さんにお聞きしたいのですが、プロットボード上にPIC16F873を利用して回路を作成したのですが、何も表示されずただ■■■■■■が表示されるのみです。 何が原因なのか全然わからないので皆さんのご意見をお聞きしたいのですが・・・。 よろしくお願いします。 LCD Vdd・・・5V Vss・・・GND Vo・・・・20KΩ可変抵抗 RS・・・・RB3 R/W・・・RB2 E・・・・・RB1 DB0、DB1、DB2、DB3・・・GND DB4・・・RB4 DB5・・・RB5 DB6・・・RB6 DB7・・・RB7 PIC MCLR/Vpp・・・5V Vss・・・GND OSC1・・12.8MHz VDD・・・5V このような感じです。 プログラムは以下のHPを参考にさせて頂きました。 http://speana-1.hp.infoseek.co.jp/lcd/lcd_4/lcd_4.htm

  • ワンチップマイコンPICによるLCD(液晶)の制御

    PICを使ってLCD表示の実験を行っています。 最終的には、dsPIC33FJ64GP706(64pin)でLCDを利用したいと思っています。 PICの参考書籍を見ながら、例題を用いて16F873や18f2680、dsPIC30f3013など5Vで駆動するPICではLCDの表示はできました。 しかし、なぜか3.3Vで駆動する24FJ64GA002やdsPIC33FJ64GP706ではLCD上にトーフが並ぶのみで、適切な表示ができません。 このときのプログラムが、0.5秒ごとに数字をカウントアップさせるものであり、この黒いトーフもそれに従い濃淡の点滅をしていますので、何らかの信号は伝わっているような気がします。 この場合はPICを3.3Vで駆動させて、LCD電源のみを5Vで供給しています。 この点について、わかる方がありましたら教えてください。 なお、コンパイラはccs-cを使用しています。 また、回路接続や信号については、24FJ64GA002やdsPIC33FJ64GP706では、プログラム上から任意のLEDを点滅させることを確認していますので、回路上のミスはないと思います。 24FJ64GA002では、内臓レギュレーターを使う(VDD3.3V、DISVREGとVSSはGNDへ、VDDCORE/VCAPは10ufを通してGND)の設定になっています。 dsPIC33FJ64GP706もDISVREGピンはありませんがほぼ同様の設定にしてあります。コンパイルする前のLCDを表示するプログラムはどのPICもほぼ同じものを使用して、へッダーファイルやPINの番号を変更しているのみです。 すべてPORT_Bを使用しています。クロックはいずれの場合もヒューズでHSを設定し、セラロックの20MHzを使用しています

  • LCD制御

    交流回路を使ってLCDディスプレイの制御をやろうと思っています。 今PIC16F877Aを使ってSP521PRを制御しようとしていますが、交流回路を使ってPICとLCDの接続方法がわかりません。 交流回路の組み方とか仕組みを教えてください。お願いします。

  • 16×2キャラクタLCDへの文字表示について

    16×2キャラクタLCDへの文字表示について質問です. CGRAMアドレス:0xffの塗りつぶしの四角を表示させたいのですが, '■'が'β'になって表示されてしまいます. どのような方法をとれば■が表示できるでしょうか. 開発言語はC,環境はMPLAB X IDE,XC8コンパイラ. 対象デバイスはPIC18F4553です. 御回答の程よろしくお願いいたします.

  • PIC(PIC16F84A)を用いたLCDの2桁表示について

    現在、去年、秋月電子で購入したSHARPのLCD(LM162AT1)をとPIC16F84Aを用いて、周波数カウンタを製作しようと思っています。 そこでLCDとPIC(PIC16F84A)を用いたテスト回路を製作してLCDの表示方法をC言語で書いて勉強しています。1桁の表示はできるのですが、2桁の表示ができません。 MicrochipのMPLAB IDE Ver.8.14を使用しています。 LCDのソースコードは付属のサンプルコードを使用しています。 どうして、2桁表示できないか教えてください。 また、対処方法も教えてください。 よろしくお願いいたします。

  • PICの動作不安定

    PIC16f886を用いて回路を作成しています。 PICにはLCD(SC1602)と動作確認用のLED1個を接続し、PICKIT2を用いてICSPでプログラムを書き込んでいます。 LCDに文字を表示するプログラムと、LOOP内でLEDを0.5sec間隔でLEDを点滅させるだけのプログラムを作成、書き込んだところ問題なく動作しました。 ICSP回路に差し込んであるPICKIT2を抜いて電源を入れるとLCDの表示が途中で停止し、PIC自体も停止しているようです。 再度PICKIT2をICSP回路に差し込んで電源を入れると正常に動作します。 上記の様な症状はどういったことが原因で発生すると考えられるでしょうか? また、対処方法などありましたらご教授宜しく御願い致します。

  • LCDを用いたカウントダウンプログラムについて

    今、PIC16F84AとLCDを用いて255からカウントダウンするところをLCDに表示するプログラムを作っています。 開発環境は ・MPLAB X IDE ・XC8コンパイラー ・PIC Kit3 を使っています。 プログラムはコンパイル、ビルドおよび書き込みは正常にできます。 しかし、いざ動かしてみるとカウントが「255」から「254」にならず「52」になってしまいます。 プログラムのどこがおかしいか全くわかりません。 また、プログラムにおいてLCDの表示ルーチンは、「Hi-Tech C」のサンプルを使用していて (Delay関数の個所をXC8用に書き換えています。)パスコンは、つけたほうが良いのですが、今回はつけていません。 参考のため回路図とプログラムを掲載しますので解決策がありましたら教えてください。 よろしくお願いいたします。 ////////////////以下ソースコード//////////////////// /* * File: main.c * * Created on 2015/12/24, 16:37 */ //#define _LEGACY_HEADERS #include <pic.h> #include <stdlib.h> #include "lcd.h" #define _XTAL_FREQ 4000000 #pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is disabled) #pragma config CP = OFF // Code Protection bit (Code protection disabled) void ioport(void); void main(void) { unsigned char data; char str[2]; ioport(); lcd_init(); data=255; while(1){ lcd_clear(); lcd_goto(0x00); itoa(str,data,10); lcd_puts(str); if(data<0){ data=255; } __delay_ms(250); __delay_ms(250); data--; } } void ioport(void) { TRISA=0x00; PORTA=0x00; TRISB=0x00; PORTB=0x00; } //////////////////////////////////

  • PIC16F88のAN4のアナログ/デジタル変換について教えてください

    PIC16F88のAN4のアナログ/デジタル変換について教えてください? PIC16F88にて以下のピンアサインでCCS社のCコンパイラで作成しました。AN2の温度AN3の湿度は正常にLCDに表示するのですがAN4の電圧がAN3の湿度の変化に追従してくるんです。ピンアサインが間違っているのか、PIC16F88に制限があるのか英語の説明書見てもチンプンかんぷんで。どなたかよろしくご教授お願いします。(現在AN4の電圧測定はオープン状態で0.245V 湿度計を触ると0.443vに変化します) RB7(13ピン) LCD DB7(14ピン) RB6(12ピン) LCD DB6(13ピン) RB5(11ピン) LCD DB5(12ピン) RB4(10ピン) LCD DB4(11ピン) RB2(8ピン) LCD RS (4ピン) RB3(9ピン) LCD STB (6ピン) LCD R/W(5ピン)→GND LCD VSS(1ピン)→GND ****LCDタイプによりVSSとVDDが逆**** LCD VDD(2ピン)→+5V ****LCDタイプによりVSSとVDDが逆**** RA2(1ピン)AN2 LMC662CN 温度電圧入力 RA3(2ピン)AN3 LMC662CN 湿度電圧入力 RA4(3ピン)AN4 電圧測定 RA0(17ピン) 右SW(B_sw) MAX and MIN クリア RA1(18ピン) 左SW (A_sw) MAX and MIN and 電圧 表示 関係ありそうなプログラム抜粋 #include <16f88.h> #fuses HS,NOWDT,PUT,NOPROTECT,NOLVP,NOBROWNOUT, #device ADC=10          //アナログ/デジタル変換10ビットモード #use delay(clock=4000000) //4Mzクロック #use fast_io(b) //ポートB出力設定 途中省略 set_adc_channel(2); //A/D変換チャンネル設定 delay_us(116); //変換にかかる時間96μs+19.72μs ondo = read_adc(); //A/D変換レジスタリードしondoへ ondo = (ondo * 50.0) / 1024; //ondo値を実数に変換 途中省略 set_adc_channel(3); //A/D変換チャンネル設定 delay_us(116); //変換にかかる時間96μs+19.72μs shitsudo = read_adc(); //A/D変換レジスタリードしshitsudoへ shitsudo = (shitsudo * 100.0) / 1024; //shitsudo値を実数に変換 途中省略 set_adc_channel(4); //A/D変換チャンネル設定 delay_us(116); //変換にかかる時間96μs+19.72μs+α v = read_adc(); //A/D変換レジスタリードしvへ v = (v * 0.5) / 1024; //v値を実数に変換 途中省略 main() { ////////////////////////温度計湿度計電圧計の設定/////////////////// setup_adc_ports(sAN2 | sAN3 | sAN4 | VSS_VDD); //アナログポート設定 setup_adc(ADC_CLOCK_DIV_32); //アナログ変換クロック設定

  • PIC12F683からパソコンへのシリアル通信

    PIC12F683 を使って、簡単な電圧ロガーを作ろうとしているのですが、 パソコンへの送信が正常に行われません、わかる方がおられたらどこが悪いのかご指摘願います。 PICの書き込み、PICからのデータ受信に用いているパソコン(のマザーボード)は、G45GCMX-S2です。 参考にさせていただいているサイトは、 http://www8.plala.or.jp/InHisTime/page005.html#PIC-002 なのですが、上記サイトのソースプログラム http://www8.plala.or.jp/InHisTime/PIC-001/DataLogger2.c には何の手も加えず、動作させております。 また、PIC->PCへの接続端子の接続が正常である事も、テスターで確認しております。 (回路から、PCのCOM1(DSUB-9pin)へ接続。) コンパイル(MikroC 8.88)、hexの書き込み(RCDライタ)までうまくいくのですが、 ブレッドボードに組んで、電源を入れてもGP5の電圧に変化が無い、という状況です。 (LEDを点滅させるプログラムを書き込んだ場合は問題なく動作しています。) 実際の各端子は Vdd 1pin : 5V GP5 2pin : open (※ この端子の電圧に変化が無い) GP4 3pin : open GP3 4pin : 5V CPP1 5pin : open AN1 6pin CH1 : open AN0 7pin CH0 : open Vss 8pin : GND となっています。テスターで測ると 2pinは2.3Vで一定、 レベル変換用のトランジスタのコレクタは3.4V一定です。 念のためレベル変換回路 (http://www8.plala.or.jp/InHisTime/img2022.jpg の右上、C1815の部分。) 単体の動作確認はしています。 ハイパーターミナルその他のソフトで通信しようと試みたのですが、 反応が無いため、ピンの電圧を測ってみたところ、パソコンへの送信出力ピンの電圧が 変化していないので、これは正常じゃないのでは無いか?と思い、 詳しい方のアドバイスをいただこうと投稿しました。 上記のソースであれば、1秒ごとに出力電圧に反応があるかと思いますが、無反応です。 説明がややこしくなりましたが、わかる方がおられましたらよろしくお願いします。

  • SC1602BSLの四角表示

    最近電子工作を始めた者です。SC1602BSLとH8マイコンを使って文字を表示させようと思っているのですが、起動するとLCDの一列と二列両方とも黒い四角が表示されてしまいます。ただよく見てみると表示させたい文字も表示されています。このようなことが起こる原因としてどのようなことが考えられるのでしょうか。 またコントラスト調整のピンの接続方法がよくわからないため、GNDに接続しています。これが原因でしょうか。(5Vに接続した時は何も表示されません) 分かる方、回答をよろしくお願い致します。