Write an assembly language program to interfacing temperature measurement card with 8086 and program to display the temperature on LCD.
Theory:A thermocouple is an electrical device consisting of two dissimilar electrical conductors forming electrical junctions at differing temperatures. A thermocouple produces a temperature-dependent voltage as a result of the thermoelectric effect, and this voltage can be interpreted to measure temperature.
ApparatusDyna 8086 microprocessor kit and thermocouple controller card.
| Address | Opcode | Mnemonics Operand | Comments |
| 5313 | B2 01 | MOV DL,1 | Move 1 to DL |
| 5315 | BB E0 4B | MOV BX,4BE0H | Move 4BE0H to BX |
| 5318 | E8 86 FF | CALL DISP 1 | Call subroutine display |
| 531B | B0 91 | MOV AL,91H | Move 91H to AL |
| 531D | E6 67 | OUT CNTL_PORT,AL | Out the content of AL to port CNTL_PORT |
| 531F | B0 80 | MOV AL,80H | |
| 5321 | E6 65 | OUT PORT_C,AL | Out the content of AL to port PORT_C |
| 5323 | B0 00 | START : MOV AL,00H | Clear the accumulator |
| 5325 | B1 05 | MOV CL,05H | Load the counter with value 05 |
| 5327 | D2 C0 | ROL AL,CL | Rotate the accumulator value left by CL |
| 5329 | 24 E0 | AND AL,E0H | Perform logical AND of AL with E0H |
| 532B | 0C 16 | OR AL,16H | Perform logical OR of AL with 16H |
| 532D | 8A E0 | MOV AH,AL | Move content of AL to AH |
| 532F | E6 63 | OUT PORT-B,AL | |
| 5331 | B9 FF FF | MOV CX,FFFFH | Mask the CX register |
| 5334 | E8 86 00 | CALL DELAY | Call the subroutine delay |
| 5337 | 8A C4 | MOV AL,AH | Move Content of AH to AL |
| 5339 | 0C 01 | OR AL,01H | Perform logical OR of AL with 01H |
| 533B | 8A F0 | MOV AH,AL | |
| 533D | E6 63 | OUT PORT_B,AL | Out the content of AL to PORT_B |
| 533F | B9 FF 0F | MOV CX,0FFFH | Move 0FFFH to CX |
| 5342 | E8 78 00 | CALL DELAY | Call delay subroutine |
| 5345 | 8A C4 | MOV AL,AH | |
| 5347 | 24 FE | AND AL,FEH | Perform logical AND of AL with FEH |
| 5349 | 8A E0 | MOV AH,AL | |
| 534B | E6 63 | OUT PORT_B,AL | Out the content of AL to PORT_B |
| 534D | B9 FF 00 | MOV CX,00FFH | Move 00FFH to CX |
| 5350 | E8 6A 00 | CALL DELAY | Call delay subroutine |
| 5353 | E4 65 | UP : IN AL,PORT_C | Get the input from Port C |
| 5355 | 24 01 | AND AL,01H | |
| 5357 | 3C 01 | CMP AL,01H | Compare the content of AL with 01H |
| 5359 | 75 F8 | JNZ UP | If the result is not zero , then jump to UP label |
| 535B | 8A C4 | MOV AL,AH | Move the content of AH into AL |
| 535D | 24 FD | AND AL,FDH | |
| 535F | 8A E0 | MOV AH,AL | |
| 5361 | E6 63 | OUT PORT_B,AL | Output the content of AL to PORT_B |
| 5363 | B9 FF 0F | MOV CX,0FFFH | Move 0FFFH to CX |
| 5366 | E8 54 00 | CALL DELAY | Call delay subroutine |
| 5369 | E4 61 | IN AL, PORT-A | |
| 536B | 8A C8 | MOV CL,AL | Perform logical AND of AL with FEH |
| 536D | E8 55 00 | CALL CHK_SETPT | |
| 5370 | B5 00 | MOV CH,00H | Out the content of AL to PORT_B |
| 5372 | BB 00 00 | MOV BX,0000H | Move 00FFH to CX |
| 5375 | 87 CB | XCHG CX,BX | Call delay subroutine |
| 5377 | BA 00 00 | MOV DX,0000H | Get the input from Port C |
| 537A | 8A C7 | UP 1 : MOV AL,BH | |
| 537C | 0A C3 | OR AL,BL | Compare the content of AL with 01H |
| 537E | 74 17 | JZ DOWN | If Zero flag is set then start the execution from DOWN |
| 5380 | 4B | DEC BX | Decrement the content of register pair BC |
| 5381 | 32 C0 | XOR AL,DL | EXOR of AL and DL |
| 5383 | 8A C2 | MOV AL,DL | Move DL into AL |
| 5385 | FE C0 | INC AL | Increase the AL by 1 |
| 5387 | 27 | DAA | Decimal adjust the value of A |
| 5388 | 8A D0 | MOV DL,AL | |
| 538A | 73 EE | JNC UP 1 | Out the content of AL to PORT_B |
| 538C | 32 C0 | XOR AL,AL | Move 00FFH to CX |
| 538E | 8A C6 | MOV AL,DH | Call delay subroutine |
| 5390 | FE C0 | INC AL | Get the input from Port C |
| 5392 | 27 | DAA | |
| 5393 | 8A F0 | MOV DH,AL | Compare the content of AL with 01H |
| 5395 | 73 E3 | JNC UP 1 | If Zero flag is set then start the execution from DOWN |
| 5397 | E8 1B 00 | DOWN : CALL DIS | Decrement the content of register pair BC |
| 539A | E8 2A FF | CALL KEYCHK 1 | EXOR of AL and DL |
| 539D | 3C FF | CMP AL,FFH | Move DL into AL |
| 539F | 74 04 | JZ DOWN 1 | Increase the AL by 1 |
| 53A1 | 3C 0F | CMP AL,0FH | Decimal adjust the value of A |
| 53A3 | 77 0D | JA DOWN 2 | Move 0FFFH to CX |
| 53A5 | B9 FF FF | DOWN 1 : MOV CX,FFFFH | Call delay subroutine |
| 53A8 | 90 | UP 2: NOP | |
| 53A9 | 90 | NOP | Perform logical AND of AL with FEH |
| 53AA | 90 | NOP | |
| 53AB | 90 | NOP | Out the content of AL to PORT_B |
| 53AC | 90 | NOP | Move 00FFH to CX |
| 53AD | E2 F9 | LOOP UP 2 | Call delay subroutine |
| 53AF | E9 71 FF | JMP START | Get the input from Port C |
| 53B2 | E9 1C F9 | DOWN 2: JMP MAIN_MENU | |
Result:Measured Temperature will be display on LCD
Get all latest content delivered to your email a few times a month.