Files
51-microcontroller-homework/homework4/src/homework4.h
T
2025-04-14 14:28:21 +08:00

167 lines
3.4 KiB
C

// 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 <REG52.H>
// 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;
}
}
}