MB-LCD1 標準入出力関数による表示

Similar documents
MB-LCD1 アセンブラ・ライブラリによる制御

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

Microsoft Word - TC4017BP_BF_J_P10_060601_.doc

uPC1093 DS

uPC258,4558 DS

Prog1_10th

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

Microsoft Word - TC4011BP_BF_BFT_J_P8_060601_.doc

Microsoft Word - TA79L05_06_08_09_10_12_15_18_20_24F_J_P11_070219_.doc

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

プログラミング実習I

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Microsoft Word - TC4538BP_BF_J_2002_040917_.doc

PowerPoint Presentation

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

The DatasheetArchive - Datasheet Search Engine

Taro-ファイル処理(公開版).jtd

Microsoft PowerPoint - CproNt02.ppt [互換モード]

02: 変数と標準入出力

PowerPoint Presentation

HD74HCT564, HD74HCT574

2SC1213, 2SC1213A データシート

Microsoft Word - Training10_プリプロセッサ.docx

2006年10月5日(木)実施

memo

TC74HC00AP/AF

Prog1_12th

2SD667. 2SD667A データシート

RD2.0S~RD150S DS

02: 変数と標準入出力

Microsoft PowerPoint pptx

TC74HC14AP/AF

RY_R8C38ボード RY-WRITER基板 自動書き込み・実行解説マニュアル

講習No.9

Microsoft PowerPoint ppt

CS+ RL78コンパイラ CC-RL V リリースノート

講習No.12

02: 変数と標準入出力

ファイル入出力

ファイル入出力

2SC458, 2SC2308 データシート

Microsoft Word - Cubesuite+_78K0R.doc

TC74HC4017AP/AF

Cプログラミング1(再) 第2回

Microsoft Word - TC74HC107AP_AF_J_P9_060201_.doc

ポインタ変数

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

Microsoft PowerPoint - 10Com2.ppt

情報処理演習 B8クラス

gengo1-12

ポインタ変数

TC74HC109AP/AF

Microsoft PowerPoint - 11.pptx

TC74HC112AP/AF

RL78/F13, F14 割り込み要因判別方法

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

Microsoft PowerPoint - CproNt11.ppt [互換モード]

gengo1-12

Microsoft PowerPoint - 計算機言語 第7回.ppt

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

TC7SET08FU_J_

2SC460, 2SC461 データシート

TC4093BP/BF

Microsoft Word - Cプログラミング演習(9)

プログラミング実習I

TM Bluetooth® Connector ユーザーズマニュアル

計算機プログラミング

<4D F736F F D B D A778F4B835A EC B290882E646F63>

< F2D837C E95CF CF68A4A94C5816A2E6A>

Microsoft Word - Cプログラミング演習(12)

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

uPA2000 Series DS

TC7WT126FU

Microsoft PowerPoint - 11.ppt [互換モード]

HD74LV2G74A

gengo1-12

DF2B29FU_J_

02: 変数と標準入出力

Microsoft PowerPoint - prog03.ppt

プログラミング基礎

演算増幅器

AC08DSMA, AC08FSMA DS

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

ユーザーズマニュアル

Microsoft Word - Cubesuite+_V850_AM.doc

Microsoft PowerPoint - 5Chap15.ppt

1. 入力した文字列を得る 1.1. 関数 scanf() を使う まずは関数 scanf() を使ったプログラムを作ってみましょう 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: #include<stdio.h> #define SIZE 128 main(

Visual DSP++ install and tutorial

CR02AM-8 データシート <TO-92>

Taro-リストⅢ(公開版).jtd

プログラミング基礎

TC4017BP/BF

HD74LV2GT34A

AquesTalk プログラミングガイド

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

# 深く掘り下げる C++ 講座 < 第 2 回 > // 先に先週の内容の解説 r ( キャリッジリターン ) 行の先頭に戻る 語源はタイプライターからだそうです とりあえず 以下に rを使ったくるくる回る顔文字のソース 注 : 以下のソースはmacのターミナル上での動作のみ保証 例 ) #inc

Microsoft Word - Cプログラミング演習(10)

ポインタ変数

AquesTalk Win Manual

Transcription:

