MICROPROCESSORS AND MICROCONTROLLERS LAB

III/IV B. TECH., II SEMESTER STUDENT OBSERVATION MANUAL

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

VEMU INSTITUTE OF TECHNOLOGY Tirupati - Chittoor Highway Road, P. Kothakota, Chittoor- 517 112.

JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY ANANTAPUR VEMU INSTITUTE OF TECHNOLOGY DEPT. OF ELECTRONICS AND COMMUNICATION ENGINEERING Vision of the institute To be a premier institute for professional education producing dynamic and vibrant force of technocrat with competent skills, innovative ideas and leadership qualities to serve the society with ethical and benevolent approach. Mission of the institute Mission_1: To create a learning environment with state-of-the art infrastructure, well equipped laboratories, research facilities and qualified senior faculty to impart high quality technical education. Mission_2: To facilitate the learners to foster innovative ideas, inculcate competent research and consultancy skills through Industry-Institute Interaction. Mission_3: To develop hard work, honesty, leadership qualities and sense of direction in rural youth by providing value based education. Vision of the Department To become a centre of excellence in the field of Electronics and Communication Engineering and produce graduates with Technical Skills, Research & Consultancy Competencies, Life-long Learning and Professional Ethics to meet the challenges of the Industry and Society. Mission of the Department Mission_1: To enrich Technical Skills of students through Effective Teaching and Learning practices for exchange of ideas and dissemination of knowledge. Mission_2: To enable the students with research and consultancy skill sets through state-of-the art laboratories, industry interaction and training on core & multidisciplinary technologies. Mission_3: To develop and instill creative thinking, Life-long learning, leadership qualities, Professional Ethics and social responsibilities among students by providing value based education. Programme Educational Objectives ( PEOs) PEO_1: To prepare the graduates to be able to plan, analyze and provide innovative ideas to investigate complex engineering problems of industry in the field of Electronics and Communication Engineering using contemporary design and simulation tools. PEO_2: To provide students with solid fundamentals in core and multidisciplinary domain for successful implementation of engineering products and also to pursue higher studies. PEO_3: To inculcate learners with professional and ethical attitude, effective communication skills, teamwork skills, and an ability to relate engineering issues to broader social context at work place. Programme Outcome (POs)

PO_1: Engineering knowledge: Apply the knowledge of mathematics, science, engineering fundamentals, and an engineering specialization to the solution of complex engineering problems. PO_2: Problem analysis: Identify, formulate, review research literature, and analyze complex engineering problems reaching substantiated conclusions using first principles of mathematics, natural sciences, and engineering sciences. PO_3: Design/development of solutions: Design solutions for complex engineering problems and design system components or processes that meet the specified needs with appropriate consideration for the public health and safety, and the cultural, societal, and environmental considerations. PO_4: Conduct investigations of complex problems: Use research-based knowledge and research methods including design of experiments, analysis and interpretation of data, and synthesis of the information to provide valid conclusions. PO_5: Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern engineering and IT tools including prediction and modeling to complex engineering activities with an understanding of the limitations. PO_6: The engineer and society: Apply reasoning informed by the contextual knowledge to assess societal, health, safety, legal and cultural issues and the consequent responsibilities relevant to the professional engineering practice. PO_7: Environment and sustainability: Understand the impact of the professional engineering solutions in societal and environmental contexts, and demonstrate the knowledge of, and need for sustainable development. PO_8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms of the engineering practice. PO_9: Individual and team work: Function effectively as an individual, and as a member or leader in diverse teams, and in multidisciplinary settings. PO_10: Communication: Communicate effectively on complex engineering activities with the engineering community and with society at large, such as, being able to comprehend and write effective reports and design documentation, make effective presentations, and give and receive clear instructions. PO_11: Project management and finance: Demonstrate knowledge and understanding of the engineering and management principles and apply these to one’s own work, as a member and leader in a team, to manage projects and in multidisciplinary environments. PO_12: Life-long learning: Recognize the need for, and have the preparation and ability to engage in independent and life-long learning in the broadest context of technological change.

Programme Specific Outcome (PSOs) PSO_1: Higher Education: Qualify in competitive examinations for pursuing higher education by applying the fundamental concepts of Electronics and Communication Engineering domains such as Analog & Digital Electronics, Signal Processing, Communication & Networking, Embedded Systems, VLSI Design and Control Systems etc.. PSO_2: Employment: Get employed in allied industries through their proficiency in program specific domain knowledge, specialized packages and Computer programming or become an entrepreneur.

JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY ANANTAPUR III B.Tech. II-Sem (ECE)

(15A04607) MICROPROCESSORS AND MICROCONTROLLERS LABORATORY

COURSE OUTCOMES (COs)

C327.1: Able to write 8086 assembly language programs C327.2: Make use of programmable peripheral devices and their interfacing in assembly programming C327.3: Able to write 8051 assembly language programs C327.4: Develop and simulate programs using embedded C for MSP 430 C327.5: Make use of MSP 430 and their Interfacing devices in CC Studio Part-A: MPMC Lab

List of Experiments: Note: Use MASM/8086 microprocessor kit 1. Introduction to MASM Programming. 2. Programs using arithmetic and logical operations. 3. Programs using string operations and Instruction prefix: Move Block, Reverse string, sorting, String comparison. 4. Programs for code conversion. 5. Multiplication and Division programs. 6. Sorting and multi byte arithmetic. 7. Programs using CALL and RET instructions. Part-B: Embedded C Experiments using MSP430: 1. Interfacing and programming GPIO ports in C using MSP430 (blinking LEDs, push buttons). 2. Usage of Low Power Modes: (Use MSPEXP430FR5969 as hardware platform and demonstrate the low power modes and measure the active mode and standby mode current) 3. Interrupt programming examples through GPIOs. 4. PWM generation using Timer on MSP430 GPIO. 5. Interfacing potentiometer with MSP430. 6. PWM based Speed Control of Motor controlled by potentiometer connected to MSP430 GPIO. 7. Using ULP advisor in Code Composer Studio on MSP430. 8. Low Power modes and Energy trace++: a. Enable Energy Trace and Energy Trace ++ modes in CCS b. Compute Total Energy, and Estimated lifetime of an AA battery.

VEMU INSTITUTE OF TECHNOLOGY::P.KOTHAKOTA NEAR PAKALA, CHITTOOR-517112 (Approved by AICTE, New Delhi & Affiliated to JNTUA, Anantapuramu) Department of Electronics &Communication Engineering LIST OF EXPERIMENTS TO BE CONDUCTED

Part-A: MPMC Lab

List of Experiments:

Note: Use MASM/8086 microprocessor kit

1. Introduction to MASM Programming. 2. Programs using arithmetic and logical operations. 3. Programs using string operations and Instruction prefix: Move Block, Reverse string, sorting,

String comparison. 4. Programs for code conversion. 5. Multiplication and Division programs. 6. Sorting and multi byte arithmetic.

Part-B: Embedded C Experiments using MSP430:

1. Interfacing and programming GPIO ports in C using MSP430 (blinking LEDs, push buttons). 2. Usage of Low Power Modes: (Use MSPEXP430FR5969 as hardware platform and demonstrate the low power modes and measure the active mode and standby mode current) 3. Interrupt programming examples through GPIOs. 4. PWM generation using Timer on MSP430 GPIO. 5. Interfacing potentiometer with MSP430. 6. PWM based Speed Control of Motor controlled by potentiometer connected to MSP430 GPIO. Part-C: Advanced Experiments:

Interfacing Potentiometer MSP 430

VEMU INSTITUTE OF TECHNOLOGY

P.KOTHAKOTA, NEAR PAKALA, CHITTOOR, AP

Department of Electronics &Communication Engineering

CONTENTS

S. NO. NAME OF THE EXPERIMENT PAGE NO

1 Introduction to MASM Programming. 1-6

2 Arithmetic and logical operations 6-30

3 String operations 31-39

4 Code conversion 40-45

5 Multiplication and Division 46-51

6 Sorting and multi byte arithmetic 52-63

7 Blinking an On Board Led Using MSP-430 64-65

8 Led Control Using a Switch Using MSP-430 66-67

9 Low and High Power Mode Current Measurement 68-72

10 Interrupt Programming through GPIO 73-74

11 Pulse Width Modulation with MSP 430 75-76 ADVANCED EXPERIMENTS 12 Interfacing Potentiometer MSP 430 77-78

DOS & DONTS IN LABORATORY

1. While entering the Laboratory, the students should follow the dress code (Wear shoes, White Apron & Female students should tie their hair back). 2. The students should bring their observation note book, Lab manual, record note book, calculator, and necessary stationary items. 3. While sitting in front of the system, check all the cable connections and Switch on the computer. 4. If a student notices any fluctuations in power supply, immediately the same thing is to be brought to the notice of technician/lab in charge. 5. At the end of practical class the system should be switch off safely and arrange the chairs properly. 6. Each program after completion should be written in the observation note book and should be corrected by the lab in charge on the same day of the practical class. 7. Each experiment should be written in the record note book only after getting signature from the lab in charge in the observation note book. 8. Record should be submitted in the successive lab session after completion of the experiment. 9. 100% attendance should be maintained for the practical classes.

SCHEME OF EVALUVATION

TOTAL (20M) NAME OF S NO DATE Observation Viva voce EXPERIMENT Sign. Total (10M) (10M)

Introduction to MASM 1 Programming. Arithmetic and logical 2 operations

String operations 3

Code conversion 4 Multiplication and 5 Division Sorting and multi byte 6 arithmetic Blinking an On Board Led 7 Using MSP-430 Led Control Using a 8 Switch Using MSP-430 Low and High Power 9 Mode Current

Measurement Interrupt Programming 10 through GPIO Pulse Width Modulation 11 With MSP 430

Signature of Lab In-charge

MP&MC LABORATORY III B.Tech II Sem

EXP. NO : 1 DATE:

INTRODUCTION TO MASM PROGRAMMING

The microprocessor development system consists of a set of hardware and software tools. The hardware of development systems usually contains a standard PC (Personal Computer), printer and an emulator. The software tools are also called program development tools and they are Editor, Assembler, Library builder, Linker, Debugger and Simulator. These software tools can be run on the PC in order to write, assemble, debug, modify and test the assembly language programs. EDITOR (TEXT EDITOR): The Editor is software tool which, when run on a PC, allow the user to type/enter and modify the assembly language program. The editor provides a set of commands for insertion, deletion, modifications of letters, characters, statements, etc., The main faction of an editor is to help the user to constrict the assembly language program in the right format. The program created using editor is known as source program and usually it is saved with file extension “ASM”. ASSEMBLER: The assembler is a software tool which run on a PC, converts the assembly language program to machine language program. Several types of assemblers are available and they are one pass assembler, two pass assembler, macro assembler, cross assembler, resident assembler and Meta assembler. One Pass Assembler: In the one pass assembler source code is processed only once, and we can use only backward reference. Two Pass Assembler: Most of the popularly used assemblers are two pass assembler. In two pass assembler, the first pass is made through source code for the purpose of assigning an address to all the labels and to store this information in a symbol table. The second pass is made to actually translate the source code into machine code. Some examples of assemblers are TASM (Borland’s Turbo Assembler), MASM (Microsoft Macro Assembler), ASM86 (INTEL’S 8086 Assembler), etc,.

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 1

MP&MC LABORATORY III B.Tech II Sem

TASM: The Turbo Assembler (TASM) mainly PC-targeted assembler package was Borland’s offering in the X86 assembler programming tool market. As one would expect, TASM worked well with Borland’s high-level language compilers for the PC, such as Turbo Pascal, Turbo Basic and Turbo C. Along with the rest of the Turbo suite, Turbo Assembler is no longer maintained. The Turbo Assembler package came bundled with the linker Turbo Linker, and was interoperable with the Turbo Debugger. For compatibility with the common Microsoft Macro Assembler (MASM), TASM was able to assemble such source code files via its MASM mode. It also had an ideal mode that enabled a few enhancements. The effective execution of a program in assembly language we need the following 1. MASM assembler 2. NE (Norton’s Editor) editor (or) Edlin editor 3. Linker 4. Debug utility of DOS How to use TASM: Install the specified TASM software on PC with DOS . The program implementation and its execution are illustrated in four stages, there are 1. Editing of program 2. Assembling the program 3. Linking the program 4. Debugging and execution of the program C:\ tasm>edit (file name).asm >tasm (file name).asm Assembling Turbo assembler version 3.2 copy right (C) 1988, 1992 Borland International Assembling file : (file name) Error messages : None Warning messages : None Passes : 1

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 2

MP&MC LABORATORY III B.Tech II Sem

PROGRAM:

Remaining memory : 392K

C:\ tasm>tlink (file name).obj Turbo Linking Turbo link version 5.1 copy right (C) 1992 Borland International the Program

C:\ tasm>debug (file name).exe Debugging & Operation - r of the - p Program - q DEBUG COMMANDS:

Command Command Character Description & Syntax Assembler - A [address] Assembles the instructions at a particular address. Quit - q Quits from debug Compare - C range address Compares two memory ranges Display - D range Displays the contents of memory Enter - E address [List] Enters new or modifies old memory contents Fill - F range list Fills in a range of memory Go - G – address Executes a program in memory

Hex - H V1V2 Adds & Subtracts two hex values (V1 & V2) Load - L [address] [drive] Load disk data into memory Trace - T Traces disk data into memory Un assemble - U Un assembles hex bytes into assembler instructions

MASM: The Microsoft Macro Assembler (abbreviated MASM) is an x86 high-level assembler for DOS and Microsoft Windows. Currently it is the most popular x86 assembler. It supports a wide variety of macro facilities and structured programming idioms, including high-level functions for looping and procedures. Later versions added the capability of producing programs for Windows. MASM is one of the few Microsoft development tools that target 16-bit, 32-bit and 64-bit platforms. Earlier versions were MS-DOS applications. Versions 5.1 and 6.0 were OS/2

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 3

MP&MC LABORATORY III B.Tech II Sem applications and later versions were Win32 console applications. Versions 6.1 and 6.11 included Phar Lap’s TNT DOS extender so that MASM could run in MS-DOS. MASM can be used along with a link program to structure the codes generated by MASM in the form of an executable file. This assembler reads the source program as its inputs and provides an object file. The link accepts the object file produced by this MASM assembler as input and produces an EXE file. The effective execution of a program in assembly language we need the following 1. MASM assembler 2. NE (Norton’s Editor) editor (or) Edlin editor 3. Linker 4. Debug utility of DOS LIBRARY BUILDER: The library builder is used to create library files which are collection of procedures of frequently used functions. The input to library builder is a set of assembled object of program modules/procedures. The library builder combines the program modules/procedures into a single file known as library file and it is saved with file extension “.LIB”. Some examples of library builder are Microsoft’s LIB Borland’s TLIB, etc,. LINKER: The linker is a software tool which is used to combine releasable object files of program modules and library functions into a single executable file. The linker also generates a link map file which contains the address information about the linked files. Some examples of linkers Microsoft’s linker LINK, Borland’s Turbo linker TLINK, etc,. DEBUGGER: The debugger is a software tool that allows the execution of a grogram in single step or break-point mode under the control of user. The process of locating and correcting the errors in a program using a debugger is known as debugging. The debugger tools can help the user to isolate a problem in the program. Once the problem/errors are identified, the algorithm can be modified. Then the user can the editor to

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 4

MP&MC LABORATORY III B.Tech II Sem correct the source program, reassemble the corrected source program, relink and run the program again. SIMULATOR: The simulator is a program which can be run on the development system (Personal computer) to simulate the operations of the newly designed system. Some of the operations that can be simulated are given below.  Execute a program and display result.  Single step execution of a person.  Break – point execution of a program.  Display the contents of register/memory. EMULATOR: An emulator is a combination of hardware and software. It is usually used to test and debug the hardware and software of a newly designed microprocessor based system. The emulator has a multi core cable which connects the PC of development system and the newly designed hardware of microprocessor system. VARIABLES AND CONSTRAINTS USED IN ASSEMBLERS: Variables: The variables are symbols (or terms) used in assembly language program statements in order to represent variable data and address. While running a program, a value has to be attached to each variable in the program. The advantage of using variables is that the value of the variable can be dynamically varied while running program. Rules of Framing Variable names: 1. The variable name can have any of the following characters. A to Z a to z, 0 to 9 @ , _ (underscore). 2. The first character in the variable name should be an alphabet (A to Z or a to z) or an underscore. 3. The length of variable name depends on assembler and normally the maximum length of variable name is 32 characters. 4. The variable name are case insensitive. Therefore the assembler do not distinguish between the upper and lower case letters/alphabets.

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 5

MP&MC LABORATORY III B.Tech II Sem

Constraints: The decimal, binary or hexadecimal number used to represent the data address in assembly language program statement are called constants or numerical constants. When constants are used to represent the address the address the address/data then their values are fixed and cannot be changed while running a program. The binary, hexadecimal and decimal constants can be differentiated by placing a specific alphabet at the end of the constant. Example of Valid Constant: 1011 ------Decimal (BCD) constant 1060 D ------Decimal constant Examples of invalid Constant: 1131 B ------The character 3 should not be used in binary constant. 0E2 ------The character H at the end of hexadecimal number in missing.

VIVA QUESTIONS: 1. What is MASM/TASM? 2. What is Linker? 3. What is Assembler? 4. What is Compiler? 5. What is Simulator?

RESULT:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 6

MP&MC LABORATORY III B.Tech II Sem

EXP. NO : 2 DATE:

ARITHMETIC AND LOGICAL OPERATIONS

A. ADDITION OF TWO 8 BIT NUMBERS

1. AIM: To write an ALP for the addition of two 8 bit numbers using MASM software.

2. APPARATUS REQUIRED: i) PC ii) MASM software

3. ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 7

MP&MC LABORATORY III B.Tech II Sem

4. PROGRAM:

.MODEL SMALL .STACK 100 .DATA OPR1 DB 0F8H OPR2 DB 67H RES DB 2 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AL,OPR1 MOV BL,OPR2 ADD AL,BL MOV RES,AL MOV AL, 00H RCL AL,01 MOV [RES+1],AL MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 8

MP&MC LABORATORY III B.Tech II Sem

5. RESULT: Thus the addition of two 8 bit numbers was successfully executed using MASM software.

INPUT: 1 OPR1 = 0F8H OPR2 = 67H

OUTPUT: RES = 015FH

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 9

MP&MC LABORATORY III B.Tech II Sem

B. SUBTRACTION OF TWO 8 BIT NUMBERS

1. AIM:-To write an ALP for the subtraction of two 8 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 10

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA OPR1 DB 0F8H OPR2 DB 67H RES DB 2 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AL,OPR1 MOV BL,OPR2 SUB AL,BL MOV RES,AL MOV AL, 00H RCL AL,01 MOV [RES+1],AL MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 11

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus the subtraction of two 8 bit numbers was successfully executed using MASM software.

INPUT: 1 OPR1 = 0F8H OPR2 = 67H

OUTPUT: 2 RES = 91H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 12

MP&MC LABORATORY III B.Tech II Sem

C. MULTIPLICATION OF TWO 8 BIT NUMBERS

1.AIM: To write an ALP for the multiplication of two 8 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 13

MP&MC LABORATORY III B.Tech II Sem

4. PROGRAM: .MODEL SMALL .STACK 100 .DATA OPR1 DB 05H OPR2 DB 03H RES DB 2 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AL,OPR1 MOV BL,OPR2 MUL AL,BL MOV RES,AX MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 14

MP&MC LABORATORY III B.Tech II Sem

5. RESULT:-Thus the multiplication of two 8 bit numbers was successfully executed using MASM software.

INPUT: 1 OPR1 = 05H OPR2 = 03H

OUTPUT: RES = 000FH

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 15

MP&MC LABORATORY III B.Tech II Sem

D. DIVISION OF TWO 8 BIT NUMBERS

1.AIM: To write an ALP for the division of two 8 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 16

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM: .MODEL SMALL .STACK 100 .DATA OPR1 DB 31H OPR2 DB 02H RES DB 2 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AL,OPR1 MOV BL,OPR2 DIV AL,BL MOV RES,AL MOV [RES+1],AH MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 17

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the division of two 8 bit numbers was executed successfully using MASM software INPUT: 1 OPR1 = 31 H OPR2 = 02 H

OUTPUT: QUE = 18H REM = 01 H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: QUE = REM =

.

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 18

MP&MC LABORATORY III B.Tech II Sem

E. ADDITION OF TWO 16 BIT NUMBERS

1.AIM: To write an ALP for the addition of two 16 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 19

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM: .MODEL SMALL .STACK 100 .DATA OPR1 DW 8888H OPR2 DW 6666H RES DB 3 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AX,OPR1 MOV BX,OPR2 ADD AX,BX MOV RES,AX MOV AL, 00H RCL AL,01 MOV [RES+2],AL MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 20

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the addition of two 16 bit numbers was executed successfully using MASM software.

INPUT: 1 OPR1 = 8888 H OPR2 = 6666 H

OUTPUT: RES = 00EEEE H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 21

MP&MC LABORATORY III B.Tech II Sem

F. SUBTRACTION OF TWO 16 BIT NUMBERS

1.AIM: To write an ALP for the subtraction of two 16 bit numbers using TASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 22

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM: .MODEL SMALL .STACK 100 .DATA OPR1 DW 8888H OPR2 DW 6666H RES DB 3 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AX,OPR1 MOV BX,OPR2 SUB AX,BX MOV RES,AX MOV AL, 00H RCL AL,01 MOV [RES+2],AL MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 23

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the subtraction of two 16 bit numbers was executed successfully using MASM software.

INPUT: 1 OPR1 = 8888 H OPR2 = 6666 H

OUTPUT: RES = 2222 H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 24

MP&MC LABORATORY III B.Tech II Sem

G. MULTIPLICATION OF TWO 16 BIT NUMBERS

1.AIM: To write an ALP for the multiplication of two 16 bit numbers using MASM Software.

2.APPARATUS REQUIRED: i) PC ii) TASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 25

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM: .MODEL SMALL .STACK 100 .DATA OPR1 DW 7777H OPR2 DW 8888H RES DW 2 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AX,OPR1 MOV BX,OPR2 MUL AX,BX MOV RES,AX MOV [RES+2],DX MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 26

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the multiplication of two 16 bit numbers was executed successfully using MASM software.

INPUT: 1 OPR1 = 7777 H OPR2 = 8888 H

OUTPUT: RES = 3FB6AF38 H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 27

MP&MC LABORATORY III B.Tech II Sem

H. DIVISION OF TWO 8 BIT NUMBERS

1.AIM: To write an ALP for the division of two 16 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 28

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM: .MODEL SMALL .STACK 100 .DATA OPR1 DW 0FFFE H OPR2 DW 3333 H RES DW 2 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AX,OPR1 MOV BX,OPR2 DIV AX,BX MOV RES,AX MOV [RES+2],DX MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 29

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the division of two 16 bit numbers was executed successfully using MASM software.

INPUT: 1 OPR1 = 0FFFE H OPR2 = 3333 H

OUTPUT: QUE = 0004 H REM = 3332 H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: QUE = REM =

6.VIVA QUESTIONS: 1. What is INT 21H? 2. Define SEGMENT? 3. List the Different Directives? 4. What are the arithmetic instructions supports by 8086? 5. Define Micro Processor?

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 30

MP&MC LABORATORY III B.Tech II Sem

EXP. NO : 3 DATE:

STRING OPERATIONS

A. REVERSAL OF GIVEN STRING

1.AIM: To write an assembly language program to reverse the given string by using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 31

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA LIST DB ‘MICRO PROCESSOR’ COUNT EQU ($-LIST) .CODE

MOV AX, @DATA MOV DS, AX MOV ES, AX MOV CX, COUNT MOV AX, CX MOV SI, OFFSET LIST MOV DI, (COUNT-1) MOV BX, 02H DIV BX MOV CX, AX BACK: MOV AL,[SI] XCHG AL,[DI] MOV [SI], AL INC SI DEC DI LOOP BACK MOV AH, 09H MOV DX,OFFSET LIST INT 21H MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 32

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the reverse of the given string was done by using MASM software.

INPUT: 1 STRING = MICRO PROCESSOR

OUTPUT: 1 REVERSE STRING = ROSSECORP ORCIM

INPUT: 2

OUTPUT: 2

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 33

MP&MC LABORATORY III B.Tech II Sem

B. LENGTH OF THE GIVEN STRING

