Site Overlay


The Atmel AT89C is a low-power, high-performance 8-bit microcontroller compatible with the MSC instruction set and object code. This report describes a construction analysis of the Atmel AT89C and the. AT89S 8-Bit Microcontrollers. Ten AT89C devices encapsulated in . The AT89CPU is a low voltage, high performance CMOS 8bit microcontroller in 20 pin DIP package. The device is manufactured using Atmel’s high.

Author: Kazikora Faezilkree
Country: Bolivia
Language: English (Spanish)
Genre: Medical
Published (Last): 13 July 2017
Pages: 11
PDF File Size: 1.4 Mb
ePub File Size: 20.17 Mb
ISBN: 653-9-80740-596-4
Downloads: 61573
Price: Free* [*Free Regsitration Required]
Uploader: Shajind

The microcotnroller AT89C, with its many hardware features, is especially attractive to developers because it is compatible with the and similar devices, and can reduce board space, components, and cost.

Instruction compatible with MCS Full duplex programmable serial port. Two bit programmable timers. Low-power and power-down modes. The use of static memory allows the device to be operated at zero frequency. It also affords at89c20511 software-selectable save-power modes. Power-down mode saves the RAM contents but freezes the oscillator, disabling all other activity until the next hardware reset.

The amount of PEROM programmable and erasable read-only memory available on the AT89C is sufficient for most applications, including use in portable instruments, supervisory-control applications, autonomous robots, and more.

Use as controllers in portable instruments is further simplified by the low power consumption and wide operating voltage range. Port1 and Port3 are compatible to the P1 and P3 on an except Port1.

Port1 output buffers have a 20 mA sink current capacity and can drive LEDs directly.

By writing ones to the Port1 bits, they can be used as input bits. As Table 1 shows, Port3 pins P3. Port3 bits can also sink up to 20 mA of current, and when written with ones, can be used as inputs. Port3 pins also serve alternate functions to be discussed shortly. The AT89C data sheet states that the on-chip oscillator can be used with a ceramic resonator as well as a resonant crystal element to provide the basic clock to the microcomputer. An external clock source with suitable levels can also be used instead of a crystal or a resonator.

The operation is similar to that of an AT89C can be operated with a clock frequency between 0 and 24 MHz.

This is possible because the chip uses static memory. Thus, it is possible to port existing applications to an AT89C without change to the object code — as long as the software limits itself to the available hardware resources, including memory and ports. This means that all jumps ljmp and calls lcall must be limited to maximum physical address 0x7FF.

AT89C Microcontroller at Rs 60 /piece | Microcontroller | ID:

However, once a suitable programmer is available, using the microcontroller is straightforward. The AT89C microcontroller can endure one thousand program and erase cycles. In this section, I’ll present a simple programmer for AT89C that is hosted on a based circuit running a Basic interpreter.


The AT89C can be programmed using a suitable programmer out of the target system.

Atmel’s AT89C Microcontroller | Dr Dobb’s

Table 2 identifies the various modes for erasing, programming, and verifying the chip. The code memory is programmed one byte at a time.

After the controller has been programmed, to reprogram any nonblank byte, the entire chip has to be electrically erased. Erasing the chip is a simple task that takes a few milliseconds to execute. The Atmel application sheets describe a simple programmer that lets you perform a variety of operations with the flash controller, including erasing, reading, programming, and verifying the contents of the target chip see http: However, the driver software for the programmer does not support IntelHex object files.

You can also purchase off-the-shelf programmers for these devices see Airborn Electronics at http: Consequently, I decided to build a simple programmer using circuits I mixrocontroller available. I found I microcontgoller modify an existing IntelHex loader program for the Basic system to get the required programmer code. Figures 1 and 2 show the block diagram for programming and verifying the Flash-memory contents of an AT89C Figure 3 shows the circuit schematic for the programmer.

The limits for the programming voltage for the AT89C are between A PC with an assembler and terminal-emulation program I use Vterm are the only tools required for programming and using the AT89C After I was satisfied that things were working, I went ahead with more serious applications.

The Vpp generation circuit applies a logic 0 to the RST pin at power on. Subsequently the system is loaded with the code in Listing One from within the terminal-emulator environment.

To communicate with the BASIC system, the terminal emulator can use any standard baud rate as well as transmission settings number of bits, parity, and so on. The Basic program is then ready to accept IntelHex format object files.

The received hex code is stored in the External RAM of the system. After the hex file is successfully received, the programmer proceeds with erasing the AT89C, then begins programming it with the user object code. After the code is burnt into the chip, the programmer power supply is turned off before removing the target chip.

The target chip is then ready to be inserted into the target mictocontroller. MAX had everything we needed, except that the chip operates at serial clock with a minimum clock-frequency requirement of KHz which would be difficult to generate under program control on older PCs.


Consequently, I decided to build a general-purpose interface that could be used in other applications. I found that the AT89C worked well.

The result of my design was a solution that offers a nibble wide input and output interface that, though tailored to connect to the PC parallel port, could be used anywhere else.

Using an capacity controller to parallelize serial ADC data might be considered overkill.

AT89C2051 Microcontroller

While there are parallel output bit multichannel ADCs of similar performance, I decided to use available components to get the system working. The microcontroller serial port operates in mode 0, in which the serial port works as a shift register, either as input or output.

In the shift register mode, the TxD pin supplies microcntroller shift mixrocontroller, and the RxD pin provides the data or reads the external data as per the direction. The controller programs the serial port as an output shift register in the beginning of the acquisition cycle during which the MAX needs the 8-bit control byte that contains conversion parameters, channel number, and so on.

After the 8-bit data is shifted out, the controller program converts the serial port as an input shift register and reads back the converted ADC data as 2 bytes. Figure 4 shows the block diagram, and Figure 5 see page 55 shows the circuit schematic. Figure 6 shows the wiring scheme to connect the controller board to the PC printer adapter.

A trigger input that triggers the converter into the requested mode.

Atmel’s AT89C2051 Microcontroller

A clear-status input that is used to at8c2051 previous status information. The converter outputs are:. A done flag that indicates the end of operation. An error flag indicating an attempt to launch a nonimplemented mode of operation. The mode input to the converter determines what task the controller will perform when it is triggered. With 4 bits of mode input, up to 16 modes see Table 3 of operation can be implemented. For this design, only 11 combinations are required; the rest can be used later for expansion.

Using the Converter The converter interface is designed so that it can be used in any embedded application. The interface is ideally suited for data acquisition on PC compatibles using the parallel printer adapter signals. The converter provides access to eight channels of bit ADC. The analog input voltage range of the ADC is 0 to 4. Listing Three is C code to interface the controller through the PC parallel port. My good imcrocontroller Dr.