Summary of PIC Based Oscilloscope Clock
This article explains a method to display 7-segment digits on an oscilloscope using a PIC microcontroller and an R2R digital-to-analog converter. Since the electron beam only moves left-to-right, the system uses retinal persistence with three sequential frames per digit: first drawing all vertical segments, then upper horizontal lines, and finally lower horizontal lines. This approach avoids the need for complex X/Y mode or high-speed DACs by leveraging human vision to composite the image from single-pass draws.
Parts used in the PIC Based Oscilloscope Clock:
- Oscilloscope
- PIC microcontroller outputs (2)
- R2R digital to analog converter
For those are not into electronics, you must know that an oscilloscope has basically only one timebase to move the spot horizontally from left to right with the same intensity. The vertical deviation is function to the input voltage. You understand immediately that you can’t directly display 7 segment digits, because you can’t move the spot from right to left.
By using X/Y mode, where the spot is controlled on two axes by two different voltages, it is possible to draw a picture (as in the examples mentioned above), but a fast digital to analog converter with two channels and at least 8 bits of resolution would be needed.
So we have to deal with a spot that always goes from left to right in the same period of time.
If we want to have a 7segment-like display, we have to draw :
vertical segments : easy to do, just change voltage up and down quickly a few times.
horizontal segments : easy to do, just set a voltage level and keep it as long as you need.
By using 2 PIC outputs and a basic R2R digital to analog converter, we can have up to four different voltage levels : 3 for the vertical segment, and another one where to put the spot when it is not in use to draw a segment.
But the problem is that a 7 segment digit may have up to 3 horizontal lines at a time (like 2, 3, 8, 9..) but we can draw only one during one spot deviation.
So we will have to cheat with retinal persistence and use multiple frames : since we can have only one vertical segment per period, three periods will be needed to draw a full 7 segment digit.
Supposing we want to display 12:34:56 on the screen :
During the first period, we will draw all vertical segments, and horizontal upper segments only :
As a game, I let you try to find out the spot trajectory.
Don’t forget the rules :
you can’t go backward
you can’t clear the spot
But you can move so fast vertically that the eye can’t see the spot moving.
The lowest line under the digits is not significant, it his the place where the spot is parked when not used to draw a segment.
For more detail: PIC Based Oscilloscope Clock
- Why can't you directly display 7 segment digits on a standard oscilloscope?
You cannot move the spot from right to left, which is required to draw complete 7-segment characters in one pass. - What is the minimum resolution needed for a fast digital to analog converter in X/Y mode?
A fast digital to analog converter would need at least 8 bits of resolution with two channels to draw pictures in X/Y mode. - How many voltage levels can be achieved using 2 PIC outputs and a basic R2R converter?
Using 2 PIC outputs and a basic R2R digital to analog converter allows for up to four different voltage levels. - Why are multiple frames necessary for drawing a full 7 segment digit?
Multiple frames are needed because a 7 segment digit may have up to 3 horizontal lines, but only one can be drawn during a single spot deviation. - How many periods are required to draw a full 7 segment digit using this method?
Three periods are needed since there is only one vertical segment available per period. - What technique is used to make the eye perceive the complete digit?
The system uses retinal persistence by moving the spot so fast vertically that the eye cannot see the movement between frames. - What is the purpose of the lowest line under the digits?
The lowest line is not significant; it serves as the parking place for the spot when it is not being used to draw a segment.

