LCDを用いたカウントダウンプログラムについて
今、PIC16F84AとLCDを用いて255からカウントダウンするところをLCDに表示するプログラムを作っています。
開発環境は
・MPLAB X IDE
・XC8コンパイラー
・PIC Kit3
を使っています。
プログラムはコンパイル、ビルドおよび書き込みは正常にできます。
しかし、いざ動かしてみるとカウントが「255」から「254」にならず「52」になってしまいます。
プログラムのどこがおかしいか全くわかりません。
また、プログラムにおいてLCDの表示ルーチンは、「Hi-Tech C」のサンプルを使用していて
(Delay関数の個所をXC8用に書き換えています。)パスコンは、つけたほうが良いのですが、今回はつけていません。
参考のため回路図とプログラムを掲載しますので解決策がありましたら教えてください。
よろしくお願いいたします。
////////////////以下ソースコード////////////////////
/*
* File: main.c
*
* Created on 2015/12/24, 16:37
*/
//#define _LEGACY_HEADERS
#include <pic.h>
#include <stdlib.h>
#include "lcd.h"
#define _XTAL_FREQ 4000000
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is disabled)
#pragma config CP = OFF // Code Protection bit (Code protection disabled)
void ioport(void);
void main(void) {
unsigned char data;
char str[2];
ioport();
lcd_init();
data=255;
while(1){
lcd_clear();
lcd_goto(0x00);
itoa(str,data,10);
lcd_puts(str);
if(data<0){
data=255;
}
__delay_ms(250);
__delay_ms(250);
data--;
}
}
void ioport(void)
{
TRISA=0x00;
PORTA=0x00;
TRISB=0x00;
PORTB=0x00;
}
//////////////////////////////////
お礼
回答ありがとうございます。 液晶ディスプレイのことなんですね。知りませんでした。