PCF8574 I2C to GPIO interface IC to 4x4 matrix keypad and access the 16 keys for different purposes

Dependencies:   PCF8574 mbed

Committer:
aslam
Date:
Wed May 20 10:34:30 2015 +0000
Revision:
0:a12361c5f212
PCF8574 interface IC (I2C to GPIO) to 4x4 matrix keypad

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aslam 0:a12361c5f212 1 #include "mbed.h"
aslam 0:a12361c5f212 2 #include "PCF8574.h"
aslam 0:a12361c5f212 3
aslam 0:a12361c5f212 4 #define BAUD 9600
aslam 0:a12361c5f212 5 InterruptIn event(p12);
aslam 0:a12361c5f212 6 Serial pc(USBTX, USBRX);
aslam 0:a12361c5f212 7 PCF8574 io(p9,p10,0x40);
aslam 0:a12361c5f212 8 int data1 , data2;
aslam 0:a12361c5f212 9
aslam 0:a12361c5f212 10 void display(int data)
aslam 0:a12361c5f212 11 {
aslam 0:a12361c5f212 12 switch (data)
aslam 0:a12361c5f212 13 {
aslam 0:a12361c5f212 14 case 238: pc.printf("SW1 \n\r"); break;
aslam 0:a12361c5f212 15 case 237: pc.printf("SW2 \n\r"); break;
aslam 0:a12361c5f212 16 case 235: pc.printf("SW3 \n\r"); break;
aslam 0:a12361c5f212 17 case 231: pc.printf("SW4 \n\r"); break;
aslam 0:a12361c5f212 18 case 222: pc.printf("SW5 \n\r"); break;
aslam 0:a12361c5f212 19 case 221: pc.printf("SW6 \n\r"); break;
aslam 0:a12361c5f212 20 case 219: pc.printf("SW7 \n\r"); break;
aslam 0:a12361c5f212 21 case 215: pc.printf("SW8 \n\r"); break;
aslam 0:a12361c5f212 22 case 190: pc.printf("SW9 \n\r"); break;
aslam 0:a12361c5f212 23 case 189: pc.printf("SW10 \n\r"); break;
aslam 0:a12361c5f212 24 case 187: pc.printf("SW11 \n\r"); break;
aslam 0:a12361c5f212 25 case 183: pc.printf("SW12 \n\r"); break;
aslam 0:a12361c5f212 26 case 126: pc.printf("SW13 \n\r"); break;
aslam 0:a12361c5f212 27 case 125: pc.printf("SW14 \n\r"); break;
aslam 0:a12361c5f212 28 case 123: pc.printf("SW15 \n\r"); break;
aslam 0:a12361c5f212 29 case 119: pc.printf("SW16 \n\r"); break;
aslam 0:a12361c5f212 30 }
aslam 0:a12361c5f212 31 }
aslam 0:a12361c5f212 32
aslam 0:a12361c5f212 33 void trigger()
aslam 0:a12361c5f212 34 {
aslam 0:a12361c5f212 35 //event.fall(NULL);
aslam 0:a12361c5f212 36 //printf("triggered!\n");
aslam 0:a12361c5f212 37 io.write(0x0f);
aslam 0:a12361c5f212 38 data1 = io.read();
aslam 0:a12361c5f212 39
aslam 0:a12361c5f212 40 io.write(0xf0);
aslam 0:a12361c5f212 41 data2 = io.read();
aslam 0:a12361c5f212 42
aslam 0:a12361c5f212 43 display(data1+data2);
aslam 0:a12361c5f212 44 //wait(0.2);
aslam 0:a12361c5f212 45 //event.fall(&trigger);
aslam 0:a12361c5f212 46 }
aslam 0:a12361c5f212 47
aslam 0:a12361c5f212 48 int main()
aslam 0:a12361c5f212 49 {
aslam 0:a12361c5f212 50 pc.printf("Start\n\r");
aslam 0:a12361c5f212 51 event.fall(&trigger);
aslam 0:a12361c5f212 52 //event.rise(&trigger);
aslam 0:a12361c5f212 53 while(1)
aslam 0:a12361c5f212 54 {
aslam 0:a12361c5f212 55
aslam 0:a12361c5f212 56 }
aslam 0:a12361c5f212 57 }