/* Bài tập 2. Sử dụng 4 nút ấn điều khiển LED 7 thanh:
Ban đầu đèn không sáng,
khi ấn nút 1 đèn LED hiển thị số 1,
ấn nút 2 hiển thị số 2,
ấn nút 3 hiển thị số 3,
ấn nút TẮT thì tắt LED */
/* Chương trình 1: Ngôn ngữ thuần Arduino
int a = 0; //Gán chân của LED vào PortD
int b = 1;
int c = 2;
int d = 3;
int e = 4;
int f = 5;
int g = 6;
int dp = 7;
int n1 = 8; //Gán nút só 1 vào Pin8
int n2 = 9; //Gán nút só 2 vào Pin9
int n3 = 10; //Gán nút só 3 vào Pin10
int off = 11; //Gán nút só TẮT vào Pin11
void setup() {
pinMode(a, OUTPUT); //Khai báo các chân của 7Seg Output
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
pinMode(n1, INPUT_PULLUP); //Khai báo các chân của nút bấm là Input_Pullup
pinMode(n2, INPUT_PULLUP);
pinMode(n3, INPUT_PULLUP);
pinMode(off, INPUT_PULLUP);
}
void clear() { //Chương trình phụ để reset các chân
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(dp, LOW);
}
void loop() {
if (digitalRead(n1) == LOW) { //Đọc tín hiệu Nút nhấn 1
clear(); //Reset các chân cũ
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
}
if (digitalRead(n2) == LOW) { //Đọc tín hiệu Nút nhấn 2
clear(); //Reset các chân cũ
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(g, HIGH);
digitalWrite(e, HIGH);
digitalWrite(d, HIGH);
}
if (digitalRead(n3) == LOW) { //Đọc tín hiệu Nút nhấn 3
clear(); //Reset các chân cũ
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(g, HIGH);
}
if (digitalRead(off) == LOW) { //Đọc tín hiệu Nút nhấn TẮT
clear();
}
}
//Kết thúc chương trình 1
*/
/* Chương trình 2: Dùng mã Hex xuất tín hiệu ra 1 PORT
void setup() {
DDRD = 0xFF; //Khởi tạo PortD với chân Pin 0~7 là cổng Output ra LED
PORTB = 0x0F; //Khởi tạo PortB chân Pin 8, 9, 10, 11 là INPUT_PULLUP
}
void loop() {
if (digitalRead(8) == LOW) {
PORTD = 0x06;
}
if (digitalRead(9) == LOW) {
PORTD = 0x5B;
}
if (digitalRead(10) == LOW) {
PORTD = 0x4F;
}
if (digitalRead(11) == LOW) {
PORTD = 0x00;
}
}
// Kết thúc chương trình 2
*/