What is ALE? Explain the functions of ALE in 8085.
Answers were Sorted based on User's Feedback
ALE is a control signal of 8085 MPU.8085 is a 8-bit
microprocessor which have 16-bit address bus among them
lower 8-bit are multiplexed.So while MPU executes read or
write operation it needs to demultiplexed.ALE control signal
used to demultiplexed the lower order address and data bus.
Is This Answer Correct ? | 363 Yes | 52 No |
Answer / k. k. ghosh
8085 processor has 16 address lines for 16 bit address of a
memory location. Out of this 16 address lines 8 adress
lines are solely dedicated to transfer 8 higher order
address bits while the remaining lower order 8 bits of the
address are sent through another 8 lines multiplexed with
the 8 bit data lines. It is the control signal ALE to be
sent by the processor in appropriate time to indicate the
operation of this 8 bit multiplexed bus whether it will be
used to send the lower order 8 address bits or to send the
8 data bits. How it is indicated ? Making ALE control HIGH
the multiplexed 8 bit bus will act as address bus while
making ALE control LOW the same 8 bit multiplexed bus will
act as data bus. Thus, ALE = 1 makes the address latched
i.e. latch enable and ALE = 0 makes the adress bus disable
but making it data bus enable. In this sense, this 8 bit
bus better should be said as data bus.
Is This Answer Correct ? | 245 Yes | 22 No |
Answer / geo
address latch enable...in the case of microcontroller (8051)
& microprocessor 8085 the data line & low order 8 bit
address lines are multiplexed.in order to geting address
from this line we uses a latch.ALE is the line connected to
this latch saying that the take the address from the line.
NB: this is used only when we connecting our micro
controller to external mem.
Is This Answer Correct ? | 165 Yes | 56 No |
Answer / gagan deep singh taneja
it is an output status signal.it tells that when data is
present and when address is present on the multiplexed
address/data lines.
when ALE=1(it means address is present)
when ALE=0(it means data is present on multiplexed A/D
lines)
Is This Answer Correct ? | 62 Yes | 8 No |
Answer / abhinandan
ALE is used to indicate the beginning of any operation.it is
a positive going pulse used primarily to latch lower order
address from multiplexed bus(AD0-AD7)and generate seperate
set of eight address lines A0-A7.
Is This Answer Correct ? | 50 Yes | 17 No |
Answer / vini
address latch enable.ALE+latch=demultiplexer circuit used
to demultiplex address and data lines.the lower order
address byte is saved in latch which is enabled by ALE.
Is This Answer Correct ? | 50 Yes | 23 No |
Answer / aparna das
ALE stands for address latch enable.this is a positive
going pulse every time when the 8085 microprocessor is in
operation.it indicates the bits on AD0-AD7 are address
bits.this signal is used to latch the lower order address
from the multiplexed bus,and generates separate set of 8-
address lines A0-A7.
Is This Answer Correct ? | 32 Yes | 13 No |
Answer / santhoshi
ALE stands for "address latch enable"
8085 is a 8 bit microprocessor with 16 address lines.
Among those 16 address lines lower order address lines are
multiplexed with the 8 data lines....when this ALE is
enabled it means that address is being flown through those
multiplexed lines and if it is disabled then data will be
flown through the multiplexed lines
Is This Answer Correct ? | 21 Yes | 13 No |
Answer / ma forhad
ALE means Address Latch Enable.
ALE is a control signal of 8085 microprocessor.8085 has 16
bit address bus and lower (A0-A7) address are multiplexed
with data bus (D0-D7) which need to demultiplexed or
separate the data bus and address bus.
That means ALE use for separate the (AD0-AD7) bus to (A0-A7)
bus and (D0-D7) bus.
Is This Answer Correct ? | 9 Yes | 5 No |
Answer / prathima
address latch enable is an output pulse for latching the low byte of the address during access to external memory.
Is This Answer Correct ? | 12 Yes | 11 No |
Explain xthl, daa, rc instructions.
What is a linker?
Define crossbar switching with reference to 8086?
What are the different types of instructions of 8085?
Explain the functions of the two dma signals hold and hlda?
Give the truth table for a Half Adder, Give a gate level implementation of the same?
What is a program counter? What is its use?
I have code and test bench however it is not working porperly. Need help to get it working. module fsm(clock,reset,coin,vend,state,change); \\these are the inputs and the outputs. input clock; input reset; input [2:0]coin; output vend; output [2:0]state; output [2:0]change; \\i need to define the registers as change,coin and vend reg vend; reg [2:0]change; wire [2:0]coin; \\my coins are declared as parameters to make reading better. parameter [2:0]NICKEL=3’b001; parameter [2:0]DIME=3’b010; parameter [2:0]NICKEL_DIME=3’b011; parameter [2:0]DIME_DIME=3’b100; parameter [2:0]QUARTER=3’b101; \\MY STATES ARE ALSO PARAMETERS . I DONT WANT TO MAKE YOU READ \\IN MACHINE LANGUAGE parameter [2:0]IDLE=3’b000; parameter [2:0]FIVE=3’b001; parameter [2:0]TEN=3’b010; parameter [2:0]FIFTEEN=3’b011; parameter [2:0]TWENTY=3’b100; parameter [2:0]TWENTYFIVE=3’b101; \\AS ALWAYS THE STATES ARE DEFINED AS REG reg [2:0]state,next_state; \\MY MACHINE WORKS ON STATE AND COIN always @(state or coin) begin next_state=0; \\VERYFIRST NEXT STATE IS GIVEN ZERO case(state) IDLE: case(coin) \\THIS IS THE IDLE STATE NICKEL: next_state=FIVE; DIME: next_state=TEN; QUARTER: next_state=TWENTYFIVE; default: next_state=IDLE; endcase FIVE: case(coin) \\THIS IS THE SECOND STATE NICKEL: next_state=TEN; DIME: next_state=FIFTEEN; QUARTER: next_state=TWENTYFIVE; //change=NICKEL default: next_state=FIVE; endcase TEN: case(coin) \\THIS IS THE THIRD STATE NICKEL: next_state=FIFTEEN; DIME: next_state=TWENTY; QUARTER: next_state=TWENTYFIVE; //change=DIME default: next_state=TEN; endcase FIFTEEN: case(coin) \\THIS IS THE FOURTH STATE NICKEL: next_state=TWENTY; DIME: next_state=TWENTYFIVE; QUARTER: next_state=TWENTYFIVE; //change==NICKEL_DIME default: next_state=FIFTEEN; endcase TWENTY: case(coin) \\THIS IS THE FIFTH STATE NICKEL: next_state=TWENTYFIVE; DIME: next_state=TWENTYFIVE; //change=NICKEL QUARTER: next_state=TWENTYFIVE; //change==DIME_DIME default: next_state=TWENTY; endcase TWENTYFIVE: next_state=IDLE; \\THE NEXT STATE HERE IS THE RESET default : next_state=IDLE; endcase end always @(clock) begin \\WHENEVER I GIVE A RESET I HAVE TO MAKE THE STATE TO IDLE AND VEND TO 1 if(reset) begin state <= IDLE; vend <= 1’b0; // change <= 3’b000; end \\THE CHANGE ALSO HAS TO BECOME NONE else state <= next_state; case (state) \\HERE WE DECIDE THE NEXT STATE \\ALL THE STATES ARE DEFINED HERE AND THE OUTPUT IS ALSO GIVEN IDLE: begin vend <= 1’b0; change <=3’d0; end FIVE: begin vend <= 1’b0; if (coin==QUARTER) change <=NICKEL; else change <=3’d0; TEN: begin vend <= 1’b0; if (coin==QUARTER) change <=DIME; else change <= 3’d0; FIFTEEN : begin vend <= 1’b0; if (coin==QUARTER) change <=NICKEL_DIME; else change TWENTY : begin vend <= 1’b0; if (coin==DIME) change <=NICKEL; else if (coin==QUARTER) TWENTYFIVE : begin vend <= 1’b1; change <=3’d0; end default: state <= IDLE; endcase end endmodule module test; \\THE INPUT IN THE FSM MODULE ARE REG HERE reg clock,reset; reg [2:0]coin; \\THE OUTPUT IN THE FSM MODULE ARE WIRES HERE wire vend; wire [2:0]state; wire [2:0]change; \\THE PARAMETERS AGAIN FOR THE COIN AND STATE parameter [2:0]IDLE=3’b000; parameter [2:0]FIVE=3’b001; parameter [2:0]TEN=3’b010; parameter [2:0]FIFTEEN=3’b011; parameter [2:0]TWENTY=3’b100; parameter [2:0]TWENTYFIVE=3’b101; parameter [2:0]NICKEL=3’b001; parameter [2:0]DIME=3’b010; parameter [2:0]NICKEL_DIME=3’b011; parameter [2:0]DIME_DIME=3’b100; parameter [2:0]QUARTER=3’b101; \\I MONITOR THE TIME,DRINK,RESET,CLOCK,STATE AND CHANGE FOR CHANGES. initial begin $display("Time\tcoin\tdrink\treset\tclock\tstate\tchange"); $monitor("%g\t%b\t%b\t%b\t%b\t%d\t% d",$time,coin,vend,reset,clock,state,change); \\NEW FEATURE: MY MACHINE HAS THE FACILITY TO DUMP VARIABLES SO THAT \\ I CAN VIEW THEM USING A VCD VIEWER. $dumpvars; $dumpfile("file.vcd"); // Dump output file. \\THIS IS WHERE THE COINS ARE ADDED. clock=0; reset=1; \\FIRST LETS RESET THE MACHINE #2 reset=0; coin=NICKEL; \\CHECK FOR STATE 1 #2 reset=1; coin=2’b00; #2 reset=0; coin=DIME; \\RESET AGAIN AND CHECK FOR STATE 2 #2 reset=1; coin=2’b00; #2 reset=0; \\RESET AGAIN AND CHECK FOR STATE 5 coin=QUARTER; #2 reset=1; coin=2’b00; #2 reset=0; \\RESET AGAIN AND CHECK FOR STATE 5 coin=NICKEL; #2 coin=NICKEL; #2 coin=NICKEL; #2 coin=NICKEL; #2 coin=NICKEL; #2 reset=1; coin=2’b00; #2 reset=0; \\RESET AGAIN AND CHECK FOR STATE 5 AND SO ON coin=NICKEL; #2 coin=DIME; #2 coin=DIME; #2 reset=1; coin=2’b00; #2 reset=0; coin=NICKEL; #2 coin=DIME; #2 coin=QUARTER; #2 reset=1; coin=2’b00; #2 reset=0; coin=NICKEL; #2 coin=NICKEL; #2 coin=NICKEL; #2 coin=DIME; #2 reset=1; coin=2’b00; #2 reset=0; coin=NICKEL; #2 coin=NICKEL; #2 coin=NICKEL; #2 coin=NICKEL; #2 coin=DIME; #2 reset=1; coin=2’b00; #2 reset=0; coin=NICKEL; #2 coin=NICKEL; #2 coin=QUARTER; #2 reset=1; coin=2’b00; #2 reset=0; coin=NICKEL; #2 coin=QUARTER; #2 reset=1; coin=2’b00; #2 $finish; end \\THE CLOCK NEEDS TO TICK EVERY 2 TIME UNIT always #1 clock=~clock; //always @(state) // coin=!coin; initial begin if (reset) coin=2’b00; end \\THIS IS WHERE I INSTANTIATE THE MACHINE fsm inst1(clock,reset,coin,vend,state,change); endmodule
Intel 8051 follows which architecture?
What is the need for port?
Give here your suggestion about microprocessor 8085 and 8086. These 2 processors used in old time. I want to know its program execution time, memory space?
What are the flags used in 8086?