としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC16F88を動かす。。。その12(次の対応・・昨日できなかったこと)

2012-09-18 21:56:59 | PIC16F88

こんばんわ

としぶぅ~です。

今日は天気悪いですね。。。。それに昨日の移動の疲れが・・・

 

では、昨日Pickit3で、できなかったことをPickit2で確認してみました。

問題なく動作しました。

とりあえず、本日はLCDのデータポートを移動したのでその対応と動作確認。

後、回路も変更して、温度センサLM61を実装しました。

回路図はこちら

動作状況はこちら

やっぱりPickit2はいいな~。。。思ったように動いてくれる(笑)

 

修正したリストはこちら

"lcd_f88.c"としました。(ヘッダも"lcd_f88.h")

//*
//* LCD(SC1602) interface file(pic16f88 board)
//*
//* 以下の機能を供給する
//* lcd_cmd(unsigned char) LCDにコマンドデータを出力する
//* lcd_data(unsigned char) LCDに表示データを出力する
//* lcd_clear(void) 画面をクリアする
//* lcd_puts("ABCD・・・HJ") 文字列を表示する
//* lcd_posyx(y,x) カーソル位置を、行 y、横位置 xにする
//* lcd_init(void) LCDの初期化をする
//*
//*
//* LCD_RS PORTA, 7 ;RS信号
//* LCD_E PORTA, 6 ;E信号
//* LCD_DB PORTA ;DB6-4:PORTA 2-0(上位4ビット)
//* LCD_DB PORTB ;DB7:PORTB 3
//*


#include
#include "delay.h"
#include "lcd_f88.h"

#define LCD_RS RA7
#define LCD_EN RA6


// write a byte to the LCD in 4 bit mode
void lcd_cmd(unsigned char c)
{
unsigned char cdata;
unsigned char cdataA;

cdataA = (c >> 4) & 0x0f;
PORTB = (cdataA & 0x08) | (PORTB & 0xf7);
// Making MSB Command Data 4bit
cdata = (cdataA | (PORTA & 0x70 & 0xb0));
PORTA = cdata; // RS = "H"→”L"
PORTA = cdata | 0x40; // E = "H"→”L"
PORTA = cdata;

cdataA = (c & 0x0f);
PORTB = (cdataA & 0x08) | (PORTB & 0xf7);
// Making LSB Command Data 4bit
cdata = cdataA | (PORTA & 0x70 & 0xb0);
PORTA = cdata; // RS = "H"→”L"
PORTA = cdata | 0x40; // E = "H"→”L"
PORTA = cdata;
DelayMs(5);
}

// write one character to the LCD
void lcd_data(unsigned char c)
{
unsigned char cdata;
unsigned char cdataA;

cdataA = (c >> 4) & 0x0f;
PORTB = (cdataA & 0x08) | (PORTB & 0xf7);
// Making MSB Data 4bit
cdata = cdataA | (PORTA & 0xf0) | 0x80;
PORTA = cdata; // RS = "L"→”H"
PORTA = cdata | 0x40; // E = "H"→”L"
PORTA = cdata;

cdataA = (c & 0x0f);
PORTB = (cdataA & 0x08) | (PORTB & 0xf7);
// Making LSB Data 4bit
cdata = (cdataA & 0x0F) | (PORTA & 0xf0) | 0x80;
PORTA = cdata; // RS = "L"→”H"
PORTA = cdata | 0x40; // E = "H"→”L"
PORTA = cdata;
DelayMs(5);
}

// Clear and home the LCD
void lcd_clear(void)
{
lcd_cmd(0x1);
DelayMs(5);
}

// write a string of chars to the LCD
void lcd_puts(const char * s)
{
while(*s)
lcd_data(*s++);
}

// Go to the specified position
void lcd_posyx(unsigned char ypos,unsigned char xpos)
{
unsigned char pcode;

switch(ypos & 0x03){
case 0: pcode=0x80;
break;
case 1: pcode=0xC0;
break;
case 2: pcode=0x94;
break;
case 3: pcode=0xD4;
break;
}
lcd_cmd(pcode += xpos);
}

// initialise the LCD - put into 4 bit mode
void lcd_init(void)
{

// Initalize コマンドを2~3回書き込まないとうまく動かない(2Lineモードにならなかった))
lcd_cmd(0x2c); // 4 bit mode, 2-LineMode, 5x8 font
DelayUs(40);
lcd_cmd(0x2c); // 4 bit mode, 2-LineMode, 5x8 font
DelayUs(40);
lcd_cmd(0x0c); // display on, blink curson on
DelayUs(40);
lcd_clear(); // display off
DelayMs(2);
lcd_cmd(0x06); // entry mode
}

マーカー入れたところが以前のソフトから修正したところです。

1bitだけ違うポート使うのは面倒ですね。。。

ま、しょうがない!

 

とりあえず動いたからきょうはこのへんにしときます。

明日は、ADの部分いじります。。。どうやるかも考えながら^^

 

昨日Pickit3買ったけど動いていません。。。ちょっと時間かかりそうなので週末の

時間があるときにさわろうと思います。

また動かしたらこちらに書きますね。

 

それでは今日はこの辺で!

おやすみなさい~^^/

 


PIC16F88を動かす。。。その11(次の対応)

2012-09-17 15:43:12 | PIC16F88

こんにちわ

としぶぅ~です。

本日は、PICについて続きを・・・・と思ったんですが、静岡の方にPickit2は忘れてくるわ

部品は忘れてくるわで。。。。^^;

何もできない・・・・いや・・・がんばればなんとかなるはず・・・と一路マルツ電波金沢店へ

Pickit3を購入!

よし、では本日はADの+VREF入力を入れるためにLCDのデータポートを1本PA3→PB3

へ移動したのでソフトを対応して、液晶表示できるとこまでやるかな。。。。

とおもいきや!

Pickit3は。。。。Pickit2と同じ動きをしてくれない・・・・^^;

なんか書き込みすらできない状況になっております。

なんだかMPLABが強制終了すらできませんが・・・・・・・ちょっと赤くなって「シャア専用」みたいに

グレードが上がったのかなと思って買ったのに。。。。

本日はまた前に進ませぬ!

ダメダメですな。。。。。

 

ま、続きは静岡に帰ってからということで。。。。そろそろタイムアップです。

日ごろの行いかな~(笑)

 

ま、前向きに行きましょう!!

 

ではではまた~


トランジスタ技術 2012年10月号買いました。。。付録:ARMマイコン

2012-09-16 16:19:56 | 書籍紹介

こんにちわ

としぶぅ~です。

 

昨日は、子供の運動会で。。。炎天下の中疲れた^^;

それで今日は、PICの続きでも・・・と思ったら、Pickit2忘れてきました!

「なんいもできね~」

と思っていたら、先日注文しておいた「トランジスタ技術 2012年10月号」

が届いていたので少し紹介をします。

実物がこれです。

今回はARMマイコンが付録でついてきます。

NXP社のLPC1114FN28/102というCortex-M0の32bitマイコンです。

しかも、このマイコン。。。。DIPタイプということで簡単に実験ができるようです。

NXPもすごいですね。。。DIPタイプ出してくるとわ。

これでホビーユーザーにもNXPのARMマイコンが簡単に使えるようになるというわけです。

 

以前仕事で、NXP社のマイコンを使用しました。

サンプルプログログラムも準備されていて簡単に各ペリフェラルの機能を試すことが

できます。

これってすごいことなんですよね。。。今までの日本製のマイコンを初めて使うときには

まず、自分で取説読んで。。。各ポートの初期化、割り込み・タイマー割り込みの初期化

そして、このマイコンを動作させる為のメインルーチンを設計して、やっと動作させられる

。。。でもARMについては、ある程度のサンプルプログラムが準備されていてその関数を

組合すことで簡単に動かせるものを作ることができてしまいます。。。

私は初めて使った時、唖然としました。。。。^^;

これはARMでシェアをとるためにとった海外メーカーの戦略というやつではないですかね。。。

すごすぎる。。。。(これじゃルネサスもおされるわけか。。。。。と独り言・・・)

ま、マイコンそのものについてはこの辺にしておいて、

内容としてデバッグについて書いてあります。

 ・デバッグ用のI/Fは別に買わないといけないようですね。。。

  MY ARMブレッドボード実験セットというのがマルツ電波で販売しているようです。

   http://www.marutsu.co.jp/shohin_137785/

  これにデバック用のモジュールがついているようです。

 ・買いたくない人は・・・・自作?後、STM32ディスカバリーを買ってST-LINK部分を使うとか

  私はhttp://www.csun.co.jp/SHOP/2009121901.htmlこういうの持っているので

  これでもできますね。。。多分・・・やっていないのでできるかは不明(多分できます。)

