System & Program Developments of 8051
|
|
- Lesley Osborne
- 5 years ago
- Views:
Transcription
1 System & Program Developments of 8051 Program Structure and Design Introduction Advantages and Disadvantages of Structured Programming The Three Structures: statements, loops, choice Pseudo Code Syntax Assembly Language Programming Tools & Techniques for Program Development The Development Cycle Integration and Verification Command and Environments 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 1
2 Introduction Structured Programming: Organizing and coding programs that reduces complexity, improves clarity, and facilitates debugging and modifying All programs may be written using only three structures: statements, loops, and choice too good to be true. Introduce Structure programming to assembly language programming Flowcharts Pseudo code Assembly language 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 2
3 Flowcharts Decision block Off-page connector Process box Input/Output block Predefined process (subroutine) Program flow arrow Program terminator 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 3
4 Pseudo Code Strict adherence to structure in combination with informal language [get a character from the keyboard] IF [condition is true] THEN [do statement 1] ELSE BEGIN [do statement 2] [do statement 3] END 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 4
5 Advantages & Disadvantages of Structured Programming Advantages: Simple to trace, debug Finite number of structures Structures as building block The set of structure is complete Structures are self-documenting, easy to read Structures are easy to describe in flowcharts, syntax diagrams, pseudo code,.. Increased program productivity 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 5
6 Advantages & Disadvantages of Structured Programming Disadvantages: Only a few high-level languages (Pascal, C, PL/M) accept the structures directly; others require extra translation stage Structured program may execute slower and require more memory Some problems (a minority) are more difficult to solve using only the three structures Nested structures can be difficult to follow 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 6
7 The Three Structures Statements [count = 0] PRINT_STRING( Select Option: ) Loops (iteration) WHILE/DO REPEAT/UNTIL Choice IF/THEN/ELSE CASE 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 7
8 The WHILE/DO Statement WHILE [condition] DO [statement] (statement might not be performed at all!) Enter WHILE [c == 1] DO [statement] Condition True? Yes Statement No Exit ENTER: JNC EXIT STATEMENT: (statement) JMP ENTER EXIT: (continue) 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 8
9 WHILE/DO: SUM Subroutine [sum (A) = 0] WHILE [length (R7) > 0] DO BEGIN [sum = sum (R0)] [increment pointer] [decrement length] END 8051 code (closely structured; 13 bytes) SUM: CLR A LOOP: CJNZ R7,#0,STAM JMP EXIT STAM: ADD A,@R0 INC R0 DEC R7 JMP LOOP: EXIT: RET (loosely structured; 9 bytes) SUM: CLR A INC R7 MORE: DJNZ R7,SKIP RET SKIP: ADD A,@R0 INC R0 SJMP MORE 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 9
10 WHILE/DO Pseudo code: WHILE [ACC!= CR AND R7!= 0] DO [statement] Enter ACC!= <CR>? Yes R7!= 0? Yes Statement No No Exit 8051 code: ENTER: CJNE A,#0DH,SKIP JMP EXIT SKIP: CJNE R7,#0,STAM JMP EXIT STAM: (one or more statements).. JMP ENTER EXIT: (continue) 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 10
11 The REPEAT/UNTIL Statement REPEAT [statement] UNTIL [condition] (statement performed at least once) Enter REPEAT [statement] UNTIL [c == 1] Statement No Condition True? Yes Exit ENTER: (statement) JNC ENTER EXIT: (continue) 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 11
12 The REPEAT/UNTIL Statement REPEAT [ACC [increment pointer] UNTIL [ACC == Z or ACC == 0] Enter 8051 code: Get a char Inc pointer Yes Char = Z? Exit No Char = 0? No Yes STAM: MOV A,@R0 INC R0 JZ EXIT CJNE A,# Z,STAM EXIT: RET 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 12
13 The IF/THEN/ELSE Statement IF [condition] THEN [statement 1] ELSE [statement 2] Enter No condition true? Yes Statement 2 Statement 1 Exit 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 13
14 The IF/THEN/ELSE Statement [input character] IF [input character == graphic] THEN [echo character] ELSE [echo. ] No Echo. Enter Input character Graphic char? Exit Yes Echo char 8051 code: (closely structured; 14 bytes) ENTER: ACALL INCH ACALL ISGRPH JNC STMENT2 STMENT1: ACALL OUTCH JMP EXIT STMENT2: MOV A,#. ACALL OUTCH EXIT: (continue) (loosely structured; 10 bytes) ACALL INCH ACALL ISGRPH JC SKIP MOV A,#. SKIP: ACALL OUTCH (continue) 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 14
15 The CASE Statement Enter CASE [expression] OF 0: [statement 0] 1: [statement 1] 2: [statement 2].. N: [statement 0] [default] END_CASE expression 0? No expression 1? No expression 2? No expression n? No Yes Yes Yes Yes Statement 0 Statement 1 Statement 2 Statement n default Exit 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 15
16 The CASE Statement [input a character] Enter Input character CASE [character] OF 0 : [statement 0] 1 : [statement 1] 2 : [statement 2] 3 : [statement 3] END_CASE char == 0? No char == 1? No char == 2? No char == 3? No Yes Yes Yes Yes Action 0 Action 1 Action 2 Action 3 Exit 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 16
17 The CASE Statement 8051 code: (closely structured) ACALL INCH CJNE A,# 0,SKIP1 ACT0:.. JMP EXIT SKIP1: CJNE A,# 1,SKIP2 ACT1:.. JMP EXIT SKIP2: CJNE A,# 2,SKIP3 ACT2:.. JMP EXIT SKIP3: CJNE A,# 3,EXIT ACT3:.. EXIT: (continue) (loosely structured) ACALL INCH ANL A,#3 ;reduce to 3 bits RL A MOV DPTR,#TABLE TABLE: AJMP ACT0 AJMP ACT1 AJMP ACT2 ACT3:.. JMP EXIT ACT0:.. JMP EXIT ACT1:.. JMP EXIT ACT2:.. EXIT: (continue) 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 17
18 The GOTO Statement GOTO statement can always be avoided by using the structures. Sometimes GOTO statement provides an easy method of terminating a structure when errors occur. GOTO statements usually becomes unconditional jump in assembly implementation. Extreme caution is needed. Never exit a subroutine using GOTO instead of normal return for the return address will be left on the stack and eventually stack overflow will occur. 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 18
19 Pseudo Code Syntax Tips of using pseudo code: Use descriptive language for statements Avoid machine dependency in statements Enclose conditions & statements in brackets: [] Begin all subroutines with their names followed by a set of parameters: () End all subroutine with RETURN () Use lower text except reserved words & subroutine names Indent all statements from the structure entry points and exit points Use the commercial at sign (@) for indirect addressing 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 19
20 Suggested Pseudo Code Syntax Reserved words: BEGIN END REPEAT UNTIL WHILE DO IF THEN ELSE CASE OF RETURN Arithmetic operators: + addition - subtraction * multiplication / division % modulus (remainder after division) 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 20
21 Suggested Pseudo Code Syntax Relational operators: == true if values equal to each other!= true if values not equal to each other < true if first value less than second <= true if first value <= second > true if first value > second >= true if first value >= second && true if both values are true true if either value is true Bitwise Logical operators: & logical AND logical OR ^ logical XOR ~ logical NOT (one s complement) >> logical shift right << logical shift left 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 21
22 Suggested Pseudo Code Syntax Assignment operators: = set equal to op = assign operator shorthand where op is one of + - * / % << >> & ^ Precedence operators: ( ) Indirect 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 22
23 Suggested Pseudo Code Syntax Operator Precedence: ( ) * / % + - << >> < <= > >= ==!= & ^ && = += -= *= /= etc 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 23
24 Suggested Pseudo Code Syntax Structures: Statement: [do something] Statement block: BEGIN [statement] [statement] END WHILE/DO: WHILE [condition] DO [statement] 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 24
25 Suggested Pseudo Code Syntax REPEAT/UNTIL: REPEAT [statement] UNTIL [condition] IF/THEN/ELSE: IF [condition] THEN [statement 1] (ELSE [statement 2]) CASE/OF: CASE [expression] OF 1: [statement 1] 2: [statement 2] 3: [statement 3].. n: [statement n] [default] END 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 25
26 Assembly Language Programming Labels Use labels that are descriptive of the destination they represent Comments Use comments wherever possible Comment conditional jump instructions using a question similar to the flowchart Comment Blocks At the beginning of each subroutine: name of the sub, operations, entry conditions, exit conditions, name of other subroutines used, name of registers affected, etc. 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 26
27 INLINE SUBROUTINE EXAMPLE ;*************************************************************************************** ; ;INLINE INPUT LINE OF CHARACTERS ; LINE MUST END WITH <CR> ; MAXIMUM LENGTH 31 CHARACTERS INCLUDE <CR> ; ;ENTER: NO CONDITIONS ;EXIT: ASCII CODES IN INTERNAL DATA RAM ; 0 STORED AT END OF LINE ;USES INCHAR, OUTCHR ; ;**************************************************************************************** INLINE: PUSH 00H ;SAVE R0 ON STACK PUSH 07H ;SAVE R7 ON STACK PUSH ACC ;SAVE ACCUMULATOR MOV R0,#60H ;SET UP BUFFER AT 60H MOV R7,#31 ;MAX LENGTH OF LINE STMENT: ACALL INCHAR ;INPUT A CHARACTER ACALL OUTCHR ;ECHO TO CONSOLE ;STORE IN BUFFER 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 27
28 INLINE SUBROUTINE EXAMPLE INLINE: PUSH 00H ;SAVE R0 ON STACK PUSH 07H ;SAVE R7 PUSH ACC ;SAVE ACCUMULATOR MOV R0,#60H ;SET UP BUFFER AT 60H MOV R7,#31 ;MAX LENGTH OF LINE STMENT: ACALL INCHAR ;INPUT A CHARACTER ACALL OUTCHR ;ECHO TO CONSOLE ;STORE IN BUFFER INC R0 ;INC BUFFER POINTER DEC R7 ;DEC LENGTH COUNTER CJNE A,#0DH, SKIP ;IS CHAR = <CR>? SJMP EXIT ;YES, EXIT SKIP: CJNE R7,#0,STMENT ;NO, GET ANOTHER CHAR EXIT: ;END WITH NULL CHAR POP ACC ;RESTORE REGISTERS FROM POP 07H ;STACK POP 00H RET 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 28
29 INLINE SUBROUTINE EXAMPLE ;******************************************************************************************** ; INCHR - INput CHaRacter from serial port ; enter: no condition ; exit: ASCII code in ACC.0 to ACC.6; ACC.7 cleared; ctrl-c aborts ; to prompt ;******************************************************************************************** INCHR: JB X13_BIT,IN1 ;if x13 installed, use interrupt flag RI JNB r_flag,$ ;wait for receive_flag to be set CLR ET1 ;begin critical section CLR r_flag ;>>> clear receive_flag and MOV A,r_buff ;>>> read receive_buffer SETB ET1 ;end critical section SJMP IN2 ; ;if x13 is not installed, test RI flag IN1: JNB RI,$ ;wait for receive interrupt RI CLR RI ;clear RI flag MOV A,SBUF ;done! IN2: CLR ACC.7 ;clear parity bit (o error checking) CJNE A,#ETX, IN3 ;if ctrl-c, JMP GETCMD ;warm start IN3: RET 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 29
30 INLINE SUBROUTINE EXAMPLE ;******************************************************************************************* * ; OUTCHR - OUTput CHaRacter to serial port with odd parity added in ; ACC.7 ; enter: ASCII code in ACC ; exit:. Character written to SBUF; <CR> sent as <CR><LF>; all ; registers intact ;******************************************************************************************* * RSEG EPROM OUTCHR: PUSH A NL: MOV C,P ;if x13 installed, use interrupt flag RI CPL C ;add odd parity MOV ACC.7,C JB X13_BIT,OUT1 ;if x13 installed, use interrupt JNB t_flag,$ ;wait for transmitter ready CLR ET1 ;begin critical section CLR t_flag ;>>> clear flag and MOV t_buff,a ;>>> load data to transmit SETB ET1 ;end critical section SJMP OUT2 ; 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 30
31 INLINE SUBROUTINE EXAMPLE RSEG EPROM OUTCHR: PUSH A NL: MOV C,P CPL C ;add odd parity MOV ACC.7,C JB X13_BIT,OUT1 ;if x13 installed, use interrupt JNB t_flag,$ ;wait for transmitter ready CLR ET1 ;begin critical section CLR t_flag ;>>> clear flag and MOV t_buff,a ;>>> load data to transmit SETB ET1 ;end critical section SJMP OUT2 ; ;if x13 is not installed, test TI flag OUT1: JNB TI,$ ;wait for transmitter ready CLR TI ;clear TI flag MOV SBUF,A ;done! OUT2: CLR ACC.7 ;remove parity bit CJNE A,#CR, OUT3 ;if <CR>? MOV A,#LF ;yes, add <LF> and send it JMP NL ;warm start OUT3: POP A ;no restore A and JNB p_bit,out4 ;check if send to print CALL PCHAR ;yes, send to printer OUT4: RET ;no, done and return 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 31
32 Assembly Language Programming Saving Registers on the Stack Especially for nested subroutine calls, and building complex programs using subroutine building blocks. Avoid changing the working registers when returns. The Use of Equates Defining constants with equates makes programs easier o read and maintain. The Use of Subroutines Divide and Conquer subdivide large and complex operations into small and simple operations. These small and simple operations are programmed as subroutines and used as building blocks of the large complex program. 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 32
33 OUTSTR SUBROUTINE EXAMPLE OUTSTR OUTCHR Enter Enter Get a char From string Char!= 0? Yes OUTCHR Exit No Add odd parity To character TX buffer empty? Yes Clear flag Write character To transmitter No Inc pointer Clear parity bit Exit 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 33
34 OUTSTR SUBROUTINE EXAMPLE Pseudo code for OUTCHR OUTCHR (char) [put odd parity in bit 7] REPEAT [test transmit buffer] UNTIL [buffer empty] [clear transmit buffer empty flag] [move char to transmit buffer] [clear parity bit] RETURN () Pseudo code for OUTSTR OUTSTR (pointer) WHILE [(char 0] BEGIN OUTCHR(char) [increment pointer] END RETURN() 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 34
35 OUTSTR SUBROUTINE EXAMPLE ;**************************************************************************************** ;OUTCHR: OUTPUT A CHAR IN ACC W. ODD PARITY VIA ; SERIAL PORT ;ENTER: NO CONDITION, ASCII CHAR IN ACC ;EXIT: ASCII CODE W. ODD PARITY SENT OUT & ACC.7=0 ;*************************************************************************************** OUTCHR: MOV C,P ;PUT PARITY BIT IN C FLAG CPL C ;CHANGE TO ODD PARITY MOV ACC.7,C ;ADD TO CHAR AGAIN: JNB TI,AGAIN ;TX EMPTY? CLR TI ;YES, CLEAR FLAG AND MOV SBUF,A ;SEND OUT CHARACTER CLR ACC.7 ;STRIP OFF PARITY BIT AND RET ;RETURN ;**************************************************************************************** ;USES OUTCHR ; OUTSTR: MOV A,@DPTR ;GET CHARACTER JZ EXIT ;IF 0, DONE AND EXIT CALL OUTCHR ;OTHERWISE SEND IT INC DPTR ;INC POINTER SJMP OUTSTR 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 35 EXIT: RET
36 Assembly Language Programming Program Organization Equates Initialization instructions Main body of program Subroutines Data constant definitions (DB and DW) RAM data locations defined using the DS directive 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 36
37 Tools & Techniques for Program Development The Development Cycle 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 37
38 Specifying Software User interface: how the user will interact with and control the system Detail system operations below the user level independent of user interface Modularized system function with inter-module communication Interrupt driven, ISR, time-critical subroutine 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 38
39 Designing Software Flowcharts Pseudo code Editing and Translation Assemble time errors checking: syntax errors only 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 39
40 Preliminary Testing Run time errors will not appear until the program is executed by a simulator or in the target system. Debugger a system program that executes a user program for the purpose of finding run-time errors. Debugger can set breakpoints, singlestepping, examine and modify registers, memories, etc. during program execution 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 40
41 Hardware Development Specifying hardware: assign quantitative data to system functions, physical size/weight, CPU speed, memory, I/O ports, optional features, etc. Designing Hardware: breadboarding, wire-wrapping, PCB layout practice makes perfect 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 41
42 Hardware Development Preliminary Testing: Visual checks before power applied Continuity checks ohmmeter check each connecting wire, IC pin to IC pin DC measurements no ICs, DC voltages varied AC measurements IC installed, verify clock signals, and so on Functionality Testing drive RESET w a low f (1 khz) square wave, write test software or monitor program to debug each function of the hardware board 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 42
43 Detailed Steps in the Development Cycle 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 43
44 Integration and Verification Hardware Software Integration test Software Simulation simulator Hardware Emulation hardware emulator or in-circuit emulator (ICE) Execution from RAM effective & simple testing for software in the target system 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 44
45 Intel Hexadecimal Format Field Bytes Description Record mark 1 : indicates start-of-record Record length 2 Number of data bytes in record Load address 4 Start address for data bytes Record type 2 00 = data record; 01 = end record Data bytes 0-16 data Checksum 2 Sum of all bytes in record + checksum = /12/7 T. L. Jong, Dept. of E.E., NTHU 45
46 Intel Hexadecimal Format 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 46
47 Integration and Verification Executing from EPROM firmware burnt in EPROM using EPROM writer Executing from on-chip flash (8952), EPROM (8752), EEPROM, (OTP, MTP) using Universal Programmer/Writer The Factory Mask ROM for mass production Executing from SRAM downloaded from host into the SBC /12/7 T. L. Jong, Dept. of E.E., NTHU 47
48 The Development Environment 2011/12/7 T. L. Jong, Dept. of E.E., NTHU 48
Microcontroller Intel [Instruction Set]
Microcontroller Intel 8051 [Instruction Set] Structure of Assembly Language [ label: ] mnemonic [operands] [ ;comment ] Example: MOV R1, #25H ; load data 25H into R1 2 8051 Assembly Language Registers
More informationArchitecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller
of 8085 microprocessor 8085 is pronounced as "eighty-eighty-five" microprocessor. It is an 8-bit microprocessor designed by Intel in 1977 using NMOS technology. It has the following configuration 8-bit
More information8051 Overview and Instruction Set
8051 Overview and Instruction Set Curtis A. Nelson Engr 355 1 Microprocessors vs. Microcontrollers Microprocessors are single-chip CPUs used in microcomputers Microcontrollers and microprocessors are different
More informationProgramming of 8085 microprocessor and 8051 micro controller Study material
8085 Demo Programs Now, let us take a look at some program demonstrations using the above instructions Adding Two 8-bit Numbers Write a program to add data at 3005H & 3006H memory location and store the
More informationMicroprocessors 1. The 8051 Instruction Set. Microprocessors 1 1. Msc. Ivan A. Escobar Broitman
Microprocessors 1 The 8051 Instruction Set Microprocessors 1 1 Instruction Groups The 8051 has 255 instructions Every 8-bit opcode from 00 to FF is used except for A5. The instructions are grouped into
More informationEmbedded Controller Programming
Embedded Controller Programming Counters, Timers and I/O in Assembly Language Ken Arnold Copyright 2000-2004 Ken Arnold 1 Outline Timer/Counters Serial Port More 8051 Instructions Examples Copyright 2000-2004
More informationContents 8051 Instruction Set BY D. BALAKRISHNA, Research Assistant, IIIT-H Chapter I : Control Transfer Instructions Lesson (a): Loop Lesson (b): Jump (i) Conditional Lesson (c): Lesson (d): Lesson (e):
More information8051 Microcontroller
8051 Microcontroller EE4380 Fall 2001 Pari vallal Kannan Center for Integrated Circuits and Systems University of Texas at Dallas 8051 Architecture Programmer s View Register Set Instruction Set Memory
More informationDigital Blocks Semiconductor IP
Digital Blocks Semiconductor IP DB805C-FSM 805 Microcontroller FSM Finite State Machine General Description The Digital Blocks DB805C-FSM IP Core contains Digital Blocks compact DB805C CPU Core & GPIO
More informationDigital Blocks Semiconductor IP
805 SFR Bus Digital Blocks Semiconductor IP 805 Microcontroller Configurable Peripherals General Description The Digital Blocks (Configurable Peripherals) Microcontroller Verilog IP Core is complaint with
More informationDigital Blocks Semiconductor IP
Digital Blocks Semiconductor IP 805 Microcontroller General Description The Digital Blocks Microcontroller Verilog IP Core is complaint with the MCS 5 Instruction Set and contains standard 805 MCU peripherals,
More informationMemory organization Programming model - Program status word - register banks - Addressing modes - instruction set Programming examples.
MICROCONTROLLERS AND APPLICATIONS 1 Module 2 Module-2 Contents: Memory organization Programming model - Program status word - register banks - Addressing modes - instruction set Programming examples. MEMORY
More informationMicrocontroller. Instruction set of 8051
UNIT 2: Addressing Modes and Operations: Introduction, Addressing modes, External data Moves, Code Memory, Read Only Data Moves / Indexed Addressing mode, PUSH and POP Opcodes, Data exchanges, Example
More informationModule Contents of the Module Hours COs
Microcontrollers (EE45): Syllabus: Module Contents of the Module Hours COs 1 8051 MICROCONTROLLER ARCHITECTURE: Introduction to Microprocessors and Microcontrollers, the 8051 Architecture, 08 1 and pin
More informationUNIT 2 THE 8051 INSTRUCTION SET AND PROGRAMMING
UNIT 2 THE 8051 INSTRUCTION SET AND PROGRAMMING Instructions Alphabetical List of Instructions ACALL: Absolute Call ADD, ADDC: Add Accumulator (With Carry) AJMP: Absolute Jump ANL: Bitwise AND CJNE: Compare
More informationIntroduction To MCS-51
Introduction To MCS-51 By Charoen Vongchumyen Department of Computer Engineering Faculty of Engineering KMITLadkrabang 8051 Hardware Basic Content Overview Architechture Memory map Register Interrupt Timer/Counter
More informationSN8F5000 Family Instruction Set
SONiX Technology Co., Ltd. 8051-based Microcontroller 1 Overview SN8F5000 is 8051 Flash Type microcontroller supports comprehensive assembly instructions and which are fully compatible with standard 8051.
More informationProgramming Book Microcontroller Kit. Rev 3.0 January, Wichit Sirichote
Programming Book1 8051 Microcontroller Kit Rev 3.0 January, 016 016 Wichit Sirichote 1 Contents Overview...3 SAFTY INFORMATION...3 Tools...3 Experiment 1 Blinking LED...4 Experiment Binary number counting...9
More informationQ. Classify the instruction set of 8051 and list out the instructions in each type.
INTRODUCTION Here is a list of the operands and their meanings: A - accumulator; Rn - is one of working registers (R0-R7) in the currently active RAM memory bank; Direct - is any 8-bit address register
More information8051 Single Board Monitor Programming. Minmon - Yeralan & Ahluwalia. PaulMon1 & PaulMon2 - Paul Stoffregen
8051 Single Board Monitor Programming Monitor Program Available Monitor Program Minmon - Yeralan & Ahluwalia Programming and Interfacing the 8051 Microcontroller PaulMon1 & PaulMon2 - Paul Stoffregen http://www.pjrc.com/tech/8051
More informationPrinciple and Interface Techniques of Microcontroller
Principle and Interface Techniques of Microcontroller --8051 Microcontroller and Embedded Systems Using Assembly and C LI, Guang ( 李光 ) Prof. PhD, DIC, MIET WANG, You ( 王酉 ) PhD, MIET 杭州 浙江大学 2014 Chapter
More informationET2640 Microprocessors
ET2640 Microprocessors Unit -2 Processor Programming Concepts Basic Control Instructor : Stan Kong Email : skong@itt-tech.edu Figure 2 4 Bits of the PSW Register 8051 REGISTER BANKS AND STACK 80 BYTES
More informationWhat Registers are available? Programming in Assembler. Assembler Programming - like early Basic. Assembler Data Movement Instructions
Programming in Assembler Need knowledge of CPU 8051 Programmers model what registers are available? what memory is available? code memory (for programs) data memory (for variables and the stack) what instructions
More informationDodatak. Skup instrukcija
Dodatak Skup instrukcija Arithmetic Operations [@Ri] implies contents of memory location pointed to by R0 or R1 Rn refers to registers R0-R7 of the currently selected register bank 2 ADD A,
More informationPrinciple and Interface Techniques of Microcontroller
Principle and Interface Techniques of Microcontroller --8051 Microcontroller and Embedded Systems Using Assembly and C LI, Guang ( 李光 ) Prof. PhD, DIC, MIET WANG, You ( 王酉 ) PhD, MIET 杭州 浙江大学 2011 Chapter
More informationEEE3410 Microcontroller Applications Department of Electrical Engineering Lecture 4 The 8051 Architecture
Department of Electrical Engineering Lecture 4 The 8051 Architecture 1 In this Lecture Overview General physical & operational features Block diagram Pin assignments Logic symbol Hardware description Pin
More informationUNIT THE 8051 INSTRUCTION SET AND PROGRAMMING
UNIT THE 8051 INSTRUCTION SET AND PROGRAMMING Instructions Alphabetical List of Instructions ACALL: Absolute Call ADD, ADDC: Add Accumulator (With Carry) AJMP: Absolute Jump ANL: Bitwise AND CJNE: Compare
More informationControl Transfer Instructions Jump, Loop, and Call. ECE473/573 Microprocessor System Design, Dr. Shiue
Control Transfer Instructions Jump, Loop, and Call 1 Jump Instructions JZ label ; Jump if A=0 JNZ label ; Jump if A!=0 DJNZ reg, label ; Decrement and Jump if A (or reg.)!=0 CJNE A, byte ; Compare and
More informationAssembly Language programming (2)
EEE3410 Microcontroller Applications LABORATORY Experiment 2 Assembly Language programming (2) Name Class Date Class No. Marks Arithmetic, Logic and Jump instructions Objectives To learn and practice the
More informationHighlights. FP51 (FPGA based 1T 8051 core)
Copyright 2017 PulseRain Technology, LLC. FP51 (FPGA based 1T 8051 core) 10555 Scripps Trl, San Diego, CA 92131 858-877-3485 858-408-9550 http://www.pulserain.com Highlights 1T 8051 Core Intel MCS-51 Compatible
More informationInstruction Set Of 8051
Instruction Set Of 8051 By Darshan Patel M.Tech (Power Electronics & Drives) Assistant Professor, Electrical Department Sankalchand Patel college of Engineering-Visnagar Introduction The process of writing
More information8051 Microcontroller Assembly Programming
8051 Microcontroller Assembly Programming EE4380 Fall 2002 Class 3 Pari vallal Kannan Center for Integrated Circuits and Systems University of Texas at Dallas Topics Machine code 8051 Addressing Modes
More informationAssembly Language programming (3)
EEE3410 Microcontroller Applications LABORATORY Experiment 3 Assembly Language programming (3) Name Class Date Class No. Marks Conditional Program Branching and Subroutine Call in 8051 Objectives To learn
More informationDR bit RISC Microcontroller. Instructions set details ver 3.10
DR80390 8-bit RISC Microcontroller Instructions set details ver 3.10 DR80390 Instructions set details - 2 - Contents 1. Overview 7 1.1. Document structure. 7 2. Instructions set brief 7 2.1. Instruction
More information~: Simple Programs in 8051 assembly language :~
~: Simple Programs in 8051 assembly language :~ Here some simple programs of 8051 are given to understand the operation of different instructions and to understand the logic behind particular program.
More informationChapter Family Microcontrollers Instruction Set
Chapter 4 8051 Family Microcontrollers Instruction Set Lesson 5 Program Flow Control and Interrupt Flow Control Instructions 2 Branch instructions- Jump to new value of Program Counter (PC) LJMP address16
More informationTUTORIAL Assembly Language programming (2)
8051 Assembly Language programming (2) TUTORIAL 4 EEE3410 Microcontroller Applications 1. Write the instructions to move value 34h into register A and value 3Fh into register B, then add them together.
More informationDragonchip. Instruction Set Manual
Dragonchip Instruction Set Manual Version 3.1 July 2004 The Objective of this document is to provide the user a detail description to the each instruction set used in Dragonchip s MCU family. There are
More information8051 Programming using Assembly
8051 Programming using Assembly The Instruction Addressing Modes dest,source ; dest = source A,#72H ;A=72H A, # r ;A= r OR 72H R4,#62H ;R4=62H B,0F9H ;B=the content of F9 th byte of RAM DPTR,#7634H DPL,#34H
More informationC51 Family. Architectural Overview of the C51 Family. Summary
Architectural Overview of the C51 Family C51 Family Summary 1. Introduction............................................................ I.1. 1.1. TSC80C51/80C51/80C31.................................................................
More informationMICROPROCESSOR LABORATORY MANUAL
MICROPROCESSOR LABORATORY MANUAL T.C. AYDIN ADNAN MENDERES UNIVERSITY ENGINEERING FACULTY ELECTRICAL & ELECTRONICS ENGINEERING DEPARTMENT Prepared by: Res. Asst. Abdullah GÜLDEREN Aydın 2019 Contents 1.
More information8051 Microcontrollers
8051 Microcontrollers Richa Upadhyay Prabhu NMIMS s MPSTME richa.upadhyay@nmims.edu March 15, 2016 8051 INSTRUCTIONS JUMP, LOOP AND CALL INSTRUCTIONS 8051 INSTRUCTIONS Repeating a sequence of instructions
More informationINSTRUCCIONES ARITMETICAS ERROR! MARCADOR NO DEFINIDO.
INSTRUCCIONES ARITMETICAS ERROR! MARCADOR NO DEFINIDO. ADD A,Rn Add register to 28..2F 1 12 X X X accumulator ADD A,direct Add direct byte 25 2 12 X X X to accumulator ADD A,@Ri Add indirect RAM 26..27
More informationCHAPTER 3 JUMP, LOOP, AND CALL INSTRUCTIONS
CHAPTER 3 JUMP, LOOP, AND CALL INSTRUCTIONS Looping Repeating a sequence of instructions a certain number of times is called a loop Loop action is performed by DJNZ reg, Label The register is decremented
More informationCoE3DJ4 Digital Systems Design. Chapter 5: Serial Port Operation
CoE3DJ4 Digital Systems Design Chapter 5: Serial Port Operation Serial port 8051 includes an on-chip serial port Hardware access to the port is through TXD and RXD (Port 3 bits 1 and 0) Serial port is
More informationNAME as31 - An Intel 8031/8051 assembler. SYNOPSIS as31 [-h] [-l] [-s] [-v] [-Aarg] [-Ffmt] [-Ofile] infile.asm
NAME as31 - An Intel 8031/8051 assembler SYNOPSIS as31 [-h] [-l] [-s] [-v] [-Aarg] [-Ffmt] [-Ofile] infile.asm DESCRIPTION As31 assembles infile.asm into one of several different output formats. The output
More informationUNIT-III ASSEMBLY LANGUAGE PROGRAMMING. The CPU can access data in various ways, which are called addressing modes
8051 Software Overview: 1. Addressing Modes 2. Instruction Set 3. Programming 8051 Addressing Modes: UNIT-III ASSEMBLY LANGUAGE PROGRAMMING The CPU can access data in various ways, which are called addressing
More informationIt is possible to define a number using a character or multiple numbers (see instruction DB) by using a string.
1 od 5 17. 12. 2017 23:53 (https://github.com/schweigi/assembler-simulator) Introduction This simulator provides a simplified assembler syntax (based on NASM (http://www.nasm.us)) and is simulating a x86
More informationSYLLABUS UNIT - I 8086/8088 ARCHITECTURE AND INSTRUCTION SET
1 SYLLABUS UNIT - I 8086/8088 ARCHITECTURE AND INSTRUCTION SET Intel 8086/8088 Architecture Segmented Memory, Minimum and Maximum Modes of Operation, Timing Diagram, Addressing Modes, Instruction Set,
More informationContents. Join the Technical Community Today!
Contents CHAPTER 1: INTRODUCTION... 5 1. WELCOME... 5 1.2 PS 8051 BOARD OVERVIEW... 6 1.3 PS 8051 SPECIFICATIONS... 7 CHAPTER 2: SYSTEM DESCRIPTION... 9 2.1 HARDWARE... 9 2.2 MAPPING OF DEVICES... 11 2.2.1
More informationMASSEY UNIVERSITY PALMERSTON NORTH CAMPUS
MASSEY UNIVERSITY PALMERSTON NORTH CAMPUS EXAMINATION FOR 159.233 COMPUTER SYSTEMS Semester One June 2008 Time allowed: THREE (3) hours This exam contains THREE (3) questions ANSWER ALL THREE (3) QUESTIONS
More informationLab-Report Microprocessors
Lab-Report Microprocessors Digital Voltage Meter (DVM) NO YES Name: Dirk Becker Course: BEng 2 Group: A Student No.: 9801351 Date: 05/May/1999 1. Contents 1. CONTENTS... 2 2. INTRODUCTION... 3 3. THE PROJECT...
More information2. Write an 8051 program to generate a square wave of 25 khz at pin P2.3 using XTAL = 12 MHz. Solution:
Assignment 2 1. Assume that 5 binary data items are stored in RAM locations starting at 50h, as shown below. Write a program to find the sum of all the numbers. The calculation is in 16-bit format and
More informationQuestion Bank Microprocessor and Microcontroller
QUESTION BANK - 2 PART A 1. What is cycle stealing? (K1-CO3) During any given bus cycle, one of the system components connected to the system bus is given control of the bus. This component is said to
More informationIntroduction to uc & Embedded Systems
Introduction to uc & Embedded Systems Prepared by, Tamim Roshdy Embedded Systems What is an embedded system? An embedded system is an application that contains at least one programmable computer (typically
More informationCoE3DJ4 Digital Systems Design. Chapter 6: Interrupts
CoE3DJ4 Digital Systems Design Chapter 6: Interrupts Interrupts An interrupt is the occurrence of an event that causes a temporary suspension of a program while the condition is serviced by another program.
More informationApplication Brief D-005
Interfacing the Avago HDSP-2xxx LED Alphanumeric Displays with the Intel 8751H Microcontroller Application Brief D-005 Introduction The HDSP-21xx/-25xx series of products is ideal for applications where
More informationSOEN228, Winter Revision 1.2 Date: October 25,
SOEN228, Winter 2003 Revision 1.2 Date: October 25, 2003 1 Contents Flags Mnemonics Basic I/O Exercises Overview of sample programs 2 Flag Register The flag register stores the condition flags that retain
More informationCHAPTER 6 ARITHMETIC, LOGIC INSTRUCTIONS, AND PROGRAMS
CHAPTER 6 ARITHMETIC, LOGIC INSTRUCTIONS, AND PROGRAMS Addition of Unsigned Numbers The instruction ADD is used to add two operands Destination operand is always in register A Source operand can be a register,
More informationCHAPTER ASSEMBLY LANGUAGE PROGRAMMING
CHAPTER 2 8051 ASSEMBLY LANGUAGE PROGRAMMING Registers Register are used to store information temporarily: A byte of data to be processed An address pointing to the data to be fetched The vast majority
More information8051 Microcontrollers
8051 Microcontrollers Richa Upadhyay Prabhu NMIMS s MPSTME richa.upadhyay@nmims.edu March 8, 2016 Controller vs Processor Controller vs Processor Introduction to 8051 Micro-controller In 1981,Intel corporation
More informationPractical Malware Analysis
Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the
More informationTUTORIAL. Donal Heffernan University of Limerick May Tutorial D.Heffernan 2000,
8051 TUTORIAL Donal Heffernan University of Limerick May-2002 8051 Tutorial D.Heffernan 2000, 2001 1 Blank 8051 Tutorial D.Heffernan 2000, 2001 2 Some reference material: Test books + MacKenzie Scott.
More informationPractical Course File For
Practical Course File For Microprocessor (IT 473) B.Tech (IT) IV-SEM Department of IT University Institute of Engineering & Technology Panjab University, Chandigarh Page 1 INTRODUCTION... 4 EXPERIMENT-1:
More informationCPEG300 Embedded System Design. Lecture 3 Memory
CPEG300 Embedded System Design Lecture 3 Memory Hamad Bin Khalifa University, Spring 2018 Review Von Neumann vs. Harvard architecture? System on Board, system on chip? Generic Hardware Architecture of
More informationJUMP, LOOP AND CALL INSTRUCTIONS
JUMP, LOOP AND CALL INSTRUCTIONS After you have understood the tutorial on Introduction to assembly language which includes simple instruction sets like input/output operations, now it s time to learn
More information80C451 operation of port 6
INTRODUCTION The features of the are shared with the 80C5 or are conventional except for the operation of port 6. The flexibility of this port facilitates high-speed parallel data communications. This
More informationMicrocontroller and Applications
S.Y. Diploma : Sem. IV [DE/EJ/ET/EN/EX/EQ/IS/IC/IE] Microcontroller and Applications Time: 3 Hrs.] Prelim Question Paper Solution [Marks : 70 Q.1 Attempt any FIVE of the following : [10] Q.1(a) Define
More informationSPRING TERM BM 310E MICROPROCESSORS LABORATORY PRELIMINARY STUDY
BACKGROUND 8086 CPU has 8 general purpose registers listed below: AX - the accumulator register (divided into AH / AL): 1. Generates shortest machine code 2. Arithmetic, logic and data transfer 3. One
More informationAVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo
AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo 1 Lecture Overview AVR ISA AVR Instructions & Programming (I) Basic construct implementation 2 Atmel AVR 8-bit RISC architecture
More informationMr. Sapan Naik 1. Babu Madhav Institute of Information Technology, UTU
5 Years Integrated M.Sc.(IT) Semester 4 060010402 System Programming Question Bank Unit 1: Introduction 1. Write the decimal equivalent for each integral power of 2 from 2! to 2!". 2. Convert the following
More informationMicrocomputer Architecture and Programming
IUST-EE (Chapter 1) Microcomputer Architecture and Programming 1 Outline Basic Blocks of Microcomputer Typical Microcomputer Architecture The Single-Chip Microprocessor Microprocessor vs. Microcontroller
More informationCPEG300 Embedded System Design. Lecture 6 Interrupt System
CPEG300 Embedded System Design Lecture 6 Interrupt System Hamad Bin Khalifa University, Spring 2018 Correction Lecture 3, page 18: Only direct addressing mode is allowed for pushing or popping the stack:
More information8051 microcontrollers
8051 microcontrollers Presented by: Deepak Kumar Rout Synergy Institute of Engineering and Technology, Dhenkanal Chapter 2 Introduction Intel MCS-51 family of microcontrollers consists of various devices
More informationELEG3923 Microprocessor Ch.6 Arithmetic and Logics
Department of Electrical Engineering University of Arkansas ELEG3923 Microprocessor Ch.6 Arithmetic and Logics Dr. Jingxian Wu wuj@uark.edu OUTLINE 2 Arithmetic instructions Signed number operations Logic
More informationORG ; TWO. Assembly Language Programming
Dec 2 Hex 2 Bin 00000010 ORG ; TWO Assembly Language Programming OBJECTIVES this chapter enables the student to: Explain the difference between Assembly language instructions and pseudo-instructions. Identify
More informationreply db y prompt db Enter your favourite colour:, 0 colour db 80 dup(?) i db 20 k db? num dw 4000 large dd 50000
Declaring Variables in Assembly Language As in Java, variables must be declared before they can be used Unlike Java, we do not specify a variable type in the declaration in assembly language Instead we
More informationMODEL ANSWER SUBJECT- MICROCONTROLLER(12187) CLASS-EJ5E CLASS TEST-02 Q1.)Attempt any THREE of the following.
MODEL ANSWER SUBJECT- MICROCONTROLLER(12187) CLASS-EJ5E CLASS TEST-02 Q1.)Attempt any THREE of the following. (9M) 1) Describe the instructions SWAP A and MOVX@DPTR,A with one example. (3Marks) SWAP A
More informationHardware Setups for Communication with a DS1267
Maxim > Design Support > Technical Documents > Application Notes > Digital Potentiometers > APP 409 Maxim > Design Support > Technical Documents > Application Notes > General Engineering Topics > APP 409
More informationComputer Organization and Architecture, Pt. 2
Computer Organization and Architecture, Pt. 2 Charles Abzug, Ph.D. Department of Computer Science James Madison University Harrisonburg, VA 22807 Voice Phone: 540-568-8746, E-mail: CharlesAbzug@ACM.org
More informationMAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) MODEL ANSWER
MODEL ANSWER SUMMER 17 EXAMINATION Subject Title: Microprocessor Subject Code: 17443 I m p o r t a n t I n s t r u c t i o n s t o e x a m i n e r s : 1) The answers should be examined by key words and
More informationVARDHAMAN COLLEGE OF ENGINEERING (AUTONOMOUS) Shamshabad, Hyderabad
Introduction to MS-DOS Debugger DEBUG In this laboratory, we will use DEBUG program and learn how to: 1. Examine and modify the contents of the 8086 s internal registers, and dedicated parts of the memory
More informationMICROCONTROLLER AND PLC LAB-436 SEMESTER-5
MICROCONTROLLER AND PLC LAB-436 SEMESTER-5 Exp:1 STUDY OF MICROCONTROLLER 8051 To study the microcontroller and familiarize the 8051microcontroller kit Theory:- A Microcontroller consists of a powerful
More informationEE 5340/7340 Motorola 68HC11 Microcontroler Lecture 1. Carlos E. Davila, Electrical Engineering Dept. Southern Methodist University
EE 5340/7340 Motorola 68HC11 Microcontroler Lecture 1 Carlos E. Davila, Electrical Engineering Dept. Southern Methodist University What is Assembly Language? Assembly language is a programming language
More informationSummary: Direct Code Generation
Summary: Direct Code Generation 1 Direct Code Generation Code generation involves the generation of the target representation (object code) from the annotated parse tree (or Abstract Syntactic Tree, AST)
More informationFACULTY OF ENGINEERING LAB SHEET
FACULTY OF ENGINEERING LAB SHEET MICROCONTROLLER AND MICROPROCESSOR SYSTEMS ECE2216 TRIMESTER 1 (2017/2018) MP2: Construction and programming of a basic electronic piano *Note: On-the-spot evaluation may
More informationAssembly Language Programming of 8085
Assembly Language Programming of 8085 1. Introduction A microprocessor executes instructions given by the user Instructions should be in a language known to the microprocessor Microprocessor understands
More informationAssembly Language Programming of 8085
Assembly Language Programming of 8085 Topics 1. Introduction 2. Programming model of 8085 3. Instruction set of 8085 4. Example Programs 5. Addressing modes of 8085 6. Instruction & Data Formats of 8085
More informationINTEGRATED CIRCUITS. AN408 80C451 operation of port 6
INTEGRATED CIRCUITS March 1988 INTRODUCTION The features of the are shared with the 80C51 or are conventional except for the operation of port 6. The flexibility of this port facilitates high-speed parallel
More informationAssembly Language programming (1)
EEE3410 Microcontroller Applications LABORATORY Experiment 1 Assembly Language programming (1) Name Class Date Class No. Marks Familiarisation and use of 8051 Simulation software Objectives To learn how
More informationET355 Microprocessors Thursday 6:00 pm 10:20 pm
ITT Technical Institute ET355 Microprocessors Thursday 6:00 pm 10:20 pm Unit 4 Chapter 6, pp. 139-174 Chapter 7, pp. 181-188 Unit 4 Objectives Lecture: BCD Programming Examples of the 805x Microprocessor
More informationInstruction Sets: Characteristics and Functions Addressing Modes
Instruction Sets: Characteristics and Functions Addressing Modes Chapters 10 and 11, William Stallings Computer Organization and Architecture 7 th Edition What is an Instruction Set? The complete collection
More informationAVR ISA & AVR Programming (I)
AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo Week 1 1 Lecture Overview AVR ISA AVR Instructions & Programming (I) Basic construct implementation Week 1 2 1 Atmel AVR 8-bit
More informationAVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo
AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo 1 Lecture Overview AVR ISA AVR Instructions & Programming (I) Basic construct implementation 2 Atmel AVR 8-bit RISC architecture
More information1. Write A Program to move a block of data within the internal RAM
UNIT 2: Example Programs. 1. Write A Program to move a block of data within the internal RAM Org 0h start1: mov r0,#40h ;r0 pointed to internal RAM 40h mov r1,#30h ;r1 pointing to internal RAM 030h mov
More informationMODEL ANSWER SUMMER 17 EXAMINATION Subject Title: Microcontroller and Applications Subject Code:
MODEL ANSWER SUMMER 17 EXAMINATION Subject Title: Microcontroller and Applications Subject Code: I m p o r t a n t I n s t r u c t i o n s t o e x a m i n e r s : 1) The answers should be examined by key
More informationELEG3923 Microprocessor Ch.2 Assembly Language Programming
Department of Electrical Engineering University of Arkansas ELEG3923 Microprocessor Ch.2 Assembly Language Programming Dr. Jingxian Wu wuj@uark.edu OUTLINE 2 Inside 8051 Introduction to assembly programming
More informationELEG3923 Microprocessor Ch.9 Timer Programming
Department of Electrical Engineering University of Arkansas ELEG3923 Microprocessor Ch.9 Timer Programming Dr. Jingxian Wu wuj@uark.edu OUTLINE 2 Programming 8051 Timers Counter programming Timer programming
More information8051 Core Specification
8051 Core Specification Authors: Jaka Simsic Simon Teran jakas@opencores.org simont@opencores.org Rev. 0.1 August 14, 2001 First Draft www.opencores.org Rev 0.1 First Draft 1 of 26 Revision History Rev.
More informationWINTER 14 EXAMINATION
Subject Code: 17534 WINTER 14 EXAMINATION Model Answer Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2)
More information