This
page investigates the Super Probe program
written by
by Luhan Monat of
mondo-technology.com. The first thing to do is look at the display routine. This is called the SCANNING ROUTINE and it outputs to the display "ONE PIXEL or SEGMENT AT A TIME." This is an unusual way to drive a display but has been chosen so that all the segments have the same brightness and the scan routine does not put too much load on the outputs of the micro. You will notice the absence of current liming transistors. This is not a good practice as it loads the FETs in the micro so that they do not turn on fully. You can imagine show small each FET is. They are designed to deliver up to 25mA when fully turned on. This means the dissipation is only a few milliwatts, if the voltage across it is about 50mV. But when you are driving a LED, the voltage increases because the LED has a characteristic voltage that does not increase and the remaining voltage must be dropped across the driving components. The circuit uses two outputs to turn on each segment and if the voltage across the LED is 1.7v, each output has to drop: 5v - 1.7v = 3.3v This voltage is divided by two to get 1.65v The power dissipated by each FET rises from 25x50 = one thousandth of a milliwatt, to 25x1650 = forty-one thousandths of a milliwatt. It has increased 40 times. The FETs seem to be very robust and none have failed to-date. To see how the display is accessed, we need to remove the code that does not apply to this function and leave only the display (scan) sections. To do this we gradually remove sub-routines and save the new program as Scan_v43only.asm You must give it a new name so you can go back to previously-saved versions if the new version does not work. This is burnt into a chip and tested to make sure the start-up feature is still present. More un-wanted sub-routines are removed until we get the smallest program possible. This is what we have done. In addition, we have increased the delay so the display routine runs very slowly and you can see it in action. The first thing the program does is display the version number. In this case it is 043. There are more sub-routines than are really needed for this task, in the program below, but they are included because they are "called." The length of delay starts very short and increases by increasing the three files using the "rate" file. The display scans "043" very quickly, then gets slower and slower to show how each segment is accessed and displayed. The file you need is: Scan_v43only.asm Scan_v43only.hex
|