1.AIM: To write an assembly language program to find the length of the given string by using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 34

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA LIST DB ‘MICRO PROCESSOR$’ LEN DB 01 DUP(?),’$’ .CODE MOV AX, @DATA MOV DS, AX MOV ES, AX MOV AL,’$’ LEA SI, LIST MOV DX, 0000H BACK: SCASB JE EXIT INC DX JMP BACK EXIT: MOV LEN, DX MOV AH,09H MOV DX,LEN INT 21H MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 35

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the length of the given string is done by using MASM software

INPUT: 1 STRING = MICRO PROCESSOR

OUTPUT: 1 LENGTH = 0FH

INPUT: 2

OUTPUT: 2

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 36

MP&MC LABORATORY III B.Tech II Sem

C. COMPARISON OF TWO STRINGS

1.AIM: To write an assembly language program to compare the given strings by using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 37

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA LIST1 DB ‘MICRO PROCESSOR’ LEN1 EQU ($-LIST1) LIST2 DB ‘MICRO PROCESSOR’ LEN2 EQU ($-LIST2) MSG1 DB 0DH,0AH,"STRINGS ARE EQUAL",0DH,0AH,"$" MSG2 DB 0DH,0AH,"STRIANGS ARE NOT EQUAL",0DH,0AH,"$" .CODE

MOV AX,@DATA MOV DS, AX MOV ES, AX MOV AX,LEN1 MOV BX, LEN2 CMP AX, BX JNE EXIT MOV CX, AX MOV SI, OFFSET LIST1 MOV DI, OFFSET LIST2 REP CMPSB JNE EXIT MOV AH,09H MOV DX,MSG1 INT 21H JMP NEXT EXIT: MOV AH,09H MOV DX,MSG2 INT 21H NEXT: MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 38

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the comparison of the given strings is done by using MASM software

INPUT: 1 STRING1 = MICRO PROCESSOR STRING2 = MICRO PROCESSOR

OUTPUT: 1 STRINGS ARE EQUAL

INPUT: 2

OUTPUT: 2

6.VIVA QUESTIONS:

1. What are the flags available in 8086? 2. What is Program counter and its functionality? 3. What is Non-Maskable interrupts? 4. Write logic to perform string reverse? 5. What are the string instructions supported by 8086?

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 39

MP&MC LABORATORY III B.Tech II Sem

EXP. NO : 4 DATE:

CODE CONVERSION

A. BCD to ASCII Conversion

1.AIM: To write an ALP to convert BCD number to ASCII number using MASM software.

2.APPARATUS REQUIRED:- i) PC ii) TASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 40

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA BCD DB 17H ASCII DW 1 DUP(?),'$'

.CODE

MOV AX,@DATA MOV DS,AX MOV AL,BCD MOV CL,04H MOV AH,AL AND AL,0FH AND AH,0F0H ROR AH,CL OR AL,30H OR AH,30H MOV ASCII,AX MOV AH,09H MOV DX, OFFSET ASCII INT 21H MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 41

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the conversion of BCD number to ASCII number was done successfully by using MASM software.

INPUT: 1 BCD = 17H

OUTPUT: 1 ASCII 1= 37 H

ASCII 2= 31 H

INPUT: 2 BCD =

OUTPUT: 2 ASCII 1=

ASCII 2=

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 42

MP&MC LABORATORY III B.Tech II Sem

B. ASCII to BCD Conversion

1.AIM: To write an ALP to convert ASCII number to BCD number by using TASM software.

2.APPARATUS REQUIRED: i) PC ii) TASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 43

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA ASCII1 DB ‘1’ ASCII2 DB ‘7’ BCD DB 01 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS, AX MOV CL, 04H MOV AL, ASCII1 MOV BL, ASCII2 AND AL, 0FH AND BL, 0FH ROR AL, CL OR AL, BL MOV BCD, AL MOV AH,09H MOV DX,OFFSET BCD INT 21H MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 44

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the conversion of ASCII number to BCD number was done successfully by using MASM software.

INPUT: 1 ASCII 1 = 31 H

ASCII 2 = 37 H

OUTPUT: 1 BCD = 17H

INPUT: 2 ASCII 1 =

ASCII 2 =

OUTPUT: 2 BCD =

6.VIVA QUESTIONS:

1. Explain about AAA,DAA? 2. What are the logical instructions supported by 8086? 3. Name 5 different addressing modes? 4. What are Hardware interrupts in 8085? 5. What is meant by a bus?

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 45

MP&MC LABORATORY III B.Tech II Sem

EXP. NO : 5 DATE:

MULTIPLICATION AND DIVISION

A. MULTIPLICATION OF TWO 16-BIT SIGNED NUMBERS

1.AIM: To write an ALP for the multiplication of two 16- bit signed numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 46

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA OPR1 DW -7593H OPR2 DW 6845H RES DW 02 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AX,OPR1 IMUL OPR2 MOV RES,AX MOV [RES+2],DX MOV AH,09H MOV DX,RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 47

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the conversion of ASCII number to BCD number was done successfully by using MASM software. .

CASE I: Two positive numbers INPUT: OPR1 = 7593H OPR2 = 6845H

OUTPUT: RESLW = 689FH (AX) RESHW = 2FE3H (DX)

CASE II: one positive number & one negative number INPUT: OPR1 = 8A6DH  2’s Complement of (-7593H) OPR2 = 6845H

OUTPUT: RESLW = 9761H (AX)  2’s Complement RESHW = D01CH (DX)  of (- 2FE3689FH)

CASE III: two negative numbers INPUT: OPR1 = 8A6DH  2’s Complement of (-7593H) OPR2 = 97BBH  2’s Complement of (-6845H)

OUTPUT: RESLW = 689FH (AX) RESHW = 2FE3H (DX)

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 48

MP&MC LABORATORY III B.Tech II Sem

B. DIVISION OF TWO 16-BIT SIGNED NUMBERS

1.AIM: To write an ALP for the division of 16 bit signed numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 49

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA OPR1 DW -26F8H OPR2 DB 56H RES DW 02 DUP(?),’$’ .CODE MOV AX,@DATA MOV DS,AX MOV AX,OPR1 IDIV OPR2 MOV RES,AX MOV [RES+2],DX MOV AH,09H MOV DX,RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 50

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the division of 16- bit signed numbers was executed successfully using MASM software.

CASE I: two positive numbers

INPUT: OPR1 = 26F8H (DIVIDEND) OPR2 = 56H (DIVISOR)

