Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Microcontroller for my project

Not open for further replies.


Full Member level 3
Nov 12, 2012
Reaction score
Trophy points
Activity points
My project is about sensing the PPG signal from finger-tip, process the signal in microcontroller and display waveform in Graphic LCD.

PPG signal (analogue signal) will be in the range of -5v to +5v.

I prefer using PIC. Because I have the programmer's kit with me.

should I need to convert that to 0-5V? (for using PIC)

I need to convert A-D.

And I bought DOGL128-6 GLCD display unit.

I need to interface display unit with the same PIC.

Will the PIC16F877A suits my project?

Will the PIC16F877A produce more phase shift?

Frequency range of the PPG signal 0.1Hz to 10Hz.

PIC uses successive approximation method for ADC conversion.

I understood the method, but I need to know how long will it take to convert to produce First digital data(binary data) and between 2 consecutive binary data?

What should be PIC oscillator's frequency(crystal oscillator)?

Can you suggest some circuit simulators for my project?

Which is better for beginners Mickroc or MPLAB ?

Yes pic16f877a will be enough for your project, the speed is about the crystal (it supports - 20Mhz).
if you use 20Mhz crystal it will be enough fast than you need.
you have to wait 20us for getting a2d conversion.
and if I were you I would start with pic CCS C it is so easy, and example code supported.
Here a discussion, it is not your project but I think it will be useful for you.

I need to store the values for 2 minutes.

Is PIC16F877A Memory enough?

How to calculate the no. of memory locations required for my project?

I am going to compare the ADC binary data with reference value (binary value).

I need to store values after comparing as 0's and 1's.

So, the output resembles a pulse with different duty cycle.

Let the no. of memory location needed for storing ADC values be 'x'.

no. of memory location needed for storing 0's and 1's will also be 'x'.

I think I need a lot of memory locations.

The stored ADC values will be copied to display RAM(GLCD).

No. of pulse constitute no. of heart beat.

It will be counted and displayed in the GLCD.

In DOGL128-6 GLCD display, does it has ST7565R controller/driver (inbuilt)?

- - - Updated - - -

Will the PIC ADC converts -5v to 0v to a equivalent binary data?

Yes you are right the memory wont be enough, I think you should do this with arrays, and in 877A you can create 20-members array only, so you need to use a microcontroller 16bits- or 32bits

PIC16F877A is not mandatory for me.

Which PIC can I use to solve the memory problem.

I need 8 bit microcontroller for interfacing GLCD display (128x64).

Is 8 bit ADC enough for my project?

And many of my questions were not answered.....


Your PPG signal needs to run though an op amp circuit to convert it to a single voltage 0 to +5v or 0 to +3v3.

The EADog display has the ST driver chip on board, however it all runs at 3v3, so you either need to step down all the 5v Pic signals to it or use one of the many pic chips that run at 3v3 - though you have to then consider if you can easily convert your adc signal at 3v3

Your 877A choice has a 10 bit adc as do many other Pics.

If the inbuilt eeprom is too small for you data storage, you need to look at external eeprom or sd card.

Perhaps look at chips like the 18F4620 ,18LF4620 or 18 K/J series, all very similar to the 877a but with more memory and features.

Despite your current questions, your project is quiet complicated so you might find your hardware needs will change as you project develops.

Rather than try planning the whole thing, try building each function separately, like first building a working display, then an adc input etc.
Its not going to be something you can do in a week or two.


  • dog.jpg
    70 KB · Views: 65

My doubt is that will the ADC convert the negative voltages into a binary data?

In case of 10 bit ADC, will the values be stored in 2 * (1 byte) memory location ?

My doubt is that will the ADC convert the negative voltages into a binary data?

In case of 10 bit ADC, will the values be stored in 2 * (1 byte) memory location ?


As I mentioned ealier you have to convert your PPG signal from a -5 to +5 voltage swing to a 0v to +5v swing by means of an op amp or similar circuit.

The Pics can only directly read an ADC 0v to max Vdd voltage.

A pic with a 10 bit ADC will divide the 0 to 5v swing into 1024 steps.
So the 512 step will equal your original 0v , step 0 your -5v and 1024 your +5v

What you need to establish is given your PPR swing of 10v does the resultant pic 10 bit adc resolution of 1v of PPR to 102.4 steps give you a practicable scale.

The Pics ADC result is stored in two 8 bit registers ADRESL and ADRESH.
Have a read of the 877As datasheet for full details or many of the tutorials like the MikroE to name but one.

Not open for further replies.

Part and Inventory Search

Welcome to