R8C/M12Aマイコン実習マニュアル ブレッドボード版

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

RS232-TTLレベル変換基板製作マニュアル

AKI-PIC16F877A開発キット (Ver1

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

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

microSD基板 製作マニュアル

EB-RL7023+SB/D2

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

スライド 1

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

PowerPoint プレゼンテーション

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

TWE-Lite R 取扱説明書

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

R8C/38Aマイコン R8C/35Aマイコン 制御ライブラリ解説マニュアル

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのインストール ユーティリティインストール CD-ROM をお持ちでない場合... 4

DSP5Dアップグレードガイド

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

I2C液晶(ST7032i使用)プログラム解説マニュアル(R8C/38A版)

スライド 1

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのインストール ユーティリティインストール CD-ROM をお持ちでない場合... 4

バーコードハンディターミナル BT-1000 シリーズセットアップガイド ( 第 1 版 ) CE ***

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

スライド 1

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

SPI接続超小型グラフィック液晶(ST7565R使用)プログラム解説マニュアル(R8C/38A版)

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

現行のICカードリーダRW4040インストーラの課題

2. 仕様 電源 :USB バスパワー (USB 入力の 5V 電源を使用します ) 出力 : 3.5mm ステレオジャック アナログステレオ出力 最大 20mArms 対応ヘッドホンインピーダンス 1Ω~500Ω RCA ピンジャック アナログ 2ch 出力 (L R) ラインレベル ヘッドホンア

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

HDLトレーナーサンプルプログラム説明書

AN424 Modbus/TCP クイックスタートガイド CIE-H14

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのダウンロードとインストール ユーティリティインストールCD-ROMをお持ちでない場合.

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

Microsoft Word - (171118_v4250)ACS_インストールマニュアル.doc

2009年9月24日

Taro-82ADAカ.jtd

UMB-CP2114 User's Manual

ファームウェア書き換え説明書 目次 はじめに... 2 書き換え前に... 2 接続図... 2 書き換え手順... 3 (1) ファームウェアファイルの準備... 3 (2) 接続準備... 3 (3) ファームウェア書き換え準備 (4) ファームウェア書き換え準備 (

機能 SB-2000 は無線機とコンピュータを接続するインターフェースです CAT, CI/V を経由したリグ制御 CAT や CI/V のリグ制御のインターフェースを持っています この接続でリグを制御できます RTTY, PSK31, SSTV, FAX, その他のデジタルモードが運用できます広く

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

MS5145 USB シリアル エミュレーション モードの設定

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

MAC アドレス変更ツール MAC アドレスチェンジャー ユーザーズマニュアル User's Manual エレコム株式会社

GR-SAKURA-SAのサンプルソフト説明

スライド 1

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

おことわり 本書の内容の一部又は全部を無断転載することは禁止されています 本機の外観及び仕様は改良のため 将来予告無しに変更することがあります 本書の内容について万一不審な点や誤りなどのお気付きの点がありましたらご連絡ください 本書に記載されている会社名 商品名などは 一般に各社の商標又は登録商標で

FT-450D シリーズ MAIN ファームウェアアップデートマニュアル 本ソフトウェアは FT-450D/FT-450DM/FT-450DS の アップデートファームウェアです FT-450 シリーズのアップデートには使用できません 八重洲無線株式会社

スライド 1

WindowsXPインストール

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

Flash Loader

Raspberry Pi (Windows10 IoT Core) を使用したリーダ ライタの制御例 (UART 接続 ) 2018 年 12 月 18 日第 版 株式会社アートファイネックス

Microsoft Word - MacOSXインストールマニュアル( ).doc

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

4 本体の入力を USB-B 端子に対応する入力に切り換える 下記の画面表示になります 手順 8 の画面になるまでしばらくお待ちください 5 解凍したフォルダー内にある "Setup.exe" をダブルクリックして実行する InstallShield ウィザードが表示されます xxxxxxxxxx.

Studuinoプログラミング環境

Microsoft Word - N-TM307取扱説明書.doc

Microsoft Word - XPC4ソフトマニュアル.doc

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

Microsoft Word - SCR331DI_mac10.14_manual.doc

MS104-SH2 USBドライバ(仮想COMポートドライバ)の不具合について

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

4 本体の入力を USB-B 端子に対応する入力に切り換える 下記の画面表示になります 手順 8 の画面になるまでしばらくお待ちください 5 解凍したフォルダー内にある "Setup.exe" をダブルクリックして実行する InstallShield ウィザードが表示されます xxxxxxxxxx.

Microsoft Word - (171124_v1.30)NTTCom-Jpki_インストールマニュアル.doc

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

AP-RZA-1A シリアルFlashROMの書き込み方法

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること

スライド 1

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

ReviveUSB(web)

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

TCP_BP3591 の説明 V /03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受

PA-S500 取扱説明書

Transcription:

R8C/MA マイコン実習マニュアルブレッドボード版 第.0 版 05.04.0 株式会社日立ドキュメントソリューションズ

注意事項 (rev.6.0h) 著作権 本マニュアルに関する著作権は株式会社日立ドキュメントソリューションズに帰属します 本マニュアルは著作権法および 国際著作権条約により保護されています 禁止事項 ユーザーは以下の内容を行うことはできません 第三者に対して 本マニュアルを販売 販売を目的とした宣伝 使用 営業 複製などを行うこと 第三者に対して 本マニュアルの使用権を譲渡または再承諾すること 本マニュアルの一部または全部を改変 除去すること 本マニュアルを無許可で翻訳すること 本マニュアルの内容を使用しての 人命や人体に危害を及ぼす恐れのある用途での使用 転載 複製 本マニュアルの転載 複製については 文書による株式会社日立ドキュメントソリューションズの事前の承諾が必要です 責任の制限 本マニュアルに記載した情報は 正確を期すため 慎重に制作したものですが万一本マニュアルの記述誤りに起因する損害が生じた場合でも 株式会社日立ドキュメントソリューションズはその責任を負いません その他 本マニュアルに記載の情報は本マニュアル発行時点のものであり 株式会社日立ドキュメントソリューションズは 予告なしに 本マニュアルに記載した情報または仕様を変更することがあります 製作に当たりましては 最新の内容を確認いただきますようお願いします すべての商標および登録商標は それぞれの所有者に帰属します 連絡先 株式会社日立ドキュメントソリューションズ 35-006 東京都江東区東陽六丁目 3 番 号イースト タワー E-mail:himdx.m-carrally.dd@hitachi.com

目次 目次. 概要.... 概要.... マイコンの仕様....3 マイコンのピン配置... 3. セット内容... 4. 部品表... 4. セット以外に必要な部材... 5.3 基本回路... 6.3. 回路図... 6.3. ブレッドボード実装図... 7 3. 開発環境の使い方... 8 4. マイコンへプログラムを書き込む... 9 4. RY-WRITER 基板との接続... 9 4. 書き込み手順... 0 5. の点灯 (I/O ポートの出力 )... 5. 概要... 5. ブレッドボードの接続... 5.3 プロジェクト... 3 5.4 操作方法... 3 5.5 プログラム... 4 5.6 課題... 5 6. スイッチの入力 (I/O ポートの入力 )... 6 6. 概要... 6 6. ブレッドボードの接続... 6 6.3 プロジェクト... 7 6.4 操作方法... 7 6.5 プログラム... 8 6.6 課題... 9 7. ボリューム (0~5V の電圧 ) の入力 (A/D 変換器 )... 7. 概要... 7. ブレッドボードの接続... 7.3 プロジェクト... 7.4 操作方法... 7.5 プログラム... 3 7.6 課題... 4 8. 圧電サウンダーから音を鳴らす (PWM 波形の出力 )... 5 8. 概要... 5 8. ブレッドボードの接続... 5 - I -

目次 8.3 プロジェクト... 6 8.4 操作方法... 6 8.5 プログラム... 7 8.6 課題... 8 - II -

. 概要. 概要. 概要 本マニュアルは R8CMA ブレッドボードセット を使ったマイコン実習について説明しています 本セットは ブレッドボードを使い 半田不要でルネサスエレクトロニクス製の R8C/MA マイコンを使った実習をすることができます 実習内容を下記に示します 8 個の点滅 ( 出力 タイマーの実習 ) タイマーは無限ループによるソフトタイマーです ディップスイッチの状態入力 へ出力 ( 入出力 if 文による分岐についての実習 ) 電圧入力 ( ボリュームを使った A/D 変換実習 ) 音を鳴らす ( 圧電サウンダーを使った PWM 波形出力の実習 ) その他 これらを組み合わせて 様々な制御実習をすることができます セット内容 実習中の例 - -

. 概要. マイコンの仕様 パッケージ 0 ピン DIP 動作周波数 / 電源電圧 ~5MHz (VCC=.8V~5.5V) 5MHz~0MHz (VCC=.7V~5.5V) メモリプログラム ROM データフラッシュ RAM I/O ポート タイマタイマ RJ タイマ RB タイマ RC A/D コンバータ 89bytes (8KB) プログラム / イレーズ回数 :0,000 回 048bytes (KB) プログラム / イレーズ回数 :0,000 回 5bytes CMOS 入出力 :7 端子 プルアップ抵抗を選択可能 大電流ポート :8 端子 6 ビット タイマモード パルス出力モード ( 周期ごとのレベル反転出力 ) イベントカウンタモード パルス幅測定モード パルス周期測定モード 8 ビット (8 ビットプリスケーラ付 ) または 6 ビット ( 選択可能 ) タイマモード プログラマブル波形発生モード (PWM 出力 ) プログラマブルワンショット発生モード プログラマブルウェイトワンショット発生モード 6 ビット ( キャプチャ / コンペアレジスタ 4 本付 ) タイマモード ( アウトプットコンペア機能 インプットキャプチャ機能 ) PWM モード ( 出力 3 本 ) PWM モード (PWM 出力 本 ) 分解能 :0 ビット 6 チャネル コンパレータ B 通信 クロック発生回路 コンパレータ B コンパレータ B3 UART0 クロック同期形シリアル I/O/ 非同期形シリアル I/O 兼用 低速オンチップ ( 内蔵 ) オシレータ : 約 5kHz( リセット後のクロック ) 60~50kHz 標準は 5kHz 高速オンチップ ( 内蔵 ) オシレータ : 約 0.0MHz 9.0~.0MHz 標準は 0.0MHz XIN クロック発振回路 : 外付けで ~0MHz のオシレータを搭載可能 - -

. 概要.3 マイコンのピン配置 ピン I/O 名詳細 P4_ P3_7 3 RESET / PA_0 4 P4_7 リセット端子と PA_0 端子が兼用のピンです リセット後はリセット端子です "0" でリセット "" で実行です ( 実行時は 4.7kΩ でプルアップしてください ) プログラムで PA_0 端子に切り替えることができます 外付けのクリスタル P4_7 が兼用のピンです XIN クロック入力として使用するか P4_7 として使用するかはプログラムで切り替えます 5 VSS/AVSS 電源の 0V(GND) に接続します 6 P4_6 外付けのクリスタル P4_6 が兼用のピンです XIN クロック入力として使用するか P4_6 として使用するかはプログラムで切り替えます 7 VCC/AVCC 電源の 5V に接続します 8 MODE 書き込み時は 0V プログラム実行時は 4.7kΩ でプルアップして電源を ON にします 9 P3_5 0 P3_4 P3_3 P4_5 3 P_7 4 P_6 5 P_5 6 P_4 7 P_3 8 P_ 9 P_ 0 P_0 パソコンからプログラムを書き込むとき 受信線として使用します プログラム実行時は P_6 として使用します この端子に負荷が接続されていると 書き込みできません パソコンからプログラムを書き込むとき 送信線として使用します プログラム実行時は P_4 として使用します この端子に負荷が接続されていると 書き込みできません - 3 -

. セット内容. セット内容. 部品表 部品番号名称型式写真メーカ数量 ブレッドボード EIC-80 ( 株 ) 秋月電子通商 U マイコン R8C/MA R5FMANDD ROM:8KB RAM:5Bytes ルネサスエレクトロニクス ( 株 ) CN ピンヘッダ ( オス L 型 ) C-067 4 ピン分 ( 株 ) 秋月電子通商 長い側をブレッドボードに挿します SW タクトスイッチ B3F-050 オムロン ( 株 ) SW トグルスイッチ ( 回路 接点 (ON-ON タイプ ) P-0393 ( 株 ) 秋月電子通商 C 積層セラミックコンデンサ RPEFH04ZKA0B 0.μF(04) 5.08mm ピッチ ( 株 ) 村田製作所 ~ 8 EBR3338S 直径 φ3mm 赤 ( 短 )K A( 長 ) スタンレー電気 ( 株 ) 8-4 -

. セット内容 SW3 ディップスイッチ A6D-403 オムロン ( 株 ) BZ 圧電サウンダー PKM3EPYH400-B0 ( 株 ) 村田製作所 VR ボリューム CT-6P 0kΩ(03) 日本電産コパル電子 ( 株 ) R~R 抵抗 CFS/4C 4.7kΩ ( 黄 紫 赤 金 ) コーア ( 株 ) R3~R 抵抗 CFS/4C kω ( 茶 黒 赤 金 ) コーア ( 株 ) 9 単線 φ0.5mm 被覆あり 各社 約.5m. セット以外に必要な部材 パソコンから R8C/MA にプログラムを書き込むとき 下記部材が必要です 部品番号名称型式写真メーカ数量 RY-WRITER 基板 M-S83 日立インターメディックス ( 株 ) USB ケーブル A コネクタ - ミニ B コネクタタイプ 各社 - 5 -

. セット内容.3 基本回路.3. 回路図 基本的な回路を下図に示します 実習に応じて 部品を追加していきます CN SW SW このコネクタと RY-WRITER 基板を接続して 電源 (5V) の供給 プログラムの書き込みを行います パソコンの USB コネクタの 5V 電源を使用しますので モータなど 大電流が流れる回路は接続しないでください マイコンをリセットさせます ただし リセット端子をプログラムで PA_0 端子に切り替えた場合は リセットしません ( 電源を OFF にするまでマイコンはリセットしません ) リセットスイッチ (SW) を押しながらこのスイッチを上にして リセットスイッチを離すと プログラム書き込みモードになります リセットスイッチ (SW) を押しながらこのスイッチを下にして リセットスイッチを離すと 書き込まれているプログラムを実行します - 6 -

. セット内容.3. ブレッドボード実装図 基本部品のブレッドボードへの実装を下図に示します 実習に応じて 実装部品を追加していきます SW は背が高いので いちばん最後に差し込みます CN は長いピンをブレッドボードに差し込みます 注意事項 U は 向きがあります 抵抗,SW,SW,C は向きがありません CN は 長いピンをブレッドボードに差し込みます ブレッドボードに差し込むリードの足は 5~8mm に切ります 3 4 SW a b c d e SW CN f g h i j k 3 4 5~8mm 4.7k 5 5 4.7k 6 6 抵抗 7 P4_ U P_0 7 8 P3_7 P_ 8 9 RES P_ 9 5~8mm ジャンパー 0 3 4 C P4_7 GND P4_6 +5V R8C/MA P_3 P_4 P_5 P_6 MODE P_7 0 3 4 5 P3_5 P4_5 5 6 P3_4 P3_3 6 7 7 5~8mm 8 9 8 9 C( 積層セラミックコンデンサ ) 0 0 3 3 4 4 5 5 6 6 7 7 8 8 9 9 30 a b c d e f g h i j 30-7 -

3. 開発環境の使い方 3. 開発環境の使い方 R8C/MA マイコンのプログラム開発として ルネサス統合開発環境 ( 無償評価版 ) を使用します ( 以下 ルネサス統合開発環境 とします ) マイコンカーラリーのダウンロードページ http:// www.mcr.gr.jp/ tech/download/ main0.html にアクセスします マイコンに関する資料 (R8C 編 ) をクリックします ルネサス統合開発環境操作マニュアル (R8C/38A 版 ) の DOWNLOAD をクリックして マニュアルをダウンロードしてください マニュアルに従って ルネサス統合開発環境のインストール R8C Writer のインストール ルネサス統合開発環境の操作についての習得を行ってください - 8 -

4. マイコンへプログラムを書き込む 4. マイコンへプログラムを書き込む ここでは RY-WRITER 基板を使って R8C/MA マイコンにプログラムを書き込む方法を説明します 4. RY-WRITER 基板との接続 パソコン RY-WRITER 基板 ブレッドボードのコネクタ (CN) の接続図を 下図に示します USB ケーブル USB 信号 RY-WRITER 基板 4 3 4 芯ケーブル TTL レベルの信号 ピンが色の付いた線です 番号を間違えないように CN に接続してください ミニ B タイプ J J 3 4 A タイプ CN ブレッドボード - 9 -

4. マイコンへプログラムを書き込む 4. 書き込み手順 書き込みスイッチを上にする リセットスイッチを押しながら リセットスイッチを押しながら 書き込みスイッチを上にします 3 リセットスイッチを離します 4 芯ケーブル USB ケーブル RY-WRITER 基板 R8C Writer ルネサス統合開発環境の ツール R8C Writer をクリックします R8C Writer が無い場合は ルネサス統合開発環境操作マニュアル (R8C/38A 版 ) を参照して R8C Writer を登録してください 3 書き込みソフトが起動します 通信ポート に COM :Prolific USB-to-Serial ( は番号です ) と記載があるのを確認してください 無い場合はパソコンと RY-WRITER 基板との接続が正しくありません 接続を確認してください 書き込み開始をクリックすると 書き込みを開始します 書き込み後 ベリファイチェックする 書き込み後 ベリファイチェックする のチェックを付けると 書き込み後 書き込みデータが正しいか確認します チェック ON を推奨します 書き込み完了時 自動終了する 書き込み完了時 自動終了する のチェックを付けると 書き込み完了時に R8C Writer が自動終了します - 0 -

4. マイコンへプログラムを書き込む マイコンボードとのやり取りの状態が表示されます R8C Writer で書き込み中です 書き込みが完了したら 終了をクリックして R8C Writer を終了させてください 書き込み完了時 自動終了する のチェックが付いている場合は 自動で終了します 4 5 もし 書き込みができなければ 左画面のようなエラー画面が出てきます USB ケーブルやマイコンの状態を確認して OK をクリック 再度書き込みを実行してください 6 4 芯ケーブル 書き込みスイッチを下にする リセットスイッチを押しながら 書き込みが終わったら 次の手順で書き込んだプログラムを実行させます リセットスイッチを押しながら 書き込みスイッチを下にします 3 リセットスイッチを離します USB ケーブル RY-WRITER 基板 - -

5. の点灯 (I/O ポートの出力 ) 5. の点灯 (I/O ポートの出力 ) 5. 概要 本章では を 8 個 点灯させます 5. ブレッドボードの接続 SW a b c d e CN f g h i j 約 8mm 3 4 4.7k 5 SW k 3 4 5 被覆ありの線約 70mm 4.7k 6 6 7 8 P4_ P3_7 U P_0 P_ 7 8 約 8mm 9 RES P_ 9 のリードを短くします 0 3 C P4_7 GND P4_6 +5V R8C/MA P_3 P_4 P_5 P_6 0 3 4 MODE P_7 4 5 P3_5 P4_5 5 6 P3_4 P3_3 6 約 8mm (K 側 ) 約 0mm (A 側 ) 7 8 9 0 今回の追加内容 7 8 9 0 k k 3 k 4 k 5 6 k 7 k 8 k 9 k 30 0 3 4 5 6 7 a b c d e 短 短 短 短 短 短 短 短 長 長 長 長 長 長 長 長 f g h i j 3 4 5 6 7 8 9 30 - -

5. の点灯 (I/O ポートの出力 ) 5.3 プロジェクト いちえる 0 l ed 0led で右クリック アクティブプロジェクトに設定 をクリックします 0led が既に太字ならアクティブプロジェクトになっていますので 次へ進んでください led.c led.c をダブルクリックして プログラムを開きます ビルド ビルド して プログラムを MOT ファイルに変換します ビルド R8C Writer でプログラムを書き込みます 5.4 操作方法 操作は特にありません がどのように点灯するか確認してください - 3 -

5. の点灯 (I/O ポートの出力 ) 5.5 プログラム : /****************************************************************************/ : /* 対象マイコン R8C/MA */ 3 : /* ファイル内容 の点灯制御 */ 4 : /* バージョン Ver..00 */ 5 : /* Date 0.03.0 */ 6 : /* Copyright ルネサスマイコンカーラリー事務局 */ 7 : /****************************************************************************/ 8 : /* 9 : R8C/MA マイコンのピンを 下記のように結線します 0 : (P4_) (P3_7) 3(PA_0) 4(P4_7) 6(P4_6) 9(P3_5) 0(P3_4) (P3_3) (P4_5) : 未接続 未接続 未接続 未接続未接続未接続未接続 未接続 未接続 : 3 : 3(P_7) 4(P_6) 5(P_5) 6(P_4) 7(P_3) 8(P_) 9(P_) 0(P_0) 4 : 7 6 5 4 3 0 5 : */ 6 : 7 : /*======================================*/ 8 : /* インクルード */ 9 : /*======================================*/ 0 : #include "sfr_r8ma.h" /* R8C/MA SFR の定義ファイル */ : : /*======================================*/ 3 : /* プロトタイプ宣言 */ 4 : /*======================================*/ 5 : void init( void ); 6 : void timer( unsigned long timer_set ); 7 : 8 : /************************************************************************/ 9 : /* メインプログラム */ 30 : /************************************************************************/ 3 : void main( void ) 3 : { 33 : init(); /* 初期化 */ 34 : 35 : while( ) { 36 : p = 0b0000; 37 : timer( 000 ); 38 : p = 0b0000; 39 : timer( 000 ); 40 : p = 0b00000000; 4 : timer( 000 ); 4 : } 43 : } 44 : 45 : /************************************************************************/ 46 : /* R8C/MA スペシャルファンクションレジスタ (SFR) の初期化 */ 47 : /************************************************************************/ 48 : void init( void ) 49 : { 50 : /* ポートの入出力設定 */ 5 : pd = 0xff; /* ポート の入出力設定 */ 5 : pd3 = 0xff; /* ポート 3 の入出力設定 */ 53 : pd4 = 0xff; /* ポート 4 の入出力設定 */ 54 : pda = 0xff; /* ポート A の入出力設定 */ 55 : } 56 : 57 : /************************************************************************/ 58 : /* タイマ本体 */ 59 : /* 引数 タイマ値 =ms */ 60 : /************************************************************************/ 6 : void timer( unsigned long timer_set ) 6 : { 63 : int i; 64 : 65 : do { 66 : for( i=0; i<87; i++ ); 67 : } while( timer_set-- ); 68 : } 69 : 70 : /************************************************************************/ 7 : /* end of file */ 7 : /************************************************************************/ 0 行 R8C/MA マイコンの内蔵周辺機能のレジスタを定義しているファイルです R8C/MA マイコンを使うときは必ず include します 33 行 init 関数へ移動して R8C/MA マイコンの内蔵周辺機能を初期化します 36 38 40 行 p( ポート ) にデータを出力します 37 39 4 行 timer 関数の引数の値の時間 [ms] この行で止まって時間稼ぎをします 5~54 行 pd でポート の端子を入力用にするか 出力用にするか決めます pd3( ポート 3) pd4( ポート 4) pda( ポート A) も同様です ビットを "" にすると 設定したポートのビットが出力端子に "0" にすると入力端子になります 未接続端子は出力にしておきます 例 ) pd = 0x55 ポート の bit6,4,,0 が出力端子 その他は入力端子 66 行この 行で ms の時間稼ぎをします それを timer_set 回 繰り返します よって timer_set[ms] の時間稼ぎとなります - 4 -

5. の点灯 (I/O ポートの出力 ) 5.6 課題. 次のパターンで点灯するプログラムを書きなさい ( 点灯 0 消灯 ) 000 000 を 0.5 秒点灯 00 00 を 0.5 秒点灯 3 0 0 を 0.5 秒点灯 4 を 0.5 秒点灯 5 0000 0000 を 秒点灯 6 に戻って繰り返す. 次のパターンで点灯するプログラムを書きなさい ( 点灯 0 消灯 ) 0000 000 を 0. 秒点灯 0000 000 を 0. 秒点灯 3 0000 000 を 0. 秒点灯 : 8 000 0000 を 0. 秒点灯 9 に戻って繰り返す 3. for 文の書式を調べなさい また 次のプログラムがどう動作するか 調べなさい void main( void ) { int i; // 変数の宣言 init(); // マイコン機能の初期化 while( ) { // 無限ループ for( i=0; i<0; i++ ) { // 0~9 まで 0 回繰り返す p = i; // ポート に変数 i の値を出力 timer( 500 ); // 時間稼ぎ } // for 文のカッコ閉じ } // while 文のカッコ閉じ 4. for 文を使って 0~55 をカウントするループを作り カウント値を に出力するプログラムを作りなさい 出力する間隔は 0. 秒とする また 55 の次は 0 に戻って 出力し続けるものとする 5. for 文を使って 番目の課題と同じ動作をするようにプログラムを作りなさい ヒント :0 進数にすると点灯する値は 4 8 となる - 5 -

6. スイッチの入力 (I/O ポートの入力 ) 6. スイッチの入力 (I/O ポートの入力 ) 6. 概要 本章では ディップスイッチ (4bit) の状態を入力 入力状態に応じて を点灯させます 6. ブレッドボードの接続 SW a b c d e CN f g h i j 3 4 SW k 3 4 4.7k 5 5 4.7k 6 6 7 P4_ U P_0 7 8 P3_7 P_ 8 9 RES P_ 9 0 3 4 P4_7 GND C P4_6 +5V MODE R8C/MA P_3 P_4 P_5 P_6 今回の追加内容 P_7 0 3 4 5 P3_5 P4_5 5 6 P3_4 P3_3 6 7 8 9 0 3 4 ディップスイッチ O N 7 8 9 0 k k 3 3 k 4 4 k 5 5 6 6 k 7 7 k 8 8 k 9 9 k 30 a b c d e f g h i j 30-6 -

6. スイッチの入力 (I/O ポートの入力 ) 6.3 プロジェクト 0sw_led 0sw_led で右クリック アクティブプロジェクトに設定 をクリックします sw_led.c sw_led.c をダブルクリックして プログラムを開きます ビルド ビルド して プログラムを MOT ファイルに変換します ビルド R8C Writer でプログラムを書き込みます 6.4 操作方法 ディップスイッチを ON/OFF すると の付き方が変わります どう変わるか 確認してください - 7 -

6. スイッチの入力 (I/O ポートの入力 ) 6.5 プログラム : /****************************************************************************/ : /* 対象マイコン R8C/MA */ 3 : /* ファイル内容 ディップスイッチの入力 の点灯制御 */ 4 : /* バージョン Ver..00 */ 5 : /* Date 0.03.0 */ 6 : /* Copyright ルネサスマイコンカーラリー事務局 */ 7 : /****************************************************************************/ 8 : /* 9 : R8C/MA マイコンのピンを 下記のように結線します 0 : (P4_) (P3_7) 3(PA_0) 4(P4_7) 6(P4_6) 9(P3_5) 0(P3_4) (P3_3) (P4_5) : 未接続 DIPSW3 未接続 未接続未接続 DIPSW DIPSW DIPSW0 未接続 : 3 : 3(P_7) 4(P_6) 5(P_5) 6(P_4) 7(P_3) 8(P_) 9(P_) 0(P_0) 4 : 7 6 5 4 3 0 5 : */ 6 : 7 : /*======================================*/ 8 : /* インクルード */ 9 : /*======================================*/ 0 : #include "sfr_r8ma.h" /* R8C/MA SFR の定義ファイル */ : : /*======================================*/ 3 : /* プロトタイプ宣言 */ 4 : /*======================================*/ 5 : void init( void ); 6 : void timer( unsigned long timer_set ); 7 : 8 : /************************************************************************/ 9 : /* メインプログラム */ 30 : /************************************************************************/ 3 : void main( void ) 3 : { 33 : init(); /* 初期化 */ 34 : 35 : while( ) { 36 : p = p3; 37 : } 38 : } 39 : 40 : /************************************************************************/ 4 : /* R8C/MA スペシャルファンクションレジスタ (SFR) の初期化 */ 4 : /************************************************************************/ 43 : void init( void ) 44 : { 45 : /* ポートの入出力設定 */ 46 : pd = 0xff; /* ポート の入出力設定 */ 47 : pd3 = 0x47; /* ポート 3 の入出力設定 */ 48 : pd4 = 0xff; /* ポート 4 の入出力設定 */ 49 : pda = 0xff; /* ポート A の入出力設定 */ 50 : 5 : /* 端子のプルアップ設定 */ 5 : pur3 = 0xb8; /* ポート 3 のプルアップ設定 */ 53 : } 54 : 55 : /************************************************************************/ 56 : /* タイマ本体 */ 57 : /* 引数 タイマ値 =ms */ 58 : /************************************************************************/ 59 : void timer( unsigned long timer_set ) 60 : { 6 : int i; 6 : 63 : do { 64 : for( i=0; i<87; i++ ); 65 : } while( timer_set-- ); 66 : } 67 : 68 : /************************************************************************/ 69 : /* end of file */ 70 : /************************************************************************/ 0 行 R8C/MA マイコンの内蔵周辺機能のレジスタを定義しているファイルです R8C/MA マイコンを使うときは必ず include します 33 行 init 関数へ移動して R8C/MA マイコンの内蔵周辺機能を初期化します 36 行 p( ポート ) に p3( ポート 3) の状態を出力します p には が p3 の bit7 bit5 bit4 bit3 にはディップスイッチが接続されているので 4bit のディップスイッチの値が に出力されます 接続されていないビットの がどう点灯するかも確認してください 47 行 p3 の bit7 bit5 bit4 bit3 はディップスイッチの値を入力するので "0" にします その他の端子は出力にしておきます 5 行マイコンにはプルアップ抵抗が内蔵されています pur3 で p3 の入力端子を 内蔵されているプルアップ抵抗と接続します ブレッドボード側でプルアップ抵抗を用意する必要はありません - 8 -

6. スイッチの入力 (I/O ポートの入力 ) 6.6 課題. if 文の書式を調べなさい. 次のプログラムを実行して どのような動作になるか調べなさい void main( void ) { int i; // 変数の宣言 init(); // マイコン機能の初期化 while( ) { // 無限ループ if( p3 == 0x08 ) { // p3( ディップスイッチ ) の値は 0x08 か p = 0x55; // に 0x55 を出力 } else { p = 0xaa; // に 0xaa を出力 } // if 文のカッコ閉じ } // while 文のカッコ閉じ 3. 次のプログラムを実行して どのような動作になるか調べなさい void main( void ) { int i; // 変数の宣言 init(); // マイコン機能の初期化 while( ) { // 無限ループ if( (p3 & 0x08) == 0x08 ) { // p3( ディップスイッチ ) の値は 0x08 か p = 0x55; // に 0x55 を出力 } else { p = 0xaa; // に 0xaa を出力 } // if 文のカッコ閉じ } // while 文のカッコ閉じ - 9 -

6. スイッチの入力 (I/O ポートの入力 ) 4. 下表のように ポート 3 の bit5 と bit4 の状態により が点灯するよう プログラムを作りなさい なお ポート 3 の bit5 と bit4 の値以外は "" か "0" か分からないものとする ポート 3 bit5 の値ポート 3 bit4 の値このときの の付き方 0 0 000000 0 0000 0 00 5. 下表のようにポート 3 の特定のビットの状態を ポート の特定のビットに出力するプログラムを作りなさい なお 書かれている端子以外の状態は分からないものとする また 書かれている端子以外の状態は変えないものとする 読み込む端子ポート 3 の bit7 ポート 3 の bit5 ポート 3 の bit4 ポート 3 の bit3 出力する端子ポート の bit7 ポート の bit5 ポート の bit3 ポート の bit ポイント - ビット単位で入出力する p p3 などのレジスタは ポート単位 (8bit 単位 ) で入力や出力を行います 次のように 端子ごとに端子の状態を読み込んだり 値を出力をすることができます p_5 = ; // ポート の bit5 を "" にする if( p3_3 == ) { プログラム } // ポート 3 の bit3 の状態をチェック - 0 -

7. ボリューム (0~5V の電圧 ) の入力 (A/D 変換器 ) 7. ボリューム (0~5V の電圧 ) の入力 (A/D 変換器 ) 7. 概要 本章では ボリュームから出力された 0~5V の電圧をマイコンで A/D 変換してデジタル値に変換します 7. ブレッドボードの接続 3 4 4.7k 5 4.7k 6 7 8 9 0 3 4 5 6 7 8 9 0 k k 3 k 4 k 5 6 k 7 k 8 k 9 30 SW a b c d e C 今回の追加内容 は取ります a b c d e P4_ P3_7 RES P4_7 GND P4_6 +5V MODE P3_5 P3_4 VR SW U R8C/MA k P_0 P_ P_ P_3 P_4 P_5 P_6 P_7 P4_5 P3_3 CN f g h i j f g h i j 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 30 - -

7. ボリューム (0~5V の電圧 ) の入力 (A/D 変換器 ) 7.3 プロジェクト 03volume 03volume で右クリック アクティブプロジェクトに設定 をクリックします volume.c volume.c をダブルクリックして プログラムを開きます ビルド ビルド して プログラムを MOT ファイルに変換します ビルド R8C Writer でプログラムを書き込みます 7.4 操作方法 ボリュームを回すと の付き方が変わります どう変わるか 確認してください - -

7. ボリューム (0~5V の電圧 ) の入力 (A/D 変換器 ) 7.5 プログラム : /****************************************************************************/ : /* 対象マイコン R8C/MA */ 3 : /* ファイル内容 ボリュームを使った A/D 変換 */ 4 : /* バージョン Ver..00 */ 5 : /* Date 0.03.0 */ 6 : /* Copyright ルネサスマイコンカーラリー事務局 */ 7 : /****************************************************************************/ 8 : /* 9 : R8C/MA マイコンのピンを 下記のように結線します 0 : (P4_) (P3_7) 3(PA_0) 4(P4_7) 6(P4_6) 9(P3_5) 0(P3_4) (P3_3) (P4_5) : 未接続 未接続 未接続 未接続未接続未接続未接続 未接続 未接続 : 3 : 3(P_7) 4(P_6) 5(P_5) 6(P_4) 7(P_3) 8(P_) 9(P_) 0(P_0) 4 : ホ リューム 6 5 4 3 0 5 : */ 6 : 7 : /*======================================*/ 8 : /* インクルード */ 9 : /*======================================*/ 0 : #include "sfr_r8ma.h" /* R8C/MA SFR の定義ファイル */ : : /*======================================*/ 3 : /* プロトタイプ宣言 */ 4 : /*======================================*/ 5 : void init( void ); 6 : void timer( unsigned long timer_set ); 7 : int get_ad7( void ); 8 : 9 : /************************************************************************/ 30 : /* メインプログラム */ 3 : /************************************************************************/ 3 : void main( void ) 33 : { 34 : int ad; 35 : 36 : init(); /* 初期化 */ 37 : 38 : while( ) { 39 : ad = get_ad7(); /* ad = 0~03 */ 40 : ad = ad >> 3; /* ad = 0~7 にする */ 4 : p = ad; 4 : } 43 : } 44 : 45 : /************************************************************************/ 46 : /* R8C/MA スペシャルファンクションレジスタ (SFR) の初期化 */ 47 : /************************************************************************/ 48 : void init( void ) 49 : { 50 : /* ポートの入出力設定 */ 5 : pd = 0x7f; /* ポート の入出力設定 */ 5 : pd3 = 0xff; /* ポート 3 の入出力設定 */ 53 : pd4 = 0xff; /* ポート 4 の入出力設定 */ 54 : pda = 0xff; /* ポート A の入出力設定 */ 55 : } 56 : 57 : /************************************************************************/ 58 : /* タイマ本体 */ 59 : /* 引数 タイマ値 =ms */ 60 : /************************************************************************/ 6 : void timer( unsigned long timer_set ) 6 : { 63 : int i; 64 : 65 : do { 66 : for( i=0; i<87; i++ ); 67 : } while( timer_set-- ); 68 : } 69 : 70 : /************************************************************************/ 7 : /* P_7(AN7) 端子を A/D 変換 */ 7 : /* 戻り値 A/D 変換値 (0~03) */ 73 : /************************************************************************/ 74 : int get_ad7( void ) 75 : { 76 : int i; 77 : 78 : /* A/D コンバータの設定 */ 79 : mstad = 0; /* A/D コンバータを有効にする */ 80 : admod = 0x03; /* 単発モードに設定 */ 8 : adinsel = 0x8; /* 入力端子 AN7(P_7) を選択 */ 8 : adcon0 = 0x0; /* A/D 変換スタート */ 83 : 84 : while( adcon0 & 0x0 ); /* A/D 変換終了待ち */ 85 : i = ad; /* A/D 値取得 (0~03) */ 86 : 87 : return i; 88 : } 89 : 90 : /************************************************************************/ 9 : /* end of file */ 9 : /************************************************************************/ 0 行 R8C/MA マイコンの内蔵周辺機能のレジスタを定義しているファイルです R8C/MA マイコンを使うときは必ず include します 36 行 init 関数へ移動して R8C/MA マイコンの内蔵周辺機能を初期化します 39~4 行 AN7 端子 (P_7) から電圧を入力し 0~5V を 0~ 03 に変換します その値を ad 変数に代入します 次に ad 変数を 3 ビット右シフトして 0~ 03(0b ) 0~7(0b00 0 ) の値に変換します 最後に ad 変数の値を p に代入して 7 個の に値を出力します 5 行 p( ポート ) の bit7 はボリュームの電圧入力なので 入力端子にします 74~88 行マイコン内蔵周辺機能である A/D 変換器を使って P_7 端子の電圧 0~5V を 0~03 の値に変換します A/D 変換値が 5 なら電圧 =5 A/D 変換値 03 =5 5 03.50V と.50V が入力されていることが分かります 8 行プログラムを変えることによって P_0 P_ P_ P_3 P_4 端子の電圧を A/D 変換することもできます P_7 端子にする 0x8( 今回 ) P_4 端子にする 0x80 P_3 端子にする 0x P_ 端子にする 0x0 P_ 端子にする 0x0 P_0 端子にする 0x00 A/D 変換する端子を変えた場合 85 行の ad も変えます P_7 端子 ad( 今回 ) P_4 端子 ad0 P_3 端子 ad P_ 端子 ad0 P_ 端子 ad P_0 端子 ad0-3 -

7. ボリューム (0~5V の電圧 ) の入力 (A/D 変換器 ) 7.6 課題. 右ビットシフト (>>) 左ビットシフト (<<) について説明しなさい. P4_7 端子に 8 個目の を追加して A/D 変換値を ビット右シフトさせ 0~55 に変換したときに 0~55 の値を P4_7 P_6~P_0 端子に接続している 8 個の に出力するプログラムを作りなさい サンプルプログラムのイメージ 3bit 右シフト 000 P_0 へ出力 P_ へ出力 今回の問題のイメージ bit 右シフト 00 P_0 へ出力 P_ へ出力 P_6 へ出力 P_6 へ出力 P4_7 へ出力 3. A/D 変換値の値を 7 ビット右シフトさせて 0~7 に変換したとき 次の表のように 8 個の が点灯するようプログラムを作りなさい は課題の 番で接続した 8 個の状態とする ビットシフト命令はここでは使わないこと A/D 変換値 の付き方 0 0000 000 0000 00 0000 0 3 0000 4 000 5 00 6 0 7 4. 3 の問題をビットシフト命令 (>> または <<) を使って プログラムしなさい ヒント :0xff の値を 右シフトさせていきます - 4 -

8. 圧電サウンダーから音を鳴らす (PWM 波形の出力 ) 8. 圧電サウンダーから音を鳴らす (PWM 波形の出力 ) 8. 概要 本章では 圧電サウンダーから音を鳴らします 8. ブレッドボードの接続 SW CN a b c d e f g h i j k 3 SW 4 4.7k 5 4.7k 6 7 8 9 0 3 C P4_ P3_7 RES P4_7 GND P4_6 +5V U P_0 P_ P_ P_3 P_4 P_5 P_6 4 今回の追加内容 5 R8C/MA MODE P_7 P3_5 P4_5 6 7 8 9 0 圧電サウンダー P3_4 P3_3 k k 3 k 4 k 5 6 k 7 k 8 k 9 k 30 a b c d e f g h i j 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 30-5 -

8. 圧電サウンダーから音を鳴らす (PWM 波形の出力 ) 8.3 プロジェクト 04sounder 04sounder で右クリック アクティブプロジェクトに設定 をクリックします sounder.c sounder.c をダブルクリックして プログラムを開きます ビルド ビルド して プログラムを MOT ファイルに変換します ビルド R8C Writer でプログラムを書き込みます 8.4 操作方法 操作は特にありません 圧電サウンダーから鳴る音を確認してください - 6 -

8. 圧電サウンダーから音を鳴らす (PWM 波形の出力 ) 8.5 プログラム : /****************************************************************************/ : /* 対象マイコン R8C/MA */ 3 : /* ファイル内容 の点灯制御 */ 4 : /* バージョン Ver..00 */ 5 : /* Date 0.03.0 */ 6 : /* Copyright ルネサスマイコンカーラリー事務局 */ 7 : /****************************************************************************/ 8 : /* 9 : R8C/MAマイコンのピンを 下記のように結線します 0 : (P4_) (P3_7) 3(PA_0) 4(P4_7) 6(P4_6) 9(P3_5) 0(P3_4) (P3_3) (P4_5) : 未接続 サウンタ ー 未接続 未接続未接続未接続未接続 未接続 未接続 : 3 : 3(P_7) 4(P_6) 5(P_5) 6(P_4) 7(P_3) 8(P_) 9(P_) 0(P_0) 4 : 7 6 5 4 3 0 5 : */ 6 : 7 : /*======================================*/ 8 : /* インクルード */ 9 : /*======================================*/ 0 : #include "sfr_r8ma.h" /* R8C/MA SFRの定義ファイル */ : : /*======================================*/ 3 : /* シンボル定義 */ 4 : /*======================================*/ 5 : 6 : /* 圧電サウンダー用 */ 7 : #define BEEP_500Hz 0000 /* 500Hz :(/ 500)/(/(0M/4)) */ 8 : #define BEEP_000Hz 5000 /* 000Hz:(/000)/(/(0M/4)) */ 9 : 30 : /* 3オクターブ目の音階 */ 3 : #define DO_3 386 /* ド */ 3 : #define DOU_3 3608 /* ド # */ 33 : #define RE_3 34056 /* レ */ 34 : #define REU_3 344 /* レ # */ 35 : #define MI_3 30340 /* ミ */ 36 : #define FA_3 8637 /* ファ */ 37 : #define FAU_3 7030 /* ファ # */ 38 : #define SO_3 553 /* ソ */ 39 : #define SOU_3 408 /* ソ # */ 40 : #define RA_3 79 /* ラ */ 4 : #define RAU_3 454 /* ラ # */ 4 : #define SI_3 050 /* シ */ 0 行 R8C/MA マイコンの内蔵周辺機能のレジスタを定義しているファイルです R8C/MA マイコンを使うときは必ず include します 6~70 行圧電サウンダーの音を鳴らすときの 設定値を定義しています 音階は ( ド レ ミ ファ など ) 計算すると周波数が分かりますので その周波数に応じて設定値を計算し 定義しています 3 オクターブ目のド ~ シを定義しています 中略 7 : /*======================================*/ 73 : /* プロトタイプ宣言 */ 74 : /*======================================*/ 75 : void init( void ); 76 : void timer( unsigned long timer_set ); 77 : void sounder( unsigned int tone, int time ); 78 : 79 : /*======================================*/ 80 : /* グローバル変数の宣言 */ 8 : /*======================================*/ 8 : int tempo = 60; /* テンポ */ 83 : 84 : /************************************************************************/ 85 : /* メインプログラム */ 86 : /************************************************************************/ 87 : void main( void ) 88 : { 89 : init(); /* 初期化 */ 90 : 9 : /* 9 : 長さは 四分音符を4として 二分音符は8 八分音符はとなります 93 : 休符も同様に 四分休符を4として 二部休符は8 八分休符はとなります 94 : */ 95 : /* 音階, 長さ */ 96 : sounder( DO_4, 4 ); 97 : sounder( RE_4, 4 ); 98 : sounder( MI_4, 4 ); 99 : sounder( FA_4, 4 ); 00 : sounder( SO_4, 4 ); 0 : sounder( RA_4, 4 ); 0 : sounder( SI_4, 4 ); 03 : sounder( DO_5, 4 ); 04 : sounder( 0, 0 ); 05 : while( ); 06 : 07 : // 大きな古時計 08 : /* 音階, 長さ */ 09 : sounder( RE_4, 4 ); // お 0 : sounder( SO_4, 4 ); // お : sounder( FAU_4, ); // き : sounder( SO_4, ); // な 3 : sounder( RA_4, 4 ); // のっ 4 : sounder( SO_4, ); // ぽ 5 : sounder( RA_4, ); // の 6 : sounder( SI_4, ); // ふ 7 : sounder( SI_4, ); // る 8 : sounder( DO_5, ); // ど 9 : sounder( SI_4, ); // け 0 : sounder( MI_4, 4 ); // い : sounder( RA_4, ); // お : sounder( RA_4, ); // じ 3 : sounder( SO_4, 4 ); // い 8 行 temp 変数にテンポを設定します テンポとは 分間に四分音符 ( 四分休符 ) を何回演奏するかという早さです 大きいと早く 小さいと遅くなります 89 行 init 関数へ移動して R8C/MA マイコンの内蔵周辺機能を初期化します 96~45 行 sounder 関数で 圧電サンダーに音を鳴らします 長さは 四分音符を 4 として 二分音符は 8 八分音符は とします 休符も同様に 四分休符を 4 として 二部休符は 8 八分休符は とします 関数の音階部分は 定義した音をセットします 長さは音符 ( 休符 ) に応じて 設定します 09~45 行大きな古時計の音階データです 大きな古時計を鳴らす場合は 96~05 行を削除してください - 7 -

8. 圧電サウンダーから音を鳴らす (PWM 波形の出力 ) 4 : sounder( SO_4, ); // さ 5 : sounder( SO_4, ); // ん 6 : sounder( FAU_4, 4 ); // の 7 : sounder( MI_4, ); // と 8 : sounder( FAU_4, ); // け 9 : sounder( SO_4, 0 ); // い 30 : sounder( 0, ); 中略 46 : } 47 : 48 : /************************************************************************/ 49 : /* R8C/MA スペシャルファンクションレジスタ (SFR) の初期化 */ 50 : /************************************************************************/ 5 : void init( void ) 5 : { 53 : /* ポートの入出力設定 */ 54 : pd = 0xff; /* ポートの入出力設定 */ 55 : pd3 = 0xff; /* ポート3の入出力設定 */ 56 : pd4 = 0xff; /* ポート4の入出力設定 */ 57 : pda = 0xff; /* ポートAの入出力設定 */ 58 : 59 : /* タイマRJの設定 */ 60 : p37sel = ; /* P3_7をTRJO 端子にする */ 6 : p37sel0 = 0; /* */ 6 : msttrj = 0; /* タイマRJを有効にする */ 63 : trjmr = 0x3; /* パルス出力モードに設定 */ 64 : trj = 0; /* TRJ /0M*の時間でON/OFFする */ 65 : //tstart_trjcr = ; /* タイマスタート ( 今回はまだしない ) */ 66 : } 67 : 68 : /************************************************************************/ 69 : /* タイマ本体 */ 70 : /* 引数 タイマ値 =ms */ 7 : /************************************************************************/ 7 : void timer( unsigned long timer_set ) 73 : { 74 : int i; 75 : 76 : do { 77 : for( i=0; i<87; i++ ); 78 : } while( timer_set-- ); 79 : } 80 : 8 : /************************************************************************/ 8 : /* 圧電サウンダーを鳴らす */ 83 : /* 引数 音階 長さ */ 84 : /************************************************************************/ 85 : void sounder( unsigned int tone, int time ) 86 : { 87 : if( tone == 0 ) { 88 : tstart_trjcr = 0; /* タイマ停止 */ 89 : } else { 90 : trj = tone; 9 : tstart_trjcr = ; /* タイマ開始 */ 9 : } 93 : if( time!= 0 ) { 94 : timer( 5000L * time / tempo ); 95 : } 96 : } 97 : 98 : /************************************************************************/ 99 : /* end of file */ 300 : /************************************************************************/ 60~64 行 R8C/MA マイコン内蔵周辺機能のタイマ RJ を使って 圧電サウンダーを鳴らす音階 ( パルス ) を作ります 60~6 行パルス出力端子は p_6 端子か p3_7 端子を選べます p3_7 端子から出力する場合は 60~6 行を下記にします 60 : p37sel = ; 6 : p37sel0 = 0; p_6 端子から出力する場合は 60~6 行を下記にします 60 : p6sel = ; 6 : p6sel0 = 0; 64 行 trj には 波形の ON 幅 OFF 幅を設定します 例えば 4 オクターブ目のドの音は 周期 3.8ms の波形です ON 幅は 周期の / なので.9ms となります trj= タイマ RJ のカウントアップする時間 ON 幅 =.9ms 00ns=93 となります 88 行音階が 0 なら出力停止します 90~9 行音階が 0 以外なら trj に値をセットして タイマ RJ の出力を開始します 94 行長さが 0 以外なら 長さ分 タイマを実行して時間稼ぎをします 8.6 課題. 大きな古時計 を演奏するよう プログラムを改造しなさい. チャルメラの音楽 ( ドレミ ~ レド ドレミレドレ ~~) を演奏しなさい 3. R8C/MA マイコンと圧電サウンダーの接続を P_6 端子にして 音楽が鳴るようプログラムを改造しなさい P_6 端子につながっている は外してよい - 8 -