8085 program for pulse waveform
Problem – Write a program to generate continuous square wave. Use D0 bit to output the square wave. The required waveform is:
Explanation –
The alternate pattern of 0/1 bits can be provided by loading the accumulator with AAH(10101010) and rotating the pattern once through each loop. Bit D0 of the output port is used to proved logic 0 and 1. Therefore, all other bits can be masked by ANDing the accumulator with 01H.
Example –
Accumulator : 1 0 1 0 1 0 1 0 And with 01H : 0 0 0 0 0 0 0 1 Output : 0 0 0 0 0 0 0 0 So output => 0 After RLC : Accumulator : 0 1 0 1 0 1 0 1 And with 01H : 0 0 0 0 0 0 0 1 Output : 0 0 0 0 0 0 0 1 So output => 1
Program –
Address | Label | Mnemonics | Comments |
---|---|---|---|
2000H | MVI D, AAH | Load bit pattern AAH | |
2002H | ROTATE | MOV A, D | Load bit pattern in A |
2003H | RLC | Change data to AAH to 55H and vica versa | |
2004H | MOV D, A | Save A | |
2005H | ANI 01H | Mask bits D7 to D1 | |
2007H | OUTPORT 1 | Output the D0 bit | |
2009H | JMP ROTATE | Jump to ROTATE to change logic level |
Program Description –
- Register D is loaded with AAH(10101010).
- Bit pattern is moved to accumulator.
- Bit pattern is rotated left and saved again in register D. This save is necessary as accumutor is used again in the program.
- Mask all bits but 0th bit.
- Output A at port 1.
Recommended Posts:
- 8085 program to add 2-BCD numbers
- 8085 program to add two 8 bit numbers
- 8085 program to add two 16 bit numbers
- 8085 program to multiply two 16-bit numbers
- 8085 program to reverse 8 bit number
- 8085 program for Binary search
- 8085 program for hexadecimal counter
- 8085 program to find the sum of a series
- 8085 program to swap two 8-bit numbers
- 8085 program to divide two 8 bit numbers
- 8085 program to sum of two 8 bit numbers without carry
- 8085 program to reverse 16 bit number
- 8085 program to multiply two 8 bit numbers
- 8085 program to divide two 16 bit numbers
- 8085 program to find the set bit of accumulator
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.