John . . . . anything from static operation , up to micro-seconds is possible for the LED drive. You're right , the question is * what is your duty cycle going to be * and how many * digits * are you going to drive ? The 4 hz. pulse you are currently using can easily be reproduced by creating a * time base * and using the interrupt ( tmr0 ) to enter an * incrementing * routine. The bit count ( 2,4,8,16,etc) can be used to select the * multiplier * of the * time base * and hense the timer period. Don't forget that the PIC is capable of * D.C. * operation up to the upper frequency limit. So , if you find that selecting a lower clock frequency would work out better, then go for it . There are numerous application notes on the PIC website that give good examples of multiplexing several LED digits and most are written with a clock speed of 4 mhz. in operation. Personally , I like to use a 5 millisecond , TMR0 interrupt loop , then during the service routine , update all of the digits data , then select the digit * drive * , for the LED which is next in the multiplexing routine. So , this produces 5 milliseconds of * on * time , per digit and is repeated each 20 milliseconds. This will produce a * flicker-free * update to the LED digits and would still allow you to use a *servo * to blink the display if desired. Use PORTB to drive all of the seven segments , plus the decimal point ( if used ) , in parallel . Use PORTA to drive the LED digits , either directly ( if below 25 mA , common cathode ) or I recommend the use of drive transistors ( 2n2222 or equiv. ) placed in series with the common cathode of each LED digit and ground. Using the transistors ( instead of direct drive ) will keep the LED digits off , when PORTA is low and allow for a higher drive current , per digit. Don't forget the current limiting resistors , in series with each LED * segment * and PORTB. Remember , you are multiplexing the eight segments and need to specify the current limiting resistor for a single segment . Also , the resistor will need to be reduced in value , due to multiplexing , to achieve the same LED illumination that you are calculating using a static formula ( I=e/r ). The individual digit duty cycle is 25%. With the above timing , expect a 50 hz. refresh rate from the four LED's . . . . . If you dig through the Microchip applications , on the website , you'll find a few that are using the 16C7x as an example for the multiplexing . . . . . if you have any trouble getting these to work . . . . then email me * off-line * and I'll give you some working examples. About the internal clock . . . . . . I'm not sure what you are referencing to , but you will need to provide either an RC , Xtal , resonator or * external - oscillator * to drive the chips clock. You then can divide this frequency by four to obtain the frequency of the * internal clock * . . . . . which is unaccessible by you , but determines the time required to execute instructions. Some require one , some require two. Oh . . . . almost forgot . . . . no such thing as a stupid question , get as many views as you can and pick the one's that are reasonable to you. Although I'm not one of them . . . .you'll find some very talented PIC people on the list , who really know their stuff ! Regards . . . . Steve Kelley -----Original Message----- From: John De Villiers To: PICLIST@MITVMA.MIT.EDU Date: Saturday, October 02, 1999 7:47 PM Subject: Driving 7segment displays >This might sound like a stupid question, but at what speed can i drive >7segment displays?? In my current analogue design i use a 4Hz clock to pulse >the displays, but using a pic this is a little difficult. > >Will the 7segment display anything at all if i switch them at say once every >100 instuctions ( on a 10 Mhz clock )? I suppose it all depends on the duty >cycle. > >Also, do i have to connect anything to the two clock lines in a 16c84 if im >using the internal clock ? > >Thanx > > John >