OUTPUT: RESQ = 74H (AL) RESR = 00H (AH)

CASE II: one positive number & one negative number

INPUT: OPR1 = D908H  2’s Complement of (-26F8H) OPR2 = 56H

OUTPUT: RESQ = 8CH (AL)  2’s Complement of (- 74H) RESR = 00H (AH)

CASE III: one positive number & one negative number

INPUT: OPR1 = 26F8H OPR2 = AAH  2’s Complement of (-56H)

OUTPUT: RESQ = 8CH (AL)  2’s Complement of (- 74H) RESR = 00H (AH)

6.VIVA QUESTIONS: 1. Define IMUL &IDIV? 2. What is the BX &DX register roles in multiplication and division? 3. Why 8086 is called as 16 bit microprocessor? 4. What is the clock rate of 8086? 5. What is the use of source index(SI)?

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 51

MP&MC LABORATORY III B.Tech II Sem

EXP. NO : 6 DATE:

SORTING AND MULTI BYTE ARITHMETIC

A. SORTING OF ‘N’ NUMBERS IN AN ASCENDING ORDER

1.AIM: To write an assembly language program to sorting of numbers in an ascending in a given series by using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 52

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA LIST DB 56H, 12H, 72H, 32H, 13H COUNT EQU ($-LIST) .CODE MOV AX, @DATA MOV DS, AX MOV CX, COUNT MOV DX, CX AGAIN:MOV SI, OFFSET LIST MOV CX, DX BACK:MOV AL, [SI] INC SI CMP AL, [SI] JC NEXT XCHG [SI], AL DEC SI MOV [SI], AL INC SI NEXT: LOOP BACK DEC DX JNZ AGAIN MOV AH, 09H MOV DX,OFFSET LIST INT 21H MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 53

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the sorting of given ‘N’ numbers in an ascending order is done by using MASM software.

INPUT: 1 LIST = 56H, 12H, 72H, 32H, 13H

OUTPUT: 1 SORTING LIST IS = 12H,13H,32H,56H,72H

INPUT: 2

OUTPUT: 2

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 54

MP&MC LABORATORY III B.Tech II Sem

B. SORTING OF ‘N’ NUMBERS IN AN DESCENDING ORDER

1.AIM: To write an assembly language program to sorting of numbers in an descending in a given series by using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 55

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA LIST DB 56H, 12H, 72H, 32H, 13H COUNT EQU ($-LIST) .CODE MOV AX, @DATA MOV DS, AX MOV CX, COUNT MOV DX, CX AGAIN:MOV SI, OFFSET LIST MOV CX, DX BACK:MOV AL, [SI] INC SI CMP AL, [SI] JC NEXT XCHG [SI], AL DEC SI MOV [SI], AL INC SI NEXT: LOOP BACK DEC DX JNZ AGAIN MOV AH, 09H MOV DX,OFFSET LIST INT 21H MOV AH, 4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 56

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the sorting of given ‘N’ numbers in an descending order is done by using MASM software.

INPUT: 1 LIST = 56H, 12H, 72H, 32H, 13H

OUTPUT: 1 SORTING LIST IS = 72H,56H,32H,13H,12H

INPUT: 2

OUTPUT: 2

C. MULTIBYTE ADDITION OF 8 BIT NUMBERS

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 57

MP&MC LABORATORY III B.Tech II Sem

1.AIM: To write an ALP for the Multibyte addition of 8 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 58

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA N1 DB 77H, 88H, 77H N2 DB 99H, 88H, 99H COUNT EQU 0003H SUM DB 4 DUP(?),'$' DIFF DB 3 DUP(?),'$'

.CODE MOV AX,@DATA MOV DS,AX MOV CX,COUNT MOV BX,0002H CLC BACK:MOV AL,N1[BX] ADC AL,N2[BX] MOV [SUM+1][BX],AL DEC BX LOOP BACK MOV AL,00H RCL AL,01 MOV SUM,AL MOV AH,09H MOV DX,OFFSET SUM INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 59

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the multi byte addition of 8 bit numbers was executed successfully using MASM software.

INPUT: 1 OPR1 = 77 88 77 H OPR2 = 99 88 99 H

OUTPUT: RES = 01 11 11 10H

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 60

MP&MC LABORATORY III B.Tech II Sem

D. MULTIBYTE SUBTRACTION OF 8 BIT NUMBERS

1.AIM: To write an ALP for the Multibyte subtraction of 8 bit numbers using MASM software.

2.APPARATUS REQUIRED: i) PC ii) MASM software

3.ALGORITHM:

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 61

MP&MC LABORATORY III B.Tech II Sem

4.PROGRAM:

.MODEL SMALL .STACK 100 .DATA N1 DB 77H, 88H, 77H N2 DB 99H, 88H, 99H COUNT EQU 0003H RES DB 4 DUP(?),'$' DIFF DB 3 DUP(?),'$'

.CODE MOV AX,@DATA MOV DS,AX MOV CX,COUNT MOV BX,0002H CLC BACK:MOV AL,N1[BX] SBB AL,N2[BX] MOV [RES+1][BX],AL DEC BX LOOP BACK MOV AL,00H RCL AL,01 MOV RES,AL MOV AH,09H MOV DX,OFFSET RES INT 21H MOV AH,4CH INT 21H END

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 62

MP&MC LABORATORY III B.Tech II Sem

5.RESULT: Thus, the Multi byte subtraction of 8 bit numbers was executed successfully using MASM software.

INPUT: 1 OPR1 = 77 88 77 H OPR2 = 99 88 99 H

OUTPUT: RES = DD FF DE with Borrow (or) 01 DD FF DE

INPUT: 2 OPR1 = OPR2 =

OUTPUT: RES =

6.VIVA QUESTIONS: 1. What are the loop instructions supported by 8086? 2. What are the conditional instructions? 3. What is the use of destination index(DI)? 4. Write the addressing modes of 8086 5. Write some data transfer instructions in 8086

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 63

MP&MC LABORATORY III B.Tech II Sem

Exp .No: 7 Date:

BLINKING AN ONBOARD LED

1.AIM : To blink the RED on-board LED using C language.

2.SOFTWARE REQURIED :  Code Composer Studio  MSP430G2553 LaunchPad plugged into your PC via USB

3.PROCEDURE:  Open code composer studio  Create new project  Open new file and type the program  Compile and run the program  Dump the program in the hardware (i.e MSP 430)  Check for the output in the hardware

4.PROGRAM:

#include int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P1DIR |= 0x01; // Set P1.0 to output direction while(1) { volatile unsigned long i; // Volatile to prevent //optimization P1OUT ^= 0x01; // Toggle P1.0 using XOR i = 50000; // SW Delay do i--; while(i != 0); } }

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 64

MP&MC LABORATORY III B.Tech II Sem

5.RESULT:

OUTPUT:

LED ON:

LED OFF:

7.VIVA QUESTIONS:

1. Draw the address space of MSP430 microcontroller. 2. Mention various timers present in MSP430 microcontroller. 3. What is the purpose of Watchdog Timer? 4. Write about Watchdog Timer counter(WDTCNT) register. 5. What meant by GPIO?

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 65

MP&MC LABORATORY III B.Tech II Sem

Exp .No: 8 Date:

LED CONTROL USING A SWITCH 1.AIM: To control the on-board Green LED by taking the input from an on-board SWITCH. 2.EQUIPMENT AND SOFTWARE:

 Code Composer Studio  MSP430G2553 Launch Pad plugged into your PC via USB

3.PROCEDURE:  Open code composer studio  Create new project  Open new file and type the program  Compile and run the program  Dump the program in the hardware (i.e MSP 430)  Check for the output in the hardware

4.PROGRAM:

#include int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P1DIR |= 0x40; // Set P1.6 to output direction P1REN |= 0x08; P1OUT |= 0X08; while(1) { if ((P1IN & BIT3)) { // If button is open(P1.3 HIGH) P1OUT = P1OUT | BIT6; // ... turn on LED } // or P1OUT |= BIT0; else { P1OUT = P1OUT & ~BIT6; // ... else turn it off. // or P1OUT &= ~BIT0 } }

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 66

MP&MC LABORATORY III B.Tech II Sem

5.RESULT:

OUTPUT:

6.VIVA QUESTIONS: 1. Explain the purpose of EEM (Embedded Emulation Module) in MSP430 microcontroller. 2. What is the function of hardware multiplier? 3. Write a short note on Interrupts processing. 4. Write the definitions of ISR,VECTOR,VECTOR TABLE? 5. Explain the function of #pragma, vector, __interrupt keywords used in MSP430 programming.

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 67

MP&MC LABORATORY III B.Tech II Sem

Exp .No: 9 Date:

LOW POWER MODES AND CURRENT MEASUREMENT

1.AIM: To learn the various low power modes and measure current consumption both in active and standby mode.

2.SOFTWARE REQURIED :

 Code Composer Studio  MSP430G2553 Launchpad plugged into your PC via USB  Digital Multimeter

3.PROCEDURE:

 Open code composer studio  Create new project  Open new file and type the program  Compile and run the program  Dump the program in the hardware (i.e MSP 430)  Check for the output in the hardware

4.PROGRAM:

Main_active.c #include #ifndef TIMER0_A1_VECTOR #define TIMER0_A1_VECTOR TIMERA1_VECTOR #define TIMER0_A0_VECTOR TIMERA0_VECTOR #endif volatile long tempRaw; volatile unsigned int i; void FaultRoutine(void); void ConfigWDT(void); void ConfigClocks(void); void ConfigPins(void); void ConfigADC10(void); void ConfigTimerA2(void); void main(void) { ConfigWDT();

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 68

MP&MC LABORATORY III B.Tech II Sem

ConfigClocks(); ConfigPins(); ConfigADC10(); ConfigTimerA2(); _BIS_SR(GIE); void ConfigWDT(void) { WDTCTL = WDTPW + WDTHOLD; } void ConfigClocks(void) { if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF) FaultRoutine(); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; BCSCTL3 |= LFXT1S_2; IFG1 &= ~OFIFG; BCSCTL2 |= SELM_0 + DIVM_3 + DIVS_3; } void FaultRoutine(void) { P1OUT = BIT0; while(1); } void ConfigPins(void) { P1DIR = ~BIT3; P1OUT = 0; P2SEL = ~(BIT6 + BIT7); P2DIR |= BIT6 + BIT7; P2OUT = 0; } void ConfigADC10(void) { ADC10CTL1 = INCH_10 + ADC10DIV_0; } void ConfigTimerA2(void) { CCTL0 = CCIE; CCR0 = 36000; TACTL = TASSEL_1 + MC_2; } #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) { ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON;

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 69

MP&MC LABORATORY III B.Tech II Sem

_delay_cycles(4); ADC10CTL0 |= ENC + ADC10SC; P1OUT |= BIT6; _delay_cycles(100); ADC10CTL0 &= ~ENC; ADC10CTL0 &= ~(REFON + ADC10ON); tempRaw = ADC10MEM; P1OUT &= ~BIT6; CCR0 +=36000; } Main_standby.c: #include #ifndef TIMER0_A1_VECTOR #define TIMER0_A1_VECTOR TIMERA1_VECTOR #define TIMER0_A0_VECTOR TIMERA0_VECTOR #endif volatile long tempRaw; //volatile unsigned int i; void FaultRoutine(void); void ConfigWDT(void); void ConfigClocks(void); void ConfigPins(void); void ConfigADC10(void); void ConfigTimerA2(void); void main(void) { ConfigWDT(); ConfigClocks(); ConfigPins(); ConfigADC10(); ConfigTimerA2(); // _BIS_SR(GIE); while(1) { _bis_SR_register(LPM3_bits + GIE) } } void ConfigWDT(void) { WDTCTL = WDTPW + WDTHOLD;

} void ConfigClocks(void) { if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF) FaultRoutine(); BCSCTL1 = CALBC1_1MHZ;

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 70

MP&MC LABORATORY III B.Tech II Sem

DCOCTL = CALDCO_1MHZ; BCSCTL3 |= LFXT1S_2; IFG1 &= ~OFIFG; BCSCTL2 |= SELM_0 + DIVM_3 + DIVS_3; } void FaultRoutine(void) { P1OUT = BIT0; // P1.0 on (red LED) while(1); // TRAP } void ConfigPins(void) { P1DIR = ~BIT3; // P1.6 and P1.0 outputs P1OUT = 0; P2SEL = ~(BIT6 + BIT7); P2DIR |= BIT6 + BIT7; P2OUT = 0;// LEDs off } void ConfigADC10(void) { ADC10CTL1 = INCH_10 + ADC10DIV_0; } void ConfigTimerA2(void) { CCTL0 = CCIE; CCR0 = 36000; TACTL = TASSEL_1 + MC_2; } #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) { ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON; _delay_cycles(4); ADC10CTL0 |= ENC + ADC10SC; P1OUT |= BIT6; // P1.6 on (green LED) _delay_cycles(100); ADC10CTL0 &= ~ENC; ADC10CTL0 &= ~(REFON + ADC10ON); tempRaw = ADC10MEM; P1OUT &= ~BIT6; CCR0 +=36000; _bic_SR_register_on_exit(LPM3_bits); }

VEMU INSTITUTE OF TECHNOLOGY, Dept of ECE. Page 71

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

5.RESULT:

OUTPUT:

Platform Active current Stand by current consumption consumption MSP430G2553 123 uA 1.2 Ua

6.VIVA QUESTIONS:

1. . Write about Low Power Mode 0 & Low Power Mode 1. 2. . Write about Low Power Mode 2 & Low Power Mode 3. 3. . Write about active mode & Low Power Mode 4. 4. Write about PxIN, PxOUT, PxDIR registers? 5. Write about PORTs of MSP430 controller.

VEMU Institute of Technology, Dept of E C E. Page 72

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

Exp .No: 10 Date:

INTERRUPT PROGRAMMING THROUGH GPIO

1.AIM:

To learn on-chip Timer and Interrupts. Configuration of Timer, Interrupts and its operations.

2.SOFTWARE REQURIED:  Code Composer Studio  MSP430G2553 Launchpad plugged into your PC via USB

. 3.PROCEDURE:  Open code composer studio  Create new project  Open new file and type the program  Compile and run the program  Dump the program in the hardware (i.e MSP 430)  Check for the output in the hardware

4.PROGRAM:

#include int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= BIT6; // Set P1.6 to output direction P1REN |= BIT3; // Enable P1.3 internal resistance P1OUT |= BIT3; // Set P1.3 as pull up resistance P1IES |= BIT3; // P1.3 High/Low Edge P1IFG &= ~BIT3; // P1.3 IFG Cleared P1IE |= BIT3; // P1.3 Interrupt Enabled _bis_SR_register(LPM4_bits + GIE); // Enter LPM4 w/ interrupt _no_operation(); // For debugger }

VEMU Institute of Technology, Dept of E C E. Page 73

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

#pragma vector=PORT1_VECTOR __interrupt void Port_1 (void) { P1OUT ^= BIT6; // Toggle P1.6 P1IFG &= ~BIT3; // P1.3 IFG Cleared }

5.RESULT:

6.VIVA QUESTIONS: 1. Write about PORT2 of MSP430 controller. 2. Write a short note on Flash memory 3. Write a short note on FRAM.

4. What are the features of Timer_A & Timer_B? 5. What are the operating modes of Timers in MSP430x5xx microcontroller?

VEMU Institute of Technology, Dept of E C E. Page 74

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

Exp .No: 11 Date:

PULSE WIDTH MODULATION

1.AIM:

To implement Pulse Width Modulation using the onboard green LED.

2.SOFTWARE REQURIED:

Code Composer Studio MSP430G2553 Launchpad plugged into your PC via USB

3.PROCEDURE:  Open code composer studio  Create new project  Open new file and type the program  Compile and run the program  Dump the program in the hardware (i.e MSP 430)  Check for the output in the hardware

4.PROGRAM:

#include int pwmDirection = 1; void main(void){ WDTCTL = WDT_MDLY_32; IE1 |= WDTIE; P1DIR |= BIT6; P1SEL |= BIT6; TA0CCR0 = 1000; TA0CCR1 = 1; TA0CCTL1 = OUTMOD_7; TA0CTL = TASSEL_2 + MC_1; _BIS_SR(LPM0_bits + GIE); } #pragma vector=WDT_VECTOR ISR __interrupt void watchdog_timer(void) { TA0CCR1 += pwmDirection*20; if( TA0CCR1 > 980 ) TA0CCR1 = 1; }

VEMU Institute of Technology, Dept of E C E. Page 75

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

5.RESULT:

OUTPUT:

6.VIVA QUESTIONS: 1. What are the uses of Capture and Compare output modes.? 2. What are the operating modes of capture/compare blocks in Timers? 3. What are the similarities and differences between Timer_A and Timer_B? 4. What are the features of real time clock? 5. What are the interrupts of real time clock in calendar and counter modes?

VEMU Institute of Technology, Dept of E C E. Page 76

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

Exp .No: 12 Date:

INTERFACING POTENTIOMETER WITH MSP 430

1.AIM:

To control the on-board RED LED by taking the analog input from a Potentiometer.

2.SOFTWARE REQURIED:

 Code Composer Studio  MSP430G2553 LaunchPad plugged into your PC via USB  10,000 Ohm Potentiometer

3.PROCEDURE:  Open code composer studio  Create new project  Open new file and type the program  Compile and run the program  Dump the program in the hardware (i.e MSP 430)  Check for the output in the hardware

4.PROGRAM:

#include int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT ADC10CTL0 = SREF_0 + ADC10SHT_2 + ADC10ON; ADC10CTL1 = INCH_3; // input A3 ADC10AE0 |= 0x08; // PA.3 ADC option select P1DIR |= 0x01; // Set P1.0 to output direction While (1) { ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start if (ADC10MEM < 512) // ADC10MEM = A3 > 512? P1OUT &= ~0x01; // Clear P1.0 LED off else P1OUT |= 0x01; // Set P1.0 LED on

VEMU Institute of Technology, Dept of E C E. Page 77

MICROPROCESSORS & MICROCONTROLLERS LAB III B.Tech II Sem

5.RESULT:

OUTPUT:

6.VIVA QUESTIONS:

1. How to interface an external device to microcontroller in UART mode 2. What is the purpose of software UART?. 3. Write a Short note on the three MSP430 microcontroller system clocks. 4. Define MSP430. 5. How many number of I/Os supported by MSP430.

VEMU Institute of Technology, Dept of E C E. Page 78