Pins from various ports for 7 segment display

Moderator: Benj

Post Reply
yousafzai
Posts: 9
Joined: Sun Jul 15, 2012 7:12 pm
Been thanked: 4 times
Contact:

Pins from various ports for 7 segment display

Post by yousafzai »

Hi

I am using demo Flowcode for PIC V5.2. I am using pic16f676 to drive three 7 segment digits. My problem is that pic16f676 has two ports each of six pins. That mean if i assign portc.0 to segment A , then i am left with segment G and Segment dot as unconnected. If i try to connect these pins to PortA then all pins of from Segment A to Segment F also change to PORTA. Is there any solution for this?


Best Regards
yosuafzai

User avatar
Enamul
Posts: 1772
Joined: Mon Mar 05, 2012 11:34 pm
Location: Nottingham, UK
Has thanked: 271 times
Been thanked: 814 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Enamul »

HI,
It has solution but it will take time as we have to change
C:\Program Files (x86)\Flowcode\v5\Components\FC5_PIC_7seg.c

Enamul

Edit: I have changed the file to have that effect but still can't sort out it...seems it's an ocx issue..
Enamul
University of Nottingham
enamul4mm@gmail.com

yousafzai
Posts: 9
Joined: Sun Jul 15, 2012 7:12 pm
Been thanked: 4 times
Contact:

Re: Pins from various ports for 7 segment display

Post by yousafzai »

Any clue how to change this file?




Best Regards

yousafzai

User avatar
Enamul
Posts: 1772
Joined: Mon Mar 05, 2012 11:34 pm
Location: Nottingham, UK
Has thanked: 271 times
Been thanked: 814 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Enamul »

Hi,
I have manged to do it for you in c code..but everything in c code in supplementary code..even the connection of 7segment as FC is not allowing you to use different port for different segment although this PIC 16f676 doesn't have 8 bit in any port..a pain!!

I have mentioned the connection I have used..you can change that according to your requirement in the supplementary code..which is in FCV5 in Build>project options>General options..

I have used common anode as display type but you can change that in the beginning of code..1 for common anode and 0 for common cathode

Code: Select all

#define MX_7SEG_COM_TYPE		1
I have shown how to display digit using c code like..

Code: Select all

ShowDigit(3,0);
Here 3 is the digit to display and 0 for DP..if you want dp to on; put 1 here.

Although I haven't used clear digit macro but it's implemented, you can use that easily to clear 7segment...By just adding the following code in a c code box..

Code: Select all

ClearDigit();
I have tested the program in Real PIC and so it should work in hardware.. :)
Enamul
7Seg.fcf
(13.6 KiB) Downloaded 473 times
7Seg.hex
(1.47 KiB) Downloaded 419 times
7seg.png
(34.96 KiB) Downloaded 9422 times
Enamul
University of Nottingham
enamul4mm@gmail.com

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Benj »

Hello,

Yes unfortunately this is a limitation of the VB OCX file. You can work around by hardcoding the connections using the customise code and editing the connection definitions in the defines function or you can do how Enamul has shown which is to rip out the 7 seg code and instead place a hard coded version into the supplementary code slot.

User avatar
Enamul
Posts: 1772
Joined: Mon Mar 05, 2012 11:34 pm
Location: Nottingham, UK
Has thanked: 271 times
Been thanked: 814 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Enamul »

