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 vice 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 accumulator is used again in the program.
- Mask all bits but 0th bit.
- Output A at port 1.
Please Login to comment...