-- пауза 7 мс > 4.1 мс
WHEN p2 =>
Dmsh[DATA_WITH-1..0] = H"38"; OE = vcc;
Eena = gnd; _RW = gnd; _RS = gnd; Pause. aclr = gnd;
IF Pause. q[]==100 THEN ST = r2; ELSE ST = p2; END IF;
-- INITIAL SETTING TWICE 00111000
WHEN r2 =>
Dmsh[DATA_WITH-1..0] = H"38"; OE = vcc;
Eena = vcc; _RW = gnd; _RS = gnd; Pause. aclr = vcc;
ST = p3;
-- пауза 0.7 мс > 0.1 мс
WHEN p3 =>
Dmsh[DATA_WITH-1..0] = H"38"; OE = vcc;
Eena = gnd; _RW = gnd; _RS = gnd; Pause. aclr = gnd;
IF Pause. q[]==10 THEN ST = r3; ELSE ST = p3; END IF;
-- INITIAL SETTING THIRD 00111000
WHEN r3 =>
Dmsh[DATA_WITH-1..0] = H"38"; OE = vcc;
Eena = vcc; _RW = gnd; _RS = gnd; Pause. aclr = vcc;
ST = p4;
-- пауза 0.7 мс > 0.1 мс
WHEN p4 =>
Dmsh[DATA_WITH-1..0] = H"38"; OE = vcc;
Eena = gnd; _RW = gnd; _RS = gnd; Pause. aclr = gnd;
IF Pause. q[]==10 THEN ST = r4; ELSE ST = p4; END IF;
-- Function Set 0011NF**
WHEN r4 =>
Dmsh[DATA_WITH-1..0] = H"3C"; OE = vcc;
Eena = vcc; _RW = gnd; _RS = gnd; Pause. aclr = vcc;
ST = b4;
WHEN b4 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = vcc; _RW = vcc; _RS = gnd; Pause. aclr = vcc;
ST = c4;
WHEN c4 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = gnd; _RW = vcc; _RS = gnd; Pause. aclr = gnd;
IF Din[DATA_WITH-1].q==0 THEN ST = r5; ELSE ST = b4; END IF;
-- Display ON/OFF = 00001DCB, Display ON, Cursor&Blink OFF
WHEN r5 =>
Dmsh[DATA_WITH-1..0] = H"0C"; OE = vcc;
Eena = vcc; _RW = gnd; _RS = gnd; Pause. aclr = vcc;
ST = b5;
WHEN b5 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = vcc; _RW = vcc; _RS = gnd; Pause. aclr = vcc;
ST = c5;
WHEN c5 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = gnd; _RW = vcc; _RS = gnd; Pause. aclr = gnd;
IF Din[DATA_WITH-1].q==0 THEN ST = r6; ELSE ST = b5; END IF;
-- Entry Mode Set = 000001IS, Increment & Shift OFF
WHEN r6 =>
Dmsh[DATA_WITH-1..0] = H"06"; OE = vcc;
Eena = vcc; _RW = gnd; _RS = gnd; Pause. aclr = vcc;
ST = b6;
WHEN b6 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = vcc; _RW = vcc; _RS = gnd; Pause. aclr = vcc;
ST = c6;
WHEN c6 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = gnd; _RW = vcc; _RS = gnd; Pause. aclr = gnd;
IF Din[DATA_WITH-1].q==0 THEN ST = r7; ELSE ST = b6; END IF;
-- Return Home
WHEN r7 =>
Dmsh[DATA_WITH-1..0] = H"02"; OE = vcc;
Eena = vcc; _RW = gnd; _RS = gnd; Pause. aclr = vcc;
ST = b7;
WHEN b7 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = vcc; _RW = vcc; _RS = gnd; Pause. aclr = vcc;
ST = c7;
WHEN c7 =>
Dmsh[DATA_WITH-1..0] = H"00"; OE = gnd;
Eena = gnd; _RW = vcc; _RS = gnd; Pause. aclr = gnd;
IF Din[DATA_WITH-1].q==0 THEN ST = r8; ELSE ST = b7; END IF;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |


