• 締切済み

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

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

みんなの回答

  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.3

まず本当に文字コード0xFFが「■」なのか疑問です。 LCDの文字コードは機種によって違いがあります。 例えばこちらのものは0xFFは「 ̄」です。 http://akizukidenshi.com/catalog/g/gP-06669/ 他に、英語版では「ÿ」になっていると思います。 それを見る意味でも、0x00~0xFFまで全ての文字を表示してみるとよいでしょう。 なお、(一般的なのLCDでは)CGRAMではなくCGROMですね。RAMなのは最初の16個だけです。

全文を見る
すると、全ての回答が全文表示されます。
  • koujikuu
  • ベストアンサー率43% (428/992)
回答No.2

とりあえず他の文字が表示できるか、0x00~0xFFまで全ての文字を表示してみて下さい 0xFFだけ表示がおかしいのであれば、データを直接LCDへ出力する必要があります(C言語ライブラリを使用しない) またコード0xFFはバックスラッシュを表します”\”

参考URL:
http://www.kallanet.com/UPLOAD/about_LCD.pdf
全文を見る
すると、全ての回答が全文表示されます。
noname#215107
noname#215107
回答No.1

回路の間違いか、プログラムのミス、通信タイミングミス等と思います。質問者ご本人にしかわからないと思います。 検証法としては、0x20から0xffまで一つずつ増やしながら順番に表示してみて、どこまで正常に表示されるか確かめてみてはいかがでしょうか。

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

関連するQ&A

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

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

  • LCD(sc1602)が不調

    PICを勉強しています。以前からPICを使ってLCDに文字などを表示させる実験?などをしていたのですが、昨日から突然、上段すべてに四角(0xFF)が表示されるようになりました。下段には何も表示されません。ブレッドボード上の回路に変更はありません。 LCDにVdd、Vss、Voのみを接続しても、やはり上段すべてに四角が表示され、上記と変化ありません。以前に作成した(LCDへの表示を確認済みの)プログラムを使ってみましたが、これも同様で改善なしでした。 新品時に電源のみを接続したときには、上下段とも、何も表示されなかったと記憶しているのですが。 ネットを検索したら、同じ症状の例を発見しました。それへのアドバイスとしては、クロックを遅くする(または初期化時間を長めに取る)、回路を見直す、でした。もちろん双方とも試してみましたが、やはり変化ありません。よいアドバイスをどうかよろしくおねがいいたします。

  • LCD表示プログラムで誤表示が解決できない

    pic16F84AにS-10551D(秋月)をつないでキャラクタ表示をしようとしていますが50%くらい誤まって表示してしまい解決策が有りません。 プログラムはアッセンブラでMPLAB IDEv8.60を使用 電波新聞社のPICマイコン完全マスターを参考 にしています。データ長4bitのイニシャライズも本やLCD添付資料のままでは表示しませんでした。 LCDパネルの問題かマイコンソフトの問題かの区別も出来ていません。 ちなみにソースを変更してSC1602BS 16*2行のLCDパネルでは正しく表示出来ます。 S-10551Dは16桁1行の一番安いパネルですが使えず捨てるのはくやしいので質問しました。同じような経験をされて解決された事があればアドバイス願います。 最終的にはLCDにバッテリーの充放電量を表示できる充放電コントローラーを作るのが目的です。

  • 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; } //////////////////////////////////

  • PIC用のCコンパーラーの組み込み

    現在、PICマイコン用Cコンパイラー(デバッカー付き)をインストールしました。しかしながら、ふつうに使用すると、プロンプト画面からいちいちコマンド入力しなければいけないため、統合開発環境であるマイクロチップ社のMPLAB-IDEにCコンパイラ(デバッカ付き)を組み込もう としているのですが、説明書にそれらしいものが見あたりません。誰か、組み込み方を知っている人、教えて下さい。ちなみに、PICのCコンパイラは、(有)データダイナミクスの、PIC Cコンパイラ バージョン3、です

  • PICマイコンでC言語のデバッグ方法

    PIC 16Fでアセンブラでソフトを作っていたのですが、C言語でソフトを作りたいと思っています。開発用ソフトはMAPLABーXーIDEとCコンパイラはXC8を使います。 アセンブラでは、シミュレータモードでステップ動作ができたのでわかりやすくデバッグできたのですが、cではステップ動作の様なことができるのか、できない場合はどうしたらよいか教えてください。

  • PICライタ (C言語→HEXファイル)

    今PICライタについて独学で勉強しています。 今ソフト的には秋月のPICライタおよび、MPLAB使ってます。 しかし、MPLABがC言語読み込めないため迷っています。 そこで質問なんですが (1) C言語をアセンブラ言語に変換する無料ソフトありますか? (2) (1)をあきらめたとしてアセンブラ言語で書くとして、アセンブラ言語でPICのプログラム書くための、わかりやすい本などご存知ですか? やっぱりCコンパイラを買うしかないのでしょうか??

  • PIC18F2520を用いたLCD制御について

    こんにちは。 作りたいものがあって、PICに初めて挑戦しています。 その初めとしてPIC18F2520を用いて秋月製キャラクタ液晶(SC1602BSLB)の制御(簡単な文字表示)を行おうとしているのですが、 web記事を参考にプログラムを記述しても初期化されません。 web記事では主にPIC16系の記載なので LIST P=18F2520 #include <P18F2520.INC> と書き換え、コンフィグも移植しました。 ポート初期化の際に16F系では必要なBANK切替命令については削除しています。 その他の命令については互換性があるとの事なので変更していません。 初期化コマンドのwaitタイミング等色々変化させてみたのですが状況に好転がなく、煮詰まってしまいました。 恐らくは独学ゆえ基本的な部分が抜け落ちているものと思っています。 皆さんからアドバイスが頂けたらと思います。 開発環境はMPLAB-IDE8.10、ライタはPICKit2(Ver.2.51)です。 何卒よろしくお願いいたします。

  • PICを使用してのLCD制御について

    PIC(16F877A)を使用してLCDの制御を行っています。 LCDに表示を行ってから、(カーソルと呼ぶのでしょうか?)黒の■が2行目でチカチカと点滅をしていて、邪魔だなと感じるのですが、点滅させない方法があるのでしょうか? もしあるのであれば、教えて頂けますか? PICのプログラムはC言語を使用しています。 ご回答、アドバイスをよろしくお願いします。

  • PICプログラミングをしているのですが、

    PICプログラミングをしているのですが、 グローバルでint型の変数を宣言しているのですが、 割り込み時にインクリメントをしているのですが、 それをログ出力するとインクリメントができていません。 コードの一部を載せます。 http://drp.ly/1pH841 なにかわかる方いらっしゃいましたら教えてください。 PIC24FJ32GA 開発環境 Windows7 64bit MPLAB IDE v8.53 C30コンパイラ よろしくお願いします。

SP404MK2ライブ配信でのポン出し
このQ&Aのポイント
  • 質問文章からセンセーショナルなタイトルを30文字前後で生成。
  • セミナーや学会など、ビジネス系のライブ配信にて使用を考えています。SP404MK2を使用して、パッドごとにループ・ゲートなどの設定が可能か、さらにパッドを押すたびに再生・一時停止を交互に行い、途中で先頭に戻ることができるか、そしてサイドチェイン的な動作も可能かを知りたいです。スペースや句読点を含まないSEOに適したハッシュタグも付けてください。
  • パッドごとにループ・ゲートなどの設定ができるか、パッドを押すたびに再生・一時停止を交互に行い、途中で先頭に戻ることが可能か、サイドチェイン的な動作も可能か、などの質問。
回答を見る