アプリケーションノート MB-LCD1_3 2005/9 液晶表示ユニット MB-LCD1 標準入出力関数による表示 概要 本アプリケーションノートは 液晶表示ユニット MB-LCD1 を オリジナル ライブラリ (STD_LCD_LIB.lib) と コンパイラ NC30WA 付属の標準ライブラリ (r8clib.lib) の標準入出力関数を使用して表示する方法を説明するものです オリジナル ライブラリ (STD_LCD_LIB.lib) の詳細については 液晶表示ユニット MB- LCD1 オリジナル ライブラリの紹介 (MB_LCD_1_SG043199.pdf) を参照してください 動作環境は以下のとおりとします ターゲットマイコン :SR8C15CP ターゲットボード :MB-RS8 開発環境 : ルネサステクノロジ社統合化開発環境 HEW Version 4.00.01.001 ツールチェイン Renesas M16C Standard Toolchain 5.30.02 MB-LCD1 の H/W 構成 液晶表示部 (Sunlike Display Tech 社 SC1602BS*B) にシフトレジスタ 74HC164 を接続し ポート信号 3 線とリセット信号のみによる制御を実現しています 各ポート接続表 SR8C15CP 74HC164( シフトレジスタ ) SC1602BS*B( 液晶表示部 ) P3_3( 出力 ) A,B シリアルデータ入力 - P3_4( 出力 ) - E 動作起動信号入力 P3_5( 出力 ) CLK クロック入力 - RESET( 出力 ) CLR クリア信号入力 - 図 1 MB-LCD1 接続 1/15 SG043109

サンプルプログラムの構成 本アプリケーションノートで紹介するサンプルプログラムは HEW のプロジェクトで提供しています 以下にプロジェクトフォルダの構成を示します ncrt0.a30 M16C ツールチェイン標準のスタートアップルーチン NCRT0.A30 に 外部発振回路からのクロックをメインクロックとする設定を追加しています 本スタートアップルーチン実行後 メインクロックは 20MHz となります ( ターゲットボード MB-RS8 に搭載した場合の動作を想定しています ) 全セクションを設定する定義ファイル SECT30.INC をインクルードしています 本スタートアップルーチンは必ず先頭にリンクしてください sect30.inc M16C ツールチェイン標準のセクション定義ファイルです NCRT0.A30 からインクルードされます sfr_r815.inc ターゲットマイコン SR8C15CP( ルネサステクノロジ R8C/Tiny シリーズ R5F21154SP) の SFR(Special Function Register) の定義ファイルです STD_LCD.h STD_LCD_LIB.lib を使用するためのヘッダファイルです かならず C ソースファイル内でインクルードしてください また M16C ツールチェインコンパイラ NC30WA で提供される標準ライブラリを使用しているので 標準ヘッダファイル string.h を C ソースファイル内でインクルードしてください 本サンプルプログラムでは string.h は環境変数 INC30 より指定されたディレクトリ ( デフォルトのインストールで C:\Renesas\NC30WA\V530R02\inc30 に設定されています ) にあることが前提となります 2/15 SG043109

STD_LCD_LIB.lib MB-LCD1 を制御するオリジナル ライブラリです 本ライブラリで使用する周辺機能は以下のとおりです 入出力ポート :P3_3( 出力 ) P3_4( 出力 ) P3_5( 出力 ) STD_LCD_TEST.c MB-LCD1 に文字キャラクタを表示させる C 言語のプログラムです 標準入出力関数とオリジナルのライブラリを使用しています (stdio.h) 本サンプルプログラム内で標準入出力関数を使用しているので stdio.h をインクルードしています 本サンプルプログラムでは 環境変数 INC30 より指定されたディレクトリ ( デフォルトのインストールで C:\Renesas\NC30WA\V530R02\inc30 に設定されています ) にあることが前提となります (string.h) 本サンプルプログラム内で文字列操作関数を使用しているので string.h をインクルードしています 本サンプルプログラムでは 環境変数 INC30 より指定されたディレクトリ ( デフォルトのインストールで C:\Renesas\NC30WA\V530R02\inc30 に設定されています ) にあることが前提となります (r8clib.lib) 本サンプルプログラム内で標準入出力関数 文字列操作関数を使用しているので 標準ライブラリ r8clib.lib が環境変数 LIB30 より指定されたディレクトリ ( デフォルトのインストールで C:\Renesas\NC30WA\V530R02\lib30 に設定されています ) にあることが前提となります 3/15 SG043109

