Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
100 views
44 pages
MESL Manual
Uploaded by
natty singh
AI-enhanced title
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download
Save
Save MESL_Manual For Later
Share
0%
0% found this document useful, undefined
0%
, undefined
Print
Embed
Report
0 ratings
0% found this document useful (0 votes)
100 views
44 pages
MESL Manual
Uploaded by
natty singh
AI-enhanced title
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Carousel Previous
Carousel Next
Download
Save
Save MESL_Manual For Later
Share
0%
0% found this document useful, undefined
0%
, undefined
Print
Embed
Report
Download
Save MESL_Manual For Later
You are on page 1
/ 44
Search
Fullscreen
Department of CSE Micro-controller Lab Manual BMS Institute of Technology & Management Yelahanka, Bangalore-560 064 MICROCONTROLLER AND EMBEDDED SYSTEMS. LABORATORY (18CSL48) Laboratory Manual For IV Semester BE Computer Science & Engineering Prepared by Ms. Ashwini N Department of Computer Science & Engineering 1Department of CSE Micro-controller Lab Manual BMS Institute of Technology & Mgmt Yelahanka, Bangalore-560 064 CONTENTS PART- Conduct the following experiments by writing program using ARM7TDMI/LPC2148 using an evaluation board/simulator and the required software tool. 1. Write a program to multiply two 16 bit binary numbers 2. Write a program to find the sum of first 10 integer numbers. 3. Write a program to find factorial of a number. 4, Write a program to add an array of 16 bit numbers and store the 32 bit result in internal RAM 5. Write a program to find the square of a number (1 to 10) using look-up table. 6. Write a program to find the largest/smallest number in an array of 32 numbers. 7. Write a program to arrange a series of 32 bit numbers in ascending/descending order. 8 Write a program to count the number of ones and zeros in two consecutive memory locations. PART-B: Conduct the following experiments on an ARM7TDMI/LPC2148 evaluation board using evaluation version of Embedded ‘Cc’ & Keil Uvision-4 tool/compiler. 9. Display “Hello World” message using Internal UART. 10. Interface and Control a DC Motor. 11. Interface a Stepper motor and rotate it in clockwise and anti-clockwise direction, 12. Determine Digital output for a given Analog input using Internal ADC of ARM controller. 13. Interface a DAC and generate Triangular and Square waveforms.Department of CSE Micro-controller Lab Manual 14. Interface a 4x4 keyboard and display the key code on an LCD. 15, Demonstrate the use of an external interrupt to toggle an LED On/Off. 16. Display the Hex digits 0 to F on a 7-segment LED interface, with an appropriate delay in between. Laboratory Outcomes: The student should be able to: Conduct of Practical Examination: * Experiment distribution : For laboratories having PART A and PART B: Students are allowed to pick one experiment from PART A and one experiment from PART B, with equal opportunity. * Change of experiment is allowed only once and marks allotted for procedure to be made zero of the changed part only. For laboratories having PART A and PART B i. Part A — Procedure + Execution + Viva = 6 + 28 + 6 = 40 Marks ii, Part B - Procedure + Execution + Viva = 9 + 42 +9 = 60 MarksDepartment of CSE Micro-controller Lab Manual Program 1: Write a program to multiply two 16 bit binary numbers. Comments: yt VALUEL: ——1900H (6400) (i Ra) 7 a VALUE2: OC8OH (3200) (IN R2) " J RESULT; 1388000H(20480000) (IN R3) 7 ;[* SET A BREAKPOINT AT NOP INSTRUCTION,RUN THE PROGRAM & CHECK THE RESULT 7 AREA MULTIPLY , CODE, READONLY ‘Mark first instruction to execute MOV r1,#0x64 STORE FIRST NUMBER IN RO Mov r2,#0x32 ; STORE SECOND NUMBER IN R1 MUL 13,1172 ; MULTIPLICATION :Mark end of fileDepartment of CSE Micro-controller Lab Manual Program 2: Write a program to find the sum of first 10 integer numbers. AREA ADDITION, CODE, READONLY ENTRY MARK FIRST INSTRUCTION TO EXECUTE START Mov 0, #10 } STORE INTEGER NUMBER IN RO Movr1,r0 {MOVE THE SAME NUMBER IN R21 ADDIT SUBS F1,r1, #2 SUBTRACTION cM r1, #0 ; COMPARISON BEQ STOP ADO £3,r0,r1 ; ADDITION Mov 0,3 RESULT BNE ADDIT ; BRANCH TO THE LOOP IF NOT EQUAL. :MARK END OF FILEDepartment of CSE Micro-controller Lab Manual Program 3: Write a program to find factorial of a number. ‘AREA FACTORIAL , CODE, READONLY ENTRY START Mov 0, #3 Mov r1,r0 SUBS r1, 11, #1 cm 11, #1 EQ STOP MUL 30,1; MoV 10,3 BNE FACT Mark first instruction to execute ; STORE FACTORIAL NUMBER IN RO ; MOVE THE SAME NUMBER IN R1 ; SUBTRACTION : COMPARISON ; MULTIPLICATION 7 Result ; BRANCH TO THE LOOP IF NOT EQUAL :Mark end of fileDepartment of CSE Micro-controller Lab Manual Program 4: Write a program to add an array of 16 bit numbers and store the 32 bit result in internal RAM Comments: ;[* PROGRAM TO ADD an array of 168IT NUMBERS & STORE IN INTERNAL RAM 7 if" ARRAY OF 6 NUMBERS 0X11, 0X2222, 0X3333, OXAAAA, OXBBBB, OXCCCC 7 | THE SUM IS 29997H THE RESULT CAN BE VIEWED IN LOCATION 0X40000000 & ALSO IN RO v i/* SET A BREAKPOINT AT NOP INSTRUCTION,RUN THE PROGRAM & CHECK THE RESULT 7 Cod AREA ADDITION , CODE, READONLY ENTRY ;Mark first instruction to execute START MOV R5,#6 ; INTIAUISE COUNTER TO 6\i.e MOV RO,H0 ; INTIALISE SUM TO ZERO LDR R1,=VALUEL ; LOADS THE ADDRESS OF FIRST VALUE LOR R2, [RA], #2 ; WORD ALIGN TO ARRAY ELEMENT LOR R3,MASK ; MASK TO GET 16 BIT [AND R2,R2,R3 ; MASK MSB ADD RO,RO,R2 ; ADD THE ELEMENTS SUBS R5,R5,#2 ; DECREMENT COUNTER CMP R5,#0 BNE LOOP ; LOOK BACK TILL ARRAY ENDS LOR Ra,=RESULT ; LOADS THE ADDRESS OF RESULT STR RO,{RA] y STORES THE RESULT IN R1.Department of CSE Micro-controller Lab Manual s/*Variable Declaration: */ MASK DCD OXOOOOFFFF ; MASK MSB ; ARRAY OF 16 BIT NUMBERS (N=6) VALUE1 DCW 0X11, 0X1111, 0X1111, 0x1111, Ox1111, Ox1211 AREA DATA2, DATA, READWRITE ; TO STORE RESULT IN GIVEN ADDRESS RESULT DCD XO END ; MARK END OF FILE Program 5: Write a program to find the square of a number (1 to 10) using look-up table. s/* Assembly Program to find square of Number */ /* GIVEN NUMBER IS 6 (R1) THEN RESULT IS IN R3=24H(36) */ ;/* SET A BREAKPOINT AT NOP INSTRUCTION,RUN THE PROGRAM & CHECK THE RESULT */ AREA SQUARE , CODE, READONLY ENTRY ;Mark frst instruction to execute START LDR RO, = TABLEL + Load start address of Lookup table LOR Ris8 ; Load no whose square is to be find MOV R1, RI, LSLHOx2 ; Generate address comesponding to square of gven no ADD RO, RO, RL ; Load address of element in Lookup table LOR R3, [RO] 3 Get square of given no in R3 Nop Nop Nop Lookup table contains Squares of nos from 0 to 10 (in hex) TABLE1 DCD 0X00000000 _; SQUARE OF 00 DCD ox09000001_; SQUARE OF 1=1 DCD 0x09000004 _; SQUARE OF 2=4 DCD 0x00000009 _; SQUARE OF 3=9 DCD ox00000010 _; SQUARE OF 4=16 DCD ox00000019 _; SQUARE OF 5=25, 8Department of CSE Dc axoo000024 ‘oc oxo0000031 ‘0c oxoo000040 Dc ox09000051 ‘oc oxo0000068 END; Markend of file 6 Micro-controller Lab Manual SQUARE OF + SQUARE OF 7=49 ; SQUARE OF 8=64 SQUARE OF 9-81 SQUARE OF 10-100 Program 6: Write a program to find the largest/smallest number in an array of 32 numbers. Comments: i/* PROGRAM TO FIND LARGEST NUMBER IN AN ARRAY & STORE IN INTERNAL RAM */ [ARRAY OF 7 NUMBERS 0x44444444 , 0X22222222, OX11111111, 0X33333333, OXAAAAAAAA,0X88888888 ,0X99999999 v | RESULT CAN BE VIEWED IN LOCATION 0X40000000 & ALSO IN R2. 7 s[* SET A BREAKPOINT AT NOP INSTRUCTION, RUN THE PROGRAM & CHECK THE RESULT*/ Cod AREA LARGEST, CODE, READONLY ENTRY START MoV R5,#6 LOR R1,=VALUEL LOR R2, [RA] 444 LOR RA [RA 4 CMP R2,R4 BHI LOOPI MOV R2,R4 ‘SUBS R5,RS,#1 CMP RSH BNE LOOP LDR Rd,=RESULT STR R2,(R4] :Mark first instruction to execute sINTIALISE COUNTER TO 6(i.e. N=7) ; LOADS THE ADDRESS OF FIRST VALUE ; WORD ALIGN TO ARRAY ELEMENT ; WORD ALIGN TO ARRAY ELEMENT ; COMPARE NUMBERS IF THE FIRST NUMBER IS > THEN GOTO LOOP1 fF THE FIRST NUMBER IS < THEN MOV CONTENT R4 TO R2 : DECREMENT COUNTER COMPARE COUNTER TO 1 10 CHECK FOR N-1 COMPARISON ; LOOP BACK TILL ARRAY ENDS | LOADS THE ADDRESS OF RESULT STORES THE RESULT IN R1.Department of CSE Micro-controller Lab Manual :/*Variable Declaration: */ ; ARRAY OF 32 BIT NUMBERS (N=7) VALUE oxasaaaaaa 0x22222222 oxia111111 033333333 OXAAAAAAAA oxeesesese 0x99999999 AREA DATA2, DATA, READWRITE TO STORE RESULT IN GIVEN ADDRESS RESULT DCD OXO END ; Mark end of fileDepartment of CSE Micro-controller Lab Manual Comments: i/* PROGRAM TO FIND SMALLEST NUMBER IN AN ARRAY & STORE IN INTERNAL RAM */ G/PARRAY OF 7 NUMBERS 0X44444444 , 0X22222222, OX11111111, 0X22222222, OXAAAAAAAA, 0X88888888 ,0X99999999 7 s* RESULT CAN BE VIEWED IN LOCATION 0X40000000 & ALSO IN R2 7 |/"SET A BREAKPOINT AT NOP INSTRUCTION,RUN THE PROGRAM & CHECK THERESULT */ AREA SMALLEST, CODE, READONLY ENTRY ; Mark first instruction to execute START MOV R5,#6 INTIALISE COUNTER TO 6{.e. N=7) LOR R1,=VALUEI ; LOADS THE ADDRESS OF FIRST VALUE LOR R2, [RAH ; WORD ALIGN TO ARRAY ELEMENT LOR RA, [RA] ed ; WORD ALIGN TO ARRAY ELEMENT CMP R2,R4 ; COMPARE NUMBERS BLS LOOP ; IF THE FIRST NUMBER IS < THEN GOTO LOOP1 MOV R2,R4 +1 The First Number Is > Then MOV Content Ra To R2 SUBS R5,R5,#11 ; DECREMENT COUNTER CMP R5,#1 COMPARE COUNTER TO 1 70 CHECK FOR N-1 COMPARISON BNE LOOP ; LOOP BACK TILL ARRAY ENDS ; LOADS THE ADDRESS OF RESULT STR R2,(R4] ; STORES THE RESULT IN RL :/*Variable Declaration: */ RAY OF 32 BIT NUMBERS ( VALUELDepartment of CSE Micro-controller Lab Manual DCD oxaaaaaaaa Ded 0x22222222 Deo oxtit1111 Deo 0x22222222 DCD OXAAAAAAAA DCD oxeasesses DCD ox99999999 AREA DATA2, DATA, READWRITE ; TO STORE RESULT IN GIVEN ADDRESS RESULT DCD OXO END ; MARK END OF FILEDepartment of CSE Micro-controller Lab Manual Program 7: Write a program to arrange a series of 32 bit numbers in ascending/descending order. Comments: s[* PROGRAM TO sort in ascending order */ i/* ARRAY OF 4 NUMBERS 0X44444444 ,0X11111111,0X33333333,0X22222222 */ ;[* SET A BREAKPOINT AT START! LABLE & RUN THE PROGRAM */ s[* CHECK THE UNSORTED NUMBERS AT LOCATION 0X40000000 NEXT */ :[* SET A BREAKPOINT AT NOP INSTRUCTION, RUN THE PROGRAM & CHECK THE RESULT " i/* RESULT CAN BE VIEWED AT LOCATION Ox40000000 */ AREA ASCENDING , CODE, READONLY ENTRY ‘Mark first instruction to execute START MOV RE#4 sINTIALISE COUNTER TO 4{.e. N- ; ADDRESS OF CODE REGION ; ADDRESS OF DATA REGION LooPO LOR RI,IR2),#4 ; LOADING VALUES FROM CODE REGION STRRI[R3}#4 ; STORING VALUES TO DATA REGION SUBS R8,R8,H1 ; DECREMENT COUNTER CMP RB,#0 : COMPARE COUNTER TO 0 BNE LOOPO ; LOOP BACK TILL ARRAY ENDS START1 MOV R5,#3 ;INTIALISE COUNTER TO 3(1.e. N=4) Mov R7,#0 FLAG TO DENOTE EXCHANGE HAS OCCURED LOR R1,=DVALUE ; LOADS THE ADDRESS OF FIRST VALUE LOOP LDR R2,(R1),#4 ; WORD ALIGN TO ARRAY ELEMENT LOR R3,(R3] ; LOAD SECOND NUMBER CMP R2,R3 : COMPARE NUMBERS BLT LOOP + IF THE FIRST NUMBER IS < THEN GOTO LOOP2, STR R2,[R1,A-4 INTERCHANGE NUMBER R2 & R3 STR R3,(R1} INTERCHANGE NUMBER R2 & R3 Mov R7,#11 ; FLAG DENOTING EXCHANGE HAS TAKEN PLACE ADD R14 ; RESTORE THE PTR LOOP2 SUBS RS,R5,#1 ; DECREMENT COUNTER CMP R5,#0 ; COMPARE COUNTER TO 0 BNE LOOP ; LOOP BACK TILL ARRAY ENDS CMP R7,#0 ; COMPARING FLAG aDepartment of CSE Micro-controller Lab Manual BNE STARTL :IF FLAG IS NOT ZERO THEN GO TO STARTL Loop Nop NoP NoP j ARRAY OF 32 BIT NUMBERS(N=4) IN CODE REGION, CVALUE DCD oxaaaaaaaa ; Depoxi1111111 ; cD 0x33333333.; cD 0x22222222 ; AREA DATA1,DATA,READWRITE ; ARRAY OF 32 BIT NUMBERS IN DATA REGION DVALUE DCD ox00000000 END; Mark end of fle Descending ; /* PROGRAM TO sort in Descending order */ o/* ARRAY OF 4 NUMBERS 0X44444444 ,0X11111111,0X33333333,0X22222222 */ s[* SET A BREAKPOINT AT START LABLE & RUN THE PROGRAM */ i/* CHECK THE UNSORTED NUMBERS AT LOCATION 0X40000000 NEXT */ :[* SET A BREAKPOINT AT NOP INSTRUCTION, RUN THE PROGRAM & CHECK THE RESULT a7 ;/* RESULT CAN BE VIEWED AT LOCATION 0x40000000*/ AREA DESCENDING , CODE, READONLY ‘Mark first instruction to execute MOV R8,#4. jINTIALISE COUNTER TO 4{i.e. N=4) ; ADDRESS OF CODE REGION ADDRESS OF DATA REGION LooPO LOR RA,IR2),#4 ; LOADING VALUES FROM CODE REGION STRRA,[R3]84 ; STORING VALUES TO DATA REGION SUBS R8,R8,#1 ; DECREMENT COUNTER CMP R@,#0 ; COMPARE COUNTER TO 0 BNE LOOPO ; LOOP BACK TILL ARRAY ENDS START1 MOV R5,#3, ;INTIALISE COUNTER TO 3{i.e. N=éDepartment of CSE Micro-controller Lab Manual Mov R7,#0 FLAG TO DENOTE EXCHANGE HAS OCCURED ; LOADS THE ADDRESS OF FIRST VALUE LOOP LDR R2,[R1),#4 ; WORD ALIGN TO ARRAY ELEMENT LOR R3,[R1] ; LOAD SECOND NUMBER CMP R2,R3 ; COMPARE NUMBERS BGT LOOP2 + IF THE FIRST NUMBER IS > THEN GOTO LOOP2. STR R2,(R1],#-4 INTERCHANGE NUMBER R2.& R3 STR R3,(R1} ; INTERCHANGE NUMBER R2 & R3 Mov R7,#2 + FLAG DENOTING EXCHANGE HAS TAKEN PLACE ADD R1,H4 ; RESTORE THE PTR LOOP2 SUBS R5,R5,#11 ; DECREMENT COUNTER CMP R5,#0 : COMPARE COUNTER TO 0 BNE LOOP ; LOOP BACK TILL ARRAY ENDS CMP R7,#0 ; COMPARING FLAG BNE START1 {IF FLAG IS NOT ZERO THEN GO TO START1 Loop NoP NoP NoP j ARRAY OF 32 BIT NUMBERS(N=4) IN CODE REGION. CVALUE DCD ox4aaaaaaa ; DeDoxi1111111 ; DCD 0x33333333.; cD 0x22222222 ; AREA DATA1,DATA,READWRITE ; j ARRAY OF 32 BIT NUMBERS IN DATA REGION DVALUE DCD oxo0000000 END; Mark end of fleDepartment of CSE Micro-controller Lab Manual Program 8: Write a program to count the number of ones and zeros in two consecutive memory locations. AREA SEARCH1, CODE, READONLY ENTRY ‘Mark first instruction to execute START MoV R180 ; INITIALISE COUNTER LDR R2,VALUEL LOADS THE ADDRESS OF FIRST VALUE MOV 3,40 ;INITIALISE DUMMY REGISTER LOOP MOVS R2, R2, LSR #1 ; LOGICAL SHIFT RIGHT AODCS RI. ADD IF CARRY TO RL cm 2,#0 ; COMPARE VALUE BNE LOOP LOOK BACK TILL R2 BECOME 0 Nop Nop Nop Mov Ri,#0 ;INITIALISE COUNTER LR R2,VALUEZ LOADS THE ADDRESS OF SECOND VALUE MOV R3,H0 Loop MOVS R2, R2, LSR #1 ADDCC RIL ; ADD IF NO CARRY TO RI CMP 2,0 LooPi Nop Nop Nop VALUE1 DCD OXABCD1234 _; GIVEN FIRST NUMBER IN MEMORY \VALUE2 DCD OXABCD1234 _; GIVEN SECOND NUMBER IN MEMORY END Mark end of fileDepartment of CSE Micro-controller Lab Manual Hardware Programs ARM-7 LPC 2148 User Manual: [ax eraormacesvne osu uoomec| LPC 2148 >LPC2148 is a 16-bit or 32-bit microcontroller based on ARM7 family.Department of CSE Micro-controller Lab Manual How to Start with Programming with LPC 21487 + The initial step toward Ipc2148 programming is :-> — General Purpose Registers > This registers can be programmed as input or output. — AILGPIO registers are byte addressable, — Pin Description of GPIO. Pin description Pin Type Description O.O-POST ‘General purpose ipa outpat. The namber of GPIOs actually available Input! Output | depends on the use of altemate functions PLIGPL3I LPC2148 has two 32-bit General Purpose /0 ports. PORTO has up to 32 pins. PORT1 has up to 16 pins available for GPIO functions. PORTO and PORT1 are controlled via two groups of 4 registers namely ‘+ PORTO and PORT! are controlled via two groups of 4 registers namely Desripiion PORTO | PORTI Addrss& | Address & Name Name ‘GPIO Port Fn wale vegiier. The caret sate TREOOE SOO] OxED02 SOTO ofthe GPIO congue por pins can always be oor TORN read fiom this register, regmless of pin dicetion. ‘GPIO Por Output Set register. Ths register ‘REDO oe | OREDOD SOLE controls the tat of etput pins in conjuction looset | 101sET withthe IOCLR register. Wing ones produces highs atthe corresponding por pins. Writing zeroes has no eect, “GPIO Port Diveetion contol eit. THs TREDOD OOS | OREDOD BOTS register individually contols the direction of foo — | 101DR each port pin. ‘GPIO Port Outpt Clear rain Tis weiter TREWCD 9OOC | OxEDOD SOIC controls the state of output pins, Writing ones ToociR | 101CLR produces lows atthe comesponding por pins and clears the corespoding bis inthe JOSE register, Writing zeroes bueno eet Table 63, GPIO register map GPIO port Direction register: + Port 0 : IOODIR (GPIO port 0 Direction register). = Port0 consists of 32 bits :> 31:0. 0.0 is controlled by bitO, PO.1 is controlled by bit1, and PO.2 is controlled by bit 2 and so on, If is written to these bits they are configured as input ports, — IF Lis written to these bits they are configured as output ports. + Port 1 :!O2DIR (GPIO port 1 Direction register 8Department of CSE Micro-controller Lab Manual — Port consists of 32 bits:931.0 — If 0is writzen to these bits they are configured as input ports — If Lis written to these bits they are configured as output ports. GPIO port Pin value register: + This register provides the value of port pins that are configured to perform only digital functions. The register will give the logic value of the pin regardless of whether the pin is configured for input or output Port 0: ]OOPIN ( Slow GPIO port OPIN register). = Portd consists of 32 bits named as 310. = These bits configured to perform only digital functions. — This port is symbolized as POXVAL. Port 1 :|O1PIN ( Slow GPIO port 1 PIN register. — Port consists of 32 bits 31:0. = These bits configured to perform only digital functions. = This port is symbolized as P1XVAL. GPIO port output Set register + In order to produces a HIGH level at the corresponding port pins we need to write 1to the corresponding pins. Writing 0 has no effect. Port 0 : |OOSET (GPIO port 0 Output set register) — This port is symbolized as POxSET. Port 1 :|O1SET (GPIO port 1 Output set register). — This port is symbolized as P1xSET GPIO port output Clear register + In order to produces a LOW level at the corresponding port pins we need to write 1to the corresponding pins. Writing 0 has no effect. Port 0: IOOCLR (GPIO port 0 Output Clear register. = This port is symbolized as POXCLR Port 1 : IOICLR (GPIO port 1 Output Clear register) This port is symbolized as P1xCLRDepartment of CSE Micro-controller Lab Manual Name Description PINSELO Pin function select register 0. PINSELI Pin function select register 1. PINSEL2 Pin function select register 2. + PINSELO:->P0.15 ~ 0.0 + PINSELA:->P0.31 - P0.16 + PINSEL2:-P1.31 ~P1.16 9. Display “Hello World” message using Internal UART. Universal Asynchronous Receiver Transmitter (UART) + Itisa — Asynchronous form of serial data transmission:- + Means > Doesn’t require clock to synchronous transmitting / receiving end — Relies on the initial agreement of the type of data transfer:~ + Includes: Baud rate, parity, No. of bits per byte etc. + It contains = Start bit: specifies start of data stream of communication — Stop bit: specifies stop of data stream of communication followed by start bit. an RXD: Receiver line PIN DESCRIPTION ARTO Pin Description: Pin Name | Type Description RxDO Input _| Serial Input. Serial receive data TxD0. Output | Serial Output, Serial transmit dataDepartment of CSE Micro-controller Lab Manual Function Reset Value ‘GPIO POD 10 L i Reserved 00 (GPIO Por 07 OL RXDUAR’ 10 PI 1 EINTO » UARTO Line Control Register Bit Descriptions UOLCR UOLCR| Function Description 00:5 bit character length 4-9 | Word Length | 01: 6 bit character length Select | 10: 7 bit character length ‘11:8 bit character length Stop Bit _[0: f stop bit Select _| 1:2 stop bits (1. if UOLCR(1:0]-00) Parity | 0: Disable parity generation and checking Enable _| 4: Enable parity generation and checking 00: Odd parity 01: Even parity 410; Forced "1" stick parity ‘11: Forced “0” stick parity 0: Disable break transmission 4: Enable break transmission. Output pin UARTO TxD. is forced to logic 0 when UOLCR6 is active high. Divisor Latch | 0: Disable aocess to Divisor Latches ‘Access Bit_| 1: Enable access to Divisor Latches Parity Select Break Control UOLCR for UARTO + Word Length select > 8 bits hence 11 + Stop Bit->0 1 Stop bit (The space between 2 characters is less) + Stop Bit->1 2 Stop bit (The space between 2 characters is more) DLAB>1> Enable access to Divisor Latches (Explained in Baud rate calculation) — In order to calculate UODLL(discussed in next slide)Department of CSE Micro-controller Lab Manual + DLAB>0% Disable access to Divisor Latches — As calculation of UODLL is completed. + Hence to Initialise UOLCR = 0X83-1000 0011 Baud Rate Calculation for UARTO * The baud rate is the rate at which information is transferred in a communication channel. One of the more common baud rates, especially for simple stuff where speed isn't critical, is 9600 bps. Other "standard" baud are 1200, 2400, 4800, 19200, 38400, 57600, and 115200. In our program we have used: — Baud rate:9600bits/s — Peripheral Clock Frequency:15 MHz — Hence we have to load baud register with 97 (UODLL) UARTO Divisor Latch Registers (UODLL and UODLM): — The Divisor Latch Registers determine the baud rate of the UARTO. How the data is transmitted and received through UART ® Hello World: How to Send Data Over UART:- + All Data which is to sent over UART is entered in > — UOTHR (Transmit Holding Register), — When there is data in UOTHR Register it will start sending data — if data is sent then the bit THRE in UOLSR Register gets set otherwise it will be zero, hence we can write a small piece of code for sending data as follow:- UOTHR = value; while((UOLSR&Ox20));Department of CSE Micro-controller Lab Manual UOLSR (UARTO Line Status Register) + tis an @-bit read only register UOLSR (UARTO Line Status Register) Program: sinclude
Void UartOtnit (void) Hioitialze serial interface { PINSELO=0X00000005; ‘//enable RXDO (PO.1) & TXDO (P0.0) UotcR = 0x83; 1/ Bbits, no parity, 1 stop bit UODL //'9600 Baud rate @ 15MHz PCLK UOLCR = 0X03; // DLAB = 0 ) void UartOPutCh(unsigned char ch) ‘//write char to serial port { UOTHR = ch; // Transmission hold register While (1(UOLSR 8 0x20)); Iichecking whether the Char is completely transmitted, I] TX= ort //i tx bit =1, complete transmission of a char to PC has been done } void uart_print(char *a) { int is for(i=0;ali]!="\0'j++) UartoPutch(alil); Hlone char ata time is transmitted using this function } int main() { Uartoinit() // function call to initialize LPC2148 art_print ("Hello World"); /1 function call to transmit the data to PCDepartment of CSE Micro-controller Lab Manual 10. Interface and Control a DC Motor. DC Motor Port Pin Configuration: DC_Motor Enable DC Motor Pin connection table. Wotor Motor TpCTias TL PCaTas Selection _| Direction Pin No Port No DCMO-Cik POS=1 8 PO.6=0 29.230 DCM1-Ack PO5=0 & PO6=1 DCM_EN FO.1=1 | 12] KEYS + There are $1,S2,S3..... Keys present in the kit. So S1 key is mapped to P1.16(S1 > P1.16)>Clk Wise Direction So $2 key is mapped to P1.17(S2 > P1.17) ACIk Wise Direction So $3 key is mapped to P1.18(S3 > P1.18)-}OFF operation ‘So we are using these keys to give the input : — Whether the rotation is clock wise/Anti-clock wise/stop(OFF) #define MCW ddefine MCCW define MOFF IO1DIR TOODIR GPIO port Direction register + Port 0: IOODIR (GPIO port 0 Direction register) — If Ois written to these bits they are configured as input ports. — If 1is written to these bits they are configured as output ports. + Port 1: IOLDIR (GPIO port 1 Direction register) — If is written to these bits they are configured as input ports — If Lis written to these bits they are configured as output ports. 24Department of CSE Micro-controller Lab Manual + 0X00070007 is represented} 0111 i.e. 16", 17" and 18" bit is " + 0X00000060-> 6901104" and 5™ bit is ‘1’(Clk/ACLK) Program: iidefine MOTOR. 0x00000060 // PO.S-PO.6 siitéefine KEY_CTRL_PIN IO1PIN finelude
* LPC214x definitions * ‘define MCW 0X00010000 OR (1 <= 16)/KEY1 P1.16 define MCCW 0X00020000 OR (I< 17)/KEY2P1.17 ‘define MOFF 0X00040000 OR (1 << 18) //KEYS PL.18 NEEIEIOOE MAIN EEE int main (void) IOIDIR= — 0X0007000; iy OR ~( MOFF | MCW |MCCW ); IOODIR = 0X00000060; OR (MOTOR ); while(1) { if (1OIPIN & MCW) (Clock wise key pressed IOOPIN = 0X00000040 ; if((OIPIN & MOFF))—_//OFF key pressed { IOOPIN = 000000060 ; if((QO1PIN & MCCW)) _/ Counterclockwise key pressed IOOPIN = 0X00000020 ;Department of CSE Micro-controller Lab Manual 11. Interface a Stepper motor and rotate it in clockwise and anti-clockwise direction. Stepper Motor Port Pin Configuration: per Motor TOLDIR = Ox0FOC PINSEL2 = 0x0; // ¢ RICK/P1.23 behaves like GPIO, KEYS There are S1,S2,S3 Keys present in the kit. ‘So S1 key is mapped to P1.16(S1 > P1.16)Clk Wise Direction So S2 key is mapped to P1.17(S2 > Pt.17) -BACIk Wise Direction #define CLK Ox000. define ACLK 0x00020000 IO1PIN delay (100); IOLPIN = 0X020 delay (100); IOLPIN = 0X04000000; IOLPIN = 0) delay (100);Department of CSE Micro-controller Lab Manual Program: PTET Program to demonstrate Pattems on 8 LEDs Control is through Ports dedicated as outputs LEDs connected to PORTI P1.24 to P1.27 SHEE EEE include
LPC2L4x definitions * LK 0x00010000 or(1<<16) KEY PLI6 ¢ ACLK 0x00020000 ff or (1<<17) KEYS P1.17 void delay(unsigned int count) { int j=0,i-0; for(j-O;i
> 6]Department of CSE Prograi ifinclude
‘include
‘include "Ied.h" siti Init ADCO Init_ ADCO) t Micro-controller Lab Manual /* LPC214x definitio Convert Port pin 0.28 to function as ADO.2 PINSEL1 = 001000000; } iNitiiit, READ ADCO CH:2 {th ‘unsigned int Read_ADC() unsigned int i=0; ADOCR = 0x00200D02; ADOCR [= 0x01000000; do { i= ADOGDR; } while ((] & 0x80000000) = 0); retum (i >> 6) & Ox03FF; viii, DISPLAY ADC VALU Display_ADCO unsigned int ade_value = 0; char buif4];, ade_value = Read_ADCO; sprintf{(char *)buf,"%3d", ade_value); Jed_putstring16(0,"ADC VAL = 000 ed_gotoxy(0,10); Jed_putstring(but); iit) MAUN SHE int main (void) { init_ledQ; Init_ADCO; (0x00200D02: Start A/D Conversion Read A/D Data Register Wait for end of A/D Conversion Dit 6:15 is 10 bit AD valueDepartment of CSE while(1) { Display_ADCO; delay(50000); Micro-controller Lab ManualDepartment of CSE Micro-controller Lab Manual 13, Interface a DAC and generate Triangular and Square waveforms. 3 [DAC Internal Enit_DAC() DACR (DAC Register) + DACRis a 32-bit register. + Its a read-wnite register. Pa 71015 RESERVED Bus vaLUE RESERVED DACR (DAC Register) Value is 10 bits > 6" bit to 15" bit Write DAC (umsignmed int dacval) DACR = dacval << 6; For Square Waveform 21° > 1023 | white (2) Weite_pAC( deiay (200) 5 Write_DAC( delay (100) :Department of CSE Micro-controller Lab Manual Program: ftinclude
/* LPC214x definitions */ HAM Wit DAC HA Init_DAC() { /{ Convert Port pin 0.25 to function as DAC PINSEL1 = 0X00080000; DACR THI NNvite DAC A Write_DAC(unsigned int dacval) { DACR = dacval << 6; } void delay(unsigned int count) { int j-0,i=0; forlj-0;j
1023 231 while (1 { for (i0;4<10247i++) Write_DAC (i); for (1=1023;1>0;4--) Write_DAC (4); Program: #include
* LPC214x definitions * i Init DAC it Init_DACO ‘Convert Port pin 0.25 to function as DAC PINSEL1 = 0X00080000: DACR=0; : HH Weite DAC snisiiit Write_DAC(unsigned int dacval) ‘ DACR = dacval << 6; 4 HE MAIN ht int main (void) unsigned int i Init_DACO; while(1) { for(H-0;i<1024;i++) Write DAC();Department of CSE Micro-controller Lab Manual for(iH1023:i>0;i-) Write_DACG);Department of CSE Micro-controller Lab Manual 14. Interface a 4x4 keyboard and display the key code on an LCD. Keyboard/Keypai ‘To rirconnlr recess po To Enable Rows Row> 0 1 Rowi> 1 1 4 D0XB Row2> 1 0 1 S0xD Row3> 1 1 0 D0XE unsigned char rval[] = {0x7,0x5, 0x0, 0xE} 1 0x7 1 0 1 1 Keypad Matrix Col Colt Col2 Cols Row0 > o 1 2 8 Row > 4 5 6 7 Row2 > 8 9 A B Row3 > c oD E— F In the program we will write the matrix as: ‘Kevpad Matrix wisigned char keyPadMatrix| Cold Colt Col2 Col2 11,8441, 108, Row > OF 17 24 3 DYN SUL, Row! > 4 5 6 7| Wer ag) ven ge | Bane Oise Row2 > 8 | 1BF, 181,177,138 | Row3 > ©Department of CSE Micro-controller Lab Manual Keypad Port Pin Configuration: 4x4 Key Matrix 14 #define #detine #aerine #define #define #aerine 000 #define oxo040000¢ #define oxoagaacac Program: include
/* LPC214x definitions */ include "ed.h” avn define COL 0X00010000 HOR (1<<16) define COL2 —0X00020000 WOR (117) fdefine COL3 _0X00040000 OR (<< 18) fidetine COLA 0X00080000 HOR (<< 19) fdefine ROW! 0X00100000 oR (1<<20) ‘#define ROW2. 0X00200000 oR (i<<21) fidefine ROWS OXO0400000 OR (1 << 22) fdcfine ROW4 OXO0800000 VOR (1<<23) ‘tit! COLUMNS WRITE: iit? void col_viite( unsigned char data ) ‘ unsigned int temp=0; temp=(data << 16) IOICLR = (COLI | COL? |COL3 | COLA): 1O1SET =temp; ) ATO MAN te int main (void) ( unsigned char key, unsigned char rvalf] = {0x7,0xB,0xD,0xE,0x0}; ‘unsigned char keyPadMatrix{] = tDepartment of CSE Micro-controller Lab Manual init_led; TOIDIR |= OX000FO000; //Set COLs as Outputs and Set ROW lines as Inputs while (1) { key = 0; for( i= 0;1<4; i++) {tum on COL output one by one col_write(rvalfi); read rows - break when key press detected if (QOLPIN & ROW!) break; keyt+; if ((QO1PIN & ROW2)) breaks keytss if (LOLPIN & ROW3) break; keyt+5 if (QOLPIN & ROWS) break; key; if (key == 0x10) key=0; Ied_gotoxy(0,2) Jed_putchar(keyPadMatrix|keyl);Department of CSE Micro-controller Lab Manual 15. Demonstrate the use of an external interrupt to toggle an LED On/Off. Interrupt Port Pit 7 [eSc-int 2 Name Description The External Interrupt Flag Register contains interrupt flags for EINTO, EINT1, EINT2 and EINTS. See Table 24. The Interrupt Wakeup Register contains four able bits that contro! whether each external interrupt will cause the processor to wake up from Powerdown mode. See Table 15. EXTMODE The External interrupt Mode Recister controls ‘whether each pin is edge- or level sensitive EXTPOLAR The External Interrupt Polarity Register controts. which level or edge on each pin will cause an interrupt, om GRO Pend is Pos OL BI (UART) 10 EINT? HL ADL EXTMODE /. sensitive mode on EINTZ EXTPOLAR & : //¥al Sensitive PINSELO 80000000; in function P0.15 as EINTZ ter bit assignments Bits Name Type Function [31:0] IntSelect Read/write Selects type of interrupt for interrupt request (0 = 1g Interrupt (reset) 1 = FIQ interrupt Thera is ona bit of the ragister for each Interrupt source. VICVECTADPRIO-31] Register bit assignments [31:0] VectorAddr 0-31 Read/write Contains ISR vector addresses: 4 initialize the interrupt vector */ ViCIntSelect &= ~ (1<
void delay(int count); void init_ext_interrupt(void); irq void Ext_ISR(void); int main (void) init_ext_interrupt(); while (1) { } : void init_ext_interrupt() ‘ EXTMODE = Ox4: EXTPOLAR & PINSELO = 080000000; ~(0x4); initialize the interrupt vector * ViCIntSelect &= ~ (1<<16); VICVectAddr5 = (unsigned int 1<<5) | 16; (1<<16); (0x4); VICVectCntl VICIntEnabl EXTINT & } _itq void Ext_ISR(void) // Interrupt S TOLDIR [=0xFF000000;//make IOLPIN = 0x01000000; delay(10);, IOLPIN | 0x00000000;/(1<<25); EXTINT |= 0x4; VICVectAddr = 0; Micro-controller Lab Manual initialize the external interrupt [Initialize Interrupt (Edge s Falling Edge Sensitive ‘Select Pin function P0.15 as EINT2 snsitive mode on EINT2 I BINT?2 selected as IRQ 16 )EXt_ISR; // address of the ISR EINT2 interrupt enabled ‘ervice Routine-ISR Port PI.31 to P1.24 as output Turn ON Buzzer 1 Turn OFF Buzzer clear interrupt End of interrupt executionDepartment of CSE Micro-controller Lab Manual 16. Display the Hex digits 0 to F on a 7-segment LED interface, with an appropriate delay in between. Seven Segment Selection table: ‘Seven Selection | Dispt Disp2 Disp3 Disp4 Segment __| Lines @IG1) | @IG2)_|@IG3)_| WIG 4) 2148 PinNo [35 37 38 39 2148 PortNo | P0.10 PO. PO.12 0.13 Seven Segment Pin connection table: 1 © Seven |Selectiong |f la |b |p |e Segment | Lines 2148 |PinNo [45 [46 [47 [53 [sa [55 [1 [2 2148 | Port No_| P0.15 | P0.16 | PO.17 [P0.18 | P0.19 | 0.20 | PO.2I | PO22 TOODIR-select the direction of pins of port 0-32 - bit register 1-output 0-input In the program 007F8000 will be represented as 31 30 | 29) 28| 27) 26|25 24| 23) 22|21)20 19 18 17) 16) 15] 14 13 PO.3 0 00 00000071 1112a41 0000 0000000000 0 0 0 1 FE 8 0 0 0 TOOSET -used to set the pins of port 0—32 -bit register 31 [30] 29) 28) 27 | 26) 25] 24] 23 | 22] 21 | 20) 19) 18] 17) 16] 15] 14) 13 PO.31 aDepartment of CSE Micro-controller Lab Manual 100CLR -used to clear the pins of port 0—32 -bit register 31 [30] 29] 28] 27) 26] 25 | 24] 23 | 22] 21 | 20) 19) 18] 17] 16] 15 14/13 PO.31 For example 1. p0.4-p0.7 as output in IOODIR =0X0000 00FO 2. JOODIR |-(1<< 15) - p0.15 as output without effecting the other pin values 3. JOOCLR (1 << 11) - p0.11 as clear IOOCLR=0X0000 000F(p0.0 to 0.3) 0X0000 0800 4, IOOSET | (1<< 15) - p0.15 as set
. | (a cs Jay Encoding: (common at ® thode) <>. cathode -0, anode-1 Digits to display Display Segments Hex code ef abpede ° 100010 00 a8 1 114101012421 eB 2 010031100 4c 3 01001001 49 4 oo 1010141 28 5 000110041 19 6 ooo 141410 18 7 110010141 oe a 0 0 0 0 1000 08 9 0 0 0 0 10041 09 a 0 0 0 60 1010 on B oo 111000 38 c 10011000 98 > o 1101000 68 E 000114100 1c F ooo1rtrt11.0 ae 1. IODIR |- (DIG2) set digit2 control lines as output without effecting the other pins 2. IOOCLR = (DIG2) clear the previous data on digit2 2Department of CSE Micro-controller Lab Manual Progra include
LPC214x definitions * define DIG2 (1 << 11) f#define LED_DATA_MASK — 0x007F8000 Hilti! digits are created using bit patterns corresponding to the segments Unsigned char dig(] {0x88,0xeb,0x4e,0x49,0x2b,0x19,0x18,0xcb,0x8,0x9,0xa,0x38,0x9¢,0x68,0x1¢,0x1e}; aad Function Name : delay() void delay(unsigned int count) { int jH0,i-0; for(j-0;j
0x007F'8000; for (-0;j<2000;j+4); /Ichange to ine/dec brightness of display “aDepartment of CSE Micro-controller Lab Manual
You might also like
21cs43 Mces - Lab Manual
PDF
No ratings yet
21cs43 Mces - Lab Manual
40 pages
8051-Manual 2011
PDF
No ratings yet
8051-Manual 2011
95 pages
Write A Program To Multiply Two 16 Bit Binary Numbers
PDF
No ratings yet
Write A Program To Multiply Two 16 Bit Binary Numbers
10 pages
Lab Manual: Microprocessor Lab (8086) Sub Code: 06CSL48
PDF
No ratings yet
Lab Manual: Microprocessor Lab (8086) Sub Code: 06CSL48
100 pages
Microcontroller Lab Manual
PDF
No ratings yet
Microcontroller Lab Manual
85 pages
BCS402 - MC Lab 2022-23
PDF
No ratings yet
BCS402 - MC Lab 2022-23
29 pages
Mclabmanual
PDF
No ratings yet
Mclabmanual
33 pages
Microcontroller & Interfacing: Laboratory Manual
PDF
No ratings yet
Microcontroller & Interfacing: Laboratory Manual
80 pages
MC Lab Manual
PDF
No ratings yet
MC Lab Manual
56 pages
BCS402 Lab Manual
PDF
No ratings yet
BCS402 Lab Manual
11 pages
MES Lab Manual
PDF
No ratings yet
MES Lab Manual
77 pages
18CSL48 Microcontroller and Embedded Systems Laboratory
PDF
No ratings yet
18CSL48 Microcontroller and Embedded Systems Laboratory
27 pages
10ECL47 MICROCONTROLLER Lab Manual
PDF
No ratings yet
10ECL47 MICROCONTROLLER Lab Manual
142 pages
Embedded Lab Experiment Program
PDF
No ratings yet
Embedded Lab Experiment Program
30 pages
LAB Manual-1
PDF
No ratings yet
LAB Manual-1
47 pages
Faculty: Tutorial Sheet: ITMU-FRM-04
PDF
No ratings yet
Faculty: Tutorial Sheet: ITMU-FRM-04
2 pages
Micro Controller Lab 1
PDF
No ratings yet
Micro Controller Lab 1
73 pages
Module 3
PDF
No ratings yet
Module 3
14 pages
Microcontroller Lab Software MANUAL
PDF
No ratings yet
Microcontroller Lab Software MANUAL
17 pages
Lab Manual: Microprocessor LAB (8086) Sub Code: 06CSL48
PDF
100% (4)
Lab Manual: Microprocessor LAB (8086) Sub Code: 06CSL48
101 pages
MC Lab Manual Vtu8
PDF
No ratings yet
MC Lab Manual Vtu8
44 pages
Quantity: Date
PDF
No ratings yet
Quantity: Date
16 pages
Mi Lab Manual
PDF
No ratings yet
Mi Lab Manual
25 pages
Esb File Vinit
PDF
No ratings yet
Esb File Vinit
23 pages
Cmrcet Department of E.C.E. Experiment No.: 1 16 Bit Arithmetic Operations For 8086
PDF
No ratings yet
Cmrcet Department of E.C.E. Experiment No.: 1 16 Bit Arithmetic Operations For 8086
40 pages
Microcontroller Lab File - 72
PDF
No ratings yet
Microcontroller Lab File - 72
24 pages
ARM Lab Manual
PDF
No ratings yet
ARM Lab Manual
48 pages
Micro Controller Manual
PDF
No ratings yet
Micro Controller Manual
69 pages
mpLabManual
PDF
No ratings yet
mpLabManual
26 pages
Aim: Write A Program Which Sets The Parity Bit. Code
PDF
No ratings yet
Aim: Write A Program Which Sets The Parity Bit. Code
18 pages
Microprocessor & Microcontroller Lab 2021
PDF
No ratings yet
Microprocessor & Microcontroller Lab 2021
25 pages
Manual Temparory
PDF
No ratings yet
Manual Temparory
24 pages
ARM Full Manual
PDF
No ratings yet
ARM Full Manual
57 pages
MPMC Lab 2014-15
PDF
No ratings yet
MPMC Lab 2014-15
29 pages
Mces Software Programs
PDF
No ratings yet
Mces Software Programs
4 pages
Arm Processor (17EIL77) : Visvesvaraya Technological University BELAGAVI - 590 010
PDF
No ratings yet
Arm Processor (17EIL77) : Visvesvaraya Technological University BELAGAVI - 590 010
33 pages
4th Sem Microprocessor Lab Manual Using AFDEBUG 15ECL47
PDF
No ratings yet
4th Sem Microprocessor Lab Manual Using AFDEBUG 15ECL47
55 pages
Coarm Lab Manual Vtu 5th Sem 21 Scheme
PDF
No ratings yet
Coarm Lab Manual Vtu 5th Sem 21 Scheme
20 pages
Microprocessor Laboratory (15ecl47) : Gopalan College of Engineering and Management
PDF
No ratings yet
Microprocessor Laboratory (15ecl47) : Gopalan College of Engineering and Management
87 pages
Microcontroller and Embedded Systems Laboratory Manual 18CSL48
PDF
No ratings yet
Microcontroller and Embedded Systems Laboratory Manual 18CSL48
50 pages
Laboratory Manual: Department of Mechanical Engineering Faculty of Engineering
PDF
No ratings yet
Laboratory Manual: Department of Mechanical Engineering Faculty of Engineering
24 pages
PRINT Microprocessor Manual
PDF
No ratings yet
PRINT Microprocessor Manual
84 pages
Microcontroller Programs
PDF
No ratings yet
Microcontroller Programs
49 pages
MP Lab Manual 2
PDF
No ratings yet
MP Lab Manual 2
44 pages
Micro Processors Manual With Viva
PDF
No ratings yet
Micro Processors Manual With Viva
101 pages
Microcontroller Lab Manual
PDF
No ratings yet
Microcontroller Lab Manual
26 pages
Microcontroller Lab Manual GTU SEM V 2012
PDF
0% (1)
Microcontroller Lab Manual GTU SEM V 2012
76 pages
8085 Lab Manual
PDF
No ratings yet
8085 Lab Manual
43 pages
Part I-General Pgms 8086
PDF
No ratings yet
Part I-General Pgms 8086
11 pages
MPECC08 Practical File
PDF
No ratings yet
MPECC08 Practical File
13 pages
Microcontroller Lab Manual
PDF
No ratings yet
Microcontroller Lab Manual
42 pages
Software Programs: Part A 1. Design and Develop An Assembly Language Program To Search A Key Element "X" in A List of N' 16-Bit Numbers. Adopt Binary Search Algorithm in Your Program For Searching
PDF
No ratings yet
Software Programs: Part A 1. Design and Develop An Assembly Language Program To Search A Key Element "X" in A List of N' 16-Bit Numbers. Adopt Binary Search Algorithm in Your Program For Searching
21 pages
Microcontroller Lab Manual 2018-19 5th Sem
PDF
No ratings yet
Microcontroller Lab Manual 2018-19 5th Sem
68 pages
Bachelor of Engineering Fifth Semester: Lab Manual
PDF
No ratings yet
Bachelor of Engineering Fifth Semester: Lab Manual
28 pages
MC - BCS402 Lab Manual
PDF
No ratings yet
MC - BCS402 Lab Manual
21 pages