/* * Author: kazurock * * Created on september 21, 2016, 8:44 PM */ #include #include "lcd.h" #include #include #pragma jis //-------------------------------------- // コンフィグレーションビットの指定 //-------------------------------------- // CONFIG1 #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTRC oscillator; port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD) #pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled) #pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) #pragma config CPD = OFF // Data EE Memory Code Protection bit (Code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off) #pragma config CCPMX = RB3 // CCP1 Pin Selection bit (CCP1 function on RB3) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) // CONFIG2 #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled) #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode disabled) /* * RA0--- * RA1--- * RA2--- * RA3--- * RA4--- * RA5--- * RA6---LCD RS * RA7---LCD Enable * * RB0--- * RB1--- * RB2--- * RB3--- * RB4---DB4 * RB5---DB5 * RB6---DB6 * RB7---DB7 */ ///////////delay関数を使うために発振周波数を定義 1Mhz//////////// #define _XTAL_FREQ 1000000 ////////////printf関数の出力先のスタブ関数を定義する//////////// void putch(unsigned char ch){ lcd_putc(ch); } void main( void ) { OSCCON = 0b01000000;//内部周波数1mhzに ANSEL = 0b00000000;//すべてデジタルに設定 TRISA = 0x00; // RA0-7をOutputにする TRISB = 0x00; // RB0-7をOutputにする PORTA = 0b00000000;// PORTB = 0b00000000; // LCD初期化 lcd_init(); // LCD画面クリア lcd_cls(); // LCDに文字列出力 lcd_locate( 0, 0 ); lcd_puts( "Hello world" ); lcd_locate( 1, 0 ); lcd_puts( "コンニチワ" ); __delay_ms(1000); __delay_ms(1000); //メインループ突入 while( 1 ) { //printfでLCDに文字列出力 lcd_locate( 0, 0 ); printf("printf デモ OK"); lcd_locate( 1, 0 ); printf("LCD デ ユミ ムゲンダイ"); __delay_ms(1000); __delay_ms(1000); __delay_ms(1000); // LCD画面クリア lcd_cls(); // LCDに文字列出力 lcd_locate( 0, 0 ); lcd_puts( "count down" ); lcd_locate( 1, 7 ); lcd_puts( "10" ); __delay_ms(1000); lcd_cls(); // LCDに文字列出力 lcd_locate( 0, 0 ); lcd_puts( "count down" ); lcd_locate( 1, 7 ); lcd_puts( "9" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "8" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "7" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "6" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "5" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "4" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "3" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "2" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "1" ); __delay_ms(1000); // LCDに文字列出力 lcd_locate( 1, 7 ); lcd_puts( "0" ); __delay_ms(1000); } }