Skip to main content

How to program 8051 based MCU using Ptroteous Schematic capture and Source code editor to use timers using AT892051 + project files




 This tutorial is dedicated to use a 8051 based Microcontroller core and program it using keil's C51 tools on the Proteus Source code editor. 


1- Brief History of 8051

one of the first microprocessors 4004 was invented by Intel Corporation as well as  8085 and 8086 microprocessors back in 1981,shortly after Intel introduced an 8-bit microcontroller called the 8051. It was referred to as system on a chip because it had 128 bytes of RAM, 4K byte of on-chip ROM, two timers, one serial port, and 4 ports (8-bit wide), all on a single chip.
When it became so widespread, Intel allowed other manufacturers to make and market different flavors of 8051 with its code compatible with 8051. It means that if you write your program for one flavor of 8051, it will run on other flavors too, regardless of the manufacturer. This has led to several versions with different speeds and amounts of on-chip RAM.

2- Features of AT892051 Microcontroller

  • Compatible with MCS®-51Products
  • 2K Bytes of Reprogrammable Flash Memory–  Endurance: 10,000 Write/Erase Cycles
  • 2.7V to 6V Operating Range
  • Fully Static Operation: 0 Hz to 24 MHz
  • Two-level Program Memory Lock
  • 128 x 8-bit Internal RAM
  • 15 Programmable I/O Lines
  • Two 16-bit Timer/Counters
  • Six Interrupt Sources
  • Programmable Serial UART Channel
  • Direct LED Drive Outputs
  • On-chip Analog Comparator
  • Low-power Idle and Power-down Modes
  • Green (Pb/Halide-free) Packaging Option
  •  

3- Description of AT892051  

The AT89C2051 is a low-voltage, high-performance CMOS 8-bit microcomputer with 2K bytes of Flash programmable and erasable read-only memory (PEROM). The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C2051 is a power-ful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications.

4- Block diagram



Figure 1 :  AT89C2051 Block diagram from manufacturer's Datasheet

5- Setting up C51 to use it with Proteus code editor

First go to the following link to download C51 from Keil.com After download and installation make sure that you can find the compiler within Proteus Like so Figure 2.

 Figure 2 : list of installed and usable compilers in the Proteus source code editor settings

Now we are ready to start working on an example project.

6- Starting a new project


Lets start a new Project in proteous and let's search for AT89C2051  

 Figure 3 : Selecting a component

After that you will need to place the component in the schematic's layout grid. that's it you are ready to go.
Now click on the component properties and  then click on the edit firmware button like shown in Figure 4, and a window with basic code will show up.




 Figure 4 : Opening Firmware editor in Proteus


 Figure 5 : New firmware project (Make sure to select Keil for 8051)


In this project we will try to use timer 0 to generate a PWM signal on pin using interrupt 0. Write the following code to your project, and you will be able to adjust the PWM duty cycle on each pin using pwm_pinx variable inside the code. 



Now you can compile the given code, and if every thing goes right you will receive the following message.

Figure 6 : Successful compilation output 

 

Finally, we set up our probes to execute the simulation on the Proteus project.

Figure 6 : Successful compilation output 


7- Conclusion

This project is a great opportunity to get started with learning 8051, you can refer to the datasheet of the IC to understand how you can use the other available peripherals on board.
You can download and tweak the project using This link

Comments

Popular posts from this blog

What is the ESP32 VSPI / HSPI

 The ESP32 integrates four SPI peripherals. SPI0 and SPI1 are used to access the ESP32’s attached flash memory and thus are currently not open to users to be used . They share one signal bus via an arbiter. SPI2 and SPI3 are general purpose SPI controllers, sometimes referred to as HSPI and VSPI, respectively. They are open for use. SPI2 and SPI3 have independent signal buses with the same respective names. Each bus has three CS lines to drive up to three SPI slaves.  

Most common baud rates table

  The following table shows the most used baud rates. The left side part of the table shows speed and bit duration. The right part shows real transmission speed assuming there is no parity, 8 data bits and one stop bit.   Bauds Bits/s Bit duration Speed Actual speed Actual byte duration 50 bauds 50 bits/s 20.000 ms 6.25 bytes/s 5 bytes/s 200.000 ms 75 bauds 75 bits/s 13.333 ms 9.375 bytes/s 7.5 bytes/s 133.333 ms 110 bauds 110 bits/s 9.091 ms 13.75 bytes/s 11 bytes/s 90.909 ms 134 bauds 134 bits/s 7.463 ms 16.75 bytes/s 13.4 bytes/s 74.627 ms 150 bauds 150 bits/s 6.667 ms 18.75 bytes/s 15 bytes/s 66.667 ms 200 bauds 200 bits/s 5.000 ms 25 bytes/s 20 bytes/s 50.000 ms 300 bauds 300 bits/s 3.333 ms 37.5 bytes/s 30 bytes/s 33.333 ms 600 bauds 600 bits/s 1.667 ms 75 bytes/s 60 bytes/s 16.667 ms 1200 bauds 1200 bits/s 833.333 µs 150 bytes/s 120 bytes/s 8.333 ms 1800 bauds 1800 bits/s 555.556 µs 225 bytes/s