サンプルプログラムの内容 main <LCD_LIB.c> 液晶表示ユニット MB-LCD1( キャラクタタイプ 16 文字 2 行 ) に文字を表示させる 名前 main 引数 戻り値 呼び出し元 - 使用オリジナル ライブラリ (STD_LCD_LIB.lib より ) std_lcd_init,lcd_puts,lcd_cursor LCD_gotoXY,LCD_putc 使用標準入出力関数ライブラリ strcpy, printf, putchar ( コンパイラ提供 r8clib.lib より ) < リスト > #include <stdio.h> #include <string.h> #include "std_lcd.h" // プロトタイプ宣言 void wait_x(void); void wait_x(void) long l; for(l=0;l<150000;l++) ; // メインルーチン void main(void) int i,j; char str[20]; long l; std_ strcpy(str,"renesas"); j=1234; while(1) printf("hello World!\n <%s>",str); for(i=6;i!=0;i--) wait_x(); MB-LCD1 に 1 秒おきに以下のように表示する printf("\nmy name is R8C. %d %04X",j,j); for(i=6;i!=0;i--) wait_x(); for(i=1;i<=100;i++) wait_x(); LCD_gotoXY(0,1); printf("count: %03d",i); putchar(0x0c); j++; // LCD 消去 4/15 SG043109

1 1 行目に Hello world! 2 行目に <Renesas> と表示する 2 1 行目に My name is R8C. 2 行目に 1234 04D2 と表示する 3 2 行目に Count: xxx と表示する xxx は 000~100 までカウントする 4 100 までカウントすると 1 の Hello world! <Renesas> に戻って 2~4 と繰り返す 1 2 3 4 図 2 サンプルプログラムの実行結果 5/15 SG043109

ライブラリの仕様 LCD_init <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 の初期設定を行う 名前引数戻り値 std_lcd_init 入出力ポート 3 の P3_3,P3_4,P3_5 を出力ポートに設定する MB-LCD1 を以下のとおり設定する インタフェースデータ長 :4 ビット長デューティ (1 行の表示文字数 ):16 文字表示文字構成 :5 8 ドットマトリクスカーソル : 点灯させない ( ホーム位置 (0 番地 ) に設定 ) カーソル方向 : インクリメント表示 : オン カーソルのある桁は点滅しない std_lcd_init <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 の初期設定を行う (LCD_init を実行する ) 標準出力 (stdout) の出力先を設定する 名前引数戻り値 std_lcd_init LCD_init を実行する ( 詳細は LCD_init の項を参照 ) 標準出力 (stdout) にオリジナル ライブラリ LCD_putc を割りあてる 本関数を実行後 標準出力 (stdout) は液晶表示ユニット MB-LCD1 に設定されます 6/15 SG043109

LCD_puts(*str) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 に文字列を表示する 名前引数 戻り値 LCD_puts unsigned char *str ( 文字列は対応する文字 16 文字まで ) MB-LCD1 に引数 *str の示す文字列を表示する MB-LCD1 のホーム位置から Sunhayato と表示する #include "STD_LCD.h" char str[10]="sunhayato"; LCD_puts(str); S u n h a y a t o 7/15 SG043109

LCD_putc(c) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 に文字を表示する 名前 LCD_putc 引数 char c (c= 対応する文字 1 文字 ) 戻り値 MB-LCD1 に文字を表示する MB-LCD1 のホーム位置に A を表示する #include "STD_LCD.h" char c; c='a'; LCD_putc(c); A LCD_cursor(b) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 のカーソル表示を制御する 名前引数戻り値 LCD_cursol unsigned char b (b=0,1) MB-LCD1 のカーソルを 引数 char b が 1 の場合は表示 0 の場合は消去する MB-LCD1 のホーム位置にカーソルを表示する #include "STD_LCD.h" LCD_cursor(1); _ 8/15 SG043109

