diff --git a/homework6/src/homework6.h b/homework6/src/homework6.h index bd5201f..3f046c5 100644 --- a/homework6/src/homework6.h +++ b/homework6/src/homework6.h @@ -1 +1,68 @@ // homework6.h +/* + * this is the header file to + * define the + * variables: + * - pins for the LEDs and the segs + * - pins for the 38 transistors + * - seg chars to display to display the number + * functions: + * - set the 38 transistors. + */ + +#include + +// variables: +// pins for the LEDs and the segs +sbit BUS1A = P2 ^ 0; // Red LED and A Seg +sbit BUS2B = P2 ^ 1; // Orange LED and B Seg +sbit BUS3C = P2 ^ 2; // Yellow LED and C Seg +sbit BUS4D = P2 ^ 3; // Green LED and D Seg +sbit BUS5E = P2 ^ 4; // Aqua LED and E Seg +sbit BUS6F = P2 ^ 5; // BLUE LED and F Seg +sbit BUS7G = P2 ^ 6; // Purple LED and G Seg +sbit BUS8DP = P2 ^ 7; // White LED and DP Seg +// pins for the 38 transistors +sbit ADDR0 = P1 ^ 0; // to A(A0) +sbit ADDR1 = P1 ^ 1; // to B(A1) +sbit ADDR2 = P1 ^ 2; // to C(A2) +sbit ADDR3 = P1 ^ 3; // to E1 +sbit ENLED = P1 ^ 4; // to E2 & E3 +// seg chars to display to display the number +unsigned char code LedChar[] = { + 0xC0, + 0xF9, + 0XA4, + 0XB0, + 0X99, + 0X92, + 0X82, + 0XF8, + 0X80, + 0X90, + 0X88, + 0X83, + 0XC6, + 0XA1, + 0X86, + 0X8E, +}; +// functions: +// 38 transistors control function +/* + * param: + * - addr: the address of the 38 transistors. + * function: + * - Convert the address to 3 binary numbers. + * - Set the 38 transistors to the address. + */ +void set38(unsigned char addr) +{ + // Enable the 38 transistors. + ENLED = 0; + ADDR3 = 1; + // Set the 38 transistors to the address. + ADDR0 = addr & 0x01; + ADDR1 = (addr & 0x02) >> 1; + ADDR2 = (addr & 0x04) >> 2; +} \ No newline at end of file