// homework4.h /* * this header file defines defines: * the BUS pin numbers for the LEDs, 7SEGs, and 38 transistors. * the type for the 38 transistor array. */ #include // variables: // pin addresses for the 38 transistor sbit ADDR0 = P1 ^ 0; sbit ADDR1 = P1 ^ 1; sbit ADDR2 = P1 ^ 2; sbit ADDR3 = P1 ^ 3; sbit ENLED = P1 ^ 4; // BUS pin addresses for the LEDs and 7SEGs: sbit BUS1A = P2 ^ 0; sbit BUS2B = P2 ^ 1; sbit BUS3C = P2 ^ 2; sbit BUS4D = P2 ^ 3; sbit BUS5E = P2 ^ 4; sbit BUS6F = P2 ^ 5; sbit BUS7G = P2 ^ 6; sbit BUS8DP = P2 ^ 7; // functions: // 38 transistor type setters: void set_38_2LED() { // e.g. set Y3 to 1, others to 0: ADDR0 = 1; ADDR1 = 1; ADDR2 = 0; ADDR3 = 1; ENLED = 0; } void set_38_2SEG() { // e.g. set Y4 to 1, others to 0: ADDR0 = 0; ADDR1 = 0; ADDR2 = 1; ADDR3 = 1; ENLED = 0; } // 7SEG number display function: // 0-9 void show_number(unsigned char number) { switch (number) { case 0: { BUS1A = 0; BUS2B = 0; BUS3C = 0; BUS4D = 0; BUS5E = 0; BUS6F = 0; BUS7G = 1; BUS8DP = 1; break; } case 1: { BUS1A = 1; BUS2B = 0; BUS3C = 0; BUS4D = 1; BUS5E = 1; BUS6F = 1; BUS7G = 1; BUS8DP = 1; break; } case 2: { BUS1A = 0; BUS2B = 0; BUS3C = 1; BUS4D = 0; BUS5E = 0; BUS6F = 1; BUS7G = 0; BUS8DP = 1; break; } case 3: { BUS1A = 0; BUS2B = 0; BUS3C = 0; BUS4D = 0; BUS5E = 1; BUS6F = 1; BUS7G = 0; BUS8DP = 1; break; } case 4: { BUS1A = 1; BUS2B = 0; BUS3C = 0; BUS4D = 1; BUS5E = 1; BUS6F = 0; BUS7G = 0; BUS8DP = 1; break; } case 5: { BUS1A = 0; BUS2B = 1; BUS3C = 0; BUS4D = 0; BUS5E = 1; BUS6F = 0; BUS7G = 0; BUS8DP = 1; break; } case 6: { BUS1A = 0; BUS2B = 1; BUS3C = 0; BUS4D = 0; BUS5E = 0; BUS6F = 0; BUS7G = 0; BUS8DP = 1; break; } case 7: { BUS1A = 0; BUS2B = 0; BUS3C = 0; BUS4D = 1; BUS5E = 1; BUS6F = 1; BUS7G = 1; BUS8DP = 1; break; } case 8: { BUS1A = 0; BUS2B = 0; BUS3C = 0; BUS4D = 0; BUS5E = 0; BUS6F = 0; BUS7G = 0; BUS8DP = 1; break; } case 9: { BUS1A = 0; BUS2B = 0; BUS3C = 0; BUS4D = 0; BUS5E = 1; BUS6F = 0; BUS7G = 0; BUS8DP = 1; break; } default: { break; } } }