LCD_gotoXY(x,y) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 のカーソル位置を設定する 名前引数戻り値 LCD_gotoXY unsigned char x,y (x=0~15 y=0,1) MB-LCD1 のカーソルを引数 x( 列 ) y( 行 ) の位置に設定する MB-LCD1 に 1 行目の左端にカーソルを設定する #include "STD_LCD.h" LCD_cursor(1); LCD_gotoXY(0,1); 0 1 _ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 LCD_locate(pos) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 のカーソル位置を設定する (DDRAM アドレスを設定する ) 名前 LCD_locate 引数 unsigned char pos (pos=ddram アドレス ) 戻り値 MB-LCD1 のカーソルを引数の DDRAM アドレスの位置に設定する DDRAM のアドレスと表示位置 (HEX) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F MB-LCD1 の 2 行目の左端にカーソルを設定する #include "STD_LCD.H" LCD_cursor(1); LCD_locate(0x40); _ 9/15 SG043109

LCD_gotoX(x) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 のカーソル位置を設定する 名前引数戻り値 LCD_gotoX unsigned char x (x=0~15) MB-LCD1 のカーソルを引数 x( 列 ) の位置に設定する MB-LCD1 の 1 行目の左端から右端へカーソルを移動する #include "STD_LCD.h" long l; LCD_cursor(1); for (l=0;l<250000;l++) ; LCD_gotoX(15); 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 LCD_gotoY(y) (LCD.a30) 液晶表示ユニット MB-LCD1 のカーソル位置を設定する 名前引数戻り値 LCD_gotoY unsigned char y(y=0,1) MB-LCD1 のカーソルを引数 y( 行 ) の位置に設定する MB-LCD1 の 0 行目の左端から 1 行目左端にカーソルを移動する #include "STD_LCD.h" long l; LCD_cursor(1); for (l=0;l<250000;l++) ; LCD_gotoY(1); 0 _ 1 _ 10/15 SG043109

LCD_clear <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 の表示を消去する 名前引数戻り値 LCD_ clear MB-LCD1 の表示を消去し カーソルをホーム位置に設定する LCD_data(c) <STD_LCD_LIB.lib> 液晶表示ユニット MB-LCD1 に DDRAM のデータを書き込む 名前引数 戻り値 LCD_data unsigned char c (c= 対応する文字コード 1 文字 ) MB-LCD1 に DDRAM のデータに対応する文字パターンを表示する ( 文字コードと文字パターンの対応については MB-LCD1 添付資料を参照 ) MB-LCD1 のホーム位置に A を表示する #include "STD_LCD.h" LCD_data(0x41); A 11/15 SG043109

標準ライブラリ strcpy (r8clib.lib) 1 < 文字列操作関数 > [ 機能 ] 文字列の複写を行います [ 書式 ] #include <string.h> char _far * strcpy( s1, s2 ); [ 実現方法 ] 関数 [ 引数 ] har _far *s1;... 複写先の文字列へのポインタ const char _far *s2;... 複写元の文字列へのポインタ [ 戻り値 ] 複写先の文字列へのポインタを返します "s1" で示される領域に "s2" で示される (NULL で終了している ) 文字列を複写します [ 解説 ] 複写先の文字列は NULL で終了します オプション -O[3~5],-OR 及び -OS を指定した場合は 最適化により関数のインライン展開を行う可能性があります 1 ルネサステクノロジ社 R8C/Tiny,M16C/60,30,Tiny,20,10 シリーズ用 C コンパイラパッケージ V.5.30C コンパイラユーザーズマニュアル より抜粋 標準ライブラリ printf (r8clib.lib) 1 < 入出力関数 > [ 機能 ] stdout への書式付き出力を行います [ 書式 ] #include <stdio.h> int printf( format, argument... ); [ 実現方法 ] 関数 [ 引数 ] const char _far *format;... 書式指定文字列のポインタ format で与えられる文字列の % 以降の指定は 次の意味を持ちます [ ] 内は省略可能です 書式の各指定については次のページで説明します 2 書式 : %[ フラグ ][ 最小フィールド幅 ][ 精度 ][ 修飾文字 (l L 又は h)] 変換指定記号書式例 : %-05.8ld [ 戻り値 ] 出力した文字数を返します ハードウェアに起因するエラーの場合 EOF を返します [ 解説 ] format の指定に従って argument を文字列に変換し stdout へ出力します 3 argument にポインタを与える場合は far 型ポインタである必要があります 1 ルネサステクノロジ社 R8C/Tiny,M16C/60,30,Tiny,20,10 シリーズ用 C コンパイラパッケージ V.5.30C コンパイラユーザーズマニュアル より抜粋 2 printf format の書式設定についてはルネサステクノロジ社の上記コンパイラマニュアル ( 付録 E.2.3 標準関数リファレンス printf の項 ) を参照してください 3 オリジナル ライブラリ std_lcd_init 実行後は stdout は液晶表示 MB-LCD1 に設定され ます 12/15 SG043109

標準ライブラリ putchar (r8clib.lib) 1 < 入出力関数 > [ 機能 ] stdout に 1 文字を出力します 2 [ 書式 ] #include <stdio.h> int putchar( c ); [ 実現方法 ] マクロ [ 引数 ] int c;... 出力する文字 [ 戻り値 ] 正常に出力できた場合 出力した文字を返します エラーの場合 EOF を返します [ 解説 ] stdout に 1 文字を出力します 1 ルネサステクノロジ社 R8C/Tiny,M16C/60,30,Tiny,20,10 シリーズ用 C コンパイラパッケージ V.5.30C コンパイラユーザーズマニュアル より抜粋 2 オリジナル ライブラリ std_lcd_init 実行後は stdout は液晶表示 MB-LCD1 に設定され ます 13/15 SG043109

参考文献 液晶表示ユニットの取扱説明書 : MB-LCD1 添付資料 1 オリジナル ライブラリ (STD_LCD_LIB.lib) について : 液晶ユニット MB-LCD1 オリジナル ライブラリの紹介 (MB_LCD_1_SG043199.pdf) 1 統合化開発環境 High-performance Embedded Workshop の使い方 : High-performance Embedded Workshop ユーザーズマニュアル (JHEWU51.pdf) 2 SR8C15CP スタートアップガイド (SR8C15CP_SG043101.pdf) 1 コンパイラ付属標準ライブラリについて : ルネサステクノロジ社製コンパイラ NC30WA コンパイラパッケージ V5.30 ユーザーズマニュアル 2 1 サンハヤト株式会社発行 2 株式会社ルネサステクノロジ発行 14/15 SG043109

< 本資料について > 本資料は 電子工作や電子回路 パーソナルコンピュータの操作について一般的な知識をお持ちの方を対象にしています 本資料を元に操作するには 株式会社ルネサステクノロジ社製 R8C/Tiny マイコンについての知識や開発環境などが必要です < 安全設計に関するお願い > 一般的に半導体を使用した製品は 誤動作したり故障することがあります 半導体の誤動作や故障の結果として事故や損害などを生じさせないように考慮した安全設計をご購入者の責任で行ってください < 本資料のご利用にあたって > この取扱説明書に掲載している内容は お客様が用途に応じた適切な製品をご購入頂くことを目的としています その使用により当社及び第三者の知的財産権その他の権利に対する保証 又は実施権の許諾を意味するものではありません また 権利の侵害に関して当社は責任を負いません 本資料に記載した情報を流用する場合は お客様のシステム全体で充分評価し適用可能かご判断願います 当社では適用可能判断についての責任は負いません 本資料に記載してある内容は 一般的な電子機器 ( 学習教材 事務機器 計測機器 パーソナル機器 コンピュータ機器など ) に使用されることを目的としています 高い品質や信頼性が要求され 故障や誤作動が直接人命を脅かしたり人体に危害を及ぼす恐れのある 医療 航空宇宙 原子力制御 運輸 移動体 各種安全装置などの機器への使用は意図も保証もしておりません この取扱説明書の一部 又は全部を当社の承諾で いかなる形でも転載又は複製されることは堅くお断りします 全ての情報は本資料発行時点のものであり 当社は予告に本資料に記載した内容を変更することがあります この資料の内容は慎重に制作しておりますが 万一記述誤りによってお客様に損害が生じても当社はその責任を負いません 本資料に関してのお問合せ その他お気付きの点がございましたら 当社までお問合せください 本資料に関する最新の情報はサンハヤト株式会社ホームページ (Hhttp://www.sunhayato.co.jp/H) に掲載しております 15/15 SG043109