開発ツールについてはLPCXpresso IDE ・ MDK-ARM/μvision(Keil) ・ EWARM(IAR)

といったところの説明があります。評価版をしようすれば問題なくつかえますよ。。。

(コードサイズの制限がありますが、32kbyteあればそうとうなことができます。)

後、デバッカがなくてもFlashMagicというツールを使用すればシリアルポートを使用して書き込みも

できます。 ←これも書いてありますね。。。

 

あとは、プログラムを動かしながら中身の動きを説明してあります。

 

いつものごとく、LEDを利用したチカチカプログラム。。。

キーの取り込み

割り込みの使い方

UARTを使用したPCとの通信の仕方

ADの使い方

電子ピアノ?・・・LEDの調光

なかなかおもしろいのでは?

 

ちなみに、秋月電子では単品で売ってますね。。。180円(20120916現在在庫キレ)

http://akizukidenshi.com/catalog/g/gI-06071/

 

一通りやってみると結構いいかもしれないですね。。。。今度やってみようかな^^

PICもあるしな~

実は会社の課題でSTM32も・・・・

 

やることは尽きないので、やはり毎日ぼちぼちやっていかねばならないですね~

ま、今日はこんなところにしておきますかね。。。

 

それではまた~^^/

 

 

 

 

  

 

 

 


「8ピンPICではじめてのマイコン工作を始める」の紹介

2012-09-14 17:24:40 | 書籍紹介

こんにちわ

としぶぅ~です。

 

今日はちょっと移動しないといけないので”PIC”についての書籍を紹介します。

「8ピンPICではじめてのマイコン工作を始める」

という本です。

この本は、仕事で小さめのPIC使うかもしれない・・・というときにちょっとした知識を

先に入れておこうと思って購入した本です。

読んでみて、

言語は全てアセンブラ言語です。

8ピンのPICの場合プログラム容量がかな~り小さいので、C言語で書いてコンパイルすると

多分すぐいっぱいになってしまうので、アセンブラで組むんでしょうね。。。

「はじめての・・・」と書いてあるだけあって、かなり細かく説明してあります。

プログラムのフローチャートまで。。。。さすがです。

私のブログでは考えられません(笑)

内容では、

 圧電ブザーで音を感知してその圧電ブザーで音をならすとか・・・・(PWM)

 LEDで光を検地して光らせるとか・・・・(AD)

順番に作っていくと、マイコンの工作するときにひつようなことを一通りおさえられますね。

 

私は、こういう本は読んだほうがいいと思います。

どうすれば何ができる。。。。という知識が得られるので、ちょっとしたときにアイディアの

元になりますね。

何も情報がなければアイディアも出てこないので。

 

皆さんも一度読んでみては!?

 

 それでは今日はこのへんで^^/

 

 


回路図エディタの紹介

2012-09-13 22:46:56 | PCツール

こんばんわ

としぶぅ~です。

 

今日は、私が回路図を作成するときに使用しているツールの紹介です。

「電子回路CAD」ですね。。。しかもFREEの!

これすごいですよ^^

回路図エディタBSch3V

というやつです。

水魚堂さんのHPよりダウンロードして使えます。

しかも、MAC、Windows、LINUXと主要OSを網羅しているのですごく便利です。

上記が”iBOOK”で起動したところです。

以前、電子CADを使用していないお客さんのところで、このBSch3Vを使って回路図をつくり

基板まで起こしたことがあります。

つまり、BSch3Vで回路図を作れば、部品票・レファレンス自動割り振り・ネットリストを作れるということです。

 

大変ありがたいツールですね。。。

今、ブログにあげている回路図は全てこのツールで作ったものです。

orcadの試用版のように使用できる素子数に制限もありませんし、便利の一言に尽きます。

皆様も機会ありましたら是非使ってみてください。

※書籍も出てますよ。。。 これです。

 

水魚堂さんのHPは、http://www.suigyodo.com/online/schsoft.htm こちらです。

水魚堂さんありがとう!

 

では、今日はこの辺で。。。

おやすみなさい~