Hi Ben,
I was looking this issue when you are in leave about changing c component of 7segment to customize the connection. I have edited the c code like LCD which enables us to use different port for different pin. But no success in getting the option in changing pin wise port. :( Can you please tell me how to edit the connection definitions in the defines function?
Thanks,
Enamul
Attachments
FC5_PIC_7seg.c
(9.61 KiB) Downloaded 456 times
Enamul
University of Nottingham
enamul4mm@gmail.com

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Benj »

Hello,

Ok In the defines section for a single 7-seg display we have this code.

Code: Select all

#define %a_SEG_PORT	port%b
#define %a_SEG_TRIS		tris%b
#define %a_COM_PORT	port%c
#define %a_COM_TRIS	tris%c
#define %a_SEG_PIN0		%d
#define %a_SEG_PIN1		%e
#define %a_SEG_PIN2		%f
#define %a_SEG_PIN3		%g
#define %a_SEG_PIN4		%h
#define %a_SEG_PIN5		%i
#define %a_SEG_PIN6		%j
#define %a_SEG_PIN7		%k
#define %a_COM_PIN		%l
#define %a_COM_TYPE	%m
It looks like a single port is expected so we can create a new define to hold the second port and hard code the other defines so they work with the properties passed from Flowcode.

Code: Select all

#define %a_SEG_PORT	porta
#define %a_SEG_TRIS		trisa
#define %a_SEG_PORT2	portc
#define %a_SEG_TRIS2	trisc
#define %a_COM_PORT	portc
#define %a_COM_TRIS	trisc
#define %a_SEG_PIN0		0
#define %a_SEG_PIN1		1
#define %a_SEG_PIN2		2
#define %a_SEG_PIN3		3
#define %a_SEG_PIN4		4
#define %a_SEG_PIN5		5
#define %a_SEG_PIN6		0
#define %a_SEG_PIN7		1
#define %a_COM_PIN		2
#define %a_COM_TYPE	%m
Because only one port definition was used previously we need to switch to the new definition when referencing a pin on the new port, in this case pins 6 and 7.

Show digit code.

Code: Select all

		if (cSegmentValue & 0x40)
		{
			FC_CAL_Bit_High_DDR(%a_SEG_PORT2, %a_SEG_TRIS2, %a_SEG_PIN6);
		}
		else
		{
			FC_CAL_Bit_Low_DDR(%a_SEG_PORT2, %a_SEG_TRIS2, %a_SEG_PIN6);
		}

		if (cSegmentValue & 0x80)
		{
			FC_CAL_Bit_High_DDR(%a_SEG_PORT2, %a_SEG_TRIS2, %a_SEG_PIN7);
		}
		else
		{
			FC_CAL_Bit_Low_DDR(%a_SEG_PORT2, %a_SEG_TRIS2, %a_SEG_PIN7);
		}

User avatar
Enamul
Posts: 1772
Joined: Mon Mar 05, 2012 11:34 pm
Location: Nottingham, UK
Has thanked: 271 times
Been thanked: 814 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Enamul »

Hi,
In my modified one I have done similar thing which I was thinking for any pic..that's why I have modified for upto 5 ports. But it seems that the component code a bit changed in FCV5.4 although mine one was for FCV5.2.
Enamul

Edit:
ok..I got it..still you can't change port in FC connection window but as it is done hard core..so it will work in hardware and I can see the changes in c code..and good thing is that it simulates in FC. Also I think will work in demo version of FCv5
Thanks al lot Ben. You are real boss. :)
@yosuafzai
you can back up your c component code for 7 seg and put the attached one in the component folder in FCV5. Now you can put 7seg component in panel and use normally 7segment don't need to connect the component as it is done in c code..
Attachments
FC5_PIC_7seg.c
(7.87 KiB) Downloaded 503 times
Enamul
University of Nottingham
enamul4mm@gmail.com

yousafzai
Posts: 9
Joined: Sun Jul 15, 2012 7:12 pm
Been thanked: 4 times
Contact:

Re: Pins from various ports for 7 segment display

Post by yousafzai »

Hi Enamul
Thanks a lot. I really appreciate your effort. I will test the code both in FC and in real hardware and will let you know. :D


Best Regards
yousafzai

yousafzai
Posts: 9
Joined: Sun Jul 15, 2012 7:12 pm
Been thanked: 4 times
Contact:

Re: Pins from various ports for 7 segment display

Post by yousafzai »

Hi Enamul
It works great. I have studied the file that you sent me for single segment and have modified for 4 seg which also works fine.


Thanks a lot for the nice (and timely) help.


Regards
Attachments
FC5_PIC_7seg4.c
(8.62 KiB) Downloaded 528 times

User avatar
Enamul
Posts: 1772
Joined: Mon Mar 05, 2012 11:34 pm
Location: Nottingham, UK
Has thanked: 271 times
Been thanked: 814 times
Contact:

Re: Pins from various ports for 7 segment display

Post by Enamul »

Hi,
Thanks for the head into the code. I am certain others will get help from it.
Enamul
University of Nottingham
enamul4mm@gmail.com

prasha920
Posts: 30
Joined: Tue Apr 16, 2013 3:10 pm
Has thanked: 48 times
Been thanked: 9 times
Contact:

Re: Pins from various ports for 7 segment display

Post by prasha920 »

hi,
same issue of using multiple port lines for driving 7 segment display..

yes got that in FCv5,
can someone please help me with it for FCV4.5

Post Reply