C言語による PICプログラミング大全

書籍の概要

この本の概要

2002年に初版,2009年に第2版を発売した名著「C言語によるPICプログラミング入門」が大幅リニューアルし「大全」として生まれ変わりました。CコンパイラはMicrochip Technology社純正のXC8に,統合開発環境もMPLAB X IDEに変更。さらに,GUI画面の操作で内蔵モジュール設定用の関数が自動的に生成される新プラグイン「MCC(MPLAB Code Configurator)」についても大きく取り上げています。 C言語でPICマイコンのプログラミングを始めたい方から,最新のPICマイコンの機能をとことん使い倒したい方まで,必ず役に立つ1冊です。

こんな方におすすめ

  • C言語でPICマイコンの開発をしたい方
  • MPLAB X IDEやMCCの使い方を知りたい方
  • PICマイコンの内蔵モジュールを使い倒したい方

著者の一言

~本書 はじめにより~

この数年でPICマイコンの最大のファミリであるPIC16Fファミリに,大幅に機能強化されたエンハンスドミッドレンジファミリ,通称PIC16F1ファミリが出揃ってきました。
このファミリはメモリ増強や速度アップ,命令の追加などで「C言語」によるプログラム開発に最適になるように性能強化されています。これに合わせてCコンパイラも「MPLAB XC Suites」として整理され,統合開発環境のMPLAB X IDEと合わせてC言語による開発環境が整いました。そこで,これを機にXCコンパイラによる8ビットPICマイコンのC言語プログラミングの解説をまとめることにしました。
さらに,このPIC16F1ファミリには性能アップだけでなく,「コアインデペンデントペリフェラル(CIP)」と呼ばれる数多くの種類の周辺モジュールが実装されています。このCIPは,一度設定するとプログラム制御なしで独自に動作を継続してくれます。特にモータ制御やLED用スイッチング電源などのアプリケーションでは,フィードバック制御をCIPだけで実行させることができます。これによりハードウェア速度による高速動作が実現され,同時にプログラム負荷を大幅に減らしてくれます。
しかし,CIPは種類が多く,しかも結構複雑な設定が必要なものもあるため,なかなか使い切ることが難しいといわれていました。このため,これらの障壁をなくすことを目的に「MPLAB Code Configurator(MCC)」というプログラムコード自動生成ツールが開発されました。
このMCCを使えば複雑なCIPを,GUIを使った簡単な設定だけで使うことができます。MCCは,設定内容をC言語の初期化関数として生成するだけでなく,CIPを使うために必要な制御関数も生成してくれます。そこで,本書にはC言語の使い方だけでなく,MCCを使ったCIPの使い方も一緒に加えることにしました。しかし,CIPの種類が多いため,ページ数が多くなり過ぎてしまい,一部を技術評論社のウェブサイトからのダウンロードという形にせざるを得ませんでした。両方を合わせてお使いください。
本書により,C言語によるプログラミングでPICマイコンをより簡単に使っていただき,さらにMCCによりCIPを使いこなすことで,より複雑で高機能なアプリケーションを手早く開発していただくことができれば幸いです。

補足情報

なお本書にて作成する演習ボード用のプリント基板を,以下のWebサイトにて頒布しています。

この書籍に関連する記事があります!

超安い! 超使いやすい! 機能も豊富! 今すぐPICマイコンを始めよう!
ArduinoやRaspberry Piなどのお手軽なワンボードコンピュータ,マイコンボードが安く手に入るようになりました。
ビット・トレード・ワン,書籍「C言語によるPICプログラミング大全」関連基板を発売
(株)ビット・トレード・ワンは,2018年4月17日(火)発売予定の「C言語によるPICプログラミング大全」の書籍内にて紹介されている実験ボードの製作のベースとなるPCB基板2種を,2018年4月17日に販売する。

本書のサンプル

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

目次

第1部 PICマイコンの概要と開発環境の使い方
第1章 マイコンとプログラミング

  • 1-1 マイコンとは
  • 1-2 マイコンのプログラムとは
  • 1-3 2進数と16進数
  • 1-4 マイコンの動かし方

第2章 PICマイコンの概要

  • 2-1 マイクロチップ社のマイコンファミリとF1ファミリの位置付け
  • 2-2 PIC16F1ファミリの種類と特徴
  • 2-3 コアインデペンデントペリフェラル

第3章 演習用ハードウェアの製作

  • 3-1 デジタル演習ボードの製作
  • 3-2 アナログ演習ボードの製作

第4章 開発環境とMPLAB X IDEの使い方

  • 4-1 開発環境概要
  • 4-2 MPLAB X IDEの入手とインストール
  • 4-3 MPLAB X IDEの使い方
  • 4-4 ソースファイルの作成とエディタの使い方
  • 4-5 コンパイルと書き込み実行
  • 4-6 実機デバッグの仕方
  • 4-7 シミュレータの使い方
  • コラムA コンパイルエラーの原因発見のコツ
  • コラムB エディタの便利機能

第2部 C言語プログラミングの基礎
第1章 C言語プログラムとは

  • 1-1 C言語の歴史
  • 1-2 C言語プログラムの構造と書式
  • 1-3 コンパイル処理の流れ
  • 1-4 プログラム実行時の環境
  • コラム 第2部用のプロジェクトの作り方

第2章 プリプロセッサ

  • 2-1 プリプロセッサ指示命令の使い方
  • 2-2 デバイスヘッダファイルの役割
  • 2-3 pragma指示命令の使い方

第3章 データ型

  • 3-1 変数のデータ型
  • 3-2 定数の書式と文字定数
  • 3-3 変数の宣言位置とスコープ
  • 3-4 変数の型変換

第4章 演算子の使い方

  • 4-1 演算子の使い方
  • 4-2 標準算術ライブラリ関数

第5章 フロー制御関数の使い方

  • 5-1 構造化プログラミングと3種類の基本構造
  • 5-2 if文の使い方
  • 5-3 while文とdo while文の使い方
  • 5-4 for文の使い方
  • 5-5 switch文の使い方

第6章 モジュール化と関数

  • 6-1 プログラムのモジュール化
  • 6-2 関数の作り方と書式
  • 6-3 関数のプロトタイピング
  • 6-4 アセンブリ言語との共存

第7章 配列とポインタ

  • 7-1 配列(array)とは
  • 7-2 文字列の扱い
  • 7-3 ポインタの使い方
  • 7-4 複雑なポインタの使い方
  • コラム ポインタのメカニズム

第8章 構造体,共用体,列挙型の使い方

  • 8-1 構造体(structure)の使い方
  • 8-2 共用体(union)
  • 8-3 列挙型(enum)

第9章 割り込み処理関数

  • 9-1 割り込み処理の流れとメリット
  • 9-2 割り込みの要因と許可禁止
  • 9-3 割り込み処理の記述方法
  • コラム PIC18Kファミリのベクタ割り込みとDMA

第10章 標準関数と標準入出力関数

  • 10-1 標準C関数ライブラリ
  • 10-2 標準入出力関数の使い方
  • 10-3 標準入出力によるデバッグ方法

第3部 MCCと周辺モジュールの使い方
第1章 MCCの概要

  • 1-1 MCCとは
  • 1-2 MCCのインストール
  • 1-3 MCCを使ったプログラミング手順

第2章 コンフィギュレーションとクロックの設定

  • 2-1 コンフィギュレーションと設定方法
  • 2-2 クロックの設定

第3章 入出力ピンの使い方

  • 3-1 入出力ピンのハードウェアとレジスタの関係
  • 3-2 ピン割り付け機能
  • 3-3 状態変化割り込みの使い方
  • 3-4 例題 フルカラーLEDの点滅

第4章 タイマモジュールの使い方

  • 4-1 タイマ0の使い方
  • 4-2 タイマ1/3/5の使い方
  • 4-3 タイマ2/4/6/8/10の使い方
  • 4-4  SMTの使い方

第5章 シリアル通信モジュールの使い方

  • 5-1 EUSARTモジュールの使い方
  • 5-2 MSSPモジュール(I2Cモード)の使い方
  • 5-3 MSSPモジュール(SPIモード)の使い方

第6章 パルス出力関連モジュールの使い方

  • 6-1 CCP/ECCPモジュールの使い方
  • 6-2 10ビット PWMモジュールの使い方
  • 6-3 CWGモジュールの使い方
  • 6-4 NCOモジュールの使い方
  • 6-5 16ビットPWMモジュールの使い方
  • 6-6 COGモジュールの使い方
  • 6-7 CLCモジュールの使い方

第7章 メモリの使い方

  • 7-1 データEEPROMメモリの使い方

第8章 アナログモジュールの使い方

  • 8-1 10/12ビットADコンバータと温度インジケータの使い方
  • 8-3 5/8/10ビットDAコンバータとFVRモジュールの使い方
  • 8-4 アナログコンパレータの使い方
  • 8-5 オペアンプの使い方