Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Microcontroller Articles
Page 28 of 33
8085 Program to compute LCM
Now let us see a program of Intel 8085 Microprocessor. This program will find the LCM of two8-bit numbers.Problem StatementWrite 8085 Assembly language program to find LCM of two 8-bit numbers stored at location8000H and 8001HDiscussionIn this program we are reading the data from 8000H and 8001H. By loading the number, we are storing it at C register, and clear the B register. The second number is loaded into Accumulator. Set DE as the 2's complement of BCregister. This DE is used to subtract BC from HL pair.The method is like this:let us say the numbers are 25 and 15. ...
Read More8085 Program to multiply two 2-digit BCD numbers
Now let us see a program of Intel 8085 Microprocessor. This program will find the multiplication result of two BCD numbers.Problem StatementWrite 8085 Assembly language program to find two BCD number multiplication. The numbers are stored at location 8000H and 8001H.DiscussionIn this program the data are taken from 8000H and 8001H. The result is stored at location 8050H and 8051H. As we know that 8085 has no multiply instruction so we have to use repetitive addition method. In this process after each addition we are adjusting the accumulator value to get decimal equivalent. When carry is present, we are incrementing the ...
Read More8085 program to find maximum and minimum of 10 numbers
In this program we will see how to find the maximum and minimum number in a block data.Problem StatementWrite 8085 Assembly language program to find the maximum and minimum number in a block often 8-bit numbers.DiscussionIn this program we are taking the first number of the block into register D and E. The D will store the minimum number, and E will store maximum number. In each iteration we will check whether the number is smaller than D or not, if it is smaller, then update D with the new number, and then compare it again with E to check ...
Read More8085 Block movement without overlap
In this program, we will see how to move blocks of data from one place to another.Problem StatementWrite 8085 Assembly language program to move a data block. The blocks are assumed to be non-overlapping. The block size is given, the block is starting from X and we have to move it to the location Y.DiscussionThe non-overlapping block movement is relatively an easy task. Here the block is starting at position X, we have to move it to position Y. The location Y is far away from X. So Y > X + block size.In this program, the data are stored ...
Read MoreNeed for DMA data transfer
The microcomputer system basically consists of three blocksThe microprocessorThe memories of microprocessor like EPROM and RAM andThe I/O ports by which they are connected.The possible data transfers are indicated below.Between the memory and microprocessor data transfer occurs by using the LDA and STA instructions.Between microprocessor and I/O ports also data transfer occurs by the help of two instructions IN and OUT.Through DMA data transfer, data is transferred between the Input Output ports and the memory.If the data transfer which is used for reading from the memory location is 3456H and then writing to output port number is 50H which takes ...
Read MoreProgramming the 8257
We know from the study of the description of 8257 that it consists of 40 pins and the condition when it works in Slave Mode and Master mode. From the microprocessor point of view, the I/O port is a chip which is used exclusively for DMA control application and is not used for interfacing I/O devices for the purpose of data transfer with the processor. This chip is only used to control the DMA data transfer for four I/O ports. For every I/O port there exists a corresponding DMA channel. This chip provides all the features which are needed for ...
Read MoreAddress registers of 8257
Every DMA channel consists an address register and a count register. These registers are 16-bits wide in length. In each 16 bits there are four ARs marked as AR3-0. Apart from four CRs there are control and status registers also. They are separate 8-bit registers, but have the same address. Here the processor can only write in the control register but we can read in the status register. Fig. Programmer's view at a glance of Intel 8257.We can select any one of the above registers by the address of the four pins marked as A3-0 of 8257. The processor used here writes to ...
Read MoreCount registers of 8257
We have four Counters, ranging from CR3-0, which consists of 16 bits each. At the time when the CR becomes access to the processor which is 16-bits wide, the Least Significant and the Most Significant Byte of the register are accessed in an alternate manner, which starts with the Least Significant Byte. Also, the M/L* flip-flop helps here. The information about the number of bytes which are to be transferred using DMA are contained in the Counter Registers, which is decremented by 1 for every byte in the DMA data transfer. When the Counter Register becomes 0, the last DMA ...
Read MoreControl register of 8257
The processor, in active state writes to the Control register of 8257 to configure its working purpose. To find out the status of 8257, the processor reads status register of the processor. The control register is of length 8-bits which is only read by the processor but not read. It is only selected when CS* is 0, A3-0 is 1000, and IOW* is 0.Intel calls the control register 8257 normally the mode set register by as it sets the mode of operation of 8257.AULD1 = Enable auto load0 = Disable auto loadTCS1 = Stop DMA transfer if TC reached0 = ...
Read MoreStatus register of 8257
The status register is of length 8-bits wide. The processor can only read but not write and it is only selected when CS* is 0, A3-0 is 1000, and IOR* is 0.About the present state of 8257 the information about the status is provided. The five blocks are important others are marked 0 since they are not in use.UD1 = Update in progress0 = Update not in progressTCn1 = TC reached for Channel n (n = 0–3)0 = TC not yet reached for Channel nFig: Interpretation of the contents of the status registerThe read operation of the status register is ...
Read More