人はディスプレイをドットマトリックスLCDの例だCコードのために?

B

brennbar67

Guest
誰もがアセンブリを得たの一部またはコードを使用しCの表¥示例を液晶行列ドット単一の文字をか??

 
こんにちは、

&液晶液晶異なるタイプのコントローラのコードの異なる種類が必要になります。あなたはそれを言及しなかった。それは1つだ無意味な誰かのポストと入力した場合を見つけることはあなたのためにはそれがない!

 
21160でのADSP -アセンブラ:#"が含まれて"Def21160.h;
#"を含むマイConstants.h";

0x004 CLEAR_DISPLAY#を定義する
0x008 CURSOR_AT_HOME#を定義する
0x014 ENTRY_MODE_SET_DECR_SH#を定義する
0x01CをENTRY_MODE_SET_INCR_SH#定義
0x03CをDISPLAY_ON#定義
#は、0x0E0定義SET_8_BIT_INTERFACE0x050 CURSOR_SHIFT_R#を定義する
0x040 CURSOR_SHIFT_L#を定義する
0x030 SET_CUR_OFF_BLINK_OFF#を定義する
0x038 SET_CUR_ON_BLINK_OFF#を定義する
0x028 DISPLAY_OFF_C_ON_B_OFF#を定義する
0x060 SHIFT_DISPLAY_LEFT#を定義する
#は、0x070を定義SHIFT_DISPLAY_RIGHTを

.SECTION / DMはseg_dmda;
。グローバルLCD_Data;
するvar LCD_Data;

/ / LCD_Data形式:DB7、DB6、db5内、同時に使えません、DB3を、DB2の、DB1を、DB0は、RW、RSを。

。ENDSEG;.SECTION /午後seg_pmco;
。グローバルLCD_Write、LCD_Test;LCD_Write:

r0の=はdm(LCD_Data);
r0の= lshift r0の2;
はdm(LCD_Data)= r0の;

r1が= 0;
dmは(r1がAuxRegister)=;
LCD_Delayを呼び出します。
r2の= 0x001;
r0の= r0のかR2;
dmは(r0のAuxRegister)=;
LCD_Delayを呼び出します。

r2の= 0xFFE;
でr0 = r0とr2の。
dmは(r0のAuxRegister)=;
LCD_Delayを呼び出します。
r0の= 0;
dmは(r0のAuxRegister)=;
LCD_Delayを呼び出します。

RTSの。LCD_Delay:
lcntr = 300;
までLCD_Loop1 LCEのか。
lcntr = 8000;
までLCD_Loop2 LCEのか。
LCD_Loop2:nopを。
LCD_Loop1:nopを。
RTSの。LCD_Test:

//************************************************ ******************************
/ / Inizializzazioneデルディスプレイは液晶
//************************************************ ******************************
r0の= CLEAR_DISPLAY;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

r0の= CURSOR_AT_HOME;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

r0の= SET_8_BIT_INTERFACE;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

/ / visualizzaの書記のcursore
r0の= SET_CUR_ON_BLINK_OFF;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

/ /非visualizzare書記cursore
r0の= SET_CUR_OFF_BLINK_OFF;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

//---------------------

//************************************************ ******************************
/ / Scritturaディ国連carattereスッラプリマposizioneデルディスプレイ
//************************************************ ******************************

/ /商品でございますl' 1 DDRAM 0Hからindirizzoの(POSIZIONE CURSORE:1 °リガ、1 ° char型)
r0の= 0x200の;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

/ / scrive書記carattere'F'をスルモジュロ
r0の= 0x119;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

//************************************************ ******************************
/ /細い革ひもラプリマリガデルディスプレイ、実はただのダdestra、コン書記carattere'F'を
//************************************************ ******************************
r3に= 0x027;
test_var1:
R3は= R3を渡します。
場合式ジャンプend_loop1;

/ /商品でございますl' DDRAM 1 indirizzo
/は/(POSIZIONE CURSOREスッラプリマリガ:ダラプリマposizioneスッラdestra
/は/裏面はラプリマposizioneスッラ左手)
r0の= lshift R3の2;
r4に= 0x200の;
r0の= R0またはr4に。
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

/ / scrive書記carattere'F'をスルモジュロ
r0の= 0x119;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

r3に= r3に- 1;
ジャンプtest_var1;

end_loop1:
/ / scrive書記文字ネラプリマposizioneディ左手を
r0の= lshift R3の2;
r4に= 0x200の;
r0の= R0またはr4に。
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

/ / scrive書記carattere'F'をスルモジュロ
r0の= 0x119;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;//************************************************ ******************************
/ /細い革ひもラsecondaリガデルディスプレイ、実はただのダdestra、コン書記carattere'%'
//************************************************ ******************************

r3に= 0x067;
test_var2:
R3は= R3を渡します。
場合式ジャンプend_loop2;

/ /商品でございますl' DDRAM 1 indirizzo
/は/(POSIZIONE CURSOREスッラプリマリガ:ダラプリマposizioneスッラdestra
/は/裏面はラプリマposizioneスッラ左手)
r0の= lshift R3の2;
r4に= 0x200の;
r0の= R0またはr4に。
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

/ / scrive書記carattere'%'スルモジュロ
r0の= 0x095;
はdm(LCD_Data)= r0の;
呼び出しがLCD_Write;

r3に= r3に- 1;
ジャンプtest_var2;

end_loop2:
RTSの。

RTSの。。ENDSEG;

 
5月の使用いくつかのことで、あなたはそれを、修正する必要があるだろう

#は<reg51.h>含まれて
#が含まれます"delay.hに"

sbitのLCD_RS = P1を^ 0; / /登録を選択
sbit LCD_E = P1が^ 1; / /有効にする

#(定義LCD_STROBEを((LCD_E = 1)LCD_E = 0))

時間ミリ秒/ /
ボイドDelayMs(unsigned char型CNT)を
(CNTの= 2 *カーボンナノチューブ;
行う
(DelayUs(500);)
(中-カーボンナノチューブ!= 0);


/ /ディスプレイに送信
(無効lcd_write unsigned char型c)の

unsigned char型Movit;
Movit =(ウ>> 2);
)P1が=(P1の&0xC3)|(Movit&0x3C;
LCD_STROBE;
Movit =(ウ<<2);
)P1が=(P1の&0xC3)|(Movit&0x3C;
LCD_STROBE;
DelayUs(60);


/ /クリアホーム液晶
ボイドlcd_clear(ボイド)

LCD_RS = 0;
)lcd_write(0x80を。
DelayMs(2);


/ /文字列を送信する文字
ボイドlcd_puts(const char *をs)は

LCD_RS = 1;
)中(* sの
* lcd_write() だ。


/ /文字を送信する
ボイドlcd_putch(char型c)の

LCD_RS = 1;
lcd_write(c)の;


/ /カーソ¥ルを移動し
ボイドlcd_goto(unsigned char型極)

LCD_RS = 0;
)lcd_write(0x80を 極;


/ /初期化LCDが-モード4ビット
ボイドlcd_init(ボイド)

LCD_RS = 0;
DelayMs(40)、電源の遅延/ /
)lcd_write(0x80000011です/ / 4ビットモードでは、1 / 16デューティ、5x8フォント
LCD_STROBE;
DelayMs(5);
LCD_STROBE;
DelayMs(5);
LCD_STROBE;
)lcd_write(0x80000011です。
)lcd_write(0x08に/ /オフ表¥示
)lcd_write(0x0Cは/ /ディスプレイに、カーソ¥ルをオフ
)lcd_write(0x06と/ /入力モード


ヘッダーファイル
/ *
*液晶インターフェイスヘッダファイル
14:00以上lcd.cを*参照してください
* /

/ *は*ビットモードのバイトを書く4液晶ディスプレイ/

のexternボイドlcd_write(unsigned char型);

/ *クリア、家庭液晶* /

のexternボイドlcd_clear(ボイド);

/ *は、*液晶に文字の書き込みの文字列を/

のexternボイドlcd_puts(const char *をsの);

/ *は、*の位置移動に指定された/

のexternボイドlcd_goto(unsigned char型極);

/ * LCDをintialize -呼び出しを何する前に他の*を/

のexternボイドlcd_init(ボイド);

のexternボイドlcd_putch(char型);

/ *設定にカーソ¥ル位置する* /

#はlcd_cursorを定義する(x)は(lcd_write((x)は&0x7F)の|は0x80)

 

Welcome to EDABoard.com

Sponsor

Back
Top