me away from considering the new PIC
at that time was that the Microchip
sales rep wanted to sell me the PIC
assembler for $99. I had been using a
shareware version of the 8749 assembler and it worked for me. I had already
found an 8051 shareware assembler
and I was not about to drop a C-note to
“buy” an assembler for that PIC thing.
As far as I was concerned, I was moving
to the 8051 platform right on time as
8749’s were almost impossible to buy
new and the used surplus 8749s were
getting hard to procure, as well.
I was still stuck with only 4KB of
program EPROM with the 8051.
However, the 8051’s addressing engine
was 16-bits wide providing me with
64KB of space that I could populate
with a combination of EPROM and
SRAM. Just as I did with the 8749, I standardized all of my projects on the quartz
window-equipped 8751. I was already
used to rotating multiple 8749 parts
through the EPROM eraser to speed up
my development and the 8751 offered
no advantage in this department.
One would think that an increase
in program execution speed would
come automatically with the 8751.
With a strong tailwind, an 8749 running with an 11 MHz clock could
pump out 0.5 MIPS. The 8751 doesn’t
do much better with the same tailwind and a 12 MHz clock. The bottleneck for both the 8749 and 8751 was
the large number of clock cycles
needed to execute an instruction.
I may not have picked up any execution speed, but I did get some other
things that made moving to the 8751
worthwhile. A feature of the 8751 that
84 April 2007
I found intriguing was its ability to
perform internal Boolean processing
on a bit level within it registers. I was
also able to archive my bit-bang serial
routines as the 8751 was endowed
with a hardware UART. I wasn’t really
keen on using interrupts at the time,
but if I had been, the 8751 allowed
the programmer to use separate register sets to store interrupt context information instead of having to push and
pop important registers from a stack.
My crowing achievement was an
8751-based musical instrument tuner
that utilized the 8751’s timers. After
that project, I moved on to other
microcontrollers that easily outpaced
the 8751 in speed, general-purpose
I/O, and on-chip peripherals.
Microchip decided that maybe their
assembler should be free for customers that used the PIC parts. I was
still mad at Microchip. Along the way,
the Zilog Z80 had gotten my rapt
attention. Bill loved the Z80 and thus,
Z80 information and application notes
were very easy for me to obtain. So, I
rode the Z80 bus for quite some time.
HERE WE ARE
The concept of the 8051 hasn’t
changed but the way the 8051
concept is applied has changed
exponentially. As you might imagine, I
see lots of interesting stuff pass across
the benches at EDTP Electronics. One
of the many variants of the 8051 that
caught my eye was the Silicon
Laboratories C8051F120. Just a cursory glance at Figure 1 speaks volumes.
An 8KB bank of SRAM coupled with a
■ FIGURE 2. Don’t get caught up in this
too much as the Keil C compiler already
has this little memory segment covered.
separate 256-byte SRAM bank easily
eclipses the old 8751 memory model.
Unless you’re writing navigation
and targeting code for an F- 18 Hornet
fighter/bomber, the C8051F120’s
128KB of program memory should
cover most of your (and my) 8051-
based applications. Throw away that
EPROM eraser as the C8051F120’s
program memory is made up of
electrically-erasable Flash not EPROM.
And, we won’t need the services of
those ADC0809 analog-to-digital
converters as the C8051F120 incorporates its own on-chip multi-input
analog-to-digital converter subsystem.
Note that I never mentioned
debugging the 8749 or 8751 as the
original 8048/8051 emulators were
priced in the multi-thousands of
dollars. I’ll bet GM still has an 8048
emulator stuffed away somewhere in
I don’t know how many of you did
the write-the-code, program-it, test-it,
erase-it, correct-the-code, program-it,
test-it, erase-it 8749/8751 vicious
design cycle like I did. It was a necessary evil as I couldn’t afford the
8749/8751 debugging hardware. In my
opinion, the C8051F120 offers one of
the most comprehensive and easy-to-use debugging systems. That translates
to super easy C8051F120 development
cycles. Oh yeah, I wrote all of that 8749
and 8751 code in assembler. We will be
writing our C8051F120 code in C.
The C8051F120 is based on
Silicon Laboratories’ proprietary CIP-
51 microcontroller core. The Silicon
Laboratories’ CIP- 51 is fully compatible
with the original tried-and-true 8051
instruction set. This allows any standard 8051 assembler or compiler to be
used to develop C8051F120 firmware.
With the old 8051 cores, we
could only dream of achieving
throughputs above 0.5 MIPS. The
Silicon Laboratories’ CIP- 51 employs a
pipelined architecture that greatly
increases its instruction throughput
over the old 8751’s I was burning and
In a standard 8051, all instructions
except for MUL and DIV take 12 or