This article begins to understand the microcontroller from the perspective of integrated circuits, mainly introducing the pin diagram and pin functions of the microcontroller, as well as simple programming of the microcontroller.
First, let’s take a look at the functional structure diagram of the 80C51 microcontroller.
The 80C51 microcontroller belongs to the MCS-51 series of microcontrollers. It uses a 40-pin dual in-line package (DIP) and has 128 RAM units and 4K of ROM.
Functional structure diagram of 80C51 microcontroller
The following is an introduction to the pin diagram and pin functions of the microcontroller (as shown in the figure below). The specific functions of the pins will be introduced in detail later.
The 40 pins of a microcontroller can be roughly divided into four categories: power, clock, control, and I/O pins.
1. Power supply:
⑴ VCC - chip power supply, connected to +5V;
⑵ VSS - ground terminal;
2. Clock:
XTAL1, XTAL2 - Inverting input and output of the crystal oscillator circuit.
3. Control line:
There are 4 control lines in total
⑴ ALE/PROG: Address latch enable/on-chip EPROM programming pulse
① ALE function: used to latch the lower 8 bits of the address sent from port P0
② PROG function: For chips with built-in EPROM, this pin inputs programming pulses during EPROM programming.
⑵ PSEN: External ROM read select signal.
⑶ RST/VPD: reset/backup power supply.
① RST (Reset) function: reset signal input terminal.
② VPD function: When Vcc loses power, connect to backup power supply.
⑷ EA/Vpp: internal and external ROM selection/on-chip EPROM programming power supply.
① EA function: internal and external ROM selection terminal.
② Vpp function: For chips with EPROM inside, the programming power Vpp is applied during EPROM programming.
4. I/O lines
80C51 has four 8-bit parallel I/O ports: P0, P1, P2, and P3, with a total of 32 pins. Port P3 also has a second function, which is used for special signal input and output and control signals (belongs to the control bus).
If you get a chip and want to use it, you must first know how to connect it. The chip we use is called 89C51. Let's take a look at how to connect it.
1. Power supply: This is of course essential. The microcontroller uses a 5V power supply, with the positive pole connected to pin 40 and the negative pole (ground) connected to pin 20.
2. Oscillation circuit: The microcontroller is a timing circuit that must be supplied with a pulse signal to work properly. An oscillator has been integrated inside the microcontroller. Use a crystal oscillator and connect it to pins 18 and 19. Just buy a crystal oscillator and a capacitor and connect them. Just connect them as shown in Figure 1.
3. Reset pin: Connect it as shown in Figure 1. As for what reset means and why it is necessary to reset, it is introduced in the microcontroller function.
4. EA pin: EA pin is connected to the positive power supply terminal. At this point, a single-chip microcomputer is connected, and when powered on, the single-chip microcomputer starts working.
Our first task is to use the microcontroller to light up a light-emitting diode (LED). Obviously, this LED must be connected to a pin of the microcontroller, otherwise the microcontroller cannot control it. So which pin should it be connected to? In addition to the 5 pins just used, there are 35 pins on the microcontroller. We connect this LED to pin 1. (See Figure 1, where R1 is the current limiting resistor)
According to the connection method in this diagram, when pin 1 is at a high level, the LED will not light up, and only when pin 1 is at a low level, the LED will light up. Therefore, we need to be able to control pin 1, that is, we need to be able to make pin 1 change to a high or low level as required. Since we want to control pin 1, we have to give it a name. We can't just call it pin 1, right? What name should we call it? INTEL, the company that designed the 51 chip, has already named it P1.0. This is a rule and cannot be changed by us.
Figure 1 MCU simple application circuit diagram
Simple programming of single chip microcomputer
Now that we have a name, how do we make it 'high' or 'low'? To tell someone to do something, we just say it, which is called issuing a command. To tell a computer to do something, we also have to send a command to the computer. The command that the computer can understand is called a computer instruction. The instruction to make a pin output a high level is SETB, and the instruction to make a pin output a low level is CLR. Therefore, if we want P1.0 to output a high level, we just need to write SETB P1.0, and if we want P1.0 to output a low level, we just need to write CLR P1.0.
Now we have a way to make the computer output P10 high or low, but how can we make the computer execute this instruction? We can't just tell the computer and leave it at that. To solve this problem, there are still a few steps to take.
First, the computer cannot understand instructions such as SETBCLR. We have to translate the instructions into a way that the computer can understand, and then let the computer read it. What can the computer understand? It only understands one thing - numbers. Therefore, we have to change SETB P1.0 to (D2H, 90H) and CLR P1.0 to (C2H, 90H). As for why these two numbers are used, this is also stipulated by the designer of the 51 chip - INTEL, and we will not study it.
The second step is, after getting these two numbers, how to get these two numbers into the microcontroller? This requires the help of a hardware tool "programmer". If you don't know what a programmer is, let me introduce it to you. It is a tool that uses a target generated by an assembler or other compiler to burn the code you wrote on the computer into the EPROM of the microcontroller. Programming a microcontroller of this type is a very troublesome thing. It is necessary to install it on the programmer before programming it on the device. The latest AT89s51 or STC89C51 microcontroller can support the in-circuit programming (isp) function. You don't need to pull it out and use a simple circuit to write the code into the microcontroller.
We connect the programmer to the computer, run the programmer software, and then write (D2H, 90H) in the editing area (see Figure 2). Write... OK, take the chip off, insert the chip into the circuit board, and turn on the power... What? The light is not on? That's right, because the instruction we wrote in is to make P10 output a high level, so of course the light is not on. If it is on, it's wrong. Now we unplug this chip, put it back on the programmer, change the content of the editing area to (C2H, 90H), that is, CLR P1.0, write the chip, take the chip off, insert the chip into the circuit board, and connect the power. OK, the light is on. Because the () we wrote is the instruction to make P10 output a low level. In this way, we can see that the connection of the hardware circuit has not been changed. As long as the content written into the microcontroller is changed, the output effect of the circuit can be changed.
Previous article:MCU minimum system composition and power supply/reset/oscillation circuit analysis
Next article:AT89C2051 single chip microcomputer drives stepper motor circuit and source code
Recommended ReadingLatest update time:2024-11-16 13:41
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Electric Vehicle Electric Drive Theory and Design (2nd Edition)
- The document issued by the Ministry of Industry and Information Technology is expected to drive new demand for new energy vehicle related testing instruments
- Chengdu is raging again. When will it end?
- CircuitPython Application Menu Launcher
- LC resonance
- Tektronix Jianghu Ling: Complaining and sharing the development of USB Type-C, collecting energy and growing together
- Raspberry Pi LED Cube Kit LumiCube in crowdfunding
- 【Iprober 520 Current Probe】Evaluation Report (I) Principle Specifications and Preliminary Impressions
- 【Silicon Labs BG22-EK4108A Bluetooth Development Review】 3. LED flashing
- DC-DC Converter Circuit Design