• ベストアンサー

LCD制御

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

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

  • ベストアンサー
回答No.1

LCDディスプレイの制御をやるんやったら,LCDドライバ内蔵のPICがお勧めです. http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=107&mid=10&lang=en&pageId=74 マニュアルのLCDドライバ部分を読めば,制御方法はわかるでしょう. オールフラッシュにもあって,こちらは日本語です. http://www.necel.com/micro/ja/product/all_8_lcd.html 秋月のSP521を見るとこのICを推奨しています. http://www.intersil.com/data/fn/fn3086.pdf アプリケーションノートも参考になるでしょう. http://www.intersil.com/data/an/an046.pdf PIC16F877Aを使いたかったら,専用のセグメントタイプのLCDドライバもあります. http://semicon.njr.co.jp/njr/hp/fileDownloadMedia.do?_mediaId=1520 LCDドライバ内蔵のマイコンがなかった頃,これを使ったことがあります. http://www.onsemi.com/pub_link/Collateral/MC14543B-D.PDF 桁数分用意して,小数点等はEX-ORで付けるとか,一言で言って面倒です. LCDドライバ内蔵のPIC使うことを薦めます.

mimimimi10
質問者

お礼

アドバイスありがとうございます。 これらを参考にしながら製作していきたいと思います。

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

関連するQ&A

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

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

  • ワンチップマイコン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を使用しています

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

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

  • PIC LED制御

    PIC16F84AでのLED制御についてですが、PIC回路とは別に外部に別の回路を組みその別回路でLEDの点滅スピードコントロールをしたいのですが可能でしょうか?スピードについてはスイッチで何段階かに分けたいです。(例えば5段階調整等)

  • LCDのサブルーチンについて

    今、LCDとPICの接続方法を [PIC(下位4ビット)⇔LCD]から[PIC(上位4ビット)⇔LCD]に変更することを考えています。 LCDのサブルーチンはHi-Tech CコンパイラーのLCDのサンプルで使用されていたものを使用しています。 接続方法を変更するにあたりサブルーチンを書き換えなくてはいけないのですが、どのように書き換えればいいのかわかりません。 参考までにLCDのサブルーチンとPICとLCDとの接続方法を示した図を掲載します。 #define _LEGACY_HEADERS #define _XTAL_FREQ 4000000 #include <pic.h> #include "lcd.h" #define LCD_RS RA0 //#define LCD_RW RA4 #define LCD_EN RA1 #define LCD_DATA PORTB #define LCD_STROBE() ((LCD_EN = 1),(LCD_EN=0)) /* write a byte to the LCD in 4 bit mode */ void lcd_write(unsigned char c) { __delay_us(40); LCD_DATA = ( ( c >> 4 ) & 0x0F ); LCD_STROBE(); LCD_DATA = ( c & 0x0F ); LCD_STROBE(); } /* * Clear and home the LCD */ void lcd_clear(void) { LCD_RS = 0; lcd_write(0x1); __delay_ms(2); } /* write a string of chars to the LCD */ void lcd_puts(const char * s) { LCD_RS = 1; // write characters while(*s) lcd_write(*s++); } /* write one character to the LCD */ void lcd_putch(char c) { LCD_RS = 1; // write characters lcd_write( c ); } /* * Go to the specified position */ void lcd_goto(unsigned char pos) { LCD_RS = 0; lcd_write(0x80+pos); } /* initialise the LCD - put into 4 bit mode */ void lcd_init() { char init_value; //ADCON1 = 0x06; // Disable analog pins on PORTA init_value = 0x3; //TRISA=0; //TRISB=0; LCD_RS = 0; LCD_EN = 0; //LCD_RW = 0; __delay_ms(15); // wait 15mSec after power applied, LCD_DATA = init_value; LCD_STROBE(); __delay_ms(5); LCD_STROBE(); __delay_us(200); LCD_STROBE(); __delay_us(200); LCD_DATA = 2; // Four bit mode LCD_STROBE(); lcd_write(0x28); // Set interface length //lcd_write(0xF); // Display On, Cursor On, Cursor Blink lcd_write(0x0C); lcd_clear(); // Clear screen lcd_write(0x6); // Set entry Mode }

  • PICを同期させて制御する方法を教えてください。

    PICを同期させて制御する方法を教えてください。 PIC16F84Aを使用して、複数個をLEDを制御したいと考えています。 LEDの制御基盤を複数作り、同じプログラムを入れてもLEDの点灯タイミングが 同期して動きません。 複数個のPICを同期させて制御するにはどうしたらいいのですか? 5個以上のPICを使用したいと考えています。 教えてください。 よろしくお願いします。

  • LCD(sc1602)が不調

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

  • IC制御

    テールランプのスモールにPIC16F84Aとトランジスタ2SC1815を付けて、スイッチオンでIC回路に、スイッチオフで純正配線に電流を流したいですがどうすればいいですか?テールランプはマイナス制御なのでプラス1本、マイナス5本です。ICの電源はACCです。

  • PICの動作不安定

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

  • I2CでZJM162A というLCDを稼働できない

    複数のLCDをPICでI2Cインターフェースで表示用に使用しようとしています。 I2Cを使わず、パラレルで繋ぐと問題なく表示します。 コネクタで簡単に別なLCDと交換できるようになっており バックライトありの1602Aや2004Aから差替えても表示すべき内容が表示されます。 I2C環境下も同じ初期化で命令で1602Aや2004Aは問題ありません。 しかし、ZJM162A では2ライン設定しているにもかかわらず、1行で文字化けします。 タイミングを変更してテストしても、ZJM162A だけは初期化で指定した通りにならず、文字も 0x?F のコードしか表示しません。 4bitモード/2Lines/5x8dotで初期化しているだけです。 LiquidCrystal_I2Cのソースを参考に初期化手順は全く同じにしても ZJM162A だけは1行モード/文字化けで表示します。 MPLAB IDE v8.63 PIC16F1938 ZJM162A/I2Cカード I2Cカード http://ht-deko.com/arduino/pic/i2c_lcd_03.jpg LCD http://www.aitendo.com/data/aitendo/_/70726f647563742f32303132303730345f3061633864372e6a7067003235300000660066.jpg よろしくお願いします。

このQ&Aのポイント
  • 古いMFC-J720Dのインクカートリッジを交換したら、シアンとマゼンタのインクが正常に認識されず、取り外せと表示されます。
  • 予備のインクを使っても同じ問題が発生し、電源を一晩落としても改善されません。
  • この問題の解決策についてご教示ください。
回答を見る