IC 165 serial input IN by Abhinav

Dependencies:   mbed

Revision:
0:9b87785841ab
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Dec 03 07:27:42 2016 +0000
@@ -0,0 +1,132 @@
+#include "mbed.h"
+#include <bitset>
+
+//DigitalOut lat(P8_11);
+//DigitalOut dat(P8_13);
+//DigitalOut clk(P4_4);
+DigitalOut pins[1][3] = {{P8_11,P8_13,P4_4}};
+DigitalIn ser(P2_14);
+DigitalOut clk_inh(P4_5);
+DigitalOut clk_2(P4_7);
+DigitalOut SH_LD(P4_6); 
+
+int delay_time;
+uint8_t data_read = 0x00;
+
+void shift(uint8_t data, int delay_time,int row_no){
+    DigitalOut lat = pins[row_no][0];
+    DigitalOut dat = pins[row_no][1];
+    DigitalOut clk = pins[row_no][2];
+    clk = 0;
+    dat = 0;
+    lat = 0; 
+    SH_LD = 1;
+    clk_inh = 1;
+    clk_2 = 1;
+    data_read = 0x00;
+
+    dat = data & 0x80;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x40;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x20;
+    clk = 1;
+ //   wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x10;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x08;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x04;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x02;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    dat = data & 0x01;
+    clk = 1;
+//    wait_us(delay_time);
+    clk = 0;
+    
+    lat = 1;
+//    wait(delay_time);
+    lat = 0;
+    
+    SH_LD = 0;
+    wait_ms(100);
+    SH_LD = 1;
+    wait_ms(500);
+    clk_inh = 0;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;    
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+    
+    wait_ms(500);
+    clk_2 = 0;
+    data_read = (data_read<<1)|ser;
+    wait_ms(500);
+    clk_2 = 1;
+}
+
+int main() {
+    
+    shift(0x35, 0.001, 0);
+    wait(2);
+    shift(~data_read, 0.001, 0);
+}
\ No newline at end of file