ESD
unknown
plain_text
3 years ago
4.8 kB
8
Indexable
Q1)8051 Assembly Code to Move a block of data from Internal to External RAM Location Programmer(AT89C51) ORG 0000H MOV R1,#05 MOV R0,#30H MOV DPTR,#2000H back:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R1,back END Q2)TEMPERATURE SENSOR INTERFACING //TMP36 Pin Variables int sensorPin = 0; void setup() { Serial.begin(9600); } void loop() { int reading = analogRead(sensorPin); // converting that reading to voltage, for 3.3v arduino use 3.3 float voltage = reading * 5.0; voltage /= 1024.0; // print out the voltage Serial.print(voltage); Serial.println(" volts"); // now print out the temperature float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset //to degrees ((voltage - 500mV) times 100) Serial.print(temperatureC); Serial.println(" degrees C"); // now convert to Fahrenheit float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0; Serial.print(temperatureF); Serial.println(" degrees F"); Serial.println(temperatureC); Serial.println(temperatureF); delay(1000); //waiting a second } Algorithm: Step 1 : initialize the sensor pin as 0 Step 2: then tmp36 pin variable setup Step3: Convert that reading to voltage Step4: then point the voltage in the output Step 5: Calculate the temperature using the formula Temperature = (voltage-0.9)*100 Step6: Converting from 10mv per degree with 500mv Step7: Convert to Fahrenheit Step8: print the fahrenheit in the output Step9: END Q3)Arithmetic’s operations using 8051 microcontroller ORG 00H MOV A, 20H ADD A, 21H MOV R0, A MOV A, 20H SUBB A, 21H MOV R1, A MOV A, 20H MOV B, 21H MUL AB MOV R2, A MOV R3, B MOV A, 20H MOV B, 21H DIV AB MOV R4, A MOV R5, B END Q4)perform data transfer between two memory-blocks using 8051 microcontrollers. ORG 00H MOV R0, #20H MOV R1, #30H MOV R2, #0AH L1: MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ R2, L1 END Q5)WAP TO Find smallest number from memory blocks using 8051 microprocessor MOV R3,#06H //length of the array MOV DPTR,#4000H //starting address of array MOVX A,@DPTR MOV R1,A NEXTBYTE: INC DPTR MOVX A,@DPTR CLR C //reset borrow flag MOV R2,A //next number in the array SUBB A,R1 //other Num-Prev largest no. JNC SKIP MOV A,R2 //update larger number in r1 MOV R1,A SKIP: DJNZ R3,NEXTBYTE MOV DPTR, #4062H //location of the result-4062h MOV A,R1 //Smallest number MOVX @DPTR,A //store at #4062H END Q6)Write an assembly language program to perform series addition of 10 eight bit numbers present from ML 30h onwards. ORG 00H MOV A, #00H MOV R0, #30H //Mem. pointer MOV R2, 0AH //counter CLRC L1: ADDC A,@R0 INC R0 DJNZ R2, L1 END Q7)Write an assembly language program to find out Square of a number present in ML 30h. org 00h mov a, 30h mov b, a mul ab mov r0, a mov r1, b end Q8)Write an assembly language program to count number of ones and zeros in a eight bit number MOV R0, #00H // 0’S COUNT MOV R1, #00H // 1’S COUNT MOV R2, #08H // C0UNTER MOV A, #97H L3: RLC A JC L1 // IF TRUE NO. OF 1’S INC R0 // NO. OF 0’S SJMP L2 L1: INC R1 // NO. OF 1’S L2:DJNZ R2, L3 END Q9)Write an assembly language program to find whether given eight bit number is odd or even. If odd store 00h in accumulator. If even store FFh in accumulator. MOV A, 20H JB ACC.0, ODD MOV A, #0FFH SJMP L1 ODD:MOV A, #00H L1:END Q10)Write an assembly language program to sort numbers in ascending order in a given array ORG 00H MOV R7, #04H L1: MOV R0, #40H MOV R6, #04H L:MOV A, @R0 INC R0 MOV 50H, @R0 CJNE A, 50H, NEXT SJMP DOWN NEXT: JC DOWN MOV @R0, A DEC R0 MOV @R0, 50H INC R0 DOWN: DJNZ R6, L DJNZ R7, L1 END Q11)Write an assembly language program to find the largest element in a given array MOV R3,#06H //length of the array MOV DPTR,#4000H //starting address of array MOVX A,@DPTR MOV R1,A NEXTBYTE: INC DPTR MOVX A,@DPTR CLR C //reset borrow flag MOV R2,A //next number in the array SUBB A,R1 //other Num-Prev largest no. JC SKIP MOV A,R2 //update larger number in r1 MOV R1,A SKIP: DJNZ R3,NEXTBYTE MOV DPTR, #4062H //location of the result-4062h MOV A,R1 //largest number MOVX @DPTR,A //store at #4062H END Q12)ARM7(LPC2148) AREA addsub,CODE,READONLY MOV RO,#0002 MOV R1,#0004 ADD R2,,R1,R0 SUB R3,R2,R1 END
Editor is loading...