Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

PIC16F883その4

$
0
0
 この1週間、PIC16F883でI2C LCD AQM0802Aに文字を表示させるために、I2C通信の勉強をし、PIC16F883/886とAQM0802Aのマニュアルを読み、アセンブラで表示プログラムを組んでいました。
 
 FMCA(福島マイコン愛好会)でお世話になっているPICの先輩、石井さんからPIC16F1503でAQM0802A表示を行ったアセンブラソースリストをいただき、これを参考にしました。
 
 とりあえず、定番の「Hello World!」を表示させることができました。
 
イメージ 1
 
 
 Web上では、アセンブラでAQM0802Aを動かした例をあまり見かけません。そこで今回勉強したことを少し詳しく書いてみたいと思います。
 
 PIC16F883/886で、I2C通信を行うには、内蔵のMSSP(Master Synchronous Serial Port)を使います。
 
 このMSSPは、I2C(Inter-Integrated Circuit)とSPI(Serial Peripheral Interfaceの両方に使えます。
 
 今回は、I2Cを利用します。使うピンは、14番ピン(RC3/SCL)と15番ピン(RC4/SDA)で、I2Cで使う時には、オープンドレインの回路にするため、両方とも入力モードに設定します。
 
 各ポートの設定は
 
    BANKSEL TRISA
    CLRF TRISA ;RAは全て出力
    MOVLW 0FFh
    MOVWF TRISB ;RBは全て入力
    MOVLW b'11011000'
    MOVWF TRISC ;RC0~RC3出力、RC3,RC4入力,RC5出力,RC6,RC7入力
としました。RC6とRC7は、シリアル通信に使う予定なので、入力に設定しておきます。
 
 AQM0802AとPIC16F883の接続図です。電源は、単3電池2本で3Vです。
 
イメージ 2
 I2C通信に関係するPIC16F883のレジスタは次のとおりです。
 
 SSPBUF 送受信データを格納するレジスタ
 SSPADD マスターモードの場合は、クロック設定のパラメータを入れます。
 SSPSTA 送受信結果のステータス
 SSPCON と SSPCON2は、様々な設定を行います。
 他に、PIRレジスタのSSPIFを使います。
 
なお、I2C通信については、「電子工作室の実験室」などのサイトを参考にしてください。
 
つづく
 
 

Viewing all articles
Browse latest Browse all 440

Trending Articles