Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

PIC ile Hesap Makinesi yapımı

Başlatan Halil Gök, 02 Temmuz 2019, 00:34:57

Halil Gök

Selamlar, arkadaşlar dev internet arşivinde benimde tuzum olsun istedim. Bloğumda PIC16F877A ile css c de yazdığım hesap makinası projesini de buradan duyurmak isterim. Bloğumda detaylarına yer verdiğim anlatımım ve kodlar bulunmaktadır. en yakın süreçtede videosunu çekeceğim.
BURADAN ulaşabilirsiniz.: https://embeddedsystemshalilgk.wordpress.com/2019/07/02/pic-ile-hesap-makinasi-yapimi/

Ayrıca elektronik ve youtube kanalımada göz atabilirsiniz amatör ama faydalı videolar aktarıyorum. https://www.youtube.com/channel/UC8cJpAVnScqDzZ7IFs2tQMw?view_as=subscriber

ultisonic

Merhaba,
Ben de benzeri bir projeyi Pic18f45k22 üzerinde mblab ile yazmaya çalışıyorum da acaba kodlarınızı nasıl revize edebilirim lcd ekran üzerinde karakterleri görüntüleyebiliyorum ama operatör işlemlerini(Çarpma bölme toplama çıkarma) yapamadım yardımcı olursanız sevinirim.
/* 
 * File:  newmain.c
 * Author: ONUR AKBATI
 *
 * Created on 27 Nisan 2020 Pazartesi, 09:32
 */

#include <stdio.h>
#include <stdlib.h>
#include <pic18f45k22.h>
#include <htc.h>
#include "LCD2.H"
#define _XTAL_FREQ 8000000
#pragma config FOSC = HSHP
#pragma config WDTEN = OFF
#define RB4 PORTBbits.RB4
#define RB5 PORTBbits.RB5
#define RB6 PORTBbits.RB6
#define RB7 PORTBbits.RB7


unsigned char buttons[16];
unsigned char btn_cnt=0;
unsigned char prv_btn=16;
unsigned char charset[16]={'7','8','9',0xFD, '4','5','6','x', '1','2','3','-', 0,'0','=','+'};
unsigned char k=0;
unsigned char cursor_cnt=0;
int main(int argc, char** argv) {
    ANSELB=0;
    TRISB=0xF0;
    RBPU=0;

    ANSELD=0;
    TRISD=0xC0;
    PORTD=0;

    T0CON=0xC3;
    TMR0=128;

    TMR0IP=1;
    TMR0IE=1;
    GIE=1;

    lcd_init();
    lcd_clear();
    lcd_goto(0);

    while(1){
        while(k<16 && cursor_cnt<80){
            if(buttons[k]==1 && prv_btn!=k){
                prv_btn=k;
                if(cursor_cnt==16){
                    cursor_cnt=64;
                    lcd_goto(64);
                }
                lcd_putch(charset[k]);
                cursor_cnt++;
                break;
            }
            k++;
        }
        k=0;
        if(buttons[12]==1){
            lcd_clear();
            lcd_goto(0);
            cursor_cnt=0;
        }
        __delay_ms(50);
        if(buttons[prv_btn]==0){
            prv_btn=16;
        }

    }

    return (EXIT_SUCCESS);
}

void interrupt high_priority isr(){
    if(TMR0IF){
        TMR0IF=0;
        TMR0=128;

        PORTB=~(0x01<<btn_cnt);
        buttons[0 + btn_cnt*4]=!RB4;
        buttons[1 + btn_cnt*4]=!RB5;
        buttons[2 + btn_cnt*4]=!RB6;
        buttons[3 + btn_cnt*4]=!RB7;
        btn_cnt++;
        if(btn_cnt==4){
            btn_cnt=0;
        }
    }
}


sifirzero

sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir