$ 1 32 0.00390625 0 5 50 Auto 2048 2048 true 315 672 256 672 320 4096 void%20setup%28%29%20%7B%0A%20%20%20%20chipName%28%22SN74HC595%22%29%3B%20%2F%2F%208-bit%20shift%20register%0A%20%20%20%20logicFamily%28TTL%29%3B%0A%0A%20%20%20%20pin%281%2C%20%22Q1%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%282%2C%20%22Q2%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%283%2C%20%22Q3%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%284%2C%20%22Q4%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%285%2C%20%22Q5%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%286%2C%20%22Q6%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%287%2C%20%22Q7%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%288%2C%20%22GND%22%2C%20GROUND%29%3B%0A%20%20%20%20pin%289%2C%20%22Q7S%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%2810%2C%20%22MR%22%2C%20INPUT%2C%20LINE_OVER%29%3B%0A%20%20%20%20pin%2811%2C%20%22SHCP%22%29%3B%0A%20%20%20%20pin%2812%2C%20%22STCP%22%29%3B%0A%20%20%20%20pin%2813%2C%20%22OE%22%2C%20OUTPUT%2C%20LINE_OVER%29%3B%0A%20%20%20%20pin%2814%2C%20%22DS%22%29%3B%0A%20%20%20%20pin%2815%2C%20%22Q0%22%2C%20THREE_STATE%29%3B%0A%20%20%20%20pin%2816%2C%20%22VCC%22%2C%20POWER%29%3B%0A%7D%0A%0Abool%20q%5B8%5D%3B%0Abool%20qs%5B8%5D%3B%0Abool%20lastShcp%20%3D%20false%3B%0Abool%20lastStcp%20%3D%20false%3B%0A%0Avoid%20loop%28%29%20%7B%0A%20%20%20%20%2F%2F%20Read%20the%20current%20states%20of%20control%20pins%0A%20%20%20%20%2F%2F%20Read%20SHCP%20%28shift%20clock%29%0A%20%20%20%20bool%20shcp%20%3D%20digitalRead%2811%29%3B%0A%20%20%20%20%2F%2F%20Detect%20rising%20edge%20of%20SHCP%0A%20%20%20%20bool%20shcpRise%20%3D%20%21lastShcp%20%26%26%20shcp%3B%0A%20%20%20%20%2F%2F%20Read%20STCP%20%28storage%20clock%29%0A%20%20%20%20bool%20stcp%20%3D%20digitalRead%2812%29%3B%0A%20%20%20%20%2F%2F%20Detect%20rising%20edge%20of%20STCP%0A%20%20%20%20bool%20stcpRise%20%3D%20%21lastStcp%20%26%26%20stcp%3B%0A%20%20%20%20%2F%2F%20Read%20OE%20%28output%20enable%29%0A%20%20%20%20bool%20noe%20%3D%20digitalRead%2813%29%3B%0A%20%20%20%20%2F%2F%20Read%20MR%20%28master%20reset%29%0A%20%20%20%20bool%20nmr%20%3D%20digitalRead%2810%29%3B%0A%20%20%20%20%2F%2F%20Read%20DS%20%28serial%20data%20input%29%0A%20%20%20%20bool%20ds%20%3D%20digitalRead%2814%29%3B%0A%0A%20%20%20%20%2F%2F%20Set%20the%20three-state%20mode%20based%20on%20OE%20%28output%20enable%29%20state%0A%20%20%20%20%2F%2F%20Q7S%20oub%0A%20%20%20%20pinThreeStateMode%289%2C%20noe%20%3F%20HIGH_Z%20%3A%20LOW_IMPEDANCE%29%3B%0A%20%20%20%20%2F%2F%20Set%20the%20three-state%20mode%20for%20pins%20Q1%20to%20Q7%20based%20on%20OE%20%28output%20enable%29%20state%0A%20%20%20%20for%20%28int%20i%20%3D%201%3B%20i%20%3C%3D%207%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20pinThreeStateMode%28i%2C%20noe%20%3F%20HIGH_Z%20%3A%20LOW_IMPEDANCE%29%3B%0A%20%20%20%20pinThreeStateMode%2815%2C%20noe%20%3F%20HIGH_Z%20%3A%20LOW_IMPEDANCE%29%3B%0A%0A%2F%2F%20Reset%20all%20outputs%20when%20Storage%20Clock%20%28STCP%29%20rises%20and%20Master%20Reset%20%28MR%29%20is%20not%20active%0A%20%20%20%20if%20%28stcpRise%20%26%26%20%21nmr%29%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20Clear%20Q7S%0A%20%20%20%20%20%20%20%20digitalWrite%289%2C%20LOW%29%3B%0A%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%200%3B%20i%20%3C%208%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Clear%20both%20qs%20and%20q%20arrays%0A%20%20%20%20%20%20%20%20%20%20%20%20qs%5Bi%5D%20%3D%20q%5Bi%5D%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Set%20Q1%20to%20Q7%20TO%20low%0A%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%201%3B%20i%20%3C%3D%207%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20%20%20%20%20digitalWrite%28i%2C%20LOW%29%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Set%20Q0%20to%20low%0A%20%20%20%20%20%20%20%20digitalWrite%2815%2C%20LOW%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Handle%20shift%20and%20storage%20of%20data%20when%20Shift%20Clock%20%28SHCP%29%20rises%20and%20Master%20Reset%20%28MR%29%20is%20active%0A%20%20%20%20if%20%28shcpRise%20%26%26%20nmr%29%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20On%20STCP%20rise%2C%20copy%20shifted%20data%20into%20output%20array%20and%20update%20Q%20pins%0A%20%20%20%20%20%20%20%20if%20%28stcpRise%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%200%3B%20i%20%3C%208%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20q%5Bi%5D%20%3D%20qs%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Update%20Q1%20to%20Q7%20pins%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%201%3B%20i%20%3C%3D7%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20digitalWrite%28i%2C%20q%5Bi%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Update%20Q0%20pin%0A%20%20%20%20%20%20%20%20%20%20%20%20digitalWrite%2815%2C%20q%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%2F%2F%20Update%20Q7S%20pin%0A%20%20%20%20%20%20%20%20digitalWrite%289%2C%20qs%5B7%5D%29%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Shift%20the%20qs%20array%0A%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%207%3B%20i%20%3E%3D%201%3B%20i--%29%0A%20%20%20%20%20%20%20%20%20%20%20%20qs%5Bi%5D%20%3D%20qs%5Bi-1%5D%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Load%20the%20new%20serial%20data%20into%20the%20first%20position%20of%20qs%20array%0A%20%20%20%20%20%20%20%20qs%5B0%5D%20%3D%20ds%3B%0A%20%20%20%20%20%20%20%20log%28%28int%29qs%5B0%5D%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Update%20output%20pins%20whe%20Storage%20Clock%20%28STCP%29%20rises%20and%20Master%20Reset%20%28MR%29%20is%20active%0A%20%20%20%20if%20%28%21shcpRise%20%26%26%20stcpRise%20%26%26%20nmr%29%20%7B%0A%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%200%3B%20i%20%3C%208%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Copy%20shifted%20data%20into%20output%20array%0A%20%20%20%20%20%20%20%20%20%20%20%20q%5Bi%5D%20%3D%20qs%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Update%20Q1%20to%20Q7%20pins%0A%20%20%20%20%20%20%20%20for%20%28int%20i%20%3D%201%3B%20i%20%3C%3D%207%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%20%20%20%20%20%20digitalWrite%28i%2C%20q%5Bi%5D%29%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Update%20Q0%20oub%0A%20%20%20%20%20%20%20%20digitalWrite%2815%2C%20q%5B0%5D%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Update%20the%20previous%20states%20of%20Shift%20Clock%20%28SHCP%29%20and%20Storage%20Clock%20%28STCP%29%0A%20%20%20%20lastShcp%20%3D%20shcp%3B%0A%20%20%20%20lastStcp%20%3D%20stcp%3B%0A%7D 16 ycfk4y Examples 1