Code for reading flow & generating serial output, Assembly Language

Assignment Help:

Assembly Code for Reading Flow & Generating Serial Output

The timer is timer 1 is set for the baud rate 9600, as the crystal used is of 11.0592 Hz.  Then the timer 1 is started by TR1. The program checks the ASCII switch, flow status pins and the respective flow subroutine starts and in the flow subroutine the overflow status is   checked as well as the MOV B ,#X   where X is the character used to be displayed in PC  is used to stored in the register B.  The subroutines returns and the Serial transmission routine is called for serial transmission. In serial transmission subroutine the status of 79H is checked if found enabled then the value of B is transferred in SBUF and followed by character 'L' to SBUF.

The details assembly code is as below:-

         ; Define value setting for Timer in using Generate Baud Rate in transfer data.     

                    MOV IE,#00000000B

                     MOV TMOD,#00100000B

                     MOV TL1,#0FDH

                     MOV TH1,#0FDH

                ; Define value setting for SCON Register that select mode 1

                     MOV SCON,#01010000B

                     SETB TR1  

 MOV   P3 , #0FFH   ; Define  Port 3  as input port

 START  : MOV A ,P3

 ANL A, #80h   ;  Masking of    BITs except P3.7

 CJNE  A ,#00h ,   OVER       ; TO CHECK THE  ASCII  SWITCH 

               CPL 79H     ;   

               OVER :  MOV  A ,P3

               ANL A, #1Ch   ;  Masking of    BITs FLOW RATE

    ACALL FLOW00     ;  FLOW RATE 0  SUBROUTINE 

    ACALL FLOW01 ;  FLOW RATE 1  SUBROUTINE

    ACALL FLOW02 ;  FLOW RATE 2  SUBROUTINE

    ACALL FLOW03;  FLOW RATE 3 SUBROUTINE

    ACALL FLOW04;  FLOW RATE 4  SUBROUTINE

     ACALL FLOW05;  FLOW RATE 5  SUBROUTINE

     ACALL FLOW06 ;  FLOW RATE 6  SUBROUTINE

     ACALL FLOW07 ;  FLOW RATE 7  SUBROUTINE

     JB   79H , SKIP     ;  CHECK FOR ENABLED OR DISABLED SERIAL COMMUNICATION

     ACALL STXD    ;     SERIAL DATA COMMUNICATION  TX

    SKIP :  SJMP   START 

; FLOW RATE   SUBROUTINES SECTION

FLOW00 :    CJNE  A,#00H ,  NEXT0       ;  FLOW RATE   0

MOV B ,#'0'

NEXT0 : RET

FLOW01:    CJNE  A ,#04H  ,  NEXT1       ; FLOW RATE   1

MOV B ,#'1'

NEXT2  : RET

;  SUBROUTINE FLOW RATE   3

FLOW03:    CJNE  A,#0CH ,  NEXT3       ; FLOW RATE   3

MOV B ,#'3'

NEXT3 :RET

;    SUBROUTINE FLOW RATE   4

FLOW04:    CJNE  A,#10H ,  NEXT4       ; FLOW RATE   4

MOV B ,#'4'

NEXT4 :RET

 

;     SUBROUTINE FLOW RATE   5

FLOW05:    CJNE  A, #14H  ,  NEXT5       ; FLOW RATE   5

MOV B ,#'5' 

Next5 :RET

;     SUBROUTINE FLOW RATE   6

FLOW06:    CJNE  A,#18H ,  NEXT6       ; FLOW RATE   6

MOV B ,#'6'

Next6 :RET

;      SIMILARLY SUBROUTINE FLOW RATE   7

 ;   TRANSMISSION SERIAL  SUBROUTINE STARTS 

STXD :           MOV SBUF,B

                     JNB TI,$

                     CLR TI

                     MOV SBUF,#'L'  ;  Sending L  After the flow Rate

                     JNB TI,$

                     CLR TI

     RET 

 END


Related Discussions:- Code for reading flow & generating serial output

Programming with an assembler-microprocessor, Programming with an assembler...

Programming with an assembler The procedure of hand-coding 8086 programs is somewhat tiresome; hence generally a programmer may find it hard to get a correct listing of the mac

Implement an assembly language program, A good starting point for your prog...

A good starting point for your program is the toupper.asm program shown in class. It already queries the user for input and sets up a loop that looks at each character of the input

How to write an assembly program-microprocessor, How to write an assembly p...

How to write an assembly program The initial step in writing an assembly language program is to identify and study the problem. After studying the problem, choose the logical m

Assignment, You have to write a subroutine (assembly language code using NA...

You have to write a subroutine (assembly language code using NASM) for the following equation. Dx= ax2+(ax-1)+2*(ax+2)/2

Program to average ten 16-bit values, Write a MC68HC12 assembly language pr...

Write a MC68HC12 assembly language program to average ten 16-bit values that are stored starting at address $1100. Place the two-byte result at $1110. Use indexed addressing. Us

Flowchart for the sequence of 8251-microprocessor, Flowchart for the sequen...

Flowchart for the sequence of 8251 Whether the control, mode or sync character register is selected depends on the accessing sequence.  A flowchart of the sequencing is given i

First generation microprocessor, 1 st Generation Microprocessor : At ...

1 st Generation Microprocessor : At the end of the 70s a group of engineers developed a chip is able to processing data. This chip was called processor chip. Big processors w

Daa-arithmetic instruction-microprocessor, DAA: Decimal Adjust Accumulator...

DAA: Decimal Adjust Accumulator:- This instruction is utilized to convert the result of the addition operation of 2 packed BCD numbers to a valid BCD number. The conclusion has to

Write program that will generate array of ten random number, 1. Write a pro...

1. Write a program that will generate an array of ten random 32-bit integers, and that will  display on the monitor the numbers followed by either the words " has the fourth bit se

Sbb-arithmetic instruction-microprocessor, SBB: Subtract  with Borrow  :- ...

SBB: Subtract  with Borrow  :- The subtract with borrow instruction subtracts the source operand and the borrow flag (CF) which might reflect the result of the past calculations,

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd