logging in or signing up 8051 Hardware and Software Architecture psureshvenugopal Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 322 Category: Science & Tech.. License: All Rights Reserved Like it (0) Dislike it (0) Added: October 20, 2011 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Slide 1: 8051 Microcontroller Suresh P. Nair [ME, (PhD)] MIEEE Professor & Head Department of Electronics and Communication Engineering Royal College of Engineering and Technology Chiramanangad PO, Akkikkavu, Thrissur, Kerala, IndiaTopics to be covered: Topics to be covered CPU operation Memory space Software overview Peripheral overview Interrupt Timers Parallel port inputs and outputs Serial port low power special modes of operation Noise 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 2Main References: Main References 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 3Introduction to Microcontrollers: Introduction to Microcontrollers 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 4Why do we need to learn Microprocessors/controllers?: Why do we need to learn Microprocessors/controllers? The microprocessor is the core of computer systems. Nowadays many communication, digital entertainment, portable devices, are controlled by them. A designer should know what types of components he needs, ways to reduce production costs and product reliable. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 5The necessary tools for a microprocessor/controller: The necessary tools for a microprocessor/controller CPU: Central Processing Unit I/O: Input /Output Bus: Address bus & Data bus Memory: RAM & ROM Timer Interrupt Serial Port Parallel Port 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 6Microprocessors: Microprocessors CPU for Computers No RAM, ROM, I/O on CPU chip itself Example: Intel's x86, Motorola’s 680x0 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 7Microcontroller: Microcontroller A smaller computer On-chip RAM, ROM, I/O ports... Example: Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 8Microprocessor vs. Microcontroller: Microprocessor vs. Microcontroller Microprocessor CPU is stand-alone, RAM, ROM, I/O, timer are separate Designer can decide on the amount of ROM, RAM and I/O ports. Expansive Versatility General-purpose Microcontroller CPU, RAM, ROM, I/O and timer are all on a single chip Fix amount of on-chip ROM, RAM, I/O ports For applications in which cost, power and space are critical Not Expansive Single-purpose 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 9Microcontrollers for Embedded Systems: Microcontrollers for Embedded Systems Home Appliances , intercom, telephones, security systems , garage door openers, answering machines, fax machines , home computers, TVs, cable TV tuner , VCR , camcorder, remote controls, video games , cellular phones, musical instruments, sewing machines , lighting control, paging, camera, pinball machines , toys, exercise equipment etc. Office Telephones , computers, security systems, fax machines , microwave, copier, laser printer, color printer , paging etc. Auto Trip computer, engine control, air bag, ABS , instrumentation , security system, transmission control , entertainment, climate control, cellular phone , keyless entry 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 10Choosing a Microcontroller: Choosing a Microcontroller 8-bit microcontrollers Motorola’s 6811 Intel’s 8051 Zilog’s Z8 Microchip’s PIC There are also 16-bit and 32-bit microcontrollers made by various chip makers 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 11Criteria for Choosing a Microcontroller: Criteria for Choosing a Microcontroller Meeting the computing needs of the task at hand efficiently and cost effectively Speed Packaging Power consumption The amount of RAM and ROM on chip The number of I/O pins and the timer on chip How easy to upgrade to higher performance or lower power-consumption versions Cost per unit 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 12Criteria for Choosing a Microcontroller: Criteria for Choosing a Microcontroller Availability of software development tools , such as compilers , assemblers , and debuggers Wide availability and reliable sources of the microcontroller The 8051 family has the largest number of diversified (multiple source) suppliers Intel (original) Atmel Philips/ Signetics AMD Infineon (formerly Siemens) Matra Dallas Semiconductor/Maxim 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 138051 CPU Operation: 8051 CPU Operation Features Pin Diagram Block Diagram 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 148051 Microcontroller: 8051 Microcontroller Intel introduced 8051, referred as MCS- 51 , in 1981. The 8051 is an 8-bit processor The CPU can work on only 8 bits of data at a time The 8051 became widely popular after allowing other manufactures to make and market any flavor of the 8051 . 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 158051 Family: 8051 Family The 8051 is a subset of the 8052 The 8031 is a ROM-less 8051 Add external ROM to it You lose two ports, and leave only 2 ports for I/O operations 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 168051 Features: 8051 Features 64KB Program Memory address space 64KB Data Memory address space 4K bytes of on-chip Program Memory 128 bytes of on-chip Data RAM 32 bidirectional and individually addressable 1/0 lines Two 16-bit timer/counters Full duplex UART 6-source/5-vector interrupt structure with two priority levels On-chip clock oscillator 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 17Pin Description of the 8051: Pin Description of the 8051 8051 family members (e.g., 8751 , 89C51 , 89C52, DS89C4x0) Have 40 pins dedicated for various functions such as I/O, RD , WR , address , data , and interrupts. Come in different packages, such as DIP(dual in-line package), QFP(quad flat package), and LLC(leadless chip carrier) Some companies provide a 20-pin version of the 8051 with a reduced number of I/O ports for less demanding applications 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 18Pin Diagram of the 8051: Pin Diagram of the 8051 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 19XTAL1 and XTAL2: XTAL1 and XTAL2 The 8051 has an on-chip oscillator but requires an external clock to run it A quartz crystal oscillator is connected to inputs XTAL1 (pin19) and XTAL2 (pin18) The quartz crystal oscillator also needs two capacitors of 30 pF value 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 20XTAL1 and XTAL2 …..: XTAL1 and XTAL2 ….. If you use a frequency source other than a crystal oscillator, such as a TTL oscillator: It will be connected to XTAL1 XTAL2 is left unconnected 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 21XTAL1 and XTAL2 …..: XTAL1 and XTAL2 ….. The speed of 8051 refers to the maximum oscillator frequency connected to XTAL. We can observe the frequency on the XTAL2 pin using the oscilloscope. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 22RST: RST RESET pin is an input and is active high (normally low) Upon applying a high pulse to this pin, the microcontroller will reset and terminate all activities This is often referred to as a power-on reset Activating a power-on reset will cause all values in the registers to be lost 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 23RST: RST In order for the RESET input to be effective , it must have a minimum duration of 2 machine cycles. In other words, the high pulse must be high for a minimum of 2 machine cycles before it is allowed to go low. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 24EA’: EA’ EA’, “external access’’ , is an input pin and must be connected to Vcc or GND The 8051 family members all come with on-chip ROM to store programs and also have an external code and data memory. Normally EA pin is connected to Vcc EA pin must be connected to GND to indicate that the code or data is stored externally. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 25PSEN’ and ALE: PSEN’ and ALE PSEN , “program store enable’’ , is an output pin This pin is connected to the OE pin of the external memory. For External Code Memory, PSEN’ = 0 For External Data Memory, PSEN’ = 1 ALE pin is used for demultiplexing the address and data. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 26I/O Port Pins: I/O Port Pins The four 8-bit I/O ports P0, P1, P2 and P3 each uses 8 pins. All the ports upon RESET are configured as output, ready to be used as input ports by the external device. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 27Port 0: Port 0 Port 0 is also designated as AD0-AD7 . When connecting an 8051 to an external memory, port 0 provides both address and data. The 8051 multiplexes address and data through port 0 to save pins. ALE indicates if P0 has address or data. When ALE=0, it provides data D0-D7 When ALE=1, it has address A0-A7 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 28Port 1 and Port 2: Port 1 and Port 2 In 8051-based systems with no external memory connection : Both P1 and P2 are used as simple I/O. In 8051-based systems with external memory connections : Port 2 must be used along with P0 to provide the 16-bit address for the external memory. P0 provides the lower 8 bits via A0 – A7. P2 is used for the upper 8 bits of the 16-bit address , designated as A8 – A15, and it cannot be used for I/O. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 29Port 3: Port 3 Port 3 can be used as input or output . Port 3 has the additional function of providing some extremely important signals 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 30Pin Description Summary: Pin Description Summary 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 31 PIN TYPE NAME AND FUNCTION Vss I Ground: 0 V reference. Vcc I Power Supply: This is the power supply voltage for normal, idle, and power-down operation. P0.0 - P0.7 I/O Port 0: Port 0 is an open-drain, bi-directional I/O port. Port 0 is also the multiplexed low-order address and data bus during accesses to external program and data memory. P1.0 - P1.7 I/O Port 1: Port I is an 8-bit bi-directional I/O port. P2.0 - P2.7 I/O Port 2: Port 2 is an 8-bit bidirectional I/O. Port 2 emits the high order address byte during fetches from external program memory and during accesses to external data memory that use 16 bit addresses. P3.0 - P3.7 I/O Port 3: Port 3 is an 8 bit bidirectional I/O port. Port 3 also serves special features as explained.Pin Description Summary: Pin Description Summary 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 32 PIN TYPE NAME AND FUNCTION RST I Reset: A high on this pin for two machine cycles while the oscillator is running, resets the device. ALE O Address Latch Enable: Output pulse for latching the low byte of the address during an access to external memory. PSEN* O Program Store Enable: The read strobe to external program memory. When executing code from the external program memory, PSEN* is activated twice each machine cycle, except that two PSEN* activations are skipped during each access to external data memory. EA*/VPP I External Access Enable/Programming Supply Voltage: EA* must be externally held low to enable the device to fetch code from external program memory locations. If EA* Is held high, the device executes from internal program memory. This pin also receives the programming supply voltage Vpp during Flash programming. (applies for 89c5x MCU's)Slide 33: Interrupt Control CPU 4K ROM 128 B RAM OSC Bus Control 4 I/O Ports Serial Port Timer 1 Timer 0 General Block Diagram of 8051 TXD RXD P0 P1 P2 P3Detailed Block Diagram: Detailed Block Diagram 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 348051 Memory Space: 8051 Memory Space 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 358051 Memory Structure: 8051 Memory Structure External EXT INT 128 SFR External Program Memory Data Memory 64K 64K EA = 0 EA = 1 4K 60K 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 36Internal RAM Structure: Internal RAM Structure Direct & Indirect Addressing Direct Addressing Only SFR [ Special Function Registers] 128 Byte Internal RAM 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 37Special Function Registers [SFR]: Special Function Registers [SFR] 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 38Program Status Word [PSW]: Program Status Word [PSW] 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 39 C AC F0 RS1 RS0 OV F1 P Register Bank Select Carry Auxiliary Carry User Flag 0 Parity User Flag 1 Overflow8051 instructions that affects flag: 8051 instructions that affects flag 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 40128 Byte RAM: 128 Byte RAM There are 128 bytes of RAM in the 8051. Assigned addresses 00 to 7FH The 128 bytes are divided into 3 different groups as follows: A total of 32 bytes from locations 00 to 1F hex are set aside for register banks and the stack. A total of 16 bytes from locations 20H to 2FH are set aside for bit-addressable read/write memory. A total of 80 bytes from locations 30H to 7FH are used for read and write storage, called scratch pad. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 41 128 BYTE INTERNAL RAM Register Banks Reg Bank 0 Reg Bank 1 Reg Bank 2 Reg Bank 3 BIT Addressable Area General Purpose Area8051 RAM with addresses: 8051 RAM with addresses 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 428051 Register Bank Structure: 8051 Register Bank Structure Bank 0 R0 R1 R2 R3 R4 R5 R6 R7 Bank 3 R0 R1 R2 R3 R4 R5 R6 R7 Bank 2 R0 R1 R2 R3 R4 R5 R6 R7 Bank 1 R0 R1 R2 R3 R4 R5 R6 R7 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 438051 Register Banks with address: 8051 Register Banks with address 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 448051 Programming Model: 8051 Programming Model 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 458051 Stack: 8051 Stack The stack is a section of RAM used by the CPU to store information temporarily. This information could be data or an address The register used to access the stack is called the SP (stack pointer) register The stack pointer in the 8051 is only 8 bit wide , which means that it can take value of 00 to FFH When the 8051 is powered up, the SP register contains value 07 RAM location 08 is the first location begin used for the stack by the 8051 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 468051 Stack: 8051 Stack The storing of a CPU register in the stack is called a PUSH SP is pointing to the last used location of the stack As we push data onto the stack, the SP is incremented by one This is different from many microprocessors Loading the contents of the stack back into a CPU register is called a POP With every pop, the top byte of the stack is copied to the register specified by the instruction and the stack pointer is decremented once 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 47Bit Addressable & Byte Addressable: Bit Addressable & Byte Addressable 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 48Single bit Instructions: Single bit Instructions 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 49Bit Addressable Programming: Bit Addressable Programming Example: Find out to which by each of the following bits belongs. Give the address of the RAM byte in hex (a) SETB 42H, (b) CLR 67H, (c) CLR 0FH (d) SETB 28H, (e) CLR 12, (f) SETB 05 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 508051 Peripheral Overview: 8051 Peripheral Overview Timers Serial Port Interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 518051 TIMERS: 8051 TIMERS 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 528051 Timer/Counter: 8051 Timer/Counter 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 53 OSC ÷12 TLx (8 Bit) THx (8 Bit) TFx (1 Bit) INTERRUPTTMOD Register: TMOD Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 54 GATE: When set , timer/counter x is enabled, if INTx pin is high and TRx is set. When cleared , timer/counter x is enabled, if TRx bit set. C/T*: When set , counter operation (input from Tx input pin). When cleared , timer operation (input from internal clock).TMOD Register: TMOD Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 55 The TMOD byte is not bit addressable.TCON Register: TCON Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 568051 Timer Modes: 8051 Timer Modes 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 57 Timer 0 Mode 3 Mode 2 Mode 1 Mode 0 Mode 2 Mode 1 Mode 0 Timer 1 8051 TIMERSSlide 58: OSC ÷12 TL0 TH0 INTERRUPT TIMER 0 TF0Slide 59: TL0 (5 Bit) INTERRUPT TIMER 0 – Mode 0 OSC ÷12 TH0 (8 Bit) TF0 13 Bit Timer / Counter Maximum Count = 1FFFh (0001111111111111 )Slide 60: TL0 (8 Bit) INTERRUPT TIMER 0 – Mode 1 OSC ÷12 TH0 (8 Bit) TF0 16 Bit Timer / Counter Maximum Count = FFFFh (1111111111111111)Slide 61: TH0 (8 Bit) Reload TIMER 0 – Mode 2 8 Bit Timer / Counter with AUTORELOAD TL0 (8 Bit) OSC ÷12 TH0 (8 Bit) TF0 INTERRUPT Maximum Count = FFh (11111111)Slide 62: TL0 (8 Bit) INTERRUPT TIMER 0 – Mode 3 OSC ÷12 TF0 Two - 8 Bit Timer / Counter OSC ÷12 TH0 (8 Bit) INTERRUPT TF1Slide 63: OSC ÷12 TL1 TH1 INTERRUPT TIMER 1 TF1Slide 64: TL1 (5 Bit) INTERRUPT TIMER 1 – Mode 0 OSC ÷12 TH1 (8 Bit) TF1 13 Bit Timer / Counter Maximum Count = 1FFFh (0001111111111111 )Slide 65: TL1 (8 Bit) INTERRUPT TIMER 1 – Mode 1 OSC ÷12 TH1 (8 Bit) TF1 16 Bit Timer / Counter Maximum Count = FFFFh (1111111111111111)Slide 66: TH1 (8 Bit) Reload TIMER 1 – Mode 2 8 Bit Timer / Counter with AUTORELOAD TL1 (8 Bit) OSC ÷12 TH1 (8 Bit) TF1 INTERRUPT Maximum Count = FFh (11111111)Programming Timers: Programming Timers Example: Indicate which mode and which timer are selected for each of the following. (a) MOV TMOD, #01H (b) MOV TMOD, #20H (c) MOV TMOD, #12H Solution: We convert the value from hex to binary. (a) TMOD = 00000001, mode 1 of timer 0 is selected. (b) TMOD = 00100000, mode 2 of timer 1 is selected. (c) TMOD = 00010010, mode 2 of timer 0, and mode 1 of timer 1 are selected. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 67Programming Timers: Programming Timers Find the timer’s clock frequency and its period for various 8051-based system, with the crystal frequency 11.0592 MHz when C/T bit of TMOD is 0. Solution: 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 68 1/12 × 11.0529 MHz = 921.6 MHz; T = 1/921.6 kHz = 1.085 us8051 Serial Port: 8051 Serial Port 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 69Basics of Serial Communication: Basics of Serial Communication Computers transfer data in two ways: Parallel: Often 8 or more lines (wire conductors) are used to transfer data to a device that is only a few feet away. Serial: To transfer to a device located many meters away, the serial method is used. The data is sent one bit at a time. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 70Basics of Serial Communication: Basics of Serial Communication Serial data communication uses two methods Synchronous method transfers a block of data at a time Asynchronous method transfers a single byte at a time There are special IC’s made by many manufacturers for serial communications. UART (universal asynchronous Receiver transmitter) USART (universal synchronous-asynchronous Receiver-transmitter) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 71Asynchronous – Start & Stop Bit: Asynchronous – Start & Stop Bit Asynchronous serial data communication is widely used for character-oriented transmissions Each character is placed in between start and stop bits , this is called framing. Block-oriented data transfers use the synchronous method. The start bit is always one bit, but the stop bit can be one or two bits The start bit is always a 0 (low) and the stop bit(s) is 1 (high) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 72Asynchronous – Start & Stop Bit: Asynchronous – Start & Stop Bit 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 73Data Transfer Rate: Data Transfer Rate The rate of data transfer in serial data communication is stated in bps ( bits per second ). Another widely used terminology for bps is baud rate. It is modem terminology and is defined as the number of signal changes per second In modems, there are occasions when a single change of signal transfers several bits of data As far as the conductor wire is concerned, the baud rate and bps are the same. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 748051 Serial Port: 8051 Serial Port Synchronous and Asynchronous SCON Register is used to Control Data Transfer through TXd & RXd pins Some time - Clock through TXd Pin Four Modes of Operation: 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 75 Mode 0 :Synchronous Serial Communication Mode 1 :8-Bit UART with Timer Data Rate Mode 2 :9-Bit UART with Set Data Rate Mode 3 :9-Bit UART with Timer Data RateRegisters related to Serial Communication: Registers related to Serial Communication SBUF Register SCON Register PCON Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 76SBUF Register: SBUF Register SBUF is an 8-bit register used solely for serial communication. For a byte data to be transferred via the TxD line , it must be placed in the SBUF register . The moment a byte is written into SBUF, it is framed with the start and stop bits and transferred serially via the TxD line. SBUF holds the byte of data when it is received by 8051 RxD line. When the bits are received serially via RxD, the 8051 deframes it by eliminating the stop and start bits, making a byte out of the data received, and then placing it in SBUF. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 77SBUF Register: SBUF Register Sample Program: 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 78SCON Register: SCON Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 79 SM0 SM1 SM2 REN TB8 RB8 TI RI Enable Multiprocessor Communication Mode Set to Enable Serial Data reception 9 th Data Bit Sent in Mode 2,3 9 th Data Bit Received in Mode 2,3 Set when Stop bit Txed Set when a Cha- ractor received8051 Serial Port – Mode 0: 8051 Serial Port – Mode 0 The Serial Port in Mode-0 has the following features: Serial data enters and exits through RXD TXD outputs the clock 8 bits are transmitted / received The baud rate is fixed at (1/12) of the oscillator frequency 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 808051 Serial Port – Mode 1: 8051 Serial Port – Mode 1 The Serial Port in Mode-1 has the following features: Serial data enters through RXD Serial data exits through TXD On receive, the stop bit goes into RB8 in SCON 10 bits are transmitted / received Start bit (0) Data bits (8) Stop Bit (1) Baud rate is determined by the Timer 1 over flow rate. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 818051 Serial Port – Mode 2: 8051 Serial Port – Mode 2 The Serial Port in Mode-2 has the following features: Serial data enters through RXD Serial data exits through TXD 9th data bit ( TB8 ) can be assign value 0 or 1 On receive, the 9th data bit goes into RB8 in SCON 11 bits are transmitted / received Start bit (0) Data bits (9) Stop Bit (1) Baud rate is programmable 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 828051 Serial Port – Mode 3: 8051 Serial Port – Mode 3 The Serial Port in Mode-3 has the following features: Serial data enters through RXD Serial data exits through TXD 9th data bit ( TB8 ) can be assign value 0 or 1 On receive, the 9th data bit goes into RB8 in SCON 11 bits are transmitted / received Start bit (0) Data bits (9) Stop Bit (1) Baud rate is determined by Timer 1 overflow rate. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 83Programming Serial Data Transmission: Programming Serial Data Transmission 1. TMOD register is loaded with the value 20H , indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate . 2. The TH1 is loaded with one of the values to set baud rate for serial data transfer. 3. The SCON register is loaded with the value 50H , indicating serial mode 1, where an 8- bit data is framed with start and stop bits. 4. TR1 is set to 1 to start timer 1 5. TI is cleared by CLR TI instruction 6. The character byte to be transferred serially is written into SBUF register. 7. The TI flag bit is monitored with the use of instruction JNB TI, xx to see if the character has been transferred completely. 8. To transfer the next byte, go to step 5 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 84Programming Serial Data Reception: Programming Serial Data Reception 1. TMOD register is loaded with the value 20H , indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate. 2. TH1 is loaded to set baud rate 3. The SCON register is loaded with the value 50H , indicating serial mode 1, where an 8- bit data is framed with start and stop bits. 4. TR1 is set to 1 to start timer 1 5. RI is cleared by CLR RI instruction 6. The RI flag bit is monitored with the use of instruction JNB RI, xx to see if an entire character has been received yet 7. When RI is raised , SBUF has the byte, its contents are moved into a safe place. 8. To receive the next character, go to step 5. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 85Doubling Baud Rate: Doubling Baud Rate There are two ways to increase the baud rate of data transfer By using a higher frequency crystal By changing a bit in the PCON register PCON register is an 8-bit register. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 86 When 8051 is powered up, SMOD is zero We can set it to high by software and thereby double the baud rate.Doubling Baud Rate (cont…): Doubling Baud Rate (cont…) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 878051 Interrupts: 8051 Interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 88INTERRUPTS: INTERRUPTS An interrupt is an external or internal event that interrupts the microcontroller to inform it that a device needs its service A single microcontroller can serve several devices by two ways: Interrupt Polling 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 89Interrupt Vs Polling: Interrupt Vs Polling Interrupts Whenever any device needs its service, the device notifies the microcontroller by sending it an interrupt signal . Upon receiving an interrupt signal, the microcontroller interrupts whatever it is doing and serves the device. The program which is associated with the interrupt is called the interrupt service routine (ISR) or interrupt handler. Polling The microcontroller continuously monitors the status of a given device. When the conditions met, it performs the service. After that, it moves on to monitor the next device until every one is serviced. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 90Interrupt Vs Polling: Interrupt Vs Polling The polling method is not efficient , since it wastes much of the microcontroller’s time by polling devices that do not need service. The advantage of interrupts is that the microcontroller can serve many devices (not all at the same time). Each devices can get the attention of the microcontroller based on the assigned priority . For the polling method, it is not possible to assign priority since it checks all devices in a round-robin fashion. The microcontroller can also ignore (mask) a device request for service in Interrupt. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 91Steps in Executing an Interrupt: Steps in Executing an Interrupt It finishes the instruction it is executing and saves the address of the next instruction (PC) on the stack . It also saves the current status of all the interrupts internally ( i.e : not on the stack). It jumps to a fixed location in memory, called the interrupt vector table , that holds the address of the ISR. The microcontroller gets the address of the ISR from the interrupt vector table and jumps to it. It starts to execute the interrupt service subroutine until it reaches the last instruction of the subroutine which is RETI (return from interrupt). Upon executing the RETI instruction, the microcontroller returns to the place where it was interrupted . 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 92Six Interrupts in 8051: Six Interrupts in 8051 Six interrupts are allocated as follows: Reset – power-up reset. Two interrupts are set aside for the timers. one for timer 0 and one for timer 1 Two interrupts are set aside for hardware external interrupts. P3.2 and P3.3 are for the external hardware interrupts INT0 (or EX1), and INT1 (or EX2) Serial communication has a single interrupt that belongs to both receive and transfer. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 93What events can trigger Interrupts?: What events can trigger Interrupts? We can configure the 8051 so that any of the following events will cause an interrupt: Timer 0 Overflow. Timer 1 Overflow. Reception/Transmission of Serial Character. External Event 0. External Event 1. We can configure the 8051 so that when Timer 0 Overflows or when a character is sent/received, the appropriate interrupt handler routines are called. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 948051 Interrupt Vectors: 8051 Interrupt Vectors 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 958051 Interrupt related Registers: 8051 Interrupt related Registers The various registers associated with the use of interrupts are: TCON - Edge and Type bits for External Interrupts 0/1 SCON - RI and TI interrupt flags for RS232 IE - Enable interrupt sources IP - Specify priority of interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 96Enabling and Disabling an Interrupt: Enabling and Disabling an Interrupt Upon reset , all interrupts are disabled (masked), meaning that none will be responded to by the microcontroller if they are activated. The interrupts must be enabled by software in order for the microcontroller to respond to them. There is a register called IE (interrupt enable) that is responsible for enabling (unmasking) and disabling (masking) the interrupts. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 97Interrupt Enable (IE) Register: Interrupt Enable (IE) Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 98 EA : Global enable/disable. --- : Reserved for additional interrupt hardware. ES : Enable Serial port interrupt. ET1 : Enable Timer 1 control bit. EX1 : Enable External 1 interrupt. ET0 : Enable Timer 0 control bit. EX0 : Enable External 0 interrupt. MOV IE,#08h or SETB ET1 --Enabling and Disabling an Interrupt: Enabling and Disabling an Interrupt Example: Show the instructions to (a) enable the serial interrupt, timer 0 interrupt, and external hardware interrupt 1 and (b) disable (mask) the timer 0 interrupt, then (c) show how to disable all the interrupts with a single instruction. Solution: (a) MOV IE,#10010110B ;enable serial, timer 0, EX1 Another way to perform the same manipulation is: SETB IE.7 ;EA=1, global enable SETB IE.4 ;enable serial interrupt SETB IE.1 ;enable Timer 0 interrupt SETB IE.2 ;enable EX1 (b) CLR IE.1 ;mask (disable) timer 0 interrupt only (c) CLR IE.7 ;disable all interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 99Interrupt Priority: Interrupt Priority When the 8051 is powered up, the priorities are assigned according to the following. In reality, the priority scheme is nothing but an internal polling sequence in which the 8051 polls the interrupts in the sequence listed and responds accordingly. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 100Interrupt Priority: Interrupt Priority We can alter the sequence of interrupt priority by assigning a higher priority to any one of the interrupts by programming a register called IP (interrupt priority). To give a higher priority to any of the interrupts, we make the corresponding bit in the IP register high. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 101Interrupt Priority (IP) Register: Interrupt Priority (IP) Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 102 PS PT1 PX1 PT0 PX0 Reserved Serial Port Timer 1 Pin INT 1 Pin Timer 0 Pin INT 0 Pin Priority bit=1 assigns high priority Priority bit=0 assigns low priority8051 Software Overview: 8051 Software Overview Addressing Modes Instruction Set Programming 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 1038051 Addressing Modes: 8051 Addressing Modes The CPU can access data in various ways, which are called addressing modes Immediate Register Direct Register indirect External Direct 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 104Immediate Addressing Mode: Immediate Addressing Mode The source operand is a constant. The immediate data must be preceded by the pound sign, “#” Can load information into any registers , including 16-bit DPTR register DPTR can also be accessed as two 8-bit registers, the high byte DPH and low byte DPL 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 105Register Addressing Mode: Register Addressing Mode Use registers to hold the data to be manipulated. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 106 The source and destination registers must match in size. MOV DPTR,A will give an error The movement of data between Rn registers is not allowed MOV R4,R7 is invalidDirect Addressing Mode: Direct Addressing Mode It is most often used the direct addressing mode to access RAM locations 30 – 7FH. The entire 128 bytes of RAM can be accessed. Contrast this with immediate addressing mode, there is no “#” sign in the operand. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 107SFR Registers & their Addresses: SFR Registers & their Addresses MOV 0E0H,#55H ;is the same as MOV A,#55H ;which means load 55H into A (A=55H) MOV 0F0H,#25H ;is the same as MOV B,#25H ;which means load 25H into B (B=25H) MOV 0E0H,R2 ;is the same as MOV A,R2 ;which means copy R2 into A MOV 0F0H,R0 ;is the same as MOV B,R0 ;which means copy R0 into B Mr. P. Suresh Venugopal Intel 8051 Programming 108SFR Addresses ( 1 of 2 ): SFR Addresses ( 1 of 2 ) Mr. P. Suresh Venugopal Intel 8051 Programming 109SFR Addresses ( 2 of 2 ): SFR Addresses ( 2 of 2 ) Mr. P. Suresh Venugopal Intel 8051 Programming 110Example: Example Mr. P. Suresh Venugopal Intel 8051 Programming 111Stack and Direct Addressing Mode: Stack and Direct Addressing Mode Only direct addressing mode is allowed for pushing or popping the stack. PUSH A is invalid. Pushing the accumulator onto the stack must be coded as PUSH 0E0H. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 112Register Indirect Addressing Mode: Register Indirect Addressing Mode A register is used as a pointer to the data. Only register R0 and R1 are used for this purpose. R2 – R7 cannot be used to hold the address of an operand located in RAM. When R0 and R1 hold the addresses of RAM locations, they must be preceded by the “@” sign. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 113Register Indirect Addressing Mode: Register Indirect Addressing Mode Write a program to copy the value 55H into RAM memory locations 40H to 41H using (a) direct addressing mode , (b) register indirect addressing mode without a loop , and (c) with a loop. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 114Register Indirect Addressing Mode: Register Indirect Addressing Mode The advantage is that it makes accessing data dynamic rather than static as in direct addressing mode . Looping is not possible in direct addressing mode. Write a program to clear 16 RAM locations starting at RAM address 60H. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 115External Direct: External Direct External Memory is accessed. There are only two commands that use External Direct addressing mode: MOVX A, @DPTR MOVX @DPTR, A DPTR must first be loaded with the address of external memory. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 1168051 Instruction Set: 8051 Instruction Set 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 117MOV Instruction: MOV Instruction MOV destination, source ; copy source to destination. MOV A,#55H ;load value 55H into reg. A MOV R0,A ;copy contents of A into R0 ;(now A=R0=55H) MOV R1,A ;copy contents of A into R1 ;(now A=R0=R1=55H) MOV R2,A ;copy contents of A into R2 ;(now A=R0=R1=R2=55H) MOV R3,#95H ;load value 95H into R3 ;(now R3=95H) MOV A,R3 ;copy contents of R3 into A ;now A=R3=95H Mr. P. Suresh Venugopal Intel 8051 Programming 118ADD Instruction: ADD Instruction ADD A, source ;ADD the source operand to the accumulator MOV A, #25H ;load 25H into A MOV R2,#34H ; load 34H into R2 ADD A,R2 ;add R2 to accumulator ;(A = A + R2) Mr. P. Suresh Venugopal 119 Intel 8051 ProgrammingStructure of Assembly Language: Structure of Assembly Language ORG 0H ;start (origin) at location 0 MOV R5,#25H ;load 25H into R5 MOV R7,#34H ;load 34H into R7 MOV A,#0 ;load 0 into A ADD A,R5 ;add contents of R5 to A ;now A = A + R5 ADD A,R7 ;add contents of R7 to A ;now A = A + R7 ADD A,#12H ;add to A value 12H ;now A = A + 12H HERE: SJMP HERE ;stay in this loop END ;end of asm source file Mr. P. Suresh Venugopal 120 Intel 8051 ProgrammingData Types & Directives: Data Types & Directives ORG 500H DATA1: DB 28 ; DECIMAL (1C in Hex) DATA2: DB 00110101B ; BINARY (35 in Hex) DATA3: DB 39H ; HEX ORG 510H DATA4: DB “2591” ; ASCII NUMBERS ORG 518H DATA6: DB “My name is Joe” ; ASCII CHARACTERS Mr. P. Suresh Venugopal 121 Intel 8051 ProgrammingADD Instruction and PSW: ADD Instruction and PSW Mr. P. Suresh Venugopal Intel 8051 Programming 122ADD Instruction and PSW: ADD Instruction and PSW Mr. P. Suresh Venugopal Intel 8051 Programming 123Multiplication of Unsigned Numbers: Multiplication of Unsigned Numbers MUL AB ; A B, place 16-bit result in B and A MOV A ,#25H ; load 25H to reg. A MOV B ,#65H ; load 65H in reg. B MUL AB ;25H * 65H = E99 where B = 0EH and A = 99H Table 6-1:Unsigned Multiplication Summary (MUL AB) Multiplication Operand 1 Operand 2 Result byte byte A B A=low byte, B=high byte Mr. P. Suresh Venugopal 124 Intel 8051 ProgrammingDivision of Unsigned Numbers: Division of Unsigned Numbers DIV AB ; divide A by B MOV A,#95H ;load 95 into A MOV B,#10H ;load 10 into B DIV AB ;now A = 09 (quotient) and B = 05 (remainder) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 125 Table 6-2:Unsigned Division Summary (DIV AB) Division Numerator Denominator Quotient Remainder byte / byte A B A BChecking an input bit: Checking an input bit 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 126 JNB (jump if no bit) ; JB (jump if bit = 1)Switch Register Banks: Switch Register Banks Mr. P. Suresh Venugopal Intel 8051 Programming 127Pushing onto Stack: Pushing onto Stack Mr. P. Suresh Venugopal Intel 8051 Programming 128Popping from Stack: Popping from Stack Mr. P. Suresh Venugopal Intel 8051 Programming 129Looping: Looping Mr. P. Suresh Venugopal Intel 8051 Programming 130Loop inside a Loop (Nested Loop): Loop inside a Loop (Nested Loop) Mr. P. Suresh Venugopal Intel 8051 Programming 1318051 Conditional Jump Instructions: 8051 Conditional Jump Instructions Mr. P. Suresh Venugopal Intel 8051 Programming 132Conditional Jump Example: Conditional Jump Example Mr. P. Suresh Venugopal Intel 8051 Programming 133Conditional Jump Example: Conditional Jump Example Mr. P. Suresh Venugopal Intel 8051 Programming 134Unconditional Jump Instructions: Unconditional Jump Instructions All conditional jumps are short jumps Target address within -128 to +127 of PC LJMP (long jump): 3-byte instruction 2-byte target address: 0000 to FFFFH Original 8051 has only 4KB on-chip ROM SJMP (short jump): 2-byte instruction 1-byte relative address: -128 to +127 Mr. P. Suresh Venugopal 135 Intel 8051 ProgrammingCall Instructions: Call Instructions LCALL (long call): 3-byte instruction 2-byte address Target address within 64K-byte range ACALL (absolute call): 2-byte instruction 11-bit address Target address within 2K-byte range Mr. P. Suresh Venugopal 136 Intel 8051 Programming You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
8051 Hardware and Software Architecture psureshvenugopal Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 322 Category: Science & Tech.. License: All Rights Reserved Like it (0) Dislike it (0) Added: October 20, 2011 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Slide 1: 8051 Microcontroller Suresh P. Nair [ME, (PhD)] MIEEE Professor & Head Department of Electronics and Communication Engineering Royal College of Engineering and Technology Chiramanangad PO, Akkikkavu, Thrissur, Kerala, IndiaTopics to be covered: Topics to be covered CPU operation Memory space Software overview Peripheral overview Interrupt Timers Parallel port inputs and outputs Serial port low power special modes of operation Noise 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 2Main References: Main References 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 3Introduction to Microcontrollers: Introduction to Microcontrollers 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 4Why do we need to learn Microprocessors/controllers?: Why do we need to learn Microprocessors/controllers? The microprocessor is the core of computer systems. Nowadays many communication, digital entertainment, portable devices, are controlled by them. A designer should know what types of components he needs, ways to reduce production costs and product reliable. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 5The necessary tools for a microprocessor/controller: The necessary tools for a microprocessor/controller CPU: Central Processing Unit I/O: Input /Output Bus: Address bus & Data bus Memory: RAM & ROM Timer Interrupt Serial Port Parallel Port 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 6Microprocessors: Microprocessors CPU for Computers No RAM, ROM, I/O on CPU chip itself Example: Intel's x86, Motorola’s 680x0 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 7Microcontroller: Microcontroller A smaller computer On-chip RAM, ROM, I/O ports... Example: Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 8Microprocessor vs. Microcontroller: Microprocessor vs. Microcontroller Microprocessor CPU is stand-alone, RAM, ROM, I/O, timer are separate Designer can decide on the amount of ROM, RAM and I/O ports. Expansive Versatility General-purpose Microcontroller CPU, RAM, ROM, I/O and timer are all on a single chip Fix amount of on-chip ROM, RAM, I/O ports For applications in which cost, power and space are critical Not Expansive Single-purpose 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 9Microcontrollers for Embedded Systems: Microcontrollers for Embedded Systems Home Appliances , intercom, telephones, security systems , garage door openers, answering machines, fax machines , home computers, TVs, cable TV tuner , VCR , camcorder, remote controls, video games , cellular phones, musical instruments, sewing machines , lighting control, paging, camera, pinball machines , toys, exercise equipment etc. Office Telephones , computers, security systems, fax machines , microwave, copier, laser printer, color printer , paging etc. Auto Trip computer, engine control, air bag, ABS , instrumentation , security system, transmission control , entertainment, climate control, cellular phone , keyless entry 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 10Choosing a Microcontroller: Choosing a Microcontroller 8-bit microcontrollers Motorola’s 6811 Intel’s 8051 Zilog’s Z8 Microchip’s PIC There are also 16-bit and 32-bit microcontrollers made by various chip makers 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 11Criteria for Choosing a Microcontroller: Criteria for Choosing a Microcontroller Meeting the computing needs of the task at hand efficiently and cost effectively Speed Packaging Power consumption The amount of RAM and ROM on chip The number of I/O pins and the timer on chip How easy to upgrade to higher performance or lower power-consumption versions Cost per unit 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 12Criteria for Choosing a Microcontroller: Criteria for Choosing a Microcontroller Availability of software development tools , such as compilers , assemblers , and debuggers Wide availability and reliable sources of the microcontroller The 8051 family has the largest number of diversified (multiple source) suppliers Intel (original) Atmel Philips/ Signetics AMD Infineon (formerly Siemens) Matra Dallas Semiconductor/Maxim 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 138051 CPU Operation: 8051 CPU Operation Features Pin Diagram Block Diagram 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 148051 Microcontroller: 8051 Microcontroller Intel introduced 8051, referred as MCS- 51 , in 1981. The 8051 is an 8-bit processor The CPU can work on only 8 bits of data at a time The 8051 became widely popular after allowing other manufactures to make and market any flavor of the 8051 . 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 158051 Family: 8051 Family The 8051 is a subset of the 8052 The 8031 is a ROM-less 8051 Add external ROM to it You lose two ports, and leave only 2 ports for I/O operations 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 168051 Features: 8051 Features 64KB Program Memory address space 64KB Data Memory address space 4K bytes of on-chip Program Memory 128 bytes of on-chip Data RAM 32 bidirectional and individually addressable 1/0 lines Two 16-bit timer/counters Full duplex UART 6-source/5-vector interrupt structure with two priority levels On-chip clock oscillator 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 17Pin Description of the 8051: Pin Description of the 8051 8051 family members (e.g., 8751 , 89C51 , 89C52, DS89C4x0) Have 40 pins dedicated for various functions such as I/O, RD , WR , address , data , and interrupts. Come in different packages, such as DIP(dual in-line package), QFP(quad flat package), and LLC(leadless chip carrier) Some companies provide a 20-pin version of the 8051 with a reduced number of I/O ports for less demanding applications 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 18Pin Diagram of the 8051: Pin Diagram of the 8051 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 19XTAL1 and XTAL2: XTAL1 and XTAL2 The 8051 has an on-chip oscillator but requires an external clock to run it A quartz crystal oscillator is connected to inputs XTAL1 (pin19) and XTAL2 (pin18) The quartz crystal oscillator also needs two capacitors of 30 pF value 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 20XTAL1 and XTAL2 …..: XTAL1 and XTAL2 ….. If you use a frequency source other than a crystal oscillator, such as a TTL oscillator: It will be connected to XTAL1 XTAL2 is left unconnected 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 21XTAL1 and XTAL2 …..: XTAL1 and XTAL2 ….. The speed of 8051 refers to the maximum oscillator frequency connected to XTAL. We can observe the frequency on the XTAL2 pin using the oscilloscope. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 22RST: RST RESET pin is an input and is active high (normally low) Upon applying a high pulse to this pin, the microcontroller will reset and terminate all activities This is often referred to as a power-on reset Activating a power-on reset will cause all values in the registers to be lost 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 23RST: RST In order for the RESET input to be effective , it must have a minimum duration of 2 machine cycles. In other words, the high pulse must be high for a minimum of 2 machine cycles before it is allowed to go low. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 24EA’: EA’ EA’, “external access’’ , is an input pin and must be connected to Vcc or GND The 8051 family members all come with on-chip ROM to store programs and also have an external code and data memory. Normally EA pin is connected to Vcc EA pin must be connected to GND to indicate that the code or data is stored externally. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 25PSEN’ and ALE: PSEN’ and ALE PSEN , “program store enable’’ , is an output pin This pin is connected to the OE pin of the external memory. For External Code Memory, PSEN’ = 0 For External Data Memory, PSEN’ = 1 ALE pin is used for demultiplexing the address and data. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 26I/O Port Pins: I/O Port Pins The four 8-bit I/O ports P0, P1, P2 and P3 each uses 8 pins. All the ports upon RESET are configured as output, ready to be used as input ports by the external device. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 27Port 0: Port 0 Port 0 is also designated as AD0-AD7 . When connecting an 8051 to an external memory, port 0 provides both address and data. The 8051 multiplexes address and data through port 0 to save pins. ALE indicates if P0 has address or data. When ALE=0, it provides data D0-D7 When ALE=1, it has address A0-A7 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 28Port 1 and Port 2: Port 1 and Port 2 In 8051-based systems with no external memory connection : Both P1 and P2 are used as simple I/O. In 8051-based systems with external memory connections : Port 2 must be used along with P0 to provide the 16-bit address for the external memory. P0 provides the lower 8 bits via A0 – A7. P2 is used for the upper 8 bits of the 16-bit address , designated as A8 – A15, and it cannot be used for I/O. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 29Port 3: Port 3 Port 3 can be used as input or output . Port 3 has the additional function of providing some extremely important signals 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 30Pin Description Summary: Pin Description Summary 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 31 PIN TYPE NAME AND FUNCTION Vss I Ground: 0 V reference. Vcc I Power Supply: This is the power supply voltage for normal, idle, and power-down operation. P0.0 - P0.7 I/O Port 0: Port 0 is an open-drain, bi-directional I/O port. Port 0 is also the multiplexed low-order address and data bus during accesses to external program and data memory. P1.0 - P1.7 I/O Port 1: Port I is an 8-bit bi-directional I/O port. P2.0 - P2.7 I/O Port 2: Port 2 is an 8-bit bidirectional I/O. Port 2 emits the high order address byte during fetches from external program memory and during accesses to external data memory that use 16 bit addresses. P3.0 - P3.7 I/O Port 3: Port 3 is an 8 bit bidirectional I/O port. Port 3 also serves special features as explained.Pin Description Summary: Pin Description Summary 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 32 PIN TYPE NAME AND FUNCTION RST I Reset: A high on this pin for two machine cycles while the oscillator is running, resets the device. ALE O Address Latch Enable: Output pulse for latching the low byte of the address during an access to external memory. PSEN* O Program Store Enable: The read strobe to external program memory. When executing code from the external program memory, PSEN* is activated twice each machine cycle, except that two PSEN* activations are skipped during each access to external data memory. EA*/VPP I External Access Enable/Programming Supply Voltage: EA* must be externally held low to enable the device to fetch code from external program memory locations. If EA* Is held high, the device executes from internal program memory. This pin also receives the programming supply voltage Vpp during Flash programming. (applies for 89c5x MCU's)Slide 33: Interrupt Control CPU 4K ROM 128 B RAM OSC Bus Control 4 I/O Ports Serial Port Timer 1 Timer 0 General Block Diagram of 8051 TXD RXD P0 P1 P2 P3Detailed Block Diagram: Detailed Block Diagram 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 348051 Memory Space: 8051 Memory Space 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 358051 Memory Structure: 8051 Memory Structure External EXT INT 128 SFR External Program Memory Data Memory 64K 64K EA = 0 EA = 1 4K 60K 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 36Internal RAM Structure: Internal RAM Structure Direct & Indirect Addressing Direct Addressing Only SFR [ Special Function Registers] 128 Byte Internal RAM 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 37Special Function Registers [SFR]: Special Function Registers [SFR] 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 38Program Status Word [PSW]: Program Status Word [PSW] 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 39 C AC F0 RS1 RS0 OV F1 P Register Bank Select Carry Auxiliary Carry User Flag 0 Parity User Flag 1 Overflow8051 instructions that affects flag: 8051 instructions that affects flag 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 40128 Byte RAM: 128 Byte RAM There are 128 bytes of RAM in the 8051. Assigned addresses 00 to 7FH The 128 bytes are divided into 3 different groups as follows: A total of 32 bytes from locations 00 to 1F hex are set aside for register banks and the stack. A total of 16 bytes from locations 20H to 2FH are set aside for bit-addressable read/write memory. A total of 80 bytes from locations 30H to 7FH are used for read and write storage, called scratch pad. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 41 128 BYTE INTERNAL RAM Register Banks Reg Bank 0 Reg Bank 1 Reg Bank 2 Reg Bank 3 BIT Addressable Area General Purpose Area8051 RAM with addresses: 8051 RAM with addresses 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 428051 Register Bank Structure: 8051 Register Bank Structure Bank 0 R0 R1 R2 R3 R4 R5 R6 R7 Bank 3 R0 R1 R2 R3 R4 R5 R6 R7 Bank 2 R0 R1 R2 R3 R4 R5 R6 R7 Bank 1 R0 R1 R2 R3 R4 R5 R6 R7 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 438051 Register Banks with address: 8051 Register Banks with address 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 448051 Programming Model: 8051 Programming Model 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 458051 Stack: 8051 Stack The stack is a section of RAM used by the CPU to store information temporarily. This information could be data or an address The register used to access the stack is called the SP (stack pointer) register The stack pointer in the 8051 is only 8 bit wide , which means that it can take value of 00 to FFH When the 8051 is powered up, the SP register contains value 07 RAM location 08 is the first location begin used for the stack by the 8051 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 468051 Stack: 8051 Stack The storing of a CPU register in the stack is called a PUSH SP is pointing to the last used location of the stack As we push data onto the stack, the SP is incremented by one This is different from many microprocessors Loading the contents of the stack back into a CPU register is called a POP With every pop, the top byte of the stack is copied to the register specified by the instruction and the stack pointer is decremented once 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 47Bit Addressable & Byte Addressable: Bit Addressable & Byte Addressable 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 48Single bit Instructions: Single bit Instructions 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 49Bit Addressable Programming: Bit Addressable Programming Example: Find out to which by each of the following bits belongs. Give the address of the RAM byte in hex (a) SETB 42H, (b) CLR 67H, (c) CLR 0FH (d) SETB 28H, (e) CLR 12, (f) SETB 05 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 508051 Peripheral Overview: 8051 Peripheral Overview Timers Serial Port Interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 518051 TIMERS: 8051 TIMERS 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 528051 Timer/Counter: 8051 Timer/Counter 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 53 OSC ÷12 TLx (8 Bit) THx (8 Bit) TFx (1 Bit) INTERRUPTTMOD Register: TMOD Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 54 GATE: When set , timer/counter x is enabled, if INTx pin is high and TRx is set. When cleared , timer/counter x is enabled, if TRx bit set. C/T*: When set , counter operation (input from Tx input pin). When cleared , timer operation (input from internal clock).TMOD Register: TMOD Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 55 The TMOD byte is not bit addressable.TCON Register: TCON Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 568051 Timer Modes: 8051 Timer Modes 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 57 Timer 0 Mode 3 Mode 2 Mode 1 Mode 0 Mode 2 Mode 1 Mode 0 Timer 1 8051 TIMERSSlide 58: OSC ÷12 TL0 TH0 INTERRUPT TIMER 0 TF0Slide 59: TL0 (5 Bit) INTERRUPT TIMER 0 – Mode 0 OSC ÷12 TH0 (8 Bit) TF0 13 Bit Timer / Counter Maximum Count = 1FFFh (0001111111111111 )Slide 60: TL0 (8 Bit) INTERRUPT TIMER 0 – Mode 1 OSC ÷12 TH0 (8 Bit) TF0 16 Bit Timer / Counter Maximum Count = FFFFh (1111111111111111)Slide 61: TH0 (8 Bit) Reload TIMER 0 – Mode 2 8 Bit Timer / Counter with AUTORELOAD TL0 (8 Bit) OSC ÷12 TH0 (8 Bit) TF0 INTERRUPT Maximum Count = FFh (11111111)Slide 62: TL0 (8 Bit) INTERRUPT TIMER 0 – Mode 3 OSC ÷12 TF0 Two - 8 Bit Timer / Counter OSC ÷12 TH0 (8 Bit) INTERRUPT TF1Slide 63: OSC ÷12 TL1 TH1 INTERRUPT TIMER 1 TF1Slide 64: TL1 (5 Bit) INTERRUPT TIMER 1 – Mode 0 OSC ÷12 TH1 (8 Bit) TF1 13 Bit Timer / Counter Maximum Count = 1FFFh (0001111111111111 )Slide 65: TL1 (8 Bit) INTERRUPT TIMER 1 – Mode 1 OSC ÷12 TH1 (8 Bit) TF1 16 Bit Timer / Counter Maximum Count = FFFFh (1111111111111111)Slide 66: TH1 (8 Bit) Reload TIMER 1 – Mode 2 8 Bit Timer / Counter with AUTORELOAD TL1 (8 Bit) OSC ÷12 TH1 (8 Bit) TF1 INTERRUPT Maximum Count = FFh (11111111)Programming Timers: Programming Timers Example: Indicate which mode and which timer are selected for each of the following. (a) MOV TMOD, #01H (b) MOV TMOD, #20H (c) MOV TMOD, #12H Solution: We convert the value from hex to binary. (a) TMOD = 00000001, mode 1 of timer 0 is selected. (b) TMOD = 00100000, mode 2 of timer 1 is selected. (c) TMOD = 00010010, mode 2 of timer 0, and mode 1 of timer 1 are selected. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 67Programming Timers: Programming Timers Find the timer’s clock frequency and its period for various 8051-based system, with the crystal frequency 11.0592 MHz when C/T bit of TMOD is 0. Solution: 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 68 1/12 × 11.0529 MHz = 921.6 MHz; T = 1/921.6 kHz = 1.085 us8051 Serial Port: 8051 Serial Port 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 69Basics of Serial Communication: Basics of Serial Communication Computers transfer data in two ways: Parallel: Often 8 or more lines (wire conductors) are used to transfer data to a device that is only a few feet away. Serial: To transfer to a device located many meters away, the serial method is used. The data is sent one bit at a time. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 70Basics of Serial Communication: Basics of Serial Communication Serial data communication uses two methods Synchronous method transfers a block of data at a time Asynchronous method transfers a single byte at a time There are special IC’s made by many manufacturers for serial communications. UART (universal asynchronous Receiver transmitter) USART (universal synchronous-asynchronous Receiver-transmitter) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 71Asynchronous – Start & Stop Bit: Asynchronous – Start & Stop Bit Asynchronous serial data communication is widely used for character-oriented transmissions Each character is placed in between start and stop bits , this is called framing. Block-oriented data transfers use the synchronous method. The start bit is always one bit, but the stop bit can be one or two bits The start bit is always a 0 (low) and the stop bit(s) is 1 (high) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 72Asynchronous – Start & Stop Bit: Asynchronous – Start & Stop Bit 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 73Data Transfer Rate: Data Transfer Rate The rate of data transfer in serial data communication is stated in bps ( bits per second ). Another widely used terminology for bps is baud rate. It is modem terminology and is defined as the number of signal changes per second In modems, there are occasions when a single change of signal transfers several bits of data As far as the conductor wire is concerned, the baud rate and bps are the same. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 748051 Serial Port: 8051 Serial Port Synchronous and Asynchronous SCON Register is used to Control Data Transfer through TXd & RXd pins Some time - Clock through TXd Pin Four Modes of Operation: 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 75 Mode 0 :Synchronous Serial Communication Mode 1 :8-Bit UART with Timer Data Rate Mode 2 :9-Bit UART with Set Data Rate Mode 3 :9-Bit UART with Timer Data RateRegisters related to Serial Communication: Registers related to Serial Communication SBUF Register SCON Register PCON Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 76SBUF Register: SBUF Register SBUF is an 8-bit register used solely for serial communication. For a byte data to be transferred via the TxD line , it must be placed in the SBUF register . The moment a byte is written into SBUF, it is framed with the start and stop bits and transferred serially via the TxD line. SBUF holds the byte of data when it is received by 8051 RxD line. When the bits are received serially via RxD, the 8051 deframes it by eliminating the stop and start bits, making a byte out of the data received, and then placing it in SBUF. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 77SBUF Register: SBUF Register Sample Program: 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 78SCON Register: SCON Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 79 SM0 SM1 SM2 REN TB8 RB8 TI RI Enable Multiprocessor Communication Mode Set to Enable Serial Data reception 9 th Data Bit Sent in Mode 2,3 9 th Data Bit Received in Mode 2,3 Set when Stop bit Txed Set when a Cha- ractor received8051 Serial Port – Mode 0: 8051 Serial Port – Mode 0 The Serial Port in Mode-0 has the following features: Serial data enters and exits through RXD TXD outputs the clock 8 bits are transmitted / received The baud rate is fixed at (1/12) of the oscillator frequency 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 808051 Serial Port – Mode 1: 8051 Serial Port – Mode 1 The Serial Port in Mode-1 has the following features: Serial data enters through RXD Serial data exits through TXD On receive, the stop bit goes into RB8 in SCON 10 bits are transmitted / received Start bit (0) Data bits (8) Stop Bit (1) Baud rate is determined by the Timer 1 over flow rate. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 818051 Serial Port – Mode 2: 8051 Serial Port – Mode 2 The Serial Port in Mode-2 has the following features: Serial data enters through RXD Serial data exits through TXD 9th data bit ( TB8 ) can be assign value 0 or 1 On receive, the 9th data bit goes into RB8 in SCON 11 bits are transmitted / received Start bit (0) Data bits (9) Stop Bit (1) Baud rate is programmable 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 828051 Serial Port – Mode 3: 8051 Serial Port – Mode 3 The Serial Port in Mode-3 has the following features: Serial data enters through RXD Serial data exits through TXD 9th data bit ( TB8 ) can be assign value 0 or 1 On receive, the 9th data bit goes into RB8 in SCON 11 bits are transmitted / received Start bit (0) Data bits (9) Stop Bit (1) Baud rate is determined by Timer 1 overflow rate. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 83Programming Serial Data Transmission: Programming Serial Data Transmission 1. TMOD register is loaded with the value 20H , indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate . 2. The TH1 is loaded with one of the values to set baud rate for serial data transfer. 3. The SCON register is loaded with the value 50H , indicating serial mode 1, where an 8- bit data is framed with start and stop bits. 4. TR1 is set to 1 to start timer 1 5. TI is cleared by CLR TI instruction 6. The character byte to be transferred serially is written into SBUF register. 7. The TI flag bit is monitored with the use of instruction JNB TI, xx to see if the character has been transferred completely. 8. To transfer the next byte, go to step 5 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 84Programming Serial Data Reception: Programming Serial Data Reception 1. TMOD register is loaded with the value 20H , indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate. 2. TH1 is loaded to set baud rate 3. The SCON register is loaded with the value 50H , indicating serial mode 1, where an 8- bit data is framed with start and stop bits. 4. TR1 is set to 1 to start timer 1 5. RI is cleared by CLR RI instruction 6. The RI flag bit is monitored with the use of instruction JNB RI, xx to see if an entire character has been received yet 7. When RI is raised , SBUF has the byte, its contents are moved into a safe place. 8. To receive the next character, go to step 5. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 85Doubling Baud Rate: Doubling Baud Rate There are two ways to increase the baud rate of data transfer By using a higher frequency crystal By changing a bit in the PCON register PCON register is an 8-bit register. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 86 When 8051 is powered up, SMOD is zero We can set it to high by software and thereby double the baud rate.Doubling Baud Rate (cont…): Doubling Baud Rate (cont…) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 878051 Interrupts: 8051 Interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 88INTERRUPTS: INTERRUPTS An interrupt is an external or internal event that interrupts the microcontroller to inform it that a device needs its service A single microcontroller can serve several devices by two ways: Interrupt Polling 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 89Interrupt Vs Polling: Interrupt Vs Polling Interrupts Whenever any device needs its service, the device notifies the microcontroller by sending it an interrupt signal . Upon receiving an interrupt signal, the microcontroller interrupts whatever it is doing and serves the device. The program which is associated with the interrupt is called the interrupt service routine (ISR) or interrupt handler. Polling The microcontroller continuously monitors the status of a given device. When the conditions met, it performs the service. After that, it moves on to monitor the next device until every one is serviced. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 90Interrupt Vs Polling: Interrupt Vs Polling The polling method is not efficient , since it wastes much of the microcontroller’s time by polling devices that do not need service. The advantage of interrupts is that the microcontroller can serve many devices (not all at the same time). Each devices can get the attention of the microcontroller based on the assigned priority . For the polling method, it is not possible to assign priority since it checks all devices in a round-robin fashion. The microcontroller can also ignore (mask) a device request for service in Interrupt. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 91Steps in Executing an Interrupt: Steps in Executing an Interrupt It finishes the instruction it is executing and saves the address of the next instruction (PC) on the stack . It also saves the current status of all the interrupts internally ( i.e : not on the stack). It jumps to a fixed location in memory, called the interrupt vector table , that holds the address of the ISR. The microcontroller gets the address of the ISR from the interrupt vector table and jumps to it. It starts to execute the interrupt service subroutine until it reaches the last instruction of the subroutine which is RETI (return from interrupt). Upon executing the RETI instruction, the microcontroller returns to the place where it was interrupted . 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 92Six Interrupts in 8051: Six Interrupts in 8051 Six interrupts are allocated as follows: Reset – power-up reset. Two interrupts are set aside for the timers. one for timer 0 and one for timer 1 Two interrupts are set aside for hardware external interrupts. P3.2 and P3.3 are for the external hardware interrupts INT0 (or EX1), and INT1 (or EX2) Serial communication has a single interrupt that belongs to both receive and transfer. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 93What events can trigger Interrupts?: What events can trigger Interrupts? We can configure the 8051 so that any of the following events will cause an interrupt: Timer 0 Overflow. Timer 1 Overflow. Reception/Transmission of Serial Character. External Event 0. External Event 1. We can configure the 8051 so that when Timer 0 Overflows or when a character is sent/received, the appropriate interrupt handler routines are called. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 948051 Interrupt Vectors: 8051 Interrupt Vectors 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 958051 Interrupt related Registers: 8051 Interrupt related Registers The various registers associated with the use of interrupts are: TCON - Edge and Type bits for External Interrupts 0/1 SCON - RI and TI interrupt flags for RS232 IE - Enable interrupt sources IP - Specify priority of interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 96Enabling and Disabling an Interrupt: Enabling and Disabling an Interrupt Upon reset , all interrupts are disabled (masked), meaning that none will be responded to by the microcontroller if they are activated. The interrupts must be enabled by software in order for the microcontroller to respond to them. There is a register called IE (interrupt enable) that is responsible for enabling (unmasking) and disabling (masking) the interrupts. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 97Interrupt Enable (IE) Register: Interrupt Enable (IE) Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 98 EA : Global enable/disable. --- : Reserved for additional interrupt hardware. ES : Enable Serial port interrupt. ET1 : Enable Timer 1 control bit. EX1 : Enable External 1 interrupt. ET0 : Enable Timer 0 control bit. EX0 : Enable External 0 interrupt. MOV IE,#08h or SETB ET1 --Enabling and Disabling an Interrupt: Enabling and Disabling an Interrupt Example: Show the instructions to (a) enable the serial interrupt, timer 0 interrupt, and external hardware interrupt 1 and (b) disable (mask) the timer 0 interrupt, then (c) show how to disable all the interrupts with a single instruction. Solution: (a) MOV IE,#10010110B ;enable serial, timer 0, EX1 Another way to perform the same manipulation is: SETB IE.7 ;EA=1, global enable SETB IE.4 ;enable serial interrupt SETB IE.1 ;enable Timer 0 interrupt SETB IE.2 ;enable EX1 (b) CLR IE.1 ;mask (disable) timer 0 interrupt only (c) CLR IE.7 ;disable all interrupts 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 99Interrupt Priority: Interrupt Priority When the 8051 is powered up, the priorities are assigned according to the following. In reality, the priority scheme is nothing but an internal polling sequence in which the 8051 polls the interrupts in the sequence listed and responds accordingly. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 100Interrupt Priority: Interrupt Priority We can alter the sequence of interrupt priority by assigning a higher priority to any one of the interrupts by programming a register called IP (interrupt priority). To give a higher priority to any of the interrupts, we make the corresponding bit in the IP register high. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 101Interrupt Priority (IP) Register: Interrupt Priority (IP) Register 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 102 PS PT1 PX1 PT0 PX0 Reserved Serial Port Timer 1 Pin INT 1 Pin Timer 0 Pin INT 0 Pin Priority bit=1 assigns high priority Priority bit=0 assigns low priority8051 Software Overview: 8051 Software Overview Addressing Modes Instruction Set Programming 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 1038051 Addressing Modes: 8051 Addressing Modes The CPU can access data in various ways, which are called addressing modes Immediate Register Direct Register indirect External Direct 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 104Immediate Addressing Mode: Immediate Addressing Mode The source operand is a constant. The immediate data must be preceded by the pound sign, “#” Can load information into any registers , including 16-bit DPTR register DPTR can also be accessed as two 8-bit registers, the high byte DPH and low byte DPL 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 105Register Addressing Mode: Register Addressing Mode Use registers to hold the data to be manipulated. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 106 The source and destination registers must match in size. MOV DPTR,A will give an error The movement of data between Rn registers is not allowed MOV R4,R7 is invalidDirect Addressing Mode: Direct Addressing Mode It is most often used the direct addressing mode to access RAM locations 30 – 7FH. The entire 128 bytes of RAM can be accessed. Contrast this with immediate addressing mode, there is no “#” sign in the operand. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 107SFR Registers & their Addresses: SFR Registers & their Addresses MOV 0E0H,#55H ;is the same as MOV A,#55H ;which means load 55H into A (A=55H) MOV 0F0H,#25H ;is the same as MOV B,#25H ;which means load 25H into B (B=25H) MOV 0E0H,R2 ;is the same as MOV A,R2 ;which means copy R2 into A MOV 0F0H,R0 ;is the same as MOV B,R0 ;which means copy R0 into B Mr. P. Suresh Venugopal Intel 8051 Programming 108SFR Addresses ( 1 of 2 ): SFR Addresses ( 1 of 2 ) Mr. P. Suresh Venugopal Intel 8051 Programming 109SFR Addresses ( 2 of 2 ): SFR Addresses ( 2 of 2 ) Mr. P. Suresh Venugopal Intel 8051 Programming 110Example: Example Mr. P. Suresh Venugopal Intel 8051 Programming 111Stack and Direct Addressing Mode: Stack and Direct Addressing Mode Only direct addressing mode is allowed for pushing or popping the stack. PUSH A is invalid. Pushing the accumulator onto the stack must be coded as PUSH 0E0H. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 112Register Indirect Addressing Mode: Register Indirect Addressing Mode A register is used as a pointer to the data. Only register R0 and R1 are used for this purpose. R2 – R7 cannot be used to hold the address of an operand located in RAM. When R0 and R1 hold the addresses of RAM locations, they must be preceded by the “@” sign. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 113Register Indirect Addressing Mode: Register Indirect Addressing Mode Write a program to copy the value 55H into RAM memory locations 40H to 41H using (a) direct addressing mode , (b) register indirect addressing mode without a loop , and (c) with a loop. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 114Register Indirect Addressing Mode: Register Indirect Addressing Mode The advantage is that it makes accessing data dynamic rather than static as in direct addressing mode . Looping is not possible in direct addressing mode. Write a program to clear 16 RAM locations starting at RAM address 60H. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 115External Direct: External Direct External Memory is accessed. There are only two commands that use External Direct addressing mode: MOVX A, @DPTR MOVX @DPTR, A DPTR must first be loaded with the address of external memory. 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 1168051 Instruction Set: 8051 Instruction Set 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 117MOV Instruction: MOV Instruction MOV destination, source ; copy source to destination. MOV A,#55H ;load value 55H into reg. A MOV R0,A ;copy contents of A into R0 ;(now A=R0=55H) MOV R1,A ;copy contents of A into R1 ;(now A=R0=R1=55H) MOV R2,A ;copy contents of A into R2 ;(now A=R0=R1=R2=55H) MOV R3,#95H ;load value 95H into R3 ;(now R3=95H) MOV A,R3 ;copy contents of R3 into A ;now A=R3=95H Mr. P. Suresh Venugopal Intel 8051 Programming 118ADD Instruction: ADD Instruction ADD A, source ;ADD the source operand to the accumulator MOV A, #25H ;load 25H into A MOV R2,#34H ; load 34H into R2 ADD A,R2 ;add R2 to accumulator ;(A = A + R2) Mr. P. Suresh Venugopal 119 Intel 8051 ProgrammingStructure of Assembly Language: Structure of Assembly Language ORG 0H ;start (origin) at location 0 MOV R5,#25H ;load 25H into R5 MOV R7,#34H ;load 34H into R7 MOV A,#0 ;load 0 into A ADD A,R5 ;add contents of R5 to A ;now A = A + R5 ADD A,R7 ;add contents of R7 to A ;now A = A + R7 ADD A,#12H ;add to A value 12H ;now A = A + 12H HERE: SJMP HERE ;stay in this loop END ;end of asm source file Mr. P. Suresh Venugopal 120 Intel 8051 ProgrammingData Types & Directives: Data Types & Directives ORG 500H DATA1: DB 28 ; DECIMAL (1C in Hex) DATA2: DB 00110101B ; BINARY (35 in Hex) DATA3: DB 39H ; HEX ORG 510H DATA4: DB “2591” ; ASCII NUMBERS ORG 518H DATA6: DB “My name is Joe” ; ASCII CHARACTERS Mr. P. Suresh Venugopal 121 Intel 8051 ProgrammingADD Instruction and PSW: ADD Instruction and PSW Mr. P. Suresh Venugopal Intel 8051 Programming 122ADD Instruction and PSW: ADD Instruction and PSW Mr. P. Suresh Venugopal Intel 8051 Programming 123Multiplication of Unsigned Numbers: Multiplication of Unsigned Numbers MUL AB ; A B, place 16-bit result in B and A MOV A ,#25H ; load 25H to reg. A MOV B ,#65H ; load 65H in reg. B MUL AB ;25H * 65H = E99 where B = 0EH and A = 99H Table 6-1:Unsigned Multiplication Summary (MUL AB) Multiplication Operand 1 Operand 2 Result byte byte A B A=low byte, B=high byte Mr. P. Suresh Venugopal 124 Intel 8051 ProgrammingDivision of Unsigned Numbers: Division of Unsigned Numbers DIV AB ; divide A by B MOV A,#95H ;load 95 into A MOV B,#10H ;load 10 into B DIV AB ;now A = 09 (quotient) and B = 05 (remainder) 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 125 Table 6-2:Unsigned Division Summary (DIV AB) Division Numerator Denominator Quotient Remainder byte / byte A B A BChecking an input bit: Checking an input bit 8051 Microcontroller Suresh.P.Nair , HOD - ECE , RCET 126 JNB (jump if no bit) ; JB (jump if bit = 1)Switch Register Banks: Switch Register Banks Mr. P. Suresh Venugopal Intel 8051 Programming 127Pushing onto Stack: Pushing onto Stack Mr. P. Suresh Venugopal Intel 8051 Programming 128Popping from Stack: Popping from Stack Mr. P. Suresh Venugopal Intel 8051 Programming 129Looping: Looping Mr. P. Suresh Venugopal Intel 8051 Programming 130Loop inside a Loop (Nested Loop): Loop inside a Loop (Nested Loop) Mr. P. Suresh Venugopal Intel 8051 Programming 1318051 Conditional Jump Instructions: 8051 Conditional Jump Instructions Mr. P. Suresh Venugopal Intel 8051 Programming 132Conditional Jump Example: Conditional Jump Example Mr. P. Suresh Venugopal Intel 8051 Programming 133Conditional Jump Example: Conditional Jump Example Mr. P. Suresh Venugopal Intel 8051 Programming 134Unconditional Jump Instructions: Unconditional Jump Instructions All conditional jumps are short jumps Target address within -128 to +127 of PC LJMP (long jump): 3-byte instruction 2-byte target address: 0000 to FFFFH Original 8051 has only 4KB on-chip ROM SJMP (short jump): 2-byte instruction 1-byte relative address: -128 to +127 Mr. P. Suresh Venugopal 135 Intel 8051 ProgrammingCall Instructions: Call Instructions LCALL (long call): 3-byte instruction 2-byte address Target address within 64K-byte range ACALL (absolute call): 2-byte instruction 11-bit address Target address within 2K-byte range Mr. P. Suresh Venugopal 136 Intel